From 4b8c6983e7fa6347e9ab66051fa5f10652554efe Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 4 Feb 2016 18:45:36 +0000 Subject: [PATCH 001/417] (svn r27506) -Update from Eints: french: 13 changes by OliTTD --- src/lang/french.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/lang/french.txt b/src/lang/french.txt index 8ecc2db4ed..dc97e8d3dd 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -167,7 +167,7 @@ STR_ABBREV_ALL :{TINY_FONT}ALL # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passager{P "" s} -STR_BAGS :{COMMA}{NBSP}sac{P "" s} +STR_BAGS :{COMMA}{NBSP}sac{P 0 "" s} STR_TONS :{COMMA}{NBSP}tonne{P "" s} STR_LITERS :{COMMA}{NBSP}litre{P "" s} STR_ITEMS :{COMMA}{NBSP}unité{P "" s} @@ -815,8 +815,8 @@ STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDE STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} a sponsorisé la construction de la nouvelle ville {TOWN}{NBSP}! -STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Un{G "" "" e} nouv{G eau el elle} {STRING} en construction près de {TOWN}{NBSP}! -STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Un{G "" "" e} nouv{G eau el elle} {STRING} s'implante près de {TOWN}{NBSP}! +STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Un{G 0 "" "" e} nouv{G 0 eau el elle} {STRING} en construction près de {TOWN}{NBSP}! +STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Un{G 0 "" "" e} nouv{G 0 eau el elle} {STRING} s'implante près de {TOWN}{NBSP}! STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIG_FONT}{BLACK}{STRING} annonce une fermeture imminente{NBSP}! STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS :{BIG_FONT}{BLACK}Des problèmes d'approvisionnement obligent {STRING} à fermer bientôt{NBSP}! @@ -858,9 +858,9 @@ STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE STR_NEWS_ORDER_REFIT_FAILED :{WHITE}L'échec du réaménagement a stoppé {VEHICLE} STR_NEWS_VEHICLE_AUTORENEW_FAILED :{WHITE}Le renouvellement automatique de {VEHICLE} a échoué{}{STRING} -STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE :{BIG_FONT}{BLACK}Nouv{G eau el elle} {STRING} disponible{NBSP}! +STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE :{BIG_FONT}{BLACK}Nouv{G 0 eau el elle} {STRING} disponible{NBSP}! STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE} -STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nouv{G eau el elle} {STRING} disponible{NBSP}! - {ENGINE} +STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nouv{G 0 eau el elle} {STRING} disponible{NBSP}! - {ENGINE} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} n'accepte plus {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} n'accepte plus {STRING} ou {STRING} @@ -1215,8 +1215,8 @@ STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :à droite de la STR_CONFIG_SETTING_SHOWFINANCES :Afficher le bilan financier en fin d'année{NBSP}: {STRING} STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si activé, le bilan financier sera affiché à la fin de chaque année pour permettre un contrôle rapide de l'état de la compagnie. STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Les nouveaux ordres sont « sans arrêt » par défaut{NBSP}: {STRING} -STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalement, un véhicule s'arrête dans chaque station qu'il traverse. En activant ce paramètre, il traversera toutes les stations sur le chemin de sa destination finale sans s'arrêter. Noter que ce paramètre défini uniquement une valeur par défaut pour les nouveaux ordres. Les ordres peuvent par ailleurs être réglés individuellement avec un autre comportement -STR_CONFIG_SETTING_STOP_LOCATION :Les nouveaux ordres arrêtent les trains {G 0:2 au au "à la"} {STRING} du quai par défaut +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalement, un véhicule s'arrête dans chaque station qu'il traverse. En activant ce paramètre, il traversera toutes les stations sur le chemin de sa destination finale sans s'arrêter. Noter que ce paramètre définit uniquement une valeur par défaut pour les nouveaux ordres. Les ordres peuvent par après être réglés individuellement avec un autre comportement +STR_CONFIG_SETTING_STOP_LOCATION :Les nouveaux ordres arrêtent les trains {G 0 au au "à la"} {STRING} du quai par défaut STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Endroit du quai où un train s'arrête par défaut. "queue" signifie proche du point d'entrée. "milieu" signifie au milieu du quai. "tête" signifie à l'opposé du point d'entrée. Noter que ce paramètre défini uniquement une valeur par défaut pour les nouveaux ordres. Les ordres peuvent par ailleurs être réglés individuellement avec un autre comportement STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :{G=f}queue STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :{G=m}milieu @@ -1407,7 +1407,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Premier disponi STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Dernier disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Le plus utilisé STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Afficher les réservations de chemin sur les voies{NBSP}: {STRING} -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Donne une couleur différente aux voies réservées pour aider à résoudre les problèmes de trains refusant d'entrer dans des blocs basés sur le chemin +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Donne une couleur différente aux voies réservées afin d'aider à résoudre les problèmes de trains refusant de s'engager dans des tronçons encadrés par des signaux de passage STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Conserver les outils de construction actifs après usage{NBSP}: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Garde les outils de construction de ponts, tunnels, etc. ouverts après usage STR_CONFIG_SETTING_EXPENSES_LAYOUT :Regrouper les dépenses dans la fenêtre des finances{NBSP}: {STRING} @@ -1464,15 +1464,15 @@ STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Nombre maximum 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 STR_CONFIG_SETTING_SERVINT_TRAINS :Intervalle d'entretien par défaut pour les trains{NBSP}: {STRING} -STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Défini l'intervalle d'entretien par défaut des nouveaux véhicules ferroviaires, si aucun intervalle d'entretien n'est définit pour le véhicule +STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Définit l'intervalle d'entretien par défaut des nouveaux véhicules ferroviaires, si aucun intervalle d'entretien n'est défini pour le véhicule STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}jour{P 0 "" s}/% STR_CONFIG_SETTING_SERVINT_DISABLED :Désactivé STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Intervalle d'entretien par défaut pour les véhicules routiers{NBSP}: {STRING} -STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Défini l'intervalle d'entretien par défaut des nouveaux véhicules routiers, si aucun intervalle d'entretien n'est définit pour le véhicule +STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Définit l'intervalle d'entretien par défaut des nouveaux véhicules routiers, si aucun intervalle d'entretien n'est défini pour le véhicule STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalle d'entretien par défaut pour les aéronefs{NBSP}: {STRING} -STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Défini l'intervalle d'entretien par défaut des nouveaux aéronefs, si aucun intervalle d'entretien n'est définit pour le véhicule +STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Définit l'intervalle d'entretien par défaut des nouveaux aéronefs, si aucun intervalle d'entretien n'est défini pour le véhicule STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalle d'entretien par défaut pour les navires{NBSP}: {STRING} -STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Défini l'intervalle d'entretien par défaut des nouveaux navires, si aucun intervalle d'entretien n'est définit pour le véhicule +STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Définit l'intervalle d'entretien par défaut des nouveaux navires, si aucun intervalle d'entretien n'est défini pour le véhicule STR_CONFIG_SETTING_NOSERVICE :Désactiver l'entretien quand les pannes sont inactives{NBSP}: {STRING} STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Lorsqu'il est activé, les véhicules ne sont pas entretenus s'ils ne peuvent pas tomber en panne STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Activer la vitesse limite des wagons{NBSP}: {STRING} @@ -2221,7 +2221,7 @@ STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}Pré-s STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}Cette dépendance a été sélectionnée pour être téléchargée STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}Vous avez déjà ceci STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}Ce module est inconnu et ne peut pas être téléchargé dans OpenTTD -STR_CONTENT_DETAIL_UPDATE :{SILVER}Ceci est un remplacement pour {G "un" "des" "une"} {STRING} existant{G 0 "" "s" "e"} +STR_CONTENT_DETAIL_UPDATE :{SILVER}Ceci est un remplacement pour {G 0 "un" "des" "une"} {STRING} existant{G 0 "" "s" "e"} STR_CONTENT_DETAIL_NAME :{SILVER}Nom{NBSP}: {WHITE}{STRING} STR_CONTENT_DETAIL_VERSION :{SILVER}Version{NBSP}: {WHITE}{STRING} STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}Description{NBSP}: {WHITE}{STRING} From 9db36bd87ae8c0258a8d2dff1733ddfe65ad9c4f Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 8 Feb 2016 21:05:57 +0000 Subject: [PATCH 002/417] (svn r27507) -Add: [NewGRF] Allow custom sound IDs in RV property 0x12, ship property 0x10 and aircraft property 0x12. --- src/newgrf.cpp | 6 +++--- src/newgrf_sound.cpp | 33 +++++++++++++++++++++------------ src/newgrf_sound.h | 1 + src/sound_type.h | 2 ++ 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index cf45608b63..b9c1bf89e3 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -1402,7 +1402,7 @@ static ChangeInfoResult RoadVehicleChangeInfo(uint engine, int numinfo, int prop break; case 0x12: // SFX - rvi->sfx = buf->ReadByte(); + rvi->sfx = GetNewGRFSoundID(_cur.grffile, buf->ReadByte()); break; case PROP_ROADVEH_POWER: // Power in units of 10 HP. @@ -1590,7 +1590,7 @@ static ChangeInfoResult ShipVehicleChangeInfo(uint engine, int numinfo, int prop break; case 0x10: // SFX - svi->sfx = buf->ReadByte(); + svi->sfx = GetNewGRFSoundID(_cur.grffile, buf->ReadByte()); break; case 0x11: { // Cargoes available for refitting @@ -1758,7 +1758,7 @@ static ChangeInfoResult AircraftVehicleChangeInfo(uint engine, int numinfo, int break; case 0x12: // SFX - avi->sfx = buf->ReadByte(); + avi->sfx = GetNewGRFSoundID(_cur.grffile, buf->ReadByte()); break; case 0x13: { // Cargoes available for refitting diff --git a/src/newgrf_sound.cpp b/src/newgrf_sound.cpp index 60ee609165..0cc113d9df 100644 --- a/src/newgrf_sound.cpp +++ b/src/newgrf_sound.cpp @@ -161,6 +161,22 @@ bool LoadNewGRFSound(SoundEntry *sound) return false; } +/** + * Resolve NewGRF sound ID. + * @param file NewGRF to get sound from. + * @param sound_id GRF-specific sound ID. (GRF-local for IDs above ORIGINAL_SAMPLE_COUNT) + * @return Translated (global) sound ID, or INVALID_SOUND. + */ +SoundID GetNewGRFSoundID(const GRFFile *file, SoundID sound_id) +{ + /* Global sound? */ + if (sound_id < ORIGINAL_SAMPLE_COUNT) return sound_id; + + sound_id -= ORIGINAL_SAMPLE_COUNT; + if (file == NULL || sound_id >= file->num_sounds) return INVALID_SOUND; + + return file->sound_offset + sound_id; +} /** * Checks whether a NewGRF wants to play a different vehicle sound effect. @@ -185,14 +201,10 @@ bool PlayVehicleSound(const Vehicle *v, VehicleSoundEvent event) /* Play default sound if callback fails */ if (callback == CALLBACK_FAILED) return false; - if (callback >= ORIGINAL_SAMPLE_COUNT) { - callback -= ORIGINAL_SAMPLE_COUNT; + callback = GetNewGRFSoundID(file, callback); - /* Play no sound if result is out of range */ - if (callback > file->num_sounds) return true; - - callback += file->sound_offset; - } + /* Play no sound, if result is invalid */ + if (callback == INVALID_SOUND) return true; assert(callback < GetNumSounds()); SndPlayVehicleFx(callback, v); @@ -207,11 +219,8 @@ bool PlayVehicleSound(const Vehicle *v, VehicleSoundEvent event) */ void PlayTileSound(const GRFFile *file, SoundID sound_id, TileIndex tile) { - if (sound_id >= ORIGINAL_SAMPLE_COUNT) { - sound_id -= ORIGINAL_SAMPLE_COUNT; - if (sound_id > file->num_sounds) return; - sound_id += file->sound_offset; - } + sound_id = GetNewGRFSoundID(file, sound_id); + if (sound_id == INVALID_SOUND) return; assert(sound_id < GetNumSounds()); SndPlayTileFx(sound_id, tile); diff --git a/src/newgrf_sound.h b/src/newgrf_sound.h index 0d32953274..efded063c8 100644 --- a/src/newgrf_sound.h +++ b/src/newgrf_sound.h @@ -33,6 +33,7 @@ enum VehicleSoundEvent { SoundEntry *AllocateSound(uint num); void InitializeSoundPool(); bool LoadNewGRFSound(SoundEntry *sound); +SoundID GetNewGRFSoundID(const struct GRFFile *file, SoundID sound_id); SoundEntry *GetSound(SoundID sound_id); uint GetNumSounds(); bool PlayVehicleSound(const Vehicle *v, VehicleSoundEvent event); diff --git a/src/sound_type.h b/src/sound_type.h index 72486dcac9..76fe25139e 100644 --- a/src/sound_type.h +++ b/src/sound_type.h @@ -119,4 +119,6 @@ static const uint ORIGINAL_SAMPLE_COUNT = 73; typedef uint16 SoundID; +static const SoundID INVALID_SOUND = 0xFFFF; + #endif /* SOUND_TYPE_H */ From 9043cbf9bf5125293a7205637fcac0771e239daa Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 13 Feb 2016 18:45:36 +0000 Subject: [PATCH 003/417] (svn r27508) -Update from Eints: german: 1 change by mini1025 --- src/lang/german.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/german.txt b/src/lang/german.txt index ac0dbe7e11..eb1f501e06 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -2876,6 +2876,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Vorherig STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Gehe zum vorherigen normalen Sprite und überspringe alle Pseudo-, Recolour- und Schriftsprites (springt ggf. vom letzten bis zum ersten Sprite) STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Darstellung des aktuellen Sprites. Die Ausrichtung wird beim Zeichnen des Sprites ignoriert STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Bewege die Sprites und ändere dadurch die X- und Y-Offsets. Drücke Strg+Click um die Sprites 8 Blöcke weit zu bewegen. +STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Setze zurück STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Setze die aktuelle Verschiebung zurück. STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absolut) STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X offset: {NUM}, Y offset: {NUM} (Relativ) From 561c4c2f020b14eb1706591e24a3597e89b4941a Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 18 Feb 2016 18:45:36 +0000 Subject: [PATCH 004/417] (svn r27509) -Update from Eints: frisian: 60 changes by BAJansen --- src/lang/unfinished/frisian.txt | 66 ++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 6 deletions(-) diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index fe77940bce..acea256864 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -1842,12 +1842,14 @@ STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}Jieren STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}Server wert dast it lêst op spiele hast STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}Spul INFO +STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Kliïnten: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA} STR_NETWORK_SERVER_LIST_LANGUAGE :{SILVER}Taal: {WHITE}{STRING} STR_NETWORK_SERVER_LIST_LANDSCAPE :{SILVER}Lânskip: {WHITE}{STRING} STR_NETWORK_SERVER_LIST_MAP_SIZE :{SILVER}Lângrutte: {WHITE}{COMMA}x{COMMA} STR_NETWORK_SERVER_LIST_SERVER_VERSION :{SILVER}Tsjinnerferzje: {WHITE}{STRING} STR_NETWORK_SERVER_LIST_SERVER_ADDRESS :{SILVER}Tsjinneradres: {WHITE}{STRING} STR_NETWORK_SERVER_LIST_START_DATE :{SILVER}Start datum: {WHITE}{DATE_SHORT} +STR_NETWORK_SERVER_LIST_PASSWORD :{BLACK}Mei wachtwurd beskerme! STR_NETWORK_SERVER_LIST_SERVER_OFFLINE :{SILVER}SERVER NET BESKIKBER STR_NETWORK_SERVER_LIST_SERVER_FULL :{SILVER}SERVER VOL STR_NETWORK_SERVER_LIST_VERSION_MISMATCH :{SILVER}FERKEARDE FERZJE @@ -1870,6 +1872,7 @@ STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Wachtwur STR_NETWORK_START_SERVER_UNADVERTISED :Nee STR_NETWORK_START_SERVER_ADVERTISED :Ja +STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} kliïnt{P "" en} STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} bedriuw{P "" en} STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maksimaal tal bedriuwen: STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} taskôger{P "" s} @@ -1966,14 +1969,17 @@ STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nei Bedr # Network client list STR_NETWORK_CLIENTLIST_KICK :Skoppe STR_NETWORK_CLIENTLIST_GIVE_MONEY :Jouw jild +STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Tsjin elkenien prate STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT :Priveeberjocht STR_NETWORK_SERVER :Tsjinner +STR_NETWORK_CLIENT :Kliïnt STR_NETWORK_SPECTATORS :Taskôgers STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}Taskôger # Network set password +STR_COMPANY_PASSWORD_OK :{BLACK}Jou it bedriuw it nije wachtwurd STR_COMPANY_PASSWORD_CAPTION :{WHITE}Bedriuwswachtwurd STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP :{BLACK}Brûk dit bedriuwswachtwurd gewoanwei foar alle nije bedriuwen @@ -2012,6 +2018,7 @@ STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Do stjoe STR_NETWORK_ERROR_CLIENT_GENERAL :algemiene flater STR_NETWORK_ERROR_CLIENT_SAVEGAME :koe it lân net lade STR_NETWORK_ERROR_CLIENT_CONNECTION_LOST :ferbining kwyt +STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :protokol flater STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :Ferkearde NewGRF STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :net autorisearre STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :ûnjildich of ûnferwacht pakket ûnfange @@ -2029,6 +2036,7 @@ STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION :{WHITE}De lêst # Network related errors STR_NETWORK_SERVER_MESSAGE :*** {1:STRING} ############ Leave those lines in this order!! +STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 :Spul stiet noch yn rêst ({STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :Spul stiet nog yn rêst ({STRING}, {STRING}, {STRING}, {STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :hânmjittich STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :spulskript @@ -2048,6 +2056,7 @@ STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Alles de STR_CONTENT_OPEN_URL :{BLACK}Webside besykje STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Webside foar dizze ynhâld besykje STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Delhelje +STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}Begjinne mei delheljen fan selektearre ynhâld STR_CONTENT_DETAIL_TITLE :{SILVER}KONTENT INFO STR_CONTENT_DETAIL_NAME :{SILVER}Namme: {WHITE}{STRING} STR_CONTENT_DETAIL_VERSION :{SILVER}Ferzje: {WHITE}{STRING} @@ -2073,6 +2082,7 @@ STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Delhelje STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} fan {BYTES} delhelle ({NUM} %) # Content downloading error messages +STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}Koe gjin ferbyning mei ynhâldtsjinner meitsje... STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}Delheljen net slagge... STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... ferbining kwyt STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... bestân koe net opslein wurde @@ -2194,12 +2204,16 @@ STR_BUILD_DEPOT_TRAM_ORIENTATION_SELECT_TOOLTIP :{BLACK}Kies rjo STR_STATION_BUILD_BUS_ORIENTATION :{WHITE}Busstation Rjochting STR_STATION_BUILD_BUS_ORIENTATION_TOOLTIP :{BLACK}Selektearje rjochting fan busstasjon STR_STATION_BUILD_TRUCK_ORIENTATION :{WHITE}Frachtstasjon Rjochting +STR_STATION_BUILD_TRUCK_ORIENTATION_TOOLTIP :{BLACK}Kies rjochting foar frachtweinstasjon +STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION :{WHITE}Rjochting Passazjiertramstasjon +STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION_TOOLTIP :{BLACK}Kies rjochting passazjiertramstasjon STR_STATION_BUILD_CARGO_TRAM_ORIENTATION :{WHITE}Rjochting fan Tramstasjon STR_STATION_BUILD_CARGO_TRAM_ORIENTATION_TOOLTIP :{BLACK}Kies rjochting fan frachttramstasjon # Waterways toolbar (last two for SE only) STR_WATERWAYS_TOOLBAR_CAPTION :{WHITE}Wetterwei Konstruksje STR_WATERWAYS_TOOLBAR_CAPTION_SE :{WHITE}Wetterwei +STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}Bou kanalen. Shift skeakelt tusken bouwe/taksearje fan de kosten STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}Bou in slûs. Brûk Shift foar ferwachte kosten. STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}Bou skipmakkerij (Foar bou en ûnderhâld fan skippen). Brûk Shift foar ferwachte kosten STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Bou akwadukt. Shift skeakelt tusken bouwe/taksearje fan de kosten @@ -2235,6 +2249,7 @@ STR_AIRPORT_CLASS_LARGE :Grut fleanfjild STR_AIRPORT_CLASS_HUB :Hubfleansjilden STR_AIRPORT_CLASS_HELIPORTS :Helikopter fleanfjild +STR_STATION_BUILD_NOISE :{BLACK}Lûdsoerlêst: {GOLD}{COMMA} # Landscaping toolbar STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Ferleech in hoekje lân @@ -2254,6 +2269,7 @@ STR_OBJECT_CLASS_TRNS :Stjoerders # Tree planting window (last two for SE only) STR_PLANT_TREE_CAPTION :{WHITE}Beammen STR_PLANT_TREE_TOOLTIP :{BLACK}Selektear soart beam. As it fakje al in beam hat, sil dit mear beamen tafoege fan it mixed soart ûnôfhinklike fan it selekteare soart +STR_TREES_RANDOM_TYPE :{BLACK}Samar in soart beam STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Samar wat beammen STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Plantsje beammen samar troch it lânskip @@ -2310,6 +2326,8 @@ STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Bouwe STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Finansierje # Industry cargoes window +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Yndustrykeatlings foar {STRING} yndustry +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Yndustrykeatlings foar {STRING} fracht STR_INDUSTRY_CARGOES_PRODUCERS :produksje yndustry STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Yndustry aksepteare STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Hûzen @@ -2551,15 +2569,15 @@ STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY :{BLACK}Jou dizz STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Ferwiderje ynstellings STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Ferwiderje de selektearre ynstellings STR_NEWGRF_SETTINGS_ADD :{BLACK}Tafoeging -STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Foeg de selektjere NewGRF ta oan dyn ynstellings +STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Foeg de selektearre NewGRF oan dyn ynstellings ta STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Lit sykje ny nije bestanden STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Fernij list my beskikbere NewGRF bestanden STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Fuorthelje STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Smyt de selektearre NewGRF út de list STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Pleats heger -STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Set selektjere NewGRF boppe oan de list +STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Set selektearre NewGRF boppenoan de list STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Pleats leger -STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Set selektjere NewGRF ûnderoan de list +STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Set selektearre NewGRF ûnderoan de list STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Upwurdearje STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}In list fan ynstalearre NewGRF bestânen @@ -2684,6 +2702,7 @@ STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Hy hat d # 'User removed essential NewGRFs'-placeholders for stuff without specs STR_NEWGRF_INVALID_CARGO : STR_NEWGRF_INVALID_CARGO_ABBREV :?? +STR_NEWGRF_INVALID_CARGO_QUANTITY :{COMMA} fan <ûnjildiche fracht> STR_NEWGRF_INVALID_ENGINE : STR_NEWGRF_INVALID_INDUSTRYTYPE : @@ -2691,6 +2710,7 @@ STR_NEWGRF_INVALID_INDUSTRYTYPE : # NewGRF scanning window +STR_NEWGRF_SCAN_CAPTION :{WHITE}NewGRFs neisjen STR_NEWGRF_SCAN_MESSAGE :{BLACK}Sykje nei NewGRFs. Dit kin in skoftke duorje. # Sign list window @@ -2839,6 +2859,7 @@ STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Akseptea STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Aksepteart: {WHITE}{CARGO_LIST} STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Dit stasjon hat eksklusyfe transportrjochten in dizze plak. +STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} Hat eksklusyfe transportrjochten in dizze plak kocht. STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Stasjonwurdearing sjen litte STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Moanlikse foarried en wurdearring: @@ -3073,6 +3094,7 @@ STR_PURCHASE_INFO_COST_SPEED :{BLACK}Kosten: STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapasiteit: {GOLD}{CARGO_LONG}, {CARGO_LONG} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Kin omboud wurde nei: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Alle frachttypen +STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks. Lûkkrêft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Berik: {GOLD}{COMMA} flakken @@ -3094,7 +3116,7 @@ STR_BUY_VEHICLE_AIRCRAFT_RENAME_BUTTON :{BLACK}Jow in n STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Jow trein in nije namme STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Jow auto in nije namme STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Jow boat type in nije namme -STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Jow fleantúg type in nije namme +STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Fleantúch type in nije nammer jaan STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Ferbergje STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Ferbergje @@ -3112,6 +3134,7 @@ STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wikselje STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wikselje tusken it ferbergje/sjen litte fan it soart fleanmasine STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Jou treinmodel in oare namme +STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Fleantúch type in nije namme jaan # Depot window STR_DEPOT_CAPTION :{WHITE}{DEPOT} @@ -3124,6 +3147,7 @@ STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE} STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT}) STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Weinen - Brûk rjochter mûsklik op de wein foar ynformaasje +STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Skepen - Brûk rjochter mûsklik op it skip foar ynformaasje STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}tôgje trein hjirhinne om it te ferkeapjen. STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}tôgje wein hjirhinne om it te ferkeapjen. @@ -3148,7 +3172,9 @@ STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Nij flea -STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Klik om alle treinen binnen dit depot te stoppen +STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Klik om alle treinen yn dit depot te stopjen +STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Klik om alle weinen yn dizze garaazje te stopjen +STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Klik om alle fleantugen yn dizze hangar te stopje @@ -3176,27 +3202,36 @@ STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Beskikb STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Selektearje it type lokomotyf om te ferfangen +STR_REPLACE_VEHICLES_NOW :No alle fiertugen ferfange STR_REPLACE_VEHICLES_WHEN_OLD :Ferfang allinech âlde weinen STR_REPLACE_MONORAIL_VEHICLES :Monorail weinen +STR_REPLACE_MAGLEV_VEHICLES :Maglev treinen # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} STR_VEHICLE_VIEW_TRAIN_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje fan disse trein. bij Ctrl+Click bliuwst it skip folgjen +STR_VEHICLE_VIEW_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje van dizze wein. Brûk Ctrl+klik om dizze wein te folgjen STR_VEHICLE_VIEW_SHIP_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje fan dit skip. bij Ctrl+Click bliuwst it skip folgjen STR_VEHICLE_VIEW_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje fan dit fleantúch STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}Stjoer skip nij skipmakkerij. Brûk Ctrl+klik om skip ûnderhâld te jaan +STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}Stjoer fleantúch nei hanger. Brûk Ctrl+klik om allinich ûnderhald te jaan +STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Trein ombouwe om in oar soart fracht mei te nimmen +STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Skip ombouwe nei in oar saort fracht +STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}Lit oarders fan'e wein sjen. Brûk Ctrl+Klik om de tjinstregeling te sjen STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}Lit de rûte fan dit skip sjen. Ctrl+Click lit tsjinstregeling sjen +STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}Lit oarders fan fleantúch sjen. Brûk Ctrl+Klik om de tjinstregeling te sjen +STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Fleantúch details sjen litte # Messages in the start stop button in the vehicle view @@ -3221,7 +3256,9 @@ STR_VEHICLE_COMMAND_STOPPED :{RED}Stoppe STR_VEHICLE_DETAILS_CAPTION :{WHITE}{VEHICLE} (Details) STR_VEHICLE_NAME_BUTTON :{BLACK}Namme +STR_VEHICLE_DETAILS_TRAIN_RENAME :{BLACK}Jou trein in namme STR_VEHICLE_DETAILS_ROAD_VEHICLE_RENAME :{BLACK}Namme fan de wein +STR_VEHICLE_DETAILS_SHIP_RENAME :{BLACK}Skip in namme jaan # The next two need to stay in this order STR_VEHICLE_INFO_AGE :{COMMA} jier{P "" ren} ({COMMA}) @@ -3253,6 +3290,8 @@ STR_QUERY_RENAME_SHIP_CAPTION :{WHITE}Namme fa STR_QUERY_RENAME_AIRCRAFT_CAPTION :{WHITE}Namme fan fleantúch feroarje # Extra buttons for train details windows +STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE :{LTBLUE}{ENGINE}{BLACK} Makke: {LTBLUE}{NUM}{BLACK} Wearde: {LTBLUE}{CURRENCY_LONG} +STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE :{LTBLUE}{ENGINE}{BLACK} Wearde: {LTBLUE}{CURRENCY_LONG} STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY_TEXT :{BLACK}Totale kapasiteit fan dizze trein: STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY :{LTBLUE}- {CARGO_LONG} ({CARGO_SHORT}) @@ -3264,30 +3303,38 @@ STR_VEHICLE_DETAILS_CARGO_FROM_MULT :{LTBLUE}{CARGO_ STR_VEHICLE_DETAIL_TAB_CARGO :{BLACK}Fracht STR_VEHICLE_DETAIL_TAB_INFORMATION :{BLACK}Ynformaasje +STR_VEHICLE_DETAILS_TRAIN_INFORMATION_TOOLTIP :{BLACK}Treindetails sjen litte STR_VEHICLE_DETAIL_TAB_CAPACITIES :{BLACK}Kapasiteit STR_VEHICLE_DETAIL_TAB_TOTAL_CARGO :{BLACK}Totale Fracht STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Kapasiteit: {LTBLUE} # Vehicle refit +STR_REFIT_TITLE :{GOLD}Selektearje it soart fracht om mei te nimmen: STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nije kapasiteit: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}kosten fan werfolje: {RED}{CURRENCY_LONG} STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Selektearje in ferfiermiddel foar reparaasje. sleep mei de mûs om meardere ferfiermiddels te selekttearjen. Ctrl+klick sil in ferfiermiddel selektearje en de neikommende rige STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}selektearje soart fracht foar de trein om mei te nimmen +STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Selektearje it soart fracht foar wein om mei te nimmen +STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}Selektearje it soart fracht foar it skip om mei te nimmen +STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Selektearje it soart fracht foar it fleantúch om mei te nimmen STR_REFIT_TRAIN_REFIT_BUTTON :{BLACK}Trein ombouwe STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Wein ombouwe STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}Skip ombouwe STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Fleantúch ombouwe +STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Trein ombouwe nei selektearre fracht STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Wein ombouwe nij selektearre fracht -STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Skip ombouwe nij selektearre fracht +STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Skip ombouwe nei selektearre fracht # Order view +STR_ORDERS_TIMETABLE_VIEW :{BLACK}Tjinstregeling STR_ORDER_INDEX :{COMMA}:{NBSP} STR_ORDER_TEXT :{STRING} {STRING} {STRING} +STR_ORDERS_END_OF_ORDERS :--Ein fan de Oarders-- # Order bottom buttons STR_ORDER_GO_TO :Gean nei @@ -3296,6 +3343,7 @@ STR_ORDER_GO_VIA :Gean via STR_ORDER_GO_NON_STOP_VIA :Gean non-stop fia STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Feroarje it stop gedrach fan selektearre opdracht +STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Alle fracht folslein lade STR_ORDER_DROP_FULL_LOAD_ANY :Folslein lade fan alle fracht STR_ORDER_DROP_NO_LOADING :Net laden @@ -3444,11 +3492,14 @@ STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI/Spul # AI configuration window STR_AI_CONFIG_CAPTION :{WHITE}AI/Spulskript konfiguraasje +STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}It spulskript dat yn it folgjende spul laden sil wurde +STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}AIs dy't yn it folgjende spul laden sille wurde STR_AI_CONFIG_HUMAN_PLAYER :Minslike spiler STR_AI_CONFIG_RANDOM_AI :Samar in AI STR_AI_CONFIG_NONE :(gjin) STR_AI_CONFIG_MOVE_UP :{BLACK}Pleats heger +STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Set selektearre AI boppenoan de list STR_AI_CONFIG_GAMESCRIPT :{SILVER}Spulskript STR_AI_CONFIG_AI :{SILVER}AIs @@ -3458,6 +3509,7 @@ STR_AI_CONFIG_CHANGE_NONE : STR_AI_CONFIG_CHANGE_AI :AI STR_AI_CONFIG_CHANGE_GAMESCRIPT :Spulskript STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}in oar script lade +STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Parameters fan it skript ynstelle # Available AIs window STR_AI_LIST_CAPTION :{WHITE}Beskikber {STRING} @@ -3505,6 +3557,7 @@ STR_INCOME_FLOAT_COST :{RED}Kostet: {C STR_INCOME_FLOAT_INCOME_SMALL :{TINY_FONT}{GREEN}Opbringst: {CURRENCY_LONG} STR_INCOME_FLOAT_INCOME :{GREEN}Opbringst: {CURRENCY_LONG} STR_FEEDER_TINY :{TINY_FONT}{YELLOW}Omwikselje: {CURRENCY_LONG} +STR_FEEDER_INCOME :{YELLOW}Oerdracht: {CURRENCY_LONG}{WHITE} / {GREEN}Opbringst: {CURRENCY_LONG} STR_MESSAGE_ESTIMATED_COST :{WHITE}Dit gjit {CURRENCY_LONG} kosten. STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Dit gjit {CURRENCY_LONG} opbringen. @@ -3531,6 +3584,7 @@ STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... ôfb # Soundset messages # Screenshot related messages +STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Grutte skermôfbylding STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Skermfoto opslein as '{STRING}' STR_ERROR_SCREENSHOT_FAILED :{WHITE}Koe gjin skermfoto meitsje! From 9aaad3fa6079301b1b45928284a7571b96f1ff5b Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 19 Feb 2016 18:45:35 +0000 Subject: [PATCH 005/417] (svn r27510) -Update from Eints: frisian: 55 changes by BAJansen --- src/lang/unfinished/frisian.txt | 58 +++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index acea256864..788704e370 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -1624,6 +1624,7 @@ STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Algemie STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}konstruksje STR_CONFIG_SETTING_ADVISORS :{ORANGE}Nijs / Adviseurs STR_CONFIG_SETTING_COMPANY :{ORANGE}Bedriuw +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Boekhâlding STR_CONFIG_SETTING_VEHICLES :{ORANGE}Auto's STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Natuerkundig model STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Route @@ -1840,6 +1841,7 @@ STR_NETWORK_SERVER_LIST_DATE_CAPTION :{BLACK}Datum STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}Jieren STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}Server wert dast it lêst op spiele hast +STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Klik om tsjinner wert dast it lêst op spiele hast te selektearje STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}Spul INFO STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Kliïnten: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA} @@ -1855,6 +1857,8 @@ STR_NETWORK_SERVER_LIST_SERVER_FULL :{SILVER}SERVER STR_NETWORK_SERVER_LIST_VERSION_MISMATCH :{SILVER}FERKEARDE FERZJE STR_NETWORK_SERVER_LIST_GRF_MISMATCH :{SILVER}FERKEARDE NEWGRF +STR_NETWORK_SERVER_LIST_JOIN_GAME :{BLACK}Meidwaan mei spul +STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}Laad tsjinner ynfo opnij STR_NETWORK_SERVER_LIST_FIND_SERVER :{BLACK}Server sykje STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Tsjinner tafoegje @@ -1873,6 +1877,7 @@ STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Wachtwur STR_NETWORK_START_SERVER_UNADVERTISED :Nee STR_NETWORK_START_SERVER_ADVERTISED :Ja STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} kliïnt{P "" en} +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maksimaal oantal kliïnten: STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} bedriuw{P "" en} STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maksimaal tal bedriuwen: STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} taskôger{P "" s} @@ -1937,6 +1942,7 @@ STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Nei Bedr STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Nei bedriuw oprjochtsje STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Spul taskôgje STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Spul besjen as taskôger +STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Meidwaan mei dit bedriuw STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}Help dit bedriuw bestjoeren # Network connecting window @@ -2003,6 +2009,8 @@ STR_NETWORK_CHAT_OSKTITLE :{BLACK}Skriuw b # Network messages STR_NETWORK_ERROR_NOSERVER :{WHITE}Koe gjin networkspullen fine +STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}Koe gjin ferbyning meitsje fanwegen ferkearde NewGRF +STR_NETWORK_ERROR_DESYNC :{WHITE}Koe net synchronisearje mei netwurkspul STR_NETWORK_ERROR_LOSTCONNECTION :{WHITE}Networkspul ferbining kwyt STR_NETWORK_ERROR_SAVEGAMEERROR :{WHITE}Koe opslein spul net laden STR_NETWORK_ERROR_SERVER_START :{WHITE}Koe de tsjinner net starte @@ -2037,6 +2045,7 @@ STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION :{WHITE}De lêst STR_NETWORK_SERVER_MESSAGE :*** {1:STRING} ############ Leave those lines in this order!! STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 :Spul stiet noch yn rêst ({STRING}) +STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Spul stiet noch yn rêst ({STRING}, {STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :Spul stiet nog yn rêst ({STRING}, {STRING}, {STRING}, {STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :hânmjittich STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :spulskript @@ -2069,8 +2078,10 @@ STR_CONTENT_NO_ZLIB_SUB :{WHITE}... delh # Order of these is important! STR_CONTENT_TYPE_NEWGRF :NewGRF STR_CONTENT_TYPE_AI :AI +STR_CONTENT_TYPE_AI_LIBRARY :AI biblioteek STR_CONTENT_TYPE_SCENARIO :Lânskip STR_CONTENT_TYPE_HEIGHTMAP :Hichtemap +STR_CONTENT_TYPE_BASE_SOUNDS :Basislûden STR_CONTENT_TYPE_GAME_SCRIPT :Spulskript STR_CONTENT_TYPE_GS_LIBRARY :GS biblioteek @@ -2094,6 +2105,8 @@ STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, Ope # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Trochsichtigenopsjes +STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Skeakelje trochsichtigens fan seinen. Brûk Ctrl+Klik om fêste te setten +STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}Skeakelje trochsichtigens fan beammen. Brûk Ctrl+Klik om fêste te setten # Linkgraph legend window STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Frachtstreamleginda @@ -2134,6 +2147,7 @@ STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Bou spoa STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Bou in spoarbrêge STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Bou in spoartunnel STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Set bouen/fuortheljen foar spoaren en stopljochten oan/út +STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Soart spoar ombouwe/opwurdearje. Shift skeakelt tusken bouwe/taksearje fan de kosten STR_RAIL_NAME_RAILROAD :Spoarwei STR_RAIL_NAME_ELRAIL :Elektrifisearre spoarwei @@ -2190,6 +2204,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Bou auto STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Bou busstasjon STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Bou laadstasjon foar frachtauto's STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Bou autobrêge +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Bou in trambrêge. Shift skeakelt tusken bouwe/taksearje fan de kosten STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Bou autotunnel STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Bou in tramtunnel. Brûk Shift foar ferwachte kosten. STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Wikselje tusken bou en fuortheljen fan dyken @@ -2232,6 +2247,7 @@ STR_TOOLBAR_AIRCRAFT_CAPTION :{WHITE}Fleanfji # Airport construction window STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Fleanfjild Seleksje STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Kies grutte/type fleanfjild +STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Fleanfjild klasse STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Patroan {NUM} STR_AIRPORT_SMALL :Lyts @@ -2816,6 +2832,7 @@ STR_GOAL_QUESTION_BUTTON_STOP :Stopje STR_GOAL_QUESTION_BUTTON_START :Start STR_GOAL_QUESTION_BUTTON_GO :Gean STR_GOAL_QUESTION_BUTTON_CONTINUE :Trjochgean +STR_GOAL_QUESTION_BUTTON_RESTART :Herstarte STR_GOAL_QUESTION_BUTTON_POSTPONE :Utstelle STR_GOAL_QUESTION_BUTTON_SURRENDER :Oerjaan STR_GOAL_QUESTION_BUTTON_CLOSE :Slute @@ -2961,6 +2978,7 @@ STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Bedriuwsw STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% besit fan {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Ynfrastruktuer: STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} stikje dyk{P "" s} +STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} stasjontegel{P "" s} STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} fleanfjild{P "" en} STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Gjin @@ -2997,6 +3015,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Stikjes d STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD :{WHITE}Dyk STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Tramwei STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stasjons: +STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Stasjontegels STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS :{WHITE}Fleanfjilden STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENCY_LONG}/jr @@ -3076,6 +3095,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Alle fiertugen # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nije spoar weinen +STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nije elektryske treinen STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nije Weinen STR_BUY_VEHICLE_SHIP_CAPTION :Nije Skepen @@ -3094,6 +3114,7 @@ STR_PURCHASE_INFO_COST_SPEED :{BLACK}Kosten: STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapasiteit: {GOLD}{CARGO_LONG}, {CARGO_LONG} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Kin omboud wurde nei: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Alle frachttypen +STR_PURCHASE_INFO_ALL_BUT :Alles útsein {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks. Lûkkrêft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Berik: {GOLD}{COMMA} flakken @@ -3154,7 +3175,9 @@ STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}tôgje w STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}tôgje fleantúg hjirhinne om it te ferkeapjen. +STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TOOLTIP :{BLACK}Ferkeapje alle treinen yn dit depot STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :Ferkeapje alle weinen yn disse garage +STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}Ferkeapje alle fleantugen yn hangar STR_DEPOT_AUTOREPLACE_SHIP_TOOLTIP :{BLACK}Ferfang automatysk skippen yn de skipmakkerij STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}Ferfang automatysk alle fleantúgen yn disse fleantúchhangaar @@ -3189,6 +3212,8 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail lokomo STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglevlokomotyf STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Underhâldskosten: {CURRENCY_LONG}/jr{}Kapasiteit: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY} Bereik: {COMMA} tegels{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ferfang {STRING} - {STRING} @@ -3218,12 +3243,15 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Sintrear STR_VEHICLE_VIEW_SHIP_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje fan dit skip. bij Ctrl+Click bliuwst it skip folgjen STR_VEHICLE_VIEW_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje fan dit fleantúch +STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}Stjoer trein nei depot. Brûk Ctrl+Klik om allinich ûnderhâld te jaan +STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Stjoer wein nei garaazje. Brûk Ctrl+Klik om allinich ûnderhâld te jaan STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}Stjoer skip nij skipmakkerij. Brûk Ctrl+klik om skip ûnderhâld te jaan STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}Stjoer fleantúch nei hanger. Brûk Ctrl+klik om allinich ûnderhald te jaan STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Trein ombouwe om in oar soart fracht mei te nimmen +STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Wein ombouwe om in oar soart fracht mei te nimmen STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Skip ombouwe nei in oar saort fracht @@ -3241,6 +3269,7 @@ STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Stikken STR_VEHICLE_STATUS_STOPPED :{RED}Stoppe STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL :{RED}Stoppet, {VELOCITY} STR_VEHICLE_STATUS_TRAIN_NO_POWER :{RED}Gjin enerzjy +STR_VEHICLE_STATUS_TRAIN_STUCK :{ORANGE}Wachtsje op frije rûte STR_VEHICLE_STATUS_AIRCRAFT_TOO_FAR :{ORANGE}Te fier nei folgjende bestimming STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL :{LTBLUE}Ûnderweis nei {STATION}, {VELOCITY} @@ -3251,6 +3280,8 @@ STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL :{LTBLUE}ûnderh # Vehicle stopped/started animations STR_VEHICLE_COMMAND_STOPPED_SMALL :{TINY_FONT}{RED}Stoppe STR_VEHICLE_COMMAND_STOPPED :{RED}Stoppe +STR_VEHICLE_COMMAND_STARTED_SMALL :{TINY_FONT}{GREEN}Starte +STR_VEHICLE_COMMAND_STARTED :{GREEN}Starte # Vehicle details STR_VEHICLE_DETAILS_CAPTION :{WHITE}{VEHICLE} (Details) @@ -3265,6 +3296,7 @@ STR_VEHICLE_INFO_AGE :{COMMA} jier{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} jier{P "" ren} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. snelheid: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Krêft: {LTBLUE}{POWER}{BLACK} Maks. faasje: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}betrouberens: {LTBLUE}{COMMA}% {BLACK}Stikken west sûnt lêste ûnderhâld: {LTBLUE}{COMMA} @@ -3311,6 +3343,7 @@ STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Kapasite # Vehicle refit STR_REFIT_TITLE :{GOLD}Selektearje it soart fracht om mei te nimmen: +STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nije kapasiteit: {GOLD}{CARGO_LONG}{}{BLACK}Kosten fan ombou: {RED}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nije kapasiteit: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}kosten fan werfolje: {RED}{CURRENCY_LONG} STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Selektearje in ferfiermiddel foar reparaasje. sleep mei de mûs om meardere ferfiermiddels te selekttearjen. Ctrl+klick sil in ferfiermiddel selektearje en de neikommende rige @@ -3344,7 +3377,7 @@ STR_ORDER_GO_NON_STOP_VIA :Gean non-stop f STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Feroarje it stop gedrach fan selektearre opdracht STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Alle fracht folslein lade -STR_ORDER_DROP_FULL_LOAD_ANY :Folslein lade fan alle fracht +STR_ORDER_DROP_FULL_LOAD_ANY :Samar in fracht folslein lade STR_ORDER_DROP_NO_LOADING :Net laden STR_ORDER_TOGGLE_UNLOAD :{BLACK}Alles losse @@ -3388,7 +3421,13 @@ STR_ORDER_SHARE :Dielde Bestimmi STR_ORDER_GO_TO_WAYPOINT :Lâns {WAYPOINT} STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Oanienwei lâns {WAYPOINT} +STR_ORDER_SERVICE_AT :Underhâld by +STR_ORDER_NEAREST_DEPOT :de tichtstbye +STR_ORDER_NEAREST_HANGAR :de tichtstbye Hangar +STR_ORDER_TRAIN_DEPOT :Treindepot +STR_ORDER_ROAD_VEHICLE_DEPOT :Garaazje +STR_ORDER_SHIP_DEPOT :Skip Depot STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING} STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT} @@ -3400,19 +3439,25 @@ STR_ORDER_GO_TO_STATION :{STRING} {STATI STR_ORDER_IMPLICIT :(Ymplisyt) STR_ORDER_FULL_LOAD :(Folle fracht) -STR_ORDER_FULL_LOAD_ANY :(Folle fracht elke lading) +STR_ORDER_FULL_LOAD_ANY :(Samar in fracht folslein lade) STR_ORDER_NO_LOAD :(Gjin lading) STR_ORDER_UNLOAD :(Afladen en nim lading STR_ORDER_UNLOAD_FULL_LOAD :(Afladen en wacht foar folle fracht) -STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Afladen en wacht foar elke folle fracht) +STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Losse en wachtsje foar ien folle fracht) STR_ORDER_UNLOAD_NO_LOAD :(Oflade en lit leech) STR_ORDER_TRANSFER :(Oerladen en fracht meinimme) +STR_ORDER_TRANSFER_FULL_LOAD :(Oerlade en wachtsje foar folle fracht) STR_ORDER_TRANSFER_NO_LOAD :(Oerladen en lit leech) STR_ORDER_NO_UNLOAD :(Net losse en fracht meinimme) STR_ORDER_NO_UNLOAD_FULL_LOAD :(Net losse en wacht foar folle fracht) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Net losse en wachtsje foar samar in folle fracht) STR_ORDER_NO_UNLOAD_NO_LOAD :(net lade of losse) STR_ORDER_AUTO_REFIT :(Ombouwe nei {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Folslein lade mei ombou nei {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Folslein samar in fracht lade mei ombou nei {STRING}) +STR_ORDER_UNLOAD_REFIT :(Losse en fracht meinimme mei ombou nei {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Losse en folslein lade mei ombou 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}) @@ -3448,6 +3493,7 @@ STR_TIMETABLE_TICKS :{COMMA}{NBSP}ti STR_TIMETABLE_STATUS_ON_TIME :{BLACK}Dit fiertûg is op tiid +STR_TIMETABLE_STARTING_DATE :{BLACK}Begjin datum STR_TIMETABLE_CHANGE_TIME :{BLACK}Tiid Feroarje @@ -3483,6 +3529,8 @@ STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Skriptnamme STR_AI_DEBUG_SETTINGS :{BLACK}Ynstellings STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Ynstellings fan it skript feroarje +STR_AI_DEBUG_RELOAD :{BLACK}AI opnij lade +STR_AI_DEBUG_MATCH_CASE :{BLACK}Wol as net op haadletters lette STR_AI_DEBUG_CONTINUE :{BLACK}Trjochgean STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Lit debug output fan dizze AI sjen STR_AI_GAME_SCRIPT :{BLACK}Spulskript @@ -3509,6 +3557,7 @@ STR_AI_CONFIG_CHANGE_NONE : STR_AI_CONFIG_CHANGE_AI :AI STR_AI_CONFIG_CHANGE_GAMESCRIPT :Spulskript STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}in oar script lade +STR_AI_CONFIG_CONFIGURE :{BLACK}Ynstelle STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Parameters fan it skript ynstelle # Available AIs window @@ -3538,6 +3587,7 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN # Textfile window STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} lisinsje fan {STRING} STR_TEXTFILE_WRAP_TEXT :{WHITE}Omwikkelje tekst +STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Feroarings STR_TEXTFILE_VIEW_LICENCE :{BLACK}Lisinsje @@ -3557,7 +3607,9 @@ STR_INCOME_FLOAT_COST :{RED}Kostet: {C STR_INCOME_FLOAT_INCOME_SMALL :{TINY_FONT}{GREEN}Opbringst: {CURRENCY_LONG} STR_INCOME_FLOAT_INCOME :{GREEN}Opbringst: {CURRENCY_LONG} STR_FEEDER_TINY :{TINY_FONT}{YELLOW}Omwikselje: {CURRENCY_LONG} +STR_FEEDER_INCOME_TINY :{TINY_FONT}{YELLOW}Oerdracht: {CURRENCY_LONG}{WHITE} / {GREEN}Opbringst: {CURRENCY_LONG} STR_FEEDER_INCOME :{YELLOW}Oerdracht: {CURRENCY_LONG}{WHITE} / {GREEN}Opbringst: {CURRENCY_LONG} +STR_FEEDER_COST :{YELLOW}Oerdracht: {CURRENCY_LONG}{WHITE} / {RED}Kosten: {CURRENCY_LONG} STR_MESSAGE_ESTIMATED_COST :{WHITE}Dit gjit {CURRENCY_LONG} kosten. STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Dit gjit {CURRENCY_LONG} opbringen. From e7f0902eaf4456b87c04b9d3bf3ffd0bd571c215 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 24 Feb 2016 18:45:38 +0000 Subject: [PATCH 006/417] (svn r27511) -Update from Eints: japanese: 4 changes by nex259 esperanto: 4 changes by polluks --- src/lang/esperanto.txt | 4 ++++ src/lang/japanese.txt | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index dbfa50d6f0..c3e0500f10 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1349,6 +1349,7 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Komenca urbgran +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Metriko (hp) @@ -2563,6 +2564,7 @@ STR_GOALS_TEXT :{ORANGE}{STRING # Goal question window ############ Start of Goal Question button list +STR_GOAL_QUESTION_BUTTON_CONTINUE :Daŭrigu ############ End of Goal Question button list # Subsidies window @@ -3365,12 +3367,14 @@ STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Vidu for STR_AI_CONFIG_CAPTION :{WHITE}AI/Ludo Skripto Agordo STR_AI_CONFIG_HUMAN_PLAYER :Homa ludanto STR_AI_CONFIG_RANDOM_AI :Hazarda AI +STR_AI_CONFIG_NONE :(neniu) STR_AI_CONFIG_MOVE_UP :{BLACK}Movi supren STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Movi elektitan AI-on supren en la listo STR_AI_CONFIG_MOVE_DOWN :{BLACK}Movi suben STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}Movi elektitan AI-on suben en la listo +STR_AI_CONFIG_AI :{SILVER}AIj STR_AI_CONFIG_CHANGE_NONE : STR_AI_CONFIG_CONFIGURE :{BLACK}Agordi diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 1c5d731966..127e3c5dcd 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2875,6 +2875,10 @@ 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オフセットを変更し、スプライトを移動します +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}画面内からスプライトを選びます From d9da47f9130e4136eecf33cc9dc6141512f33eb0 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 25 Feb 2016 18:45:36 +0000 Subject: [PATCH 007/417] (svn r27512) -Update from Eints: spanish: 6 changes by SilverSurferZzZ --- src/lang/spanish.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 11559c4a67..a9d3f747cc 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1464,7 +1464,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Número máximo STR_CONFIG_SETTING_SERVINT_ISPERCENT :Intervalo de mantenimiento en porcentajes: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Permite escoger si el mantenimiento de vehículos comenzará debido al tiempo pasado desde el último mantenimiento o por una reducción de la fiabilidad más allá de un porcentaje determinado STR_CONFIG_SETTING_SERVINT_TRAINS :Intervalo de mantenimiento por defecto para trenes: {STRING} -STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Fija el intervalo de mantenimiento por defecto para vehículos de ferrocarril nuevos, que se empleará si no se define un intervalo de forma explícita para ese vehículo +STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Fija el intervalo de mantenimiento por defecto para los nuevos vehículos de ferrocarril, siendo usado este si no se define un intervalo de forma explícita para ese vehículo STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}día{P 0 "" s}/% STR_CONFIG_SETTING_SERVINT_DISABLED :Deshabilitado STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Intervalo de mantenimiento por defecto para vehículos de carretera: {STRING} @@ -3406,7 +3406,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Comprar STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Comprar barco STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Comprar aeronave -STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el vehículo de raíl resaltado. Shift+Click muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Compra el vehículo de ferrocarril resaltado. Shift+Click muestra una estimación del precio sin realizar la compra STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el vehículo de carretera resaltado. Shift+Click muestra una estimación del precio sin realizar la compra STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el barco resaltado. Shift+Click muestra una estimación del precio sin realizar la compra STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar la aeronave resaltada. Shift+Click muestra una estimación del precio sin realizar la compra @@ -4004,8 +4004,8 @@ STR_AI_CONFIG_CONFIGURE :{BLACK}Configur STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Configura los parámetros del script # Available AIs window -STR_AI_LIST_CAPTION :{WHITE}{STRING} disponibles -STR_AI_LIST_CAPTION_AI :IA +STR_AI_LIST_CAPTION :{WHITE}Disponible {STRING} +STR_AI_LIST_CAPTION_AI :IAs STR_AI_LIST_CAPTION_GAMESCRIPT :Scripts de Juego STR_AI_LIST_TOOLTIP :{BLACK}Click para seleccionar un script @@ -4020,8 +4020,8 @@ STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}No cambi # AI Parameters STR_AI_SETTINGS_CAPTION :{WHITE}Parámetros {STRING} -STR_AI_SETTINGS_CAPTION_AI :de la IA -STR_AI_SETTINGS_CAPTION_GAMESCRIPT :del Script de Juego +STR_AI_SETTINGS_CAPTION_AI :IA +STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de Juego STR_AI_SETTINGS_CLOSE :{BLACK}Cerrar STR_AI_SETTINGS_RESET :{BLACK}Reiniciar STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING} From 4a64ced9b569de162dba4bc9b8089c022ea7f8e3 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 26 Feb 2016 18:45:36 +0000 Subject: [PATCH 008/417] (svn r27513) -Update from Eints: spanish: 5 changes by SilverSurferZzZ --- src/lang/spanish.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index a9d3f747cc..32267b74ff 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1325,7 +1325,7 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :A la izquierda STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Sentido horario STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :El nivel de la altura del mapa plano tiene: {STRING} STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una o más casillas del borde norte no están vacías -STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o más casillas en uno de los bordes no son agua +STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o más casillas en uno de los bordes no es agua STR_CONFIG_SETTING_STATION_SPREAD :Máxima extensión de estaciones: {STRING} STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Máxima área que pueden ocupar las partes de una estación. Valores muy altos pueden ralentizar el juego @@ -3396,10 +3396,10 @@ STR_PURCHASE_INFO_ALL_BUT :Todo excepto {C STR_PURCHASE_INFO_MAX_TE :{BLACK}F.T máxima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas -STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección de los vehículos de raíl - Click en el vehículo para más información - Ctrl+Click para mostrar/ocultar el tipo del vehículo -STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera - Click en el vehículo para más información - Ctrl+Click para mostrar/ocultar el tipo del vehículo -STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Lista de selección de barcos - Click en el barco para más información - Ctrl+Click para mostrar/ocultar el tipo del barco -STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Lista de selección de aeronaves - Click en la aeronave para más información - Ctrl+Click para mostrar/ocultar el tipo de la aeronave +STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección de los vehículos de ferrocarril. Click en el vehículo para más información. Ctrl+Click para mostrar/ocultar el tipo del vehículo +STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera. Click en el vehículo para más información. Ctrl+Click para mostrar/ocultar el tipo del vehículo +STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Lista de selección de barcos. Click en el barco para más información. Ctrl+Click para mostrar/ocultar el tipo del barco +STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Lista de selección de aeronaves. Click en la aeronave para más información. Ctrl+Click para mostrar/ocultar el tipo de la aeronave STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Comprar vehículo STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Comprar vehículo From 815fce8bd96a0162f821a6d25a050f8820c5d807 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 28 Feb 2016 18:45:36 +0000 Subject: [PATCH 009/417] (svn r27514) -Update from Eints: turkish: 2 changes by wakeup --- src/lang/turkish.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index d769641c60..f970611059 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -897,8 +897,8 @@ STR_GAME_OPTIONS_CURRENCY_USD :Amerikan Dolar STR_GAME_OPTIONS_CURRENCY_EUR :Avro (€) STR_GAME_OPTIONS_CURRENCY_JPY :Japon Yeni (¥) STR_GAME_OPTIONS_CURRENCY_ATS :Avusturya Şilini (ATS) -STR_GAME_OPTIONS_CURRENCY_BEF :Belcika Frangı (BEF) -STR_GAME_OPTIONS_CURRENCY_CHF :İsviçre Frangı (CHF) +STR_GAME_OPTIONS_CURRENCY_BEF :Belçika Frankı (BEF) +STR_GAME_OPTIONS_CURRENCY_CHF :İsviçre Frankı (CHF) STR_GAME_OPTIONS_CURRENCY_CZK :Çek Korunası (CZK) STR_GAME_OPTIONS_CURRENCY_DEM :Alman markı (DEM) STR_GAME_OPTIONS_CURRENCY_DKK :Danimarka Kronu (DKK) From 8284c69a619e441d801bcd5a1ff6fee07b1ff980 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 1 Mar 2016 18:45:37 +0000 Subject: [PATCH 010/417] (svn r27515) -Update from Eints: polish: 1 change by lion thai: 11 changes by ityellow --- src/lang/polish.txt | 2 +- src/lang/thai.txt | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index f6a8294785..1697834d94 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3254,7 +3254,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Idź do STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Poprzedni obrazek STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Idź do poprzedniego normalnego obrazka, pomijając jakiekolwiek pseudo/kolorowe/znakowe obrazki i zawijaj je od pierwszego do ostatniego STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Przedstawienie wybranego orbazka. Dostosowanie jest ignorowane podczas rysowania tego obrazka -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Poruszaj obrazkiem, zmieniając przesunięcia X i Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Poruszaj obrazkiem, zmieniając przesunięcia X i Y. Ctrl+klik aby przesunąć o 8 jednostek na raz. STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetuj zależność STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Resetuj aktualne offsety zależne STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Całkowity) diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 3b413263f0..2ac1cbed0b 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -1064,6 +1064,7 @@ STR_TERRAIN_TYPE_VERY_FLAT :แบนรา STR_TERRAIN_TYPE_FLAT :แบนราบ STR_TERRAIN_TYPE_HILLY :เนินเขา STR_TERRAIN_TYPE_MOUNTAINOUS :ภูเขาสูง +STR_TERRAIN_TYPE_ALPINIST :นักไต่เขา STR_CITY_APPROVAL_PERMISSIVE :อนุญาต STR_CITY_APPROVAL_TOLERANT :พอผ่อนผันให้ได้ @@ -1084,6 +1085,7 @@ STR_CONFIG_SETTING_TYPE_GAME_INGAME :ตั้งค STR_CONFIG_SETTING_TYPE_COMPANY_MENU :ตั้งค่าองค์กร (ถูกเก็บไว้ในการบันทึกเกม; มีผลเฉพาะการเริ่มเกมใหม่) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :ตั้งค่าองค์กร (ถูกเก็บไว้ในการบันทึกเกม; มีผลเฉพาะเกมปัจจุบัน) +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}หมวดหมู่: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}จำกัดรายการด้านล่างให้แสดงเฉพาะการตั้งค่าที่มีการเปลี่ยนแปลง STR_CONFIG_SETTING_RESTRICT_BASIC :ตั้งค่าพื้นฐาน STR_CONFIG_SETTING_RESTRICT_ADVANCED :ตั้งค่าขั้นสูง @@ -1166,6 +1168,7 @@ STR_CONFIG_SETTING_INFLATION :ภาวะเ STR_CONFIG_SETTING_INFLATION_HELPTEXT :เมื่อเปิดการใช้งานอัตราเงินเฟ้อ ค่าเงินจะถูกลงและต้องใช้เงินมากขึ้นในการซื้อหรือสร้าง แต่ผลตอบแทนจากการขนส่งก็จะเพิ่มขึ้นด้วยเช่นกัน STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :ความยาวสูงสุดของสะพาน: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :ปรับความยาวสูงสุดสำหรับการสร้างสะพาน +STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :ความสูงของสะพาน: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :ความยาวสูงสุดของอุโมงค์: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :ปรับความยาวสูงสุดสำหรับการสร้างอุโมงค์ STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :กำหนดวิธีหลักในการก่อสร้างอุตสาหกรรมเอง: {STRING} @@ -1265,6 +1268,7 @@ STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :ระยะห่างที่สุดจากขอบแผนที่ของโรงกลั่นน้ำมัน: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :โรงกลั่นน้ำมันจะสามารถตั้งได้เฉพาะบริเวณใกล้ๆขอบแผนที่เท่านั้น การตั้งค่านี้จะสามารถตั้งให้สร้างโรงกลั่นน้ำมันได้ห่างสูงสุดเท่าใดจากของแผนที่ STR_CONFIG_SETTING_SNOWLINE_HEIGHT :ระดับความสูงแนวหิมะ: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :ควบคุมความสูงเริ่มต้นของหิมะบนพื้นภูมิทัศน์อาร์ติคย่อยๆ, หิมะยังมีผลการสร้างอุตสาหกรรม และการเติบโตของเมือง STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :ความหยาบของพื้นที่ (เฉพาะ TerraGenesis): {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :ราบเรียบมาก STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :ราบเรียบ @@ -1623,6 +1627,7 @@ STR_CONFIG_SETTING_INTERFACE :{ORANGE}ส่ STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}การก่อสร้าง STR_CONFIG_SETTING_VEHICLES :{ORANGE}ยานพาหนะ STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}การค้นหาเส้นทางของพาหนะ +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}สิ่งแวดล้อม STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}เมือง STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}อุตสาหกรรม STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}การกระจายสินค้า @@ -1676,6 +1681,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}เล STR_INTRO_GAME_OPTIONS :{BLACK}ตัวเลือกเกม STR_INTRO_HIGHSCORE :{BLACK}ตารางคะแนนสูงสุด +STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}ตั้งค่า STR_INTRO_NEWGRF_SETTINGS :{BLACK}การตั้งค่า NewGRF STR_INTRO_ONLINE_CONTENT :{BLACK}ตรวจสอบเนื้อหาออนไลน์ STR_INTRO_SCRIPT_SETTINGS :{BLACK}ตั้งค่า AI/Game Script @@ -2740,6 +2746,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}ย้ STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}เลื่อน NewGRF ที่เลือกไว้ขึ้นไปในรายการ STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}ย้ายตำแหน่งลง 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_SET_PARAMETERS :{BLACK}ตั้งค่า parameters @@ -3335,6 +3343,8 @@ STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}เป STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อชนิดของเครื่องบิน +STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}การแสดงผล +STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}การแสดงผล STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}เปลี่ยนชื่อชนิดของรถไฟ @@ -4037,6 +4047,7 @@ 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}ไม่สามารถเปลี่ยนชื่อบริษัทได้ From a8b575671894ffe1329ef37dca4989c0e60d70f5 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 1 Mar 2016 19:41:31 +0000 Subject: [PATCH 011/417] (svn r27516) -Update: Documentation --- src/lang/afrikaans.txt | 2 +- src/lang/arabic_egypt.txt | 2 +- src/lang/basque.txt | 2 +- src/lang/belarusian.txt | 2 +- src/lang/brazilian_portuguese.txt | 2 +- src/lang/bulgarian.txt | 2 +- src/lang/catalan.txt | 2 +- src/lang/croatian.txt | 2 +- src/lang/czech.txt | 2 +- src/lang/danish.txt | 2 +- src/lang/dutch.txt | 2 +- src/lang/english.txt | 2 +- src/lang/english_AU.txt | 2 +- src/lang/english_US.txt | 2 +- src/lang/esperanto.txt | 2 +- src/lang/estonian.txt | 2 +- src/lang/faroese.txt | 2 +- src/lang/finnish.txt | 2 +- src/lang/french.txt | 2 +- src/lang/gaelic.txt | 2 +- src/lang/galician.txt | 2 +- src/lang/german.txt | 2 +- src/lang/hebrew.txt | 2 +- src/lang/hungarian.txt | 2 +- src/lang/icelandic.txt | 2 +- src/lang/indonesian.txt | 2 +- src/lang/irish.txt | 2 +- src/lang/italian.txt | 2 +- src/lang/japanese.txt | 2 +- src/lang/korean.txt | 2 +- src/lang/latvian.txt | 2 +- src/lang/lithuanian.txt | 2 +- src/lang/luxembourgish.txt | 2 +- src/lang/malay.txt | 2 +- src/lang/norwegian_bokmal.txt | 2 +- src/lang/norwegian_nynorsk.txt | 2 +- src/lang/polish.txt | 2 +- src/lang/portuguese.txt | 2 +- src/lang/romanian.txt | 2 +- src/lang/russian.txt | 2 +- src/lang/serbian.txt | 2 +- src/lang/simplified_chinese.txt | 2 +- src/lang/slovak.txt | 2 +- src/lang/slovenian.txt | 2 +- src/lang/spanish.txt | 2 +- src/lang/swedish.txt | 2 +- src/lang/tamil.txt | 2 +- src/lang/thai.txt | 2 +- src/lang/traditional_chinese.txt | 2 +- src/lang/turkish.txt | 2 +- src/lang/ukrainian.txt | 2 +- src/lang/unfinished/frisian.txt | 2 +- src/lang/unfinished/ido.txt | 2 +- src/lang/unfinished/macedonian.txt | 2 +- src/lang/unfinished/persian.txt | 2 +- src/lang/vietnamese.txt | 2 +- src/lang/welsh.txt | 2 +- src/os/windows/ottdres.rc.in | 2 +- 58 files changed, 58 insertions(+), 58 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 68b3682279..077092bbc3 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Maatskappy-besi STR_ABOUT_OPENTTD :{WHITE}Oor OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oorspronklike kopiereg {COPYRIGHT} 1995 Chris Sawyer, Alle regte voorbehou STR_ABOUT_VERSION :{BLACK}OpenTTD uitgawe {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Die OpenTTD span +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Die OpenTTD span # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spaar Spel diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index ae35c69c97..ba3045cae3 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2320,7 +2320,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :ارض مملو STR_ABOUT_OPENTTD :{WHITE}حول النسخة المفتوحة STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}الحقوق الاصلية {COPYRIGHT} كريس سوير 1995 , جميع الحقوق محفوظة STR_ABOUT_VERSION :{BLACK}النسخة المفتوحة رقم {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2015 فريق النسخة المفتوحة +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2016 فريق النسخة المفتوحة # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}حفظ اللعبة diff --git a/src/lang/basque.txt b/src/lang/basque.txt index d5f6717a3d..ede8426c24 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2582,7 +2582,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Konpainia jabe STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ri buruz STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD bertsioa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gordetako jokoa diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 52019447b0..6c190747dd 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3020,7 +3020,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Зямля на STR_ABOUT_OPENTTD :{WHITE}Аб OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Арыґінальныя аўтарскія правы {COPYRIGHT} 1995 Chris Sawyer. Усе правы абароненыя. STR_ABOUT_VERSION :{BLACK}OpenTTD вэрсія {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–2015 Каманда распрацоўнікаў OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–2016 Каманда распрацоўнікаў OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Захаваць гульню diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 545a2339db..ab606412a1 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :O terreno é pr STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD... STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 A equipe do OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 A equipe do OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvar Jogo diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index a131edb04f..b7a8a0b2b8 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2626,7 +2626,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земя, пр STR_ABOUT_OPENTTD :{WHITE}Относно OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторски права {COPYRIGHT} 1995 Крис Сойер (Chris Sawyer), Всички права са запазени STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Запази играта diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 8d28a391da..495cb70188 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propiet STR_ABOUT_OPENTTD :{WHITE}Quant a l'OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer. Tots els drets reservats. STR_ABOUT_VERSION :{BLACK}OpenTTD versió {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 L'equip de l'OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 L'equip de l'OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Desa la Partida diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index d335c7fc0e..cae2273bc0 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -2783,7 +2783,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemlja u posjed STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Izvorno autorsko pravo {COPYRIGHT} 1995 Chris Sawyer, sva prava pridržana STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD tim +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD tim # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spremi igru diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 68d635d29d..2266b47f27 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2780,7 +2780,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Půda vlastněn STR_ABOUT_OPENTTD :{WHITE}O OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Původní copyright: {COPYRIGHT} 1995 Chris Sawyer, všechna práva vyhrazena STR_ABOUT_VERSION :{BLACK}OpenTTD verze {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Tým OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Tým OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložit hru diff --git a/src/lang/danish.txt b/src/lang/danish.txt index c9af6e3c86..175092f8d2 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land ejet af se STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheder reserveret STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gem spil diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 70fa1011f6..50470a2e5f 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrein in bedr STR_ABOUT_OPENTTD :{WHITE}Over OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originele copyright {COPYRIGHT} 1995 Chris Sawyer, alle rechten voorbehouden STR_ABOUT_VERSION :{BLACK}OpenTTD versie {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Het OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Het OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spel Opslaan diff --git a/src/lang/english.txt b/src/lang/english.txt index 0bd430bad0..aaa794bffd 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 6220846171..8e59e1ec05 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2662,7 +2662,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 2ee11838c0..2e3e257268 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index c3e0500f10..e0653164d9 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2263,7 +2263,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanie poseda STR_ABOUT_OPENTTD :{WHITE}Pri OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Origina kopirajto {COPYRIGHT} 1995 Chris Sawyer, Ĉiuj rajtoj rezervitaj STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 La teamo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 La teamo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Konservu Ludon diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 167b92a2dc..fa7251c13b 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -2745,7 +2745,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ettevõtte maa STR_ABOUT_OPENTTD :{WHITE}OpenTTD lisainfo STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Algne autorikaitse {COPYRIGHT} 1995 Chris Sawyer, kõik õigused kaitstud STR_ABOUT_VERSION :{BLACK}OpenTTD osa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 OpenTTD meeskond +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD meeskond # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Mängu salvestamine diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 7fc1313d5a..a1eddbc5fa 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2427,7 +2427,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ogn hjá fyrit STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upprunalig upphavsrættindi {COPYRIGHT} 1995 Chris Sawyer, Øll rættindi umbiðin STR_ABOUT_VERSION :{BLACK}OpenTTD útgáva {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD toymi +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD toymi # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Goym spæl diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index c5026a1eb3..f10062151b 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Yhtiön omistam STR_ABOUT_OPENTTD :{WHITE}Tietoja OpenTTD:stä STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Alkuperäiset oikeudet {COPYRIGHT} 1995 Chris Sawyer, kaikki oikeudet pidätetään STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Tallenna peli diff --git a/src/lang/french.txt b/src/lang/french.txt index dc97e8d3dd..23f05d8043 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrain apparte STR_ABOUT_OPENTTD :{WHITE}À propos de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Tous droits réservés STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 L'équipe OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 L'équipe OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sauvegarder la partie diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index ce342c7c60..ca6bc88697 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2916,7 +2916,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tìr a' chompan STR_ABOUT_OPENTTD :{WHITE}Mu dheidhinn OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Còir-lethbhreac tùsail {COPYRIGHT} 1995 Chris Sawyer, a h-uile còir glèidhte STR_ABOUT_VERSION :{BLACK}OpenTTD tionndadh {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 An sgioba OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 An sgioba OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sàbhail an geama diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 0dceb679d7..86ccc56f23 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -2646,7 +2646,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreo propieda STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright orixinal {COPYRIGHT} 1995 Chris Sawyer, Tódolos dereitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 O equipo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 O equipo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gravar partida diff --git a/src/lang/german.txt b/src/lang/german.txt index eb1f501e06..684360860b 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firmeneigenes G STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Transport Tycoon-Urheberrecht {COPYRIGHT} 1995 Chris Sawyer, alle Rechte vorbehalten STR_ABOUT_VERSION :{BLACK}OpenTTD-Version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD-Team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-Team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spiel speichern diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 93498c7ac7..acee83e236 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -2641,7 +2641,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :שטח בבעל STR_ABOUT_OPENTTD :{WHITE}OpenTTD אודות STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}כל הזכויות שמורות , {COPYRIGHT}1995 כריס סויר - {NBSP}זכויות יוצרים מקוריות STR_ABOUT_VERSION :{BLACK}{REV} גירסה , OpenTTD -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}שמור משחק diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index fa5cad44b1..37dcb2f66f 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2751,7 +2751,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Vállalat álta STR_ABOUT_OPENTTD :{WHITE}Az OpenTTD-ről STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Eredeti copyright {COPYRIGHT} 1995 Chris Sawyer, Minden jog fenntartva STR_ABOUT_VERSION :{BLACK}OpenTTD {REV} verzió -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 Az OpenTTD csapat +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Az OpenTTD csapat # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Játék mentése diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 0ff5e8fd8d..ee2f7b0a88 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2536,7 +2536,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land í eigu fy STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upphaflegur höfundarréttur {COPYRIGHT} 1995 Chris Sawyer, Öll réttindi áskilin STR_ABOUT_VERSION :{BLACK}OpenTTD útgáfa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 OpenTTD hópurinn +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD hópurinn # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Vista leik diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 193029cbc2..7e77758607 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah milik Per STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hak Cipta asli {COPYRIGHT} 1995 Chris Sawyer, Hak Cipta dilindungi STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Tim OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Tim OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Simpan Permainan diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 5300a104c4..cdc13599d9 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Talamh faoi úi STR_ABOUT_OPENTTD :{WHITE}Maidir le OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Cóipcheart bunaidh {COPYRIGHT} 1995 Chris Sawyer, Gach ceart ar cosaint STR_ABOUT_VERSION :{BLACK}OpenTTD leagan {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 An fhoireann OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 An fhoireann OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sábháil an Cluiche diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 5fa8f11ccf..8f8d6cd1c6 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -2717,7 +2717,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno possedu STR_ABOUT_OPENTTD :{WHITE}Informazioni su OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright originale {COPYRIGHT} 1995 Chris Sawyer, Tutti i diritti riservati STR_ABOUT_VERSION :{BLACK}OpenTTD versione {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Il team OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Il team OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salva partita diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 127e3c5dcd..2e7064051b 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :社有地 STR_ABOUT_OPENTTD :{WHITE}OpenTTDについて STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}オリジナル版権{COPYRIGHT} 1995 Chris Sawyer All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD バージョン {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ゲームを保存 diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 334b30e16a..a3e4447144 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :회사 소유 STR_ABOUT_OPENTTD :{WHITE}OpenTTD에 대해서 STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD 버전 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD 개발팀 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 개발팀 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}게임 저장 diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index e30e6485a7..49a5b8b7c0 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -2619,7 +2619,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Uzņēmumam pie STR_ABOUT_OPENTTD :{WHITE}Par OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oriģināla autortiesības {COPYRIGHT} 1995 Kriss Sojers. Visas tiesības paturētas STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD darba grupa +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD darba grupa # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Saglabāt spēli diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index ebc076ba13..f97f3d6bf0 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -2906,7 +2906,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanijos žem STR_ABOUT_OPENTTD :{WHITE}Apie OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pradinės versijos teisės priklauso {COPYRIGHT} 1995 Chris Sawyer, Visos teisės saugomos STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 OpenTTD komanda +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD komanda # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Išsaugoti žaidimą diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 42e59afba3..b6d1b43704 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land am Firmenb STR_ABOUT_OPENTTD :{WHITE}Iwwert OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original Copyright {COPYRIGHT} 1995 Chris Sawyer, All Rechter virbehalen STR_ABOUT_VERSION :{BLACK}OpenTTD Versioun {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 D'OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 D'OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spill späicheren diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 4dc0806dcc..2c3ecea536 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2388,7 +2388,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah dimiliki STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hakcipta Asal {COPYRIGHT} 1995 Chris Sawyer, Hakcipta terpelihara STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Simpankan Permainan diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 79a5b8551c..a6dabc5aef 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firma-eid lando STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opprinnelig opphavsbeskyttet {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheter reservert STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lagre spill diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index c987698bc7..79cea5e58e 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -2608,7 +2608,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Feltet eigast a STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opphaveleg opphavsbeskytta av {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheiter reservert STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV}. Oversett til nynorsk av Thor Morten Skogrand med fleire. -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lagre spel diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 1697834d94..1a3a6527bc 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3067,7 +3067,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren w posiada STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prawa Autorskie {COPYRIGHT} 1995 Chris Sawyer, Wszelkie prawa zastrzeżone STR_ABOUT_VERSION :{BLACK}OpenTTD wersja {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 Zespół OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Zespół OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Zapisz grę diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 0c3bc02545..ec2a83c556 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2673,7 +2673,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno proprie STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD... STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Direitos de autor originais {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 A equipa do OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 A equipa do OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Jogo diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index ddf6b20a1c..6876ee288c 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -2633,7 +2633,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren în propr STR_ABOUT_OPENTTD :{WHITE}Despre OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Toate drepturile rezervate STR_ABOUT_VERSION :{BLACK}OpenTTD versiunea {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Echipa OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Echipa OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvează joc diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 3dd378daaf..d3558f844c 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2867,7 +2867,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земля в STR_ABOUT_OPENTTD :{WHITE}Об OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинальные авторские права {COPYRIGHT} 1995 Chris Sawyer. Все права защищены. STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Команда разработчиков OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Команда разработчиков OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Сохранить игру diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index b67e1ce265..f27c669459 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2882,7 +2882,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemljište u po STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originalni kopirajt {COPYRIGHT} 1995 Chris Sawyer, Sva prava zadržana STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD tim +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD tim # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sačuvaj poziciju diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 73035d0f92..222e10941e 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :公司属地 STR_ABOUT_OPENTTD :{WHITE}关于 OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}原始版权由 {COPYRIGHT} 1995 Chris Sawyer 所有,保留一切权力。 STR_ABOUT_VERSION :{BLACK}OpenTTD 版本 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD 团队 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 团队 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}保存游戏 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index b08ee64c54..48d075be5f 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -2755,7 +2755,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Spoločnosťou STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pôvodný copyright: {COPYRIGHT} 1995 Chris Sawyer, všetky práva vyhradené STR_ABOUT_VERSION :{BLACK}OpenTTD verzia {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 team OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 team OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložiť hru diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 6e6336cf96..950494fdd9 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -2804,7 +2804,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ozemlje v lasti STR_ABOUT_OPENTTD :{WHITE}O OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prvotne avtorske pravice {COPYRIGHT} 1995 Chris Sawyer, vse pravice pridržane STR_ABOUT_VERSION :{BLACK}OpenTTD različica {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 ekipa OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 ekipa OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Shrani igro diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 32267b74ff..c3c8073283 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright Original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 El equipo OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 El equipo OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Juego diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 96b81d34dd..e53665dd51 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Mark som ägs a STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig äganderätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas STR_ABOUT_VERSION :{BLACK}OpenTTD-version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spara spel diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index d1636e034a..fd20c0f021 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2365,7 +2365,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :நிறுவ STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ஐ பற்றி STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}அசல் உரிமைகள் {COPYRIGHT} 1995 கிறிஸ் சாயர், எல்லா உரிமைகளும் பதிவுசெய்யப்பட்டது STR_ABOUT_VERSION :{BLACK}OpenTTD பதிப்பு {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD குழுமம் +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD குழுமம் # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ஆட்டத்தை பதிவு செய் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 2ac1cbed0b..89f8e69113 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -2629,7 +2629,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :บริษั STR_ABOUT_OPENTTD :{WHITE}เกี่ยวกับ OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}ลิขสิทธิ์เดิม {COPYRIGHT} ค.ศ.1995 ของ Chris Sawyer, สงวนลิขสิทธิ์ STR_ABOUT_VERSION :{BLACK}OpenTTD รุ่นที่ {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-2015 ของ The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-2016 ของ The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}บันทึกเกม diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 2943c70be4..9713a26a08 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :公司所有土 STR_ABOUT_OPENTTD :{WHITE}關於 OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}原著作權為 {COPYRIGHT} 1995 Chris Sawyer,保留所有權利 STR_ABOUT_VERSION :{BLACK}OpenTTD 版本 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD 開發小組 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 開發小組 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}儲存遊戲 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index f970611059..7ba5ab8146 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Satın alınmı STR_ABOUT_OPENTTD :{WHITE}OpenTTD Hakkında STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Telif hakkı {COPYRIGHT} 1995 Chris Sawyer, Her hakkı saklıdır STR_ABOUT_VERSION :{BLACK}OpenTTD sürüm {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD ekibi +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD ekibi # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Oyunu Kaydet diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index b8c4576ab0..a07138e60f 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -2818,7 +2818,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ця ділян STR_ABOUT_OPENTTD :{WHITE}Про OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторське право {COPYRIGHT} 1995 Кріс Сойєр, Всі права захищені STR_ABOUT_VERSION :{BLACK}OpenTTD версія {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 команда OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 команда OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Зберегти гру diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 788704e370..72d8dfd96e 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2472,7 +2472,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Lân fan bedriu STR_ABOUT_OPENTTD :{WHITE}Oer OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Orizjineel copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD-ferzje {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 It OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 It OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spul Opslaan diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index 3ec243f079..2e8a41161e 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -776,7 +776,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Stabeyo di komp # About OpenTTD window STR_ABOUT_VERSION :{BLACK}OpenTTD versiono {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 La kruo OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 La kruo OpenTTD # Save/load game/scenario STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Ludo Detali diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index 7df355626d..fc40f3f32d 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1202,7 +1202,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Компани STR_ABOUT_OPENTTD :{WHITE}За OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинален copyright {COPYRIGHT} 1995 Chris Sawyer, Сите права се задржани STR_ABOUT_VERSION :{BLACK}OpenTTD верзија {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 OpenTTD тимот +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD тимот # Save/load game/scenario STR_SAVELOAD_LOAD_BUTTON :{BLACK}Оптоварување diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 2934a8a1d0..1d36e8a47a 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2388,7 +2388,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :زمین خری STR_ABOUT_OPENTTD :{WHITE}OpenTTD در باره ی STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD ویرایش {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ذخیره ی بازی diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 2b4fcff17c..803cd125a0 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Đất công ty STR_ABOUT_OPENTTD :{WHITE}Về OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Nguyên tác bản quyền {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD phiên bản {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Nhóm OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Nhóm OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lưu Ván Chơi diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 2c181234ea..1cf9a63c31 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tir cwmni STR_ABOUT_OPENTTD :{WHITE}Gwybodaeth am OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hawlfraint Wreiddiol {COPYRIGHT} 1995 Chris Sawyer, Holl cedwir pob hawl STR_ABOUT_VERSION :{BLACK}fersiwn OpenTTD {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 Y tîm OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Y tîm OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Cadw Gêm diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 8384b91e7c..2471d07d81 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -100,7 +100,7 @@ BEGIN VALUE "FileDescription", "OpenTTD\0" VALUE "FileVersion", "!!VERSION!!\0" VALUE "InternalName", "openttd\0" - VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2015. All Rights Reserved.\0" + VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2016. All Rights Reserved.\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "openttd.exe\0" VALUE "PrivateBuild", "\0" From fbd79d88f0ae497b1f46c87e36ebee2d8eda5063 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 1 Mar 2016 20:00:22 +0000 Subject: [PATCH 012/417] (svn r27518) -Update: Numbers --- bin/ai/compat_1.6.nut | 2 ++ bin/ai/compat_1.7.nut | 8 ++++++++ bin/ai/regression/regression_info.nut | 2 +- bin/game/compat_1.6.nut | 2 ++ bin/game/compat_1.7.nut | 8 ++++++++ os/os2/installer/make_installer.cmd | 2 +- os/rpm/openttd.spec | 4 ++-- os/windows/installer/install.nsi | 2 +- src/ai/ai_info.cpp | 2 +- src/game/game_info.cpp | 2 +- src/os/windows/ottdres.rc.in | 4 ++-- src/rev.cpp.in | 2 +- src/saveload/saveload.cpp | 2 +- src/script/api/ai_changelog.hpp | 6 +++++- src/script/api/game_changelog.hpp | 6 +++++- 15 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 bin/ai/compat_1.7.nut create mode 100644 bin/game/compat_1.7.nut diff --git a/bin/ai/compat_1.6.nut b/bin/ai/compat_1.6.nut index fe985b90d0..8fb518e1b5 100644 --- a/bin/ai/compat_1.6.nut +++ b/bin/ai/compat_1.6.nut @@ -6,3 +6,5 @@ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ + +AILog.Info("1.6 API compatibility in effect."); diff --git a/bin/ai/compat_1.7.nut b/bin/ai/compat_1.7.nut new file mode 100644 index 0000000000..fe985b90d0 --- /dev/null +++ b/bin/ai/compat_1.7.nut @@ -0,0 +1,8 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ diff --git a/bin/ai/regression/regression_info.nut b/bin/ai/regression/regression_info.nut index 4e7aec7568..87676e1625 100644 --- a/bin/ai/regression/regression_info.nut +++ b/bin/ai/regression/regression_info.nut @@ -6,7 +6,7 @@ class Regression extends AIInfo { function GetShortName() { return "REGR"; } function GetDescription() { return "This runs regression-tests on some commands. On the same map the result should always be the same."; } function GetVersion() { return 1; } - function GetAPIVersion() { return "1.6"; } + function GetAPIVersion() { return "1.7"; } function GetDate() { return "2007-03-18"; } function CreateInstance() { return "Regression"; } } diff --git a/bin/game/compat_1.6.nut b/bin/game/compat_1.6.nut index fe985b90d0..d25189db2a 100644 --- a/bin/game/compat_1.6.nut +++ b/bin/game/compat_1.6.nut @@ -6,3 +6,5 @@ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ + +GSLog.Info("1.6 API compatibility in effect."); diff --git a/bin/game/compat_1.7.nut b/bin/game/compat_1.7.nut new file mode 100644 index 0000000000..fe985b90d0 --- /dev/null +++ b/bin/game/compat_1.7.nut @@ -0,0 +1,8 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ diff --git a/os/os2/installer/make_installer.cmd b/os/os2/installer/make_installer.cmd index 6fe6dace66..de01554a07 100644 --- a/os/os2/installer/make_installer.cmd +++ b/os/os2/installer/make_installer.cmd @@ -1,6 +1,6 @@ @echo off -set OPENTTD_VERSION=1.6.0 +set OPENTTD_VERSION=1.7.0 set OPENSFX_VERSION=0.8.0 set NOSOUND_VERSION=0.8.0 set OPENGFX_VERSION=1.2.0 diff --git a/os/rpm/openttd.spec b/os/rpm/openttd.spec index 5ad5a53cab..711693bcf7 100644 --- a/os/rpm/openttd.spec +++ b/os/rpm/openttd.spec @@ -17,9 +17,9 @@ # Name: openttd -Version: 1.6.beta1 +Version: 1.7.beta1 Release: 0 -%define srcver 1.6.0-beta1 +%define srcver 1.7.0-beta1 Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe License: GPL-2.0 Group: Amusements/Games/Strategy/Other diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi index ebe9ed3dcd..9eb869f2d3 100644 --- a/os/windows/installer/install.nsi +++ b/os/windows/installer/install.nsi @@ -1,6 +1,6 @@ # Version numbers to update !define APPV_MAJOR 1 -!define APPV_MINOR 6 +!define APPV_MINOR 7 !define APPV_MAINT 0 !define APPV_BUILD 0 !define APPV_EXTRA "-beta1" diff --git a/src/ai/ai_info.cpp b/src/ai/ai_info.cpp index ec7c896cee..e862b62466 100644 --- a/src/ai/ai_info.cpp +++ b/src/ai/ai_info.cpp @@ -28,7 +28,7 @@ static bool CheckAPIVersion(const char *api_version) { return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0 || strcmp(api_version, "1.1") == 0 || strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0 || - strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0; + strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0; } #if defined(WIN32) diff --git a/src/game/game_info.cpp b/src/game/game_info.cpp index 9bb36d1aa5..39088b8462 100644 --- a/src/game/game_info.cpp +++ b/src/game/game_info.cpp @@ -25,7 +25,7 @@ static bool CheckAPIVersion(const char *api_version) { return strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0 || - strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0; + strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0; } #if defined(WIN32) diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 2471d07d81..4214f3b23f 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -79,8 +79,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,6,0,!!REVISION!! - PRODUCTVERSION 1,6,0,!!REVISION!! + FILEVERSION 1,7,0,!!REVISION!! + PRODUCTVERSION 1,7,0,!!REVISION!! FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L diff --git a/src/rev.cpp.in b/src/rev.cpp.in index 7e27859ce0..899a565bbe 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -72,7 +72,7 @@ const byte _openttd_revision_modified = !!MODIFIED!!; * final release will always have a lower version number than the released * version, thus making comparisons on specific revisions easy. */ -const uint32 _openttd_newgrf_version = 1 << 28 | 6 << 24 | 0 << 20 | 0 << 19 | (!!REVISION!! & ((1 << 19) - 1)); +const uint32 _openttd_newgrf_version = 1 << 28 | 7 << 24 | 0 << 20 | 0 << 19 | (!!REVISION!! & ((1 << 19) - 1)); #ifdef __MORPHOS__ /** diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index bd3c83d139..b1a21844f3 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -261,7 +261,7 @@ * 191 26646 * 192 26700 * 193 26802 - * 194 26881 1.5.x + * 194 26881 1.5.x, 1.6.x */ extern const uint16 SAVEGAME_VERSION = 194; ///< Current savegame version of OpenTTD. diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp index 83de91171e..2d0fe01f8d 100644 --- a/src/script/api/ai_changelog.hpp +++ b/src/script/api/ai_changelog.hpp @@ -15,9 +15,13 @@ * functions may still be available if you return an older API version * in GetAPIVersion() in info.nut. * + * \b 1.7.0 + * + * 1.7.0 is not yet released. The following changes are not set in stone yet. + * * \b 1.6.0 * - * 1.6.0 is not yet released. The following changes are not set in stone yet. + * No changes * * \b 1.5.3 * diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index 8cb58e3d7c..182ca79afb 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -15,9 +15,13 @@ * functions may still be available if you return an older API version * in GetAPIVersion() in info.nut. * + * \b 1.7.0 + * + * 1.7.0 is not yet released. The following changes are not set in stone yet. + * * \b 1.6.0 * - * 1.6.0 is not yet released. The following changes are not set in stone yet. + * No changes * * \b 1.5.3 * From 3912258035db64ed63f22bd0464d8b600283f82f Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 5 Mar 2016 18:45:38 +0000 Subject: [PATCH 013/417] (svn r27521) -Update from Eints: malay: 5 changes by rionix88 --- src/lang/malay.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 2c3ecea536..8c1b251636 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -279,6 +279,7 @@ STR_SORT_BY_LENGTH :Panjang STR_SORT_BY_LIFE_TIME :Baki jangka hayat STR_SORT_BY_TIMETABLE_DELAY :Kelewatan jadual waktu STR_SORT_BY_FACILITY :Jenis stesen +STR_SORT_BY_WAITING_TOTAL :Jumlah kargo menunggu STR_SORT_BY_RATING_MAX :Penarafan kargo tertinggi STR_SORT_BY_RATING_MIN :Penarafan kargo terendah STR_SORT_BY_ENGINE_ID :ID Enjin (susunan klasik) @@ -893,6 +894,7 @@ STR_GAME_OPTIONS_CURRENCY_LTL :Lithuanian Lita STR_GAME_OPTIONS_CURRENCY_KRW :South Korean Won (KRW) STR_GAME_OPTIONS_CURRENCY_ZAR :South African Rand (ZAR) STR_GAME_OPTIONS_CURRENCY_CUSTOM :Sesuaikan... +STR_GAME_OPTIONS_CURRENCY_GEL :Georgian Lari (GEL) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Kenderaan Jalanraya @@ -1396,6 +1398,7 @@ STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Lambat STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Biasa STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Pantas STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Sangat pantas +STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 dalam {COMMA} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Pengganda awal saiz bandar: {STRING} @@ -1422,6 +1425,7 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :Pencari laluan STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :Pencari laluan untuk kenderaan jalanraya: {STRING} STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :Pencari laluan untuk kapal: {STRING} STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :Berundur secara automatik di isyarat: {STRING} +STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT :Benarkan keretapi berundur di lampu isyarat, jika ia menuggu lama STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Tukar nilai tetapan @@ -4073,6 +4077,7 @@ STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Papan ta STR_DESKTOP_SHORTCUT_COMMENT :Sebuah permainan simulasi berasaskan Transport Tycoon Deluxe # Translatable descriptions in media/baseset/*.ob* files +STR_BASEGRAPHICS_DOS_DESCRIPTION :Grafik asal Transport Tycoon Deluxe DOS edition. ##id 0x2000 # Town building names From 20373af117744ed8c5900a613c6337f3dcf14f6d Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 8 Mar 2016 18:45:36 +0000 Subject: [PATCH 014/417] (svn r27522) -Update from Eints: slovenian: 72 changes by Necrolyte --- src/lang/slovenian.txt | 73 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 950494fdd9..86c00aca74 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -402,7 +402,15 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Drsnik - STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Poruši zgradbe itd. na kvadratku zemlje. Ctrl izbere diagonalno območje. Shift preklaplja med izgradnjo in predvidenimi stroški # Show engines button +STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}Prikaži skrito +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}Prikaži skrito +STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Prikaži skrito +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Prikaži skrito +STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Z vklopom tega gumba bodo prikazana skrita železniška vozila +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Z vklopom tega gumba bodo prikazana tudi skrita cestna vozila. +STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Z vklopom tega gumba, bodo prikazane tudi skrite ladje +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Z vklopom tega gumba bodo prikazana skrita letala # Query window STR_BUTTON_DEFAULT :{BLACK}Privzeto @@ -989,6 +997,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ima prazen ukaz STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ima podvojene ukaze STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} ima eno neveljavno postajo na urniku +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} ima v ukazih letališče, katerega steza je prekratka STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} se stara STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} podlega iztrošenosti @@ -1125,9 +1134,11 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Izberi l STR_GAME_OPTIONS_RESOLUTION_OTHER :drugo STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Velikost vmesnika +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Izberi velikost elementa vmesnika STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normalno STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dvojna velikost +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Velikost kvadrata STR_GAME_OPTIONS_BASE_GRF :{BLACK}Osnovni komplet grafik STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Izberi osnovni komplet grafik za uporabo @@ -1143,6 +1154,7 @@ STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Izberi o STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} poškodovan{P a i e ih} datotek{P a i e ""} STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Dodatne informacije o osnovnem kompletu glasbe +STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}Nalaganje seznama podprtih resolucij ni uspelo STR_ERROR_FULLSCREEN_FAILED :{WHITE}Celozaslonski način spodletel # Custom currency window @@ -1259,6 +1271,9 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Nastavitve igre STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Nastavitve igre (zapisane ob shranjevanju; vplivajo le na trenutno igro) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Nastavitve podjetja (zapisane ob shranjevanju; vplivajo le na nove igre) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Nastavitve podjetja (zapisane ob shranjevanju; vplivajo le na trenutno podjetje) +STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Prikaži vse rezultate iskanja z nastavitvijo{}{SILVER}Kategorija {BLACK}do {WHITE}{STRING} +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Prikaži vse rezultate iskanja z nastavitvijo{}{SILVER}Tip {BLACK}do {WHITE}Vsi tipi nastavitev +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Prikaži vse rezultate iskanja z nastavitvijo{}{SILVER}Kategorija {BLACK}do {WHITE}{STRING} {BLACK}in {SILVER}Tip {BLACK}do {WHITE}Vsi tipi nastavitev STR_CONFIG_SETTINGS_NONE :{WHITE}- Brez - STR_CONFIG_SETTING_OFF :Izklopi @@ -1300,6 +1315,9 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Preklop med poj STR_CONFIG_SETTING_CITY_APPROVAL :Odnos mestnega sveta do prestrukturiranja površine: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Nastavitev nivoja hrupa in posameznih posegov podjetja na oceno v mestu in nadaljnjo gradnjo +STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Najvišji nivo zemljevida: {STRING} +STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Nastavi najvišjo dovoljeno višino za gore na ozemlju +STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Ne moreš nastaviti najvišjega nivoja zemljevida na to vrednost. Vsaj ena gora na zemljevidu je višja. STR_CONFIG_SETTING_AUTOSLOPE :Dovoli oblikovanje terena pod objekti, tiri, ipd. (samonaklon): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Dovoli spremembo terena pod zgradbami in tiri brez odstranitve STR_CONFIG_SETTING_CATCHMENT :Dovoli bolj resnični območni zajem postaj: {STRING} @@ -1328,6 +1346,8 @@ STR_CONFIG_SETTING_INFLATION :Inflacija: {STR STR_CONFIG_SETTING_INFLATION_HELPTEXT :Omogoči inflacijo ekonomije, kjer se stroški zvišajo rahlo hitreje kot plačila STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Največja dolžina mostov: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Največja dolžina gradnje mostov +STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Najvišja višina mosta: {STRING} +STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Najvišja višina za gradnjo mostov STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Največja dolžina predorov: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Največja dolžina gradnje predorov STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Glavni ročni način gradnje industrij: {STRING} @@ -1422,24 +1442,31 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Debelina črt g STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Debelina črte grafov. Tanjša je bolj natančna, debelejša bolj razločna. STR_CONFIG_SETTING_LANDSCAPE :Pokrajina: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Ozemlja definirajo osnovne načine igranja z različnimi tovori in potrebami za razvoj mest. Vsekakor NewGRF in skripti igre dopuščajo natančnejši nadzor. STR_CONFIG_SETTING_LAND_GENERATOR :Urejevalnik terena: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Originalni generator je odvisen od osnovnih grafik in ustvari osnovne oblike pokrajine. TerraGenesis deluje na principu Perlin valovanja z bolj natančnim nadzorom nastavitev STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Tip terena: {STRING} STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(samo TerraGenesis) Hribovitost pokrajine STR_CONFIG_SETTING_INDUSTRY_DENSITY :Gostota industrij: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Nastavi, koliko industrij naj bi bilo ustvarjenih in kolikšen nivo naj bi se vzdrževal skozi igro STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Največja oddaljenost rafinerij nafte od roba: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Naftne rafinerije se nahajajo le pri robu kater, to je ob obali na otoških kartah STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Nadmorska višina snežne odeje: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Nadzor nad višino snega v sub-arktičnem podnebju. Sneg vpliva tudi na rast industrije in mest STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Valovitost terena (samo TerraGenesis) : {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Samo TerraGenesis...) Izberi pogostost gričev: Gladke pokrajine imajo manj širokih gričev. Razgibane pokrajine imajo več gričev, ki so lahko videti ponavljajoči. STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Zelo zglajen STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Zglajen STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Valovit STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Zelo valovit STR_CONFIG_SETTING_VARIETY :Raznolika distribucija: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(TerraGenesis only) Nadzor nad ravninskimi in goratimi predeli ozemlja. Ker to izravna ozemlje, nastavi drugo nastavitev na gorato. STR_CONFIG_SETTING_RIVER_AMOUNT :Število rek: {STRING} STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Izberi koliko rek generirati STR_CONFIG_SETTING_TREE_PLACER :Algoritem postavljanja dreves: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Izberi razpored dreves po ozemlju: 'Original' posadi drevesa enakomerno razporejena, 'izboljšan' posadi drevesa v skupine STR_CONFIG_SETTING_TREE_PLACER_NONE :Brez STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Izboljšan @@ -1791,16 +1818,23 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrične (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalno +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafike STR_CONFIG_SETTING_SOUND :{ORANGE}Zvočni učinki STR_CONFIG_SETTING_INTERFACE :{ORANGE}Vmesnik STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Splošno +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Pogledi STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Gradnja +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Novice/Nasveti STR_CONFIG_SETTING_COMPANY :{ORANGE}Podjetje +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Računi STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vozila +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fizika STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Usmerjanje +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Omejitve STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrofe / Nesreče STR_CONFIG_SETTING_GENWORLD :{ORANGE}Ustvarjanje sveta STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Okolje +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Oblasti STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Mesta STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrije STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Razpored tovora @@ -1914,6 +1948,8 @@ STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Igra ko STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Čarobni buldožer (odstrani industrije, neodstranljive objekte): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tuneli se lahko križajo pod zemljo: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Reaktivna letala ne bodo (pogosto) strmoglavila na malih letališčih: {ORANGE}{STRING} +STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Uredi najvišjo višino ozemlja: {ORANGE}{NUM} +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Uredi najvišjo višino gora na ozemlju STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Zmerno podnebje STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Sub arktično podnebje STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Sub tropsko podnebje @@ -2840,6 +2876,8 @@ STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Število STR_MAPGEN_DATE :{BLACK}Datum: STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Število industrij: STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maksimalna višina mape: +STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Zvišanje največje višine gora na ozemlju za 1 +STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Znižanje največje višine gora na ozemlju za 1 STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Višina snežne meje: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Premik snežne meje eno enoto višje STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Premik snežne meje eno enoto nižje @@ -2925,6 +2963,7 @@ STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Premakne STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Premakni dol STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Premakne izbrano NewGRF dol po seznamu STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Nadgradi +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Nadgradi NewGRF datoteke, za katere imaš nameščeno novejšo različico STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Seznam nameščenih NewGRF datotek. STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Nastavi parametre @@ -2951,9 +2990,13 @@ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Nekompatib # NewGRF save preset window STR_SAVE_PRESET_CAPTION :{WHITE}Shrani prednastavitev +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Seznam prednastavitev na voljo, izberi eno, da jo skopiraš kot ime za shranjevanje spodaj STR_SAVE_PRESET_TITLE :{BLACK}Vpiši ime za prednastavitev +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Trenutno izbrano ime za shranjevanje prednastavitev STR_SAVE_PRESET_CANCEL :{BLACK}Prekliči +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Ne spremeni prednastavitve STR_SAVE_PRESET_SAVE :{BLACK}Shrani +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Shrani prednastavitev k trenutno izbranemu imenu # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Spremeni NewGRF parametre @@ -2984,7 +3027,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Pojdi na STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Prejšnja sličica STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Nadaljuj k prejšnji navadni sličici, zanemari vse navidezne/pobarvane/besedilne sličice in okvir na koncu STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Predstavitev trenutno izbrane sličice. Zamik je zanemarjen pri risanju te sličice -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Premakni sličico s spreminjanjem X in Y osi +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Premakni sličico naokrog s spreminjanjem X in Y osi. Ctrl-Klik za premik sličice 8 enot v koraku STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetiraj relativno STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Resetiraj zdajšne relativne odmike STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X odmik: {NUM}, Y odmik: {NUM} (Absolutno) @@ -3045,6 +3088,7 @@ STR_NEWGRF_LIST_MISSING :{RED}Manjkajoč STR_NEWGRF_BROKEN :{WHITE}Ozadje NewGRFa '{0:STRING}' lahko povzroči desinhronizacijo in sesutje igre STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Vozilo '{1:ENGINE}' je spremenilo status obratovanja, ko ni znotraj garaže STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Spremenila se je dolžina vozila za '{1:ENGINE}' ko ni v garaži +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Spremenila se je zmogljivost vozila za '{1:ENGINE}' ko ni v garaži ali predelavi STR_BROKEN_VEHICLE_LENGTH :{WHITE}Vlak '{VEHICLE}' , ki pripada družbi '{COMPANY}', ima neveljavno dolžino. Najbrž vsebuje probleme povezane z NewGRF. Igra se lahko sesuje STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' javlja napačno informacijo @@ -3465,6 +3509,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}Preimenu STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikni za zaščito skupine pred splošno samoobnovo STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Izbriši skupino +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Zagotovo želiš izbrisati to skupino in vse njene podskupine? STR_GROUP_ADD_SHARED_VEHICLE :Vsa izmenljiva vozila STR_GROUP_REMOVE_ALL_VEHICLES :Odstrani vsa vozila @@ -3528,8 +3573,20 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Preimenu STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Preimenuj ladjo STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Preimenuj letalo +STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Skrij +STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Skrij +STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Skrij +STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Skrij +STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Prikaži +STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Prikaži +STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Prikaži +STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Prikaži +STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Vklop/izklop prikaza vrste železniških vozil +STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Preklop med prikazom/skrivanjem tipa cestnih vozil +STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Vklop/izklop prikaza vrste ladij +STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Vklop/izklop prikaza vrste letal STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Preimenuj železniško vozilo STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Preimenuj cestno vozilo @@ -3635,6 +3692,10 @@ STR_REPLACE_VEHICLE_ROAD_VEHICLE :Cestno vozilo STR_REPLACE_VEHICLE_SHIP :Ladja STR_REPLACE_VEHICLE_AIRCRAFT :Letalo +STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Vozila v uporabi +STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Stolpec z vozili, ki jih imaš v lasti +STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Vozila na razpolago +STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Stolpec z vozili na voljo za zamenjavo STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Izberi tip lokomotive za zamenjati STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Izberi vrsto lokomotive, ki jo hočeš prestaviti na levo označeno mesto @@ -3990,6 +4051,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Potovanje (brez STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Potuj z največ {2:VELOCITY} (brez časovne tabele) STR_TIMETABLE_TRAVEL_FOR :Potuj za {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Pozuj proti {STRING} z najvišjo hitrostjo {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Potuj (za {STRING}, brez časovne tabele) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Potuj (za {STRING}, brez časovne tabele) z največjo hitrostjo {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(počakaj največ {STRING}, brez časovne tabele) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(Potuj z največ {STRING}, brez časovne tabele) STR_TIMETABLE_STAY_FOR :in ostani za {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :s potovanjem za {STRING} STR_TIMETABLE_DAYS :{COMMA} d{P an neva nevi ni} @@ -4231,6 +4296,7 @@ STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}Izkop bi STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}... že na morski gladini STR_ERROR_TOO_HIGH :{WHITE}... previsoko STR_ERROR_ALREADY_LEVELLED :{WHITE}... je že zravnana +STR_ERROR_BRIDGE_TOO_HIGH_AFTER_LOWER_LAND :{WHITE}Posledično bi bil most višje previsok. # Company related errors STR_ERROR_CAN_T_CHANGE_COMPANY_NAME :{WHITE}Ni mogoče spremeniti imena podjetja... @@ -4281,6 +4347,8 @@ STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... gozd STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... lahko se zgradi samo nad snežno mejo STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... lahko se zgradi samo pod snežno mejo +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}Tam ni bilo primernih mest za postavitev industrije '{STRING}' +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Spremeni način ustvarjanja ozemlja, da dobiš boljše ozemlje # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Tukaj ni mogoče zgraditi železniške postaje... @@ -4418,6 +4486,7 @@ STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Najprej STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}Ni mogoče začeti in končati v isti točki STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}Priključki mosta niso na enaki višini STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Most je prenizek za teren +STR_ERROR_BRIDGE_TOO_HIGH_FOR_TERRAIN :{WHITE}Most je previsok za ta teren. STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Začetek in konec morata biti na isti višini STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... oba priključka mostu morata biti na kopnem STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... predolg most @@ -4444,6 +4513,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... ima STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Ni mogoče ustvariti skupine... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Ni mogoče zbrisati te skupine... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Ni mogoče preimenovati skupine... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Ni mogoče nastaviti višje skupine... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Ni mogoče odstraniti vseh vozil iz te skupine... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Ni mogoče dodati vozila v to skupino... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Ni mogoče dodati izmenljivega vozila v skupino... @@ -5026,6 +5096,7 @@ STR_COMPANY_NAME :{COMPANY} STR_COMPANY_NAME_COMPANY_NUM :{COMPANY} {COMPANY_NUM} STR_DEPOT_NAME :{DEPOT} STR_ENGINE_NAME :{ENGINE} +STR_HIDDEN_ENGINE_NAME :{ENGINE} (skrito) STR_GROUP_NAME :{GROUP} STR_INDUSTRY_NAME :{INDUSTRY} STR_PRESIDENT_NAME :{PRESIDENT_NAME} From fe4d076dd85f07e53fab309340a435b8f9ae5002 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 13 Mar 2016 18:45:37 +0000 Subject: [PATCH 015/417] (svn r27523) -Update from Eints: latvian: 1 change by Jancs --- src/lang/latvian.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 49a5b8b7c0..9e0b5c12ea 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -2740,6 +2740,7 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Uz augš STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Pārvietot atlasīto NewGRF failu saraksta augšā STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Uz leju STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Pārvietot atlasīto NewGRF failu saraksta apakšā +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Atjaunināt STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Instalēto NewGRF failu saraksts. STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Iestatīt parametrus From 177c61477a059b43652bc5e4a5f1c00ce68176a6 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 20 Mar 2016 18:45:37 +0000 Subject: [PATCH 016/417] (svn r27524) -Update from Eints: esperanto: 3 changes by LaPingvino --- src/lang/esperanto.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index e0653164d9..5c4f7b2de6 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -472,6 +472,7 @@ STR_ABOUT_MENU_GIANT_SCREENSHOT :Tuta karto ekra STR_ABOUT_MENU_ABOUT_OPENTTD :Pri 'OpenTTD' STR_ABOUT_MENU_SPRITE_ALIGNER :Bildeto-liniigilo STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Montri/ne montri limigujo +STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :(Mal)ŝalti la kolorigon de malpuraj blokoj ############ range ends here ############ range for ordinal numbers used for the place in the highscore window @@ -1280,6 +1281,7 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permesu Artefar STR_CONFIG_SETTING_SERVINT_ISPERCENT :Prizorgintervala procentaĵo: {STRING} STR_CONFIG_SETTING_NOSERVICE :Malŝaltu prizorgadon se rompiĝoj ne okazas: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Aktivigu vagonajn rapideclimojn: {STRING} +STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Kiam ebligita, ankaŭ uzu rapideco-limigojn de vagonoj por decidi la maksimuman rapidecon de trajno STR_CONFIG_SETTING_DISABLE_ELRAILS :Malŝaltu elektrajn relojn: {STRING} STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Unua veturilo atingas propran stacion: {STRING} @@ -2560,6 +2562,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Subaĉe # Goal window STR_GOALS_TEXT :{ORANGE}{STRING} +STR_GOALS_NONE :{ORANGE}- Nenia - # Goal question window From 518eeac55f3c1b30b27b7fd1c2a7c1fc6a14fb13 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 21 Mar 2016 18:45:36 +0000 Subject: [PATCH 017/417] (svn r27525) -Update from Eints: latin: 18 changes by Supercheese --- src/lang/latin.txt | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/lang/latin.txt b/src/lang/latin.txt index f1874e8de9..fe200a460d 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -61,10 +61,10 @@ STR_CARGO_PLURAL_WOOD :{G=n}Lignum STR_CARGO_PLURAL_WOOD.gen :ligni STR_CARGO_PLURAL_WOOD.acc :Lignum STR_CARGO_PLURAL_WOOD.dat :Ligno -STR_CARGO_PLURAL_IRON_ORE :{G=n}Ferrum -STR_CARGO_PLURAL_IRON_ORE.gen :ferri -STR_CARGO_PLURAL_IRON_ORE.acc :Ferrum -STR_CARGO_PLURAL_IRON_ORE.dat :Ferro +STR_CARGO_PLURAL_IRON_ORE :{G=n}Ferrum Rude +STR_CARGO_PLURAL_IRON_ORE.gen :ferri rudis +STR_CARGO_PLURAL_IRON_ORE.acc :Ferrum Rude +STR_CARGO_PLURAL_IRON_ORE.dat :Ferro Rudi STR_CARGO_PLURAL_STEEL :{G=m}Chalybs STR_CARGO_PLURAL_STEEL.gen :chalybis STR_CARGO_PLURAL_STEEL.acc :Chalybem @@ -73,10 +73,10 @@ STR_CARGO_PLURAL_VALUABLES :{G=fp}Res Preti STR_CARGO_PLURAL_VALUABLES.gen :rerum pretiosarum STR_CARGO_PLURAL_VALUABLES.acc :Res Pretiosas STR_CARGO_PLURAL_VALUABLES.dat :Rebus Pretiosis -STR_CARGO_PLURAL_COPPER_ORE :{G=n}Aes -STR_CARGO_PLURAL_COPPER_ORE.gen :aeris -STR_CARGO_PLURAL_COPPER_ORE.acc :Aes -STR_CARGO_PLURAL_COPPER_ORE.dat :Aeri +STR_CARGO_PLURAL_COPPER_ORE :{G=n}Aes Rude +STR_CARGO_PLURAL_COPPER_ORE.gen :aeris rudis +STR_CARGO_PLURAL_COPPER_ORE.acc :Aes Rude +STR_CARGO_PLURAL_COPPER_ORE.dat :Aeri Rudi STR_CARGO_PLURAL_MAIZE :{G=n}Maizium STR_CARGO_PLURAL_MAIZE.gen :maizii STR_CARGO_PLURAL_MAIZE.acc :Maizium @@ -188,10 +188,10 @@ STR_CARGO_SINGULAR_WOOD :{G=n}Lignum STR_CARGO_SINGULAR_WOOD.gen :ligni STR_CARGO_SINGULAR_WOOD.acc :Lignum STR_CARGO_SINGULAR_WOOD.dat :Ligno -STR_CARGO_SINGULAR_IRON_ORE :{G=n}Ferrum -STR_CARGO_SINGULAR_IRON_ORE.gen :ferri -STR_CARGO_SINGULAR_IRON_ORE.acc :Ferrum -STR_CARGO_SINGULAR_IRON_ORE.dat :Ferro +STR_CARGO_SINGULAR_IRON_ORE :{G=n}Ferrum Rudum +STR_CARGO_SINGULAR_IRON_ORE.gen :ferri rudis +STR_CARGO_SINGULAR_IRON_ORE.acc :Ferrum Rude +STR_CARGO_SINGULAR_IRON_ORE.dat :Ferro Rudi STR_CARGO_SINGULAR_STEEL :{G=m}Chalybs STR_CARGO_SINGULAR_STEEL.gen :chalybis STR_CARGO_SINGULAR_STEEL.acc :Chalybem @@ -200,10 +200,10 @@ STR_CARGO_SINGULAR_VALUABLES :{G=fp}Res Preti STR_CARGO_SINGULAR_VALUABLES.gen :rerum pretiosarum STR_CARGO_SINGULAR_VALUABLES.acc :Res Pretiosas STR_CARGO_SINGULAR_VALUABLES.dat :Rebus Pretiosis -STR_CARGO_SINGULAR_COPPER_ORE :{G=n}Aes -STR_CARGO_SINGULAR_COPPER_ORE.gen :aeris -STR_CARGO_SINGULAR_COPPER_ORE.acc :Aes -STR_CARGO_SINGULAR_COPPER_ORE.dat :Aeri +STR_CARGO_SINGULAR_COPPER_ORE :{G=n}Aes Rude +STR_CARGO_SINGULAR_COPPER_ORE.gen :aeris rudis +STR_CARGO_SINGULAR_COPPER_ORE.acc :Aes Rude +STR_CARGO_SINGULAR_COPPER_ORE.dat :Aeri Rudi STR_CARGO_SINGULAR_MAIZE :{G=n}Maizium STR_CARGO_SINGULAR_MAIZE.gen :maizii STR_CARGO_SINGULAR_MAIZE.acc :Maizium @@ -291,10 +291,10 @@ STR_QUANTITY_LIVESTOCK :{G=np}{COMMA}{N STR_QUANTITY_GOODS :{G=fp}{COMMA}{NBSP}capsa{P "" e} mercium STR_QUANTITY_GRAIN :{WEIGHT_LONG} frumenti STR_QUANTITY_WOOD :{WEIGHT_LONG} ligni -STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} ferri +STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} ferri rudis STR_QUANTITY_STEEL :{WEIGHT_LONG} chalybis STR_QUANTITY_VALUABLES :{G=mp}{COMMA}{NBSP}sacc{P us i} rerum pretiosarum -STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} aeris +STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} aeris rudis STR_QUANTITY_MAIZE :{WEIGHT_LONG} maizii STR_QUANTITY_FRUIT :{WEIGHT_LONG} fructuum STR_QUANTITY_DIAMONDS :{G=mp}{COMMA}{NBSP}sacc{P us i} adamantum From 927d1a9490240383eff6ef9e6a2d4e92e32036c8 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 26 Mar 2016 18:45:36 +0000 Subject: [PATCH 018/417] (svn r27526) -Update from Eints: malay: 2 changes by rionix88 --- src/lang/malay.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 8c1b251636..228c827f94 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -241,6 +241,7 @@ STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Musnahka # Show engines button +STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Dengan membenarkan pilihan ini, kapal tersembunyi turut ditunjukkan # Query window STR_BUTTON_DEFAULT :{BLACK}Asal @@ -4078,6 +4079,7 @@ STR_DESKTOP_SHORTCUT_COMMENT :Sebuah permaina # Translatable descriptions in media/baseset/*.ob* files STR_BASEGRAPHICS_DOS_DESCRIPTION :Grafik asal Transport Tycoon Deluxe DOS edition. +STR_BASEGRAPHICS_WIN_DESCRIPTION :Grafik asal Transport Tycoon Deluxe edisi Windows. ##id 0x2000 # Town building names From 692458d8f589fbd55f58eb7ac517d7afd6bbdbad Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 27 Mar 2016 17:45:35 +0000 Subject: [PATCH 019/417] (svn r27527) -Update from Eints: tamil: 13 changes by aswn --- src/lang/tamil.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index fd20c0f021..dd2fc5731a 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -1200,9 +1200,11 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :நகரத் STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :நகரத்தின் மக்கள்தொகையினை வரைபடத்தில் காட்டவும் STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :வரைபடத்தில் கோடுகளின் எண்ணிக்கை: {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 :TerraGenesis +STR_CONFIG_SETTING_INDUSTRY_DENSITY :தொழிற்சாலை அடர்த்தி: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :வரைபட எல்லையிலிருந்து எண்ணெய் சுத்திகரிப்பு நிலையங்கள் இருக்கக்கூடிய தூரம்: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :எண்ணெய் சுத்திகரிப்பு நிலையங்கள் வரைபடத்தின் எல்லைகளில் மட்டுமே கட்ட இயலும், அதாவது தீவு வரைபடங்களில் கடற்கரைகளில் கட்ட இயலும் STR_CONFIG_SETTING_SNOWLINE_HEIGHT :பனி-கோடின் உயரம்: {STRING} @@ -1215,6 +1217,7 @@ STR_CONFIG_SETTING_TREE_PLACER :மரங்க STR_CONFIG_SETTING_TREE_PLACER_NONE :ஒன்றுமில்லை STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :உண்மையான STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :சீரமைக்கப்பட்ட +STR_CONFIG_SETTING_ROAD_SIDE :சாலை வாகனங்கள்: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :உயர்பட சுழற்ச்சி: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :வலமிருந்து இடமாக செல் STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :இடமிலிருந்து வலஞ்செல் @@ -1250,6 +1253,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+Click STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :அணை +STR_CONFIG_SETTING_AUTOSAVE :தானியங்கிபதிவு: {STRING} STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :{STRING} தேதி வகையினை பதிவுஆட்டங்கள் பெயர்களுக்கு பயன்படுத்தவும் STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :பதிவு ஆட்டங்கள் கோப்புப் பெயர்களில் உள்ள தேதி வகையினை அமை @@ -1306,6 +1310,7 @@ STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :கணினி STR_CONFIG_SETTING_AI_BUILDS_SHIPS :கணினியிற்கு கப்பல்களை அனுமதிக்காதே: {STRING} STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :கணினியால் கப்பல்களை பயன்படுத்த இயலாது +STR_CONFIG_SETTING_AI_PROFILE :முதன்மை அமைப்புகள் profile: {STRING} STR_CONFIG_SETTING_AI_PROFILE_EASY :எளிதான STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :நடுத்தரமான STR_CONFIG_SETTING_AI_PROFILE_HARD :கடுமையான @@ -1414,6 +1419,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :ஒன்று STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :தொடக்க நகர அளவு பெருக்கம்: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :ஆட்டத்தின் தொடக்கத்தில் மாநகரங்களின் அளவு நகரங்களை ஒப்பிடுகையில் +STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :கைமுறை STR_CONFIG_SETTING_DISTRIBUTION_PAX :பயணிகள் பரிமாற்றம் வகை: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL :அஞ்சல் பரிமாற்றம் வகை: {STRING} @@ -1446,11 +1452,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :இம்பீ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :மெட்ரிக் (மீ) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (மீ) +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}அசைவூட்டம் STR_CONFIG_SETTING_SOUND :{ORANGE}ஒலிகள் STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}கட்டுமானம் +STR_CONFIG_SETTING_COMPANY :{ORANGE}நிறுவனம் +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}கணக்கியல் STR_CONFIG_SETTING_VEHICLES :{ORANGE}வாகனங்கள் STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}வழி மாற்றல் +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}எல்லைகள் +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}பேரழிவுகள் / விபத்துகள் +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}சுற்றுச்சூழல் STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}நகரங்கள் STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}தொழிற்சாலைகள் STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}சரக்கு பரிமாற்றம் @@ -2146,6 +2158,7 @@ STR_AIRPORT_CITY :மாநகர STR_AIRPORT_METRO :மாநகர STR_AIRPORT_INTERNATIONAL :சர்வதேச STR_AIRPORT_COMMUTER :பயணிகள் +STR_AIRPORT_INTERCONTINENTAL :கண்டமிடை STR_AIRPORT_HELIPORT :ஹெலிபோர்ட் STR_AIRPORT_HELIDEPOT :வானூர்தி பணிமனை STR_AIRPORT_HELISTATION :வானூர்தி நிலையம் From c5aee2ac529b3611c5d146010f4aaf8eab451319 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 30 Mar 2016 17:45:37 +0000 Subject: [PATCH 020/417] (svn r27528) -Update from Eints: catalan: 233 changes by juanjo portuguese (brazilian): 1 change by Tucalipe --- src/lang/brazilian_portuguese.txt | 2 +- src/lang/catalan.txt | 466 +++++++++++++++--------------- 2 files changed, 234 insertions(+), 234 deletions(-) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index ab606412a1..5fbf136205 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2875,7 +2875,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Vai para STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}"Sprite" anterior STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Retorna ao "sprite" normal anterior, pulando quaisquer "sprites" falsos, recoloridos ou de fontes, e junta tudo do primeiro ao último STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representação do "sprite" atualmente selecionado. O alinhamento é ignorado ao desenhar esse "sprite" -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move o "sprite", alterando os offsets X e Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move o "sprite", alterando os offsets X e Y. Ctrl+Clique para mover o sprite 8 unidades por vez STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetar relativo STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reseta os offsets relativos atuais STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absoluto) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 495cb70188..98bfc24b69 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -326,8 +326,8 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Mostra l STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Mostra la informació general de la companyia STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Mostra el llibre de partida STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Mostra la llista d'objectius -STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Mostra gràfics de les empreses -STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Mostra la taula de la lliga d'empreses +STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Mostra gràfics de l'evolució de les companyies i les tarifes de transport. +STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Mostra la taula de la lliga de companyies. STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Finança la construcció d'una nova indústria STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Mostra la llista de trens de la companyia. Ctrl+Clic commuta l'obertura de la llista de grups/vehicles. STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Mostra la llista de vehicles de la companyia. Ctrl+Clic commuta l'obertura de la llista de grups/vehicles. @@ -416,12 +416,12 @@ STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH :Gràfic de bene STR_GRAPH_MENU_INCOME_GRAPH :Gràfic d'ingressos STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH :Gràfic d'entrega de càrrega STR_GRAPH_MENU_PERFORMANCE_HISTORY_GRAPH :Gràfic històric de rendiment -STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :Gràfic del valor de les empreses +STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :Gràfic del valor de les companyies STR_GRAPH_MENU_CARGO_PAYMENT_RATES :Tarifes de pagament per càrrega ############ range ends here ############ range for company league menu starts -STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :Taula de la lliga d'empreses +STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :Taula de la lliga de companyies STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING :Detall de ratis de rendiment STR_GRAPH_MENU_HIGHSCORE :Taula de puntuacions ############ range ends here @@ -436,7 +436,7 @@ STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Finança una no STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construcció de ferrocarril STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcció de ferrocarril elèctric STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construcció de monorail -STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construcció de Maglev +STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construcció de maglev ############ range ends here ############ range for road construction menu starts @@ -477,7 +477,7 @@ STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Captura de pant STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura de pantalla amb el zoom predeterminat STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de pantalla de tot el mapa STR_ABOUT_MENU_ABOUT_OPENTTD :Quant a l'OpenTTD -STR_ABOUT_MENU_SPRITE_ALIGNER :Alineador d'sprites +STR_ABOUT_MENU_SPRITE_ALIGNER :Alineador de sprites STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Commuta les caixes delimitadores STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :Commuta l'acoloriment de blocs bruts ############ range ends here @@ -593,7 +593,7 @@ STR_GRAPH_KEY_CAPTION :{WHITE}Llegenda STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Clica aquí per mostrar/amagar la companyia al gràfic # Company league window -STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Taula de la lliga d'empreses +STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Taula de la lliga de companyies STR_COMPANY_LEAGUE_COMPANY_NAME :{ORANGE}{COMPANY} {BLACK}{COMPANY_NUM} «{STRING}» STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER :Enginyer STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER :Director de trànsit @@ -683,8 +683,8 @@ STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Clica la STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Clica la pista de música per treure-la de la llista actual (només en llistes personalitzables) # Highscore window -STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Principals empreses en arribar al {NUM} -STR_HIGHSCORE_TOP_COMPANIES_NETWORK_GAME :{BIG_FONT}{BLACK}Taula de la lliga d'empreses a {NUM} +STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Principals companyies que han arribat al {NUM} +STR_HIGHSCORE_TOP_COMPANIES_NETWORK_GAME :{BIG_FONT}{BLACK}Taula de la lliga de companyies a {NUM} STR_HIGHSCORE_POSITION :{BIG_FONT}{BLACK}{COMMA}. STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN :Empresari STR_HIGHSCORE_PERFORMANCE_TITLE_ENTREPRENEUR :Emprenedor @@ -802,9 +802,9 @@ STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLAC STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}L'enfonsament d'una mina de carbó deixa un rastre de destrucció prop de {TOWN}! STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}Inundacions{}Almenys {COMMA} desapareguts, possiblement morts, després de les inundacions! -STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}Empresa de transport en dificultats! +STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}Companyia de transport en dificultats! STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} ha de ser venuda o declarar-se en fallida a menys que el seu rendiment incrementi aviat! -STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLACK}Fusió d'empreses de transport +STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLACK}Fusió de companyies de transport STR_NEWS_COMPANY_MERGER_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} s'ha venut a {STRING} per {CURRENCY_LONG}! STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLACK}Fallida! STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} ha estat tancada pels creditors i s'han venut tots els seus actius @@ -1232,11 +1232,11 @@ STR_CONFIG_SETTING_BRIBE_HELPTEXT :Permet a les co STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Permet comprar els drets del transport en exclusiva: {STRING} STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una companyia compra els drets de transport en exclusiva d'una població, les estacions dels oponents (passatgers i càrrega) no rebran cap càrrega durant un any sencer. STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Permet finançar edificis: {STRING} -STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permet a les companyies donar diners a les poblacions per finançar nous edificis +STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permet a les companyies donar diners a les poblacions per finançar nous edificis. STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permet finançar la reconstrucció dels carrers locals: {STRING} STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permet a les companyies donar diners a les poblacions per la reconstrucció de carrers i sabotejar la circulació de vehicles. STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permet enviar diners a altres companyies: {STRING} -STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permet transferir diners entre companyies en el mode multijugador +STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permet transferir diners entre companyies en el mode multijugador. STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de pes per simular trens pesats: {STRING} STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Estableix l'impacte de transportar contenidors en trens. Els valors alts fan que transportar contenidors sigui més exigent amb els trens, especialment als turons. STR_CONFIG_SETTING_PLANE_SPEED :Factor de velocitat dels avions: {STRING} @@ -1270,13 +1270,13 @@ STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Quan està acti STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Els vehicles mai caduquen: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Quan està activat, tots els models de vehicles continuen disponibles per sempre després de la seva introducció STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Autorenova el vehicle quan sigui vell: {STRING} -STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Quan està activat, un vehicle que arriba al final de la seva vida útil és automàticament substituït quan es compleixen les condicions d'autorenovació -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenova el vehicle {STRING} de la seva edat màxima -STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Edat relativa a partir de la qual s'ha de considerar l'autorenovació del vehicle +STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Quan està activat, un vehicle que arriba al final de la seva vida útil és automàticament substituït quan es compleixen les condicions d'autorenovació. +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenova el vehicle {STRING} de la seva edat màxima. +STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Edat a partir de la qual s'ha de considerar l'autorenovació del vehicle. STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mes{P 0 "" os} abans STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mes{P 0 "" os} després STR_CONFIG_SETTING_AUTORENEW_MONEY :Mínim de diners per a renovacions automàtiques: {STRING} -STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantitat mínima de diners que han de quedar al banc abans de considerar l'autorenovació de vehicles +STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Estableix la quantitat mínima de diners que han de quedar al banc abans de considerar l'autorenovació de vehicles. STR_CONFIG_SETTING_ERRMSG_DURATION :Duració del missatge d'error: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duració dels missatges d'error mostrats en finestres vermelles. Alguns missatges d'error (crítics) no es tanquen automàticament i s'han de tancar manualment STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segon{P 0 "" s} @@ -1375,7 +1375,7 @@ STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplaçament a STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activa el desplaçament del mapa arrossegant-lo amb el botó esquerre del ratolí. Això és especialment útil quan s'utilitzen pantalles tàctils STR_CONFIG_SETTING_AUTOSAVE :Desada automàtica: {STRING} -STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona l'interval entre desades automàtiques de les partides +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona l'interval entre desades automàtiques de les partides. STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Utilitza el format de data {STRING} per a guardar partides STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Format de la data en els noms dels arxius de les partides que es guardin @@ -1392,7 +1392,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Totes les accio STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Tot menys les accions modificadores del paisatge STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Totes les accions STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Mostra els grups en el llistat de vehicles de la companyia: {STRING} -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Activa la utilització de llistes de vehicles avançades per agrupar vehicles +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Activa la utilització de llistes avançades de vehicles per agrupar vehicles. STR_CONFIG_SETTING_LOADING_INDICATORS :Utilitza indicadors de càrrega: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Selecciona si els indicadors de càrrega seran mostrats sobre els vehicles en càrrega o descàrrega STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Mostra horaris amb marques en lloc de dies: {STRING} @@ -1418,7 +1418,7 @@ STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Reprodueix un s STR_CONFIG_SETTING_SOUND_NEWS :Notícies: {STRING} STR_CONFIG_SETTING_SOUND_NEWS_HELPTEXT :Reprodueix un so quan apareix una notícia STR_CONFIG_SETTING_SOUND_NEW_YEAR :Cap d'any: {STRING} -STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT :Reprodueix un efecte de so al final de l'any quan apareix el resum financer de l'any de l'empresa en comparació amb l'anterior +STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT :Reprodueix un efecte de so al final de l'any quan apareix el resum financer de l'any de la companyia en comparació amb l'anterior STR_CONFIG_SETTING_SOUND_CONFIRM :Construcció: {STRING} STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Reprodueix un efecte de so quan es realitzin amb èxit construccions o altres accions STR_CONFIG_SETTING_SOUND_CLICK :Botons: {STRING} @@ -1441,23 +1441,23 @@ STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Màxim nombre d STR_CONFIG_SETTING_MAX_SHIPS :Màxim nombre de vaixells per companyia: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Màxim nombre de vaixells que pot tenir una companyia -STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desactiva trens per a les IA de l'ordinador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir trens als jugadors IA de l'ordinador -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Desactiva automòbils per a les IA de l'ordinador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activant aquesta opció fa que sigui impossible construir automòbils als jugadors IA de l'ordinador -STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactiva avions per a les IA de l'ordinador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Activant aquesta opció fa que sigui impossible construir avions als jugadors IA de l'ordinador -STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactiva vaixells per a les IA de l'ordinador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir vaixells als jugadors IA de l'ordinador +STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desactiva els trens per a les IA: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir trens i altres vehicles que utilitzen rails als jugadors IA. +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Desactiva els vehicles de carretera per a les IA: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activant aquesta opció fa que sigui impossible construir automòbils i altres vehicles de carretera als jugadors IA. +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactiva les aeronaus per a les IA de l'ordinador: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Activant aquesta opció fa que sigui impossible construir aeronaus als jugadors IA. +STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactiva els vaixells per a les IA: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir vaixells als jugadors IA. STR_CONFIG_SETTING_AI_PROFILE :Perfil de paràmetres predeterminat: {STRING} -STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Escull quin perfil de paràmetres utilitzar per les IA aleatòries o com a valors inicials quan s'afegeix una nova IA o Script de la partida +STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Escolliu quin perfil de paràmetres utilitzar per les IA aleatòries o com a valors inicials quan s'afegeix una nova IA o script de la partida. STR_CONFIG_SETTING_AI_PROFILE_EASY :Fàcil STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Mitjà STR_CONFIG_SETTING_AI_PROFILE_HARD :Difícil STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permet IA en multijugador: {STRING} -STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permet a les IA de l'ordinador participar en partides multijugador +STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permet a les IA participar en partides multijugador. STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes abans de suspendre els scripts: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Màxim nombre de passos de càlcul que un script pot fer en un torn @@ -1486,7 +1486,7 @@ STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Arribada del pr STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Mostra les notícies quan arribi el primer vehicle a una estació d'un competidor STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidents / desastres: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Mostra un diari quan passin accidents i desastres -STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Informació de l'empresa: {STRING} +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Informació de la companyia: {STRING} STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Mostra les notícies de companyies noves que es creen i de companyies en risc de fer fallida STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Obertura d'indústries: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Mostra les notícies d'aparicions d'indústries noves @@ -1520,8 +1520,8 @@ STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Any en què els STR_CONFIG_SETTING_STARTING_YEAR :Any d'inici: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Activa economia suau (més canvis però més petits): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Quan està activat, els canvis de producció de la indústria són més habituals, i en passos més petits. Aquest paràmetre usualment no té efecte, si el tipus d'indústria estan proveïts per un NewGRF -STR_CONFIG_SETTING_ALLOW_SHARES :Permet comprar participacions d'altres empreses: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Quan està activat, permet comprar i vendre accions de les companyis. Les accions només estan disponibles per companyies d'una certa edat +STR_CONFIG_SETTING_ALLOW_SHARES :Permet comprar participacions d'altres companyies: {STRING} +STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Permet comprar i vendre accions de les companyies. Les accions només estan disponibles per companyies d'una certa edat. STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentatge del benefici total a pagar en transferències: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentatge del benefici donat a branques intermediàries dins els sistemes, donant més control sobre els beneficis STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :En arrossegar, col·locar senyals cada: {STRING} @@ -1552,9 +1552,9 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :graella 2x2 STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :graella 3x3 STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Aleatori STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Les poblacions poden construir carreteres: {STRING} -STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permet a les poblacions construir carreteres per créixer. Desactiva-ho per prevenir que les autoritats de la població construeixin carreteres -STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Les poblacions tenen permís per construir passos a nivell: {STRING} -STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Activant aquesta opció es permet a les poblacions construir passos a nivell +STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permet a les poblacions construir carreteres per créixer. Desactiveu aquesta opció per evitar que les poblacions construeixin carreteres. +STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Les poblacions poden construir passos a nivell: {STRING} +STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Activant aquesta opció, les poblacions podran construir passos a nivell. STR_CONFIG_SETTING_NOISE_LEVEL :Permet a la ciutat controlar el nivell de soroll dels aeroports: {STRING} STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Amb aquesta opció desactivada, no podran haver-hi més de dos aeroports en una mateixa població. Amb aquesta opció activada, el nombre d'aeroports en cada població està limitat pel límit d'acceptació de soroll de la població, que depèn de la mida de l'aeroport i de la distància STR_CONFIG_SETTING_TOWN_FOUNDING :Fundar poblacions durant la partida: {STRING} @@ -1687,7 +1687,7 @@ STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Poblaci STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Indústries STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribució de la càrrega STR_CONFIG_SETTING_AI :{ORANGE}Competidors -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadors de l'ordinador (IA) +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadors IA STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1707,39 +1707,39 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Canvia e # Config errors STR_CONFIG_ERROR :{WHITE}S'ha produït un error en l'arxiu de configuració... STR_CONFIG_ERROR_ARRAY :{WHITE}...error en la matriu «{STRING}». -STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... valor invàlid '{STRING}' per '{STRING}' -STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... caràcters de fi al final de la configuració '{STRING}' +STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}...valor «{STRING}» invàlid per a «{STRING}». +STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}...caràcters finals (espai, nova línia...) al final de la configuració de l'opció «{STRING}». STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}...s'ignorarà l'arxiu NewGRF «{STRING}» perquè l'identificador del GRF és el mateix que el de «{STRING}». STR_CONFIG_ERROR_INVALID_GRF :{WHITE}...s'ignorarà l'arxiu NewGRF invàlid «{STRING}»: {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :no s'ha trobat. -STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :insegur per a ús estàtic +STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :insegur per a ús estàtic. STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :arxiu NewGRF compatible només amb el TTDPatch. STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :no és compatible amb aquesta versió de l'OpenTTD. -STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :desconegut -STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... el nivell de compressió '{STRING}' no és vàlid -STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... el format de partida '{STRING}' no està disponible. Tornant a '{STRING}' +STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :desconegut. +STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}...el nivell de compressió «{STRING}» no és vàlid. +STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}...el format de partida «{STRING}» no està disponible. Es revertirà a «{STRING}». STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}...s'ignorarà el conjunt de gràfics base «{STRING}» perquè no s'ha trobat. STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}...s'ignorarà el conjunt de sons base «{STRING}» perquè no s'ha trobat. STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}...s'ignorarà el conjunt de peces de música «{STRING}» perquè no s'ha trobat. STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memòria exhaurida -STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'assignació de {BYTES} de la memòria cau d'sprites ha fallat. La memòria cau d'sprites s'ha reduït a {BYTES}. Això reduirà el rendiment d'OpenTTD. Per reduir els requeriments de memòria pots probar a desactivar els gràfics de 32bpp i/o els nivells amb zoom +STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'assignació de {BYTES} de memòria cau de sprites ha fallat. S'ha reduït aquest tipus de memòria a {BYTES}. Això reduirà el rendiment de l'OpenTTD. Per reduir els requeriments de memòria, proveu de desactivar els gràfics de 32bpp i/o els nivells extra de zoom. # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} -STR_INTRO_NEW_GAME :{BLACK}Nova Partida -STR_INTRO_LOAD_GAME :{BLACK}Carrega una Partida -STR_INTRO_PLAY_SCENARIO :{BLACK}Juga un Escenari -STR_INTRO_PLAY_HEIGHTMAP :{BLACK}Juga un Mapa d'Alçades -STR_INTRO_SCENARIO_EDITOR :{BLACK}Editor d'Escenaris +STR_INTRO_NEW_GAME :{BLACK}Nova partida +STR_INTRO_LOAD_GAME :{BLACK}Carrega una partida +STR_INTRO_PLAY_SCENARIO :{BLACK}Juga un escenari +STR_INTRO_PLAY_HEIGHTMAP :{BLACK}Juga un mapa d'alçades +STR_INTRO_SCENARIO_EDITOR :{BLACK}Editor d'escenaris STR_INTRO_MULTIPLAYER :{BLACK}Multijugador -STR_INTRO_GAME_OPTIONS :{BLACK}Opcions del Joc +STR_INTRO_GAME_OPTIONS :{BLACK}Opcions del joc STR_INTRO_HIGHSCORE :{BLACK}Taula de rècords STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}Configuració STR_INTRO_NEWGRF_SETTINGS :{BLACK}Extensions NewGRF -STR_INTRO_ONLINE_CONTENT :{BLACK}Contingut en Línia -STR_INTRO_SCRIPT_SETTINGS :{BLACK}Paràmetres de les IA/Script de la Partida +STR_INTRO_ONLINE_CONTENT :{BLACK}Contingut en línia +STR_INTRO_SCRIPT_SETTINGS :{BLACK}Paràmetres de les IA/script de la partida STR_INTRO_QUIT :{BLACK}Surt STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Comença una partida nova. Ctrl+Clic salta la configuració del mapa @@ -1822,15 +1822,15 @@ STR_LIVERY_DEFAULT :Decoració est STR_LIVERY_STEAM :Locomotora a Vapor STR_LIVERY_DIESEL :Locomotora Dièsel STR_LIVERY_ELECTRIC :Locomotora Elèctrica -STR_LIVERY_MONORAIL :Locomotora Monorail -STR_LIVERY_MAGLEV :Locomotora Maglev +STR_LIVERY_MONORAIL :Locomotora monorail +STR_LIVERY_MAGLEV :Locomotora maglev STR_LIVERY_DMU :DMU STR_LIVERY_EMU :EMU -STR_LIVERY_PASSENGER_WAGON_STEAM :Vagó de passatgers (Vapor) -STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagó de passatgers (Dièsel) -STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Vagó de passatgers (Elèctric) -STR_LIVERY_PASSENGER_WAGON_MONORAIL :Vagó de Passatgers (Monorail) -STR_LIVERY_PASSENGER_WAGON_MAGLEV :Vagó de Passatgers (Maglev) +STR_LIVERY_PASSENGER_WAGON_STEAM :Vagó de passatgers (vapor) +STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagó de passatgers (dièsel) +STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Vagó de passatgers (elèctric) +STR_LIVERY_PASSENGER_WAGON_MONORAIL :Vagó de passatgers (monorail) +STR_LIVERY_PASSENGER_WAGON_MAGLEV :Vagó de passatgers (maglev) STR_LIVERY_FREIGHT_WAGON :Vagó de càrrega STR_LIVERY_BUS :Autobús STR_LIVERY_TRUCK :Camió @@ -1852,7 +1852,7 @@ STR_FACE_MALE_BUTTON :{BLACK}Home STR_FACE_MALE_TOOLTIP :{BLACK}Selecciona cares d'home STR_FACE_FEMALE_BUTTON :{BLACK}Dona STR_FACE_FEMALE_TOOLTIP :{BLACK}Selecciona cares de dona -STR_FACE_NEW_FACE_BUTTON :{BLACK}Nova Cara +STR_FACE_NEW_FACE_BUTTON :{BLACK}Nova cara STR_FACE_NEW_FACE_TOOLTIP :{BLACK}Genera una nova cara aleatòria STR_FACE_ADVANCED :{BLACK}Avançat STR_FACE_ADVANCED_TOOLTIP :{BLACK}Selecció de cara avançada @@ -1915,7 +1915,7 @@ STR_NETWORK_SERVER_LIST_GENERAL_ONLINE :{BLACK}{COMMA}/ STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Clients STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Clients en línia / clients màx.{}Companyies en línia / companyies màx. STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA} -STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Mida del Mapa +STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Mida del mapa STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Mida del mapa de la partida{}Clica per ordenar per àrea STR_NETWORK_SERVER_LIST_DATE_CAPTION :{BLACK}Data STR_NETWORK_SERVER_LIST_DATE_CAPTION_TOOLTIP :{BLACK}Data actual @@ -2024,9 +2024,9 @@ STR_NETWORK_LANG_LATVIAN :Letó STR_NETWORK_GAME_LOBBY_CAPTION :{WHITE}Lobby de partida multijugador STR_NETWORK_GAME_LOBBY_PREPARE_TO_JOIN :{BLACK}Preparant per connectar: {ORANGE}{STRING} -STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP :{BLACK}Una llista de totes les empreses actuals en aquesta partida. Pots utilitzar-ne una o bé iniciar-ne una de nova si hi ha algun lloc lliure +STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP :{BLACK}Una llista de totes les companyies actuals en aquesta partida. Podeu utilitzar-ne una o bé iniciar-ne una de nova si hi ha algun lloc lliure. -STR_NETWORK_GAME_LOBBY_COMPANY_INFO :{SILVER}INFORMACIÓ DE L'EMPRESA +STR_NETWORK_GAME_LOBBY_COMPANY_INFO :{SILVER}INFORMACIÓ DE LA COMPANYIA STR_NETWORK_GAME_LOBBY_COMPANY_NAME :{SILVER}Nom companyia: {WHITE}{STRING} STR_NETWORK_GAME_LOBBY_INAUGURATION_YEAR :{SILVER}Inauguració: {WHITE}{NUM} STR_NETWORK_GAME_LOBBY_VALUE :{SILVER}Valor de la companyia: {WHITE}{CURRENCY_LONG} @@ -2038,8 +2038,8 @@ STR_NETWORK_GAME_LOBBY_VEHICLES :{SILVER}Vehicle STR_NETWORK_GAME_LOBBY_STATIONS :{SILVER}Estacions: {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {SHIP}, {NUM} {PLANE} STR_NETWORK_GAME_LOBBY_PLAYERS :{SILVER}Jugadors: {WHITE}{STRING} -STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Nova Empresa -STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Obre una nova Empresa +STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Crea companyia nova +STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Obre una nova companyia. STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Espectador STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Veure la partida com a espectador STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Uneix-te a la companyia @@ -2065,11 +2065,11 @@ STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Desconnecta -STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor protegit. Entra la contrasenya -STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Empresa protegida. Entra la contrasenya +STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor protegit: escriviu-ne la contrasenya +STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Companyia protegida: escriviu-ne la contrasenya # Network company list added strings -STR_NETWORK_COMPANY_LIST_CLIENT_LIST :{WHITE}Llista de Clients +STR_NETWORK_COMPANY_LIST_CLIENT_LIST :{WHITE}Llista de clients STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Espectador STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nova companyia @@ -2078,7 +2078,7 @@ STR_NETWORK_CLIENTLIST_KICK :Breu STR_NETWORK_CLIENTLIST_BAN :Prohibit STR_NETWORK_CLIENTLIST_GIVE_MONEY :Entrega diners STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Parla a tothom -STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Parla a l'Empresa +STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Parla amb la companyia STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT :Missatge Privat STR_NETWORK_SERVER :Servidor @@ -2207,7 +2207,7 @@ STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Deselecc STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Marca tots els continguts a no ser descarregats STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Cerca en webs externes STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Cerca contingut no disponible al servei de continguts d'OpenTTD en webs no associades amb OpenTTD -STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Estàs sortint d'OpenTTD! +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Estàs sortint de l'OpenTTD! STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Els termes i condicions per descarregar contingut des de webs externes varia.{}Hauràs d'adreçar-te a les webs externes per trobar instruccions sobre com instal·lar contingut a OpenTTD.{}Vols continuar? STR_CONTENT_FILTER_TITLE :{BLACK}Marca/anomena filtre: STR_CONTENT_OPEN_URL :{BLACK}Visita la web @@ -2306,10 +2306,10 @@ STR_JOIN_WAYPOINT_CAPTION :{WHITE}Uneix pu STR_JOIN_WAYPOINT_CREATE_SPLITTED_WAYPOINT :{YELLOW}Construeix un punt de pas separat # Rail construction toolbar -STR_RAIL_TOOLBAR_RAILROAD_CONSTRUCTION_CAPTION :Construcció de Ferrocarril -STR_RAIL_TOOLBAR_ELRAIL_CONSTRUCTION_CAPTION :Construcció de Ferrocarril Elèctric -STR_RAIL_TOOLBAR_MONORAIL_CONSTRUCTION_CAPTION :Construcció de Monorail -STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Construcció de Maglev +STR_RAIL_TOOLBAR_RAILROAD_CONSTRUCTION_CAPTION :Construcció de ferrocarril +STR_RAIL_TOOLBAR_ELRAIL_CONSTRUCTION_CAPTION :Construcció de ferrocarril elèctric +STR_RAIL_TOOLBAR_MONORAIL_CONSTRUCTION_CAPTION :Construcció de monorail +STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Construcció de maglev STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Construeix vies de tren. Ctrl canvia entre contrueix/treu la construcció de vies. Shift commuta construeix/mostra el cost estimat STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Construeix vies de tren utilitzant el mode Autorail. Ctrl canvia entre construeix/treu la construcció de vies de tren. Shift commuta construeix/mostra el cost estimat @@ -2333,7 +2333,7 @@ STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}Seleccio # Rail waypoint construction window STR_WAYPOINT_CAPTION :{WHITE}Punt de pas -STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Selecciona tipus de punt de control +STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Selecciona el tipus de punt de pas. # Rail station construction window STR_STATION_BUILD_RAIL_CAPTION :{WHITE}Estacions de Tren @@ -2433,8 +2433,8 @@ STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}Construe STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Construeix un port. Ctrl permet ajuntar estacions. Shift commuta construeix/mostra el cost estimat STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Situa una boia que pot ser útil per fer punts de control addicionals. Shift commuta construeix/mostra el cost estimat STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK} Construeix aqüeducte. Shift commuta construeix/mostra el cost estimat -STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Defineix l'àrea d'aigua.{}Fa un canal, excepte si CTRL està polsat al nivell de mar, llavors s'inundaran els voltants -STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Situa rius +STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Defineix caselles com a canals d'aigua.{}Amb Ctrl+Clic a nivell de mar, es defineix una casella de mar i s'inundaran els seus voltants. +STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Crea rius i caselles d'aigua. # Ship depot construction window STR_DEPOT_BUILD_SHIP_CAPTION :{WHITE}Drassanes @@ -2450,7 +2450,7 @@ STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Construe # Airport construction window STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Aeroports STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Selecciona mida/tipus d'aeroport -STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Classe d'Aeroport +STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Classe d'aeroport STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Disposició {NUM} STR_AIRPORT_SMALL :Petit @@ -2681,8 +2681,8 @@ STR_LAI_BRIDGE_DESCRIPTION_AQUEDUCT :Aqüeducte STR_LAI_OBJECT_DESCRIPTION_TRANSMITTER :Repetidor STR_LAI_OBJECT_DESCRIPTION_LIGHTHOUSE :Far -STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Seu de l'Empresa -STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propietat de l'Empresa +STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Seu de la companyia +STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propietat de l'empresa # About OpenTTD window STR_ABOUT_OPENTTD :{WHITE}Quant a l'OpenTTD @@ -2693,10 +2693,10 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Desa la Partida STR_SAVELOAD_LOAD_CAPTION :{WHITE}Carrega una Partida -STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Desa l'Escenari -STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Carrega un Escenari -STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Carrega un Mapa d'alçades -STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Desa Mapa d'alçades +STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Desa l'escenari +STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Carrega un escenari +STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Carrega un mapa d'alçades +STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Desa el mapa d'alçades STR_SAVELOAD_HOME_BUTTON :{BLACK}Clica aquí per anar a la carpeta predeterminada de desa/carrega actual STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} lliures STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Llista de dispositius de disc, carpetes i arxius de partides desades @@ -2773,7 +2773,7 @@ STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Canvia l # Map generation progress STR_GENERATION_WORLD :{WHITE}Generant món... STR_GENERATION_ABORT :{BLACK}Avorta -STR_GENERATION_ABORT_CAPTION :{WHITE}Avorta la Generació del Món +STR_GENERATION_ABORT_CAPTION :{WHITE}Avorta la generació del mapa STR_GENERATION_ABORT_MESSAGE :{YELLOW}Realment vols avortar la generació? STR_GENERATION_PROGRESS :{WHITE}{NUM}% complet STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM} @@ -2907,11 +2907,11 @@ STR_NEWGRF_ERROR_INVALID_ID :Intent d'utilit STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} conté un sprite corrupte. Tots els sprites corruptes seran mostrats amb un interrogant vermell (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Conté múltiples entrades d'acció 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :S'ha llegit després del final d'un pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Al joc de gràfics base establert actualment li falten un nombre d'sprites.{}Si us plau actualitza el joc de gràfics base -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Als gràfics base actualment utilitzats els hi falta un nombre d'sprites.{}Si us plau actualitza el conjunt de gràfics base.{}Com que estàs jugant amb una {YELLOW}versió de desenvolupament d'OpenTTD{WHITE}, pot ser que necessitis una {YELLOW}versió de desenvolupament dels gràfics base{WHITE} +STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Al joc de gràfics base establert actualment li falten un nombre de sprites.{}Si us plau, actualitzeu el joc de gràfics base. +STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Als gràfics base actualment utilitzats els hi falta un nombre de sprites.{}Si us plau, actualitzeu el conjunt de gràfics base.{}Com que esteu jugant amb una {YELLOW}versió de desenvolupament de l'OpenTTD{WHITE}, pot ser que necessiteu una {YELLOW}versió de desenvolupament dels gràfics base{WHITE}. STR_NEWGRF_ERROR_GRM_FAILED :Els recursos GRF demanats no estan disponibles (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ha estat desactivat per {STRING} -STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de disposició d'sprite invàlid/desconegut (sprite {3:NUM}) +STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de disposició de sprite no vàlid o desconegut (sprite {3:NUM}). # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Alerta! @@ -3009,7 +3009,7 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Canvia el nom d # Town local authority window STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} autoritat local -STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ratis de l'Empresa de Transports: +STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ratis de la companyia de transports: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Accions disponibles: STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Llista de coses per fer en aquesta població - clica en un ítem per més detalls @@ -3172,12 +3172,12 @@ STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Evita qu # Waypoint/buoy view window STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT} -STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centra la vista principal al lloc del punt de control. Ctrl+Clic obre una nova vista al lloc del punt de control -STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Canvia el nom del punt de trobada +STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centra la vista principal al lloc del punt de pas. Amb Ctrl+Clic, obre una nova vista al lloc del punt de pas. +STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Canvia el nom del punt de pas STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centra la vista principal en la boia. Amb Ctrl+Clic, obre una nova vista centrada en la boia. STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Canvia el nom de la boia -STR_EDIT_WAYPOINT_NAME :{WHITE}Edita nom del punt de pas +STR_EDIT_WAYPOINT_NAME :{WHITE}Edita el nom del punt de pas # Finances window STR_FINANCES_CAPTION :{WHITE}Finances de {COMPANY} {BLACK}{COMPANY_NUM} @@ -3302,14 +3302,14 @@ STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produeix STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends -STR_CONFIG_GAME_PRODUCTION :{WHITE}Canvia producció (múltiple de 8, fins a 2040) -STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Canvia el nivell de producció (percentatge, fins al 800%) +STR_CONFIG_GAME_PRODUCTION :{WHITE}Canvia la producció (múltiple de 8, fins a 2040) +STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Canvia el nivell de producció (en percentatge, fins a 800%) # Vehicle lists -STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} Trens -STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} - {COMMA} Vehicles -STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} Vaixells -STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Avions +STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} tren{P "" s} +STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} - {COMMA} vehicle{P "" s} +STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} vaixell{P "" s} +STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} avi{P ó ons} STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Trens - clica al tren per més informació STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Automòbils - clica en un vehicle per més informació @@ -3318,26 +3318,26 @@ STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Avió - STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Benefici enguany: {CURRENCY_LONG} (darrer any: {CURRENCY_LONG}) -STR_VEHICLE_LIST_AVAILABLE_TRAINS :Trens Disponibles -STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Vehicles Disponibles -STR_VEHICLE_LIST_AVAILABLE_SHIPS :Vaixells Disponibles -STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Avions Disponibles +STR_VEHICLE_LIST_AVAILABLE_TRAINS :Trens disponibles +STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Vehicles disponibles +STR_VEHICLE_LIST_AVAILABLE_SHIPS :Vaixells disponibles +STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Avions disponibles STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}Veure una llista dels models disponibles per aquest tipus de vehicle -STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Administra llista +STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Administra la llista STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Envia instruccions a tots els vehicles de la llista -STR_VEHICLE_LIST_REPLACE_VEHICLES :Substitueix Vehicles -STR_VEHICLE_LIST_SEND_FOR_SERVICING :Enviar a fer Revisió +STR_VEHICLE_LIST_REPLACE_VEHICLES :Substitueix vehicles +STR_VEHICLE_LIST_SEND_FOR_SERVICING :Envia a fer revisió -STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Enviar a la Cotxera -STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Enviar a la Cotxera -STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Enviar a la Drassana -STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Enviar a l'Hangar +STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Envia a la cotxera +STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Envia a la cotxera +STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Envia a la drassana +STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Envia a l'hangar STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Clica per parar tots els vehicles de la llista STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Clica per engegar tots els vehicles de la llista -STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}Ordres compartides de {COMMA} Vehicle{P "" s} +STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}Ordres compartides de {COMMA} vehicle{P "" s} # Group window STR_GROUP_ALL_TRAINS :Tots els trens @@ -3384,7 +3384,7 @@ STR_PURCHASE_INFO_RUNNINGCOST :{BLACK}Cost d'u STR_PURCHASE_INFO_CAPACITY :{BLACK}Capacitat: {GOLD}{CARGO_LONG} {STRING} STR_PURCHASE_INFO_REFITTABLE :(remodelable) STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Dissenyat: {GOLD}{NUM}{BLACK} Vida: {GOLD}{COMMA} any{P "" s} -STR_PURCHASE_INFO_RELIABILITY :{BLACK}Màx. Fiabilitat: {GOLD}{COMMA}% +STR_PURCHASE_INFO_RELIABILITY :{BLACK}Fiabilitat màxima: {GOLD}{COMMA}% STR_PURCHASE_INFO_COST :{BLACK}Cost: {GOLD}{CURRENCY_LONG} STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Pes: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT}) STR_PURCHASE_INFO_COST_SPEED :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} Velocitat: {GOLD}{VELOCITY} @@ -3393,13 +3393,13 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagons A STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Remodelable a: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Totes les càrregues STR_PURCHASE_INFO_ALL_BUT :Tots menys {CARGO_LIST} -STR_PURCHASE_INFO_MAX_TE :{BLACK}Màx. Esforç de Tracció: {GOLD}{FORCE} +STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforç de tracció màxim: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Abast: {GOLD}{COMMA} cel·les STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Llista de selecció de trens i vagons. Clica al vehicle per més informació. Ctrl+Click per a alternar entre mostrar/ocultar el vehicle ferroviari STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Llista de models de vehicles de carretera. Clica sobre el model per més informació. Amb Ctrl+Clic, commuta entre mostrar o ocultar el model. STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Llista de models de vaixells. Clica sobre el model per més informació. Amb Ctrl+Clic, commuta entre mostrar o ocultar el model. -STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Llista de selecció d'aeronaus. Clica sobre l'aeronau per més informació. Amb Ctrl+Clic, commuta entre mostrar o ocultar l'aeronau. +STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Llista de models d'aeronaus. Cliqueu sobre l'aeronau per més informació. Amb Ctrl+Clic, commuta entre mostrar o ocultar l'aeronau. STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Compra el tren/vagó STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Compra el vehicle @@ -3409,7 +3409,7 @@ STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Compra l STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Compra el tren/vagó seleccionat. Amb Maj+Clic, mostra el cost estimat sense comprar-lo. STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Compra el vehicle marcat. Amb Maj+Clic, mostra el cost estimat sense comprar-lo. STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Compra el vaixell seleccionat. Amb Maj+Clic, mostra el cost estimat sense comprar-lo. -STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Compra l'avió marcat. Amb Maj+Clic, mostra el cost estimat sense comprar-lo. +STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Compra l'aeronau marcada. Amb Maj+Clic, mostra el cost estimat sense comprar-la. STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Canvia el nom STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Canvia el nom @@ -3567,8 +3567,8 @@ STR_REPLACE_HELP_RAILTYPE :{BLACK}Tria el STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra quin model dels seleccionats a l'esquerra es substitueix, si n'hi ha STR_REPLACE_RAIL_VEHICLES :Trens de Vapor i Dièsel STR_REPLACE_ELRAIL_VEHICLES :Trens Elèctrics -STR_REPLACE_MONORAIL_VEHICLES :Trens Monorail -STR_REPLACE_MAGLEV_VEHICLES :Trens Maglev +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 @@ -3653,10 +3653,10 @@ STR_VEHICLE_INFO_AGE_RUNNING_COST_YR :{BLACK}Anys: {L STR_VEHICLE_INFO_AGE :{COMMA} any{P "" s} ({COMMA}) STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} any{P "" s} ({COMMA}) -STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vel. Màx.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vel. màx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Vel. màx: {LTBLUE}{VELOCITY} {BLACK}Abast: {LTBLUE}{COMMA} cel·les STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. Màx: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. Màx: {LTBLUE}{VELOCITY} {BLACK}Màx. E.T.: {LTBLUE}{FORCE} +STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. màx: {LTBLUE}{VELOCITY} {BLACK}E.T. màx.: {LTBLUE}{FORCE} STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Benefici d'aquest any: {LTBLUE}{CURRENCY_LONG} (darrer any: {CURRENCY_LONG}) STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Fiabilitat: {LTBLUE}{COMMA}% {BLACK}Avaries des de la darrera revisió: {LTBLUE}{COMMA} @@ -3667,7 +3667,7 @@ STR_VEHICLE_INFO_CAPACITY :{BLACK}Capacita STR_VEHICLE_INFO_CAPACITY_MULT :{BLACK}Capacitat: {LTBLUE}{CARGO_LONG}{3:STRING} (x{4:NUM}) STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}Capacitat: {LTBLUE}{CARGO_LONG}, {CARGO_LONG}{STRING} -STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Transferir Crèdits: {LTBLUE}{CURRENCY_LONG} +STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Transferir crèdits: {LTBLUE}{CURRENCY_LONG} STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Interval de les revisions: {LTBLUE}{COMMA}{NBSP}dies{BLACK} Darrera revisió: {LTBLUE}{DATE_LONG} STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Interval de les revisions: {LTBLUE}{COMMA}%{BLACK} Darrera revisió: {LTBLUE}{DATE_LONG} @@ -3976,8 +3976,8 @@ STR_AI_GAME_SCRIPT :{BLACK}Script d STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Mostra el registre de l'script de partida. STR_ERROR_AI_NO_AI_FOUND :No s'ha trobat una IA adequada per carregar.{}Aquesta IA és una IA falsa i no farà res.{}Pots descarregar diverses IA via el sistema de "Contingut en línia" -STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Un dels scripts executant-se s'ha penjat. Si us plau, reporta això a l'autor de l'script amb una captura de pantalla de la finestra de depuració IA/Script de la Partida -STR_ERROR_AI_DEBUG_SERVER_ONLY :{WHITE}Configuració de les IA/Script de la Partida +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Un dels scripts executant-se s'ha penjat. Si us plau, informeu-ne a l'autor de l'script amb una captura de pantalla de la finestra de depuració IA/script de la partida. +STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La finestra de depuració de les IA i l'script de la partida només està disponible al servidor. # AI configuration window STR_AI_CONFIG_CAPTION :{WHITE}Configuració de la IA/script de partida @@ -4094,7 +4094,7 @@ STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... no s STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... l'imatge és massa gran STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Alerta d'escala -STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}No es recomana redimensionar massa el mapa d'origen. Vols continuar amb la generació? +STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}No es recomana redimensionar massa el mapa d'origen. Voleu continuar amb la generació? # Soundset messages STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Només s'ha trobat el conjunt de sons buit. Si vols sons al joc, instal·la un conjunt de sons amb el sistema de descàrregues de continguts en línia @@ -4113,7 +4113,7 @@ STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Missatg # Generic construction errors STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Fora del marc del mapa STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Massa prop del marc del mapa -STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}No tens prou diners - et fan falta {CURRENCY_LONG} +STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}...no teniu prou diners - us fan falta {CURRENCY_LONG}. STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}Es necessita un terreny pla STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Terreny inclinat en direcció incorrecta STR_ERROR_CAN_T_DO_THIS :{WHITE}Això no es pot fer... @@ -4126,9 +4126,9 @@ STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... l'à STR_ERROR_TERRAFORM_LIMIT_REACHED :{WHITE}... s'ha arribat al límit de neteja de paisatge STR_ERROR_CLEARING_LIMIT_REACHED :{WHITE}... s'ha arribat al límit de neteja de cel·les STR_ERROR_TREE_PLANT_LIMIT_REACHED :{WHITE}... s'ha arribat al límit de plantat d'arbres -STR_ERROR_NAME_MUST_BE_UNIQUE :{WHITE}El nom ha de ser únic +STR_ERROR_NAME_MUST_BE_UNIQUE :{WHITE}...el nom ha de ser únic. STR_ERROR_GENERIC_OBJECT_IN_THE_WAY :{WHITE}{1:STRING} en el camí -STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}No està permès mentre s'està en pausa +STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}...no està permès mentre s'està en pausa. # Local authority errors STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}Les autoritats locals de {TOWN} no permeten fer això @@ -4170,7 +4170,7 @@ STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}No es po STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... massa prop del límit del mapa STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... massa prop d'una altra població STR_ERROR_TOO_MANY_TOWNS :{WHITE}... massa poblacions -STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... no queda espai al mapa +STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}...no queda espai al mapa. STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}La població no construirà carrers. Pots activar la construcció de carrers via Configuració->Interacció amb l'entorn->Poblacions STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Obres en progrés STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}No es pot eliminar aquesta població...{}Hi ha una estació, un dipòsit o una cel·la pertanyent a la població que no pot ser eliminada @@ -4182,7 +4182,7 @@ STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}No es po STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Aquí no es pot construir {STRING}... STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Aquí no es pot construir aquest tipus d'indústria... STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... massa prop d'altres indústries -STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... primer has de construir la població +STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}...abans s'ha de fundar una població. STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}... només un permès per població STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... només es pot construir en poblacions de més de 1200 hab. STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... només es pot construir en àrees de selva tropical @@ -4224,21 +4224,21 @@ STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... les # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}No es pot treure part de la estació... -STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Primer has de treure la via de l'estació +STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}...abans s'ha de treure l'estació de rail. STR_ERROR_CAN_T_REMOVE_BUS_STATION :{WHITE}No es pot treure l'estació d'autobusos... STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}No es pot treure l'estació de camions... STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}No puc treure l'estació de tramvies de passatgers STR_ERROR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}No puc treure l'estació de tramvies de mercaderies -STR_ERROR_MUST_REMOVE_ROAD_STOP_FIRST :{WHITE}Primer has de treure la parada +STR_ERROR_MUST_REMOVE_ROAD_STOP_FIRST :{WHITE}...abans s'ha de treure la parada. STR_ERROR_THERE_IS_NO_STATION :{WHITE}... aquí no hi ha estació -STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}Primer has d'enderrocar l'estació de tren -STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}Primer has d'enderrocar la parada d'autobús -STR_ERROR_MUST_DEMOLISH_TRUCK_STATION_FIRST :{WHITE}Primer has d'enderrocar l'estació de mercaderies -STR_ERROR_MUST_DEMOLISH_PASSENGER_TRAM_STATION_FIRST :{WHITE}Primer has de demolir l'estació de tramvies de passatgers -STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}Primer has de demolir l'estació de tramvies de mercaderies -STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Primer has d'enderrocar el moll -STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Primer has d'enderrocar l'aeroport +STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}...primer s'ha d'enderrocar l'estació de tren. +STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}...abans s'ha d'enderrocar la parada d'autobús. +STR_ERROR_MUST_DEMOLISH_TRUCK_STATION_FIRST :{WHITE}...abans s'ha d'enderrocar l'estació de mercaderies. +STR_ERROR_MUST_DEMOLISH_PASSENGER_TRAM_STATION_FIRST :{WHITE}...abans s'ha d'enderrocar l'estació de tramvia de passatgers. +STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}...abans s'ha d'enderrocar l'estació de tramvia de mercaderies. +STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}...abans s'ha d'enderrocar el moll. +STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}...abans s'ha d'enderrocar l'aeroport. # Waypoint related errors STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Més d'un punt de pas existent adjunt @@ -4246,10 +4246,10 @@ STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Massa pr STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}Aquí no es pot construir un punt de pas de tren... STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}Aquí no es pot situar una boia... -STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}No es pot canviar el nom del punt de control... +STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}No es pot canviar el nom del punt de pas... STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}Aquí no es pot treure un punt de pas de tren... -STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}Primer s'ha de treure la via punt de control +STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}...abans s'ha de treure el punt de pas. STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... boia en el camí STR_ERROR_BUOY_IS_IN_USE :{WHITE}... boia en ús per una altra companyia! @@ -4286,9 +4286,9 @@ STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(límit de dine # Rail construction errors STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Combinació de vies impossible -STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Abans s'han de treure els senyals +STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}...abans s'han de treure els senyals. STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Via de tren no apropiada -STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}S'ha de treure la via primer +STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}...abans s'ha de treure la via. STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}La carretera és un d'un sol sentit o està bloquejada STR_ERROR_CROSSING_DISALLOWED :{WHITE}Els passos a nivell no estan permesos en aquest tipus de via STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Aquí no es poden construir senyals... @@ -4302,7 +4302,7 @@ STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}... no h STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Aquí no es pot convertir el tipus de via... # Road construction errors -STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}S'ha de treure la carretera primer +STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}...abans s'ha de treure la carretera. STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... les carreteres de sentit únic no poden tenir encreuaments STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}Aquí no es pot construir una carretera... STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}No puc construir la via de tramvia aquí... @@ -4315,12 +4315,12 @@ STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... no h STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Aquí no es poden construir canals... STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}Aquí no es pot construir una resclosa... STR_ERROR_CAN_T_PLACE_RIVERS :{WHITE}Aquí no es poden posar rius... -STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... s'han de construir sobre l'aigua +STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}...s'ha de construir sobre l'aigua. STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... no es pot construir sobre l'aigua STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... no es pot construir a mar obert STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... no es pot construir sobre el canal STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... no es pot construir sobre el riu -STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Has de demolir el canal primer +STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}...abans s'ha d'enderrocar el canal. STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}Aquí no es pot construir un aqüeducte... # Tree related errors @@ -4330,7 +4330,7 @@ STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Aquí no # Bridge related errors STR_ERROR_CAN_T_BUILD_BRIDGE_HERE :{WHITE}Aquí no es pot construir el pont... -STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Primer has d'enderrocar el pont +STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}...abans s'ha d'enderrocar el pont. STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}No es pot començar i acabar a la mateixa posició STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}Les capçaleres del pont no són al mateix nivell STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}El pont és massa baix pel terreny @@ -4343,7 +4343,7 @@ STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}El pont # Tunnel related errors STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Aquí no es pot construir el túnel... STR_ERROR_SITE_UNSUITABLE_FOR_TUNNEL :{WHITE}Lloc inadequat per l'entrada del túnel -STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Primer has d'enderrocar el túnel +STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}...abans s'ha d'enderrocar el túnel. STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Un altre túnel en el camí STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}El túnel acabarà fora del mapa STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}Impossible excavar la terra a l'altre extrem del túnel @@ -4432,7 +4432,7 @@ STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}No s'ha STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}L'avió està volant # Order related errors -STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}No hi ha més espai per ordres +STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}...no hi ha més espai disponible per ordres. STR_ERROR_TOO_MANY_ORDERS :{WHITE}Massa ordres STR_ERROR_CAN_T_INSERT_NEW_ORDER :{WHITE}No es pot afegir una nova ordre... STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}No es pot esborrar aquesta ordre... @@ -4487,9 +4487,9 @@ STR_TOWN_BUILDING_NAME_STATUE_1 :Estàtua STR_TOWN_BUILDING_NAME_FOUNTAIN_1 :Font STR_TOWN_BUILDING_NAME_PARK_1 :Parc STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_2 :Bloc d'oficines -STR_TOWN_BUILDING_NAME_SHOPS_AND_OFFICES_1 :Botigues i Oficines +STR_TOWN_BUILDING_NAME_SHOPS_AND_OFFICES_1 :Botigues i oficines STR_TOWN_BUILDING_NAME_MODERN_OFFICE_BUILDING_1 :Edifici d'oficines modern -STR_TOWN_BUILDING_NAME_WAREHOUSE_1 :Gran Magatzem +STR_TOWN_BUILDING_NAME_WAREHOUSE_1 :Magatzem gran STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_3 :Bloc d'oficines STR_TOWN_BUILDING_NAME_STADIUM_1 :Estadi STR_TOWN_BUILDING_NAME_OLD_HOUSES_1 :Cases velles @@ -4504,11 +4504,11 @@ STR_TOWN_BUILDING_NAME_STADIUM_2 :Estadi STR_TOWN_BUILDING_NAME_OFFICES_1 :Oficines STR_TOWN_BUILDING_NAME_HOUSES_2 :Cases STR_TOWN_BUILDING_NAME_CINEMA_1 :Cine -STR_TOWN_BUILDING_NAME_SHOPPING_MALL_1 :Grans Magatzems +STR_TOWN_BUILDING_NAME_SHOPPING_MALL_1 :Grans magatzems STR_TOWN_BUILDING_NAME_IGLOO_1 :Iglú STR_TOWN_BUILDING_NAME_TEPEES_1 :Tipis -STR_TOWN_BUILDING_NAME_TEAPOT_HOUSE_1 :Casa-Tetera -STR_TOWN_BUILDING_NAME_PIGGY_BANK_1 :Banc-Guardiola Porquet +STR_TOWN_BUILDING_NAME_TEAPOT_HOUSE_1 :Casa-tetera +STR_TOWN_BUILDING_NAME_PIGGY_BANK_1 :Banc-guardiola porquet ##id 0x4800 # industry names @@ -4554,7 +4554,7 @@ STR_INDUSTRY_NAME_SUGAR_MINE :{G=Femenin}Mina ############ These strings may never get a new id, or savegames will break! ##id 0x6000 STR_SV_EMPTY : -STR_SV_UNNAMED :Sense Nom +STR_SV_UNNAMED :Sense nom STR_SV_TRAIN_NAME :{G=Masculin}Tren {COMMA} STR_SV_ROAD_VEHICLE_NAME :{G=Masculin}Automòbil {COMMA} STR_SV_SHIP_NAME :{G=Masculin}Vaixell {COMMA} @@ -4619,95 +4619,95 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_30_ELECTRIC :SH '30' (Elèct STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_40_ELECTRIC :SH '40' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_T_I_M_ELECTRIC :'T.I.M.' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_ASIASTAR_ELECTRIC :'AsiaStar' (Elèctrica) -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PASSENGER_CAR :{G=Masculin}Vagó per Passatgers -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_MAIL_VAN :{G=Masculin}Vagó per Correu -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :{G=Masculin}Vagó per Carbó -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_OIL_TANKER :{G=Masculin}Tanc de Petroli -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_LIVESTOCK_VAN :{G=Masculin}Vagó per Bestiar -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GOODS_VAN :{G=Masculin}Vagó de Mercaderies -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GRAIN_HOPPER :{G=Masculin}Vagó per Gra -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WOOD_TRUCK :{G=Masculin}Vagó per Fusta -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_IRON_ORE_HOPPER :{G=Masculin}Vagó per Mineral de Ferro -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_STEEL_TRUCK :{G=Masculin}Vagó per Acer -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_ARMORED_VAN :{G=Masculin}Vagó Blindat -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FOOD_VAN :{G=Masculin}Vagó per Queviures -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PAPER_TRUCK :{G=Masculin}Vagó per Paper -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :{G=Masculin}Vagó per Mineral de Coure -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WATER_TANKER :{G=Masculin}Tanc d'Aigua -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FRUIT_TRUCK :{G=Masculin}Vagó per Fruita -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_RUBBER_TRUCK :{G=Masculin}Vagó per Cautxú -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_SUGAR_TRUCK :{G=Masculin}Vagó per Sucre -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COTTON_CANDY_HOPPER :{G=Masculin}Vagó per Cotó de Sucre -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOFFEE_HOPPER :{G=Masculin}Vagó per Caramels -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BUBBLE_VAN :{G=Masculin}Vagó per Bombolles -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COLA_TANKER :{G=Masculin}Tanc per Refresc -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_CANDY_VAN :{G=Masculin}Vagó per Dolços -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOY_VAN :{G=Masculin}Vagó per Joguines -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BATTERY_TRUCK :{G=Masculin}Vagó per Piles -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :{G=Masculin}Vagó per Begudes Gasoses -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PLASTIC_TRUCK :{G=Masculin}Vagó per Plàstic +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PASSENGER_CAR :{G=Masculin}Vagó de passatgers +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_MAIL_VAN :{G=Masculin}Vagó de correu +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :{G=Masculin}Vagó de carbó +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_OIL_TANKER :{G=Masculin}Tanc de petroli +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_LIVESTOCK_VAN :{G=Masculin}Vagó de bestiar +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GOODS_VAN :{G=Masculin}Vagó de mercaderies +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GRAIN_HOPPER :{G=Masculin}Vagó de gra +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WOOD_TRUCK :{G=Masculin}Vagó de fusta +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_IRON_ORE_HOPPER :{G=Masculin}Vagó de mineral de ferro +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_STEEL_TRUCK :{G=Masculin}Vagó d'acer +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_ARMORED_VAN :{G=Masculin}Vagó blindat +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FOOD_VAN :{G=Masculin}Vagó de queviures +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PAPER_TRUCK :{G=Masculin}Vagó de paper +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :{G=Masculin}Vagó de mineral de coure +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WATER_TANKER :{G=Masculin}Tanc d'aigua +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FRUIT_TRUCK :{G=Masculin}Vagó de fruita +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_RUBBER_TRUCK :{G=Masculin}Vagó de cautxú +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_SUGAR_TRUCK :{G=Masculin}Vagó de sucre +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COTTON_CANDY_HOPPER :{G=Masculin}Vagó de cotó de sucre +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOFFEE_HOPPER :{G=Masculin}Vagó de caramels +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BUBBLE_VAN :{G=Masculin}Vagó de bombolles +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COLA_TANKER :{G=Masculin}Tanc de refresc +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_CANDY_VAN :{G=Masculin}Vagó de dolços +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOY_VAN :{G=Masculin}Vagó de joguines +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BATTERY_TRUCK :{G=Masculin}Vagó de piles +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :{G=Masculin}Vagó de begudes gasoses +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PLASTIC_TRUCK :{G=Masculin}Vagó de plàstic STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_X2001_ELECTRIC :'X2001' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_WIZZOWOW_Z99 :Wizzowow Z99 -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :{G=Masculin}Vagó de Passatgers -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_MAIL_VAN :{G=Masculin}Vagó per Correu -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :{G=Masculin}Vagó per Carbó -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_OIL_TANKER :{G=Masculin}Tanc de Petroli -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_LIVESTOCK_VAN :{G=Masculin}Vagó per Bestiar -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GOODS_VAN :{G=Masculin}Vagó de Mercaderies -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GRAIN_HOPPER :{G=Masculin}Vagó per Gra -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WOOD_TRUCK :{G=Masculin}Vagó per Fusta -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_IRON_ORE_HOPPER :{G=Masculin}Vagó per Mineral de Ferro -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_STEEL_TRUCK :{G=Masculin}Vagó per Acer -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_ARMORED_VAN :{G=Masculin}Vagó Blindat -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FOOD_VAN :{G=Masculin}Vagó per Queviures -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PAPER_TRUCK :{G=Masculin}Vagó per Paper -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :{G=Masculin}Vagó per Mineral de Coure -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WATER_TANKER :{G=Masculin}Tanc d'Aigua -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FRUIT_TRUCK :{G=Masculin}Vagó per Fruita -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_RUBBER_TRUCK :{G=Masculin}Vagó per Cautxú -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_SUGAR_TRUCK :{G=Masculin}Vagó per Sucre -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COTTON_CANDY_HOPPER :{G=Masculin}Vagó per Cotó de Sucre -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOFFEE_HOPPER :{G=Masculin}Vagó per Caramels -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BUBBLE_VAN :{G=Masculin}Vagó per Bombolles -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COLA_TANKER :{G=Masculin}Tanc per Refresc -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_CANDY_VAN :{G=Masculin}Vagó per Dolços -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :{G=Masculin}Vagó per Joguines -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :{G=Masculin}Vagó per Piles -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :{G=Masculin}Vagó per Begudes Gasoses -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PLASTIC_TRUCK :{G=Masculin}Vagó per Plàstic +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :{G=Masculin}Vagó de passatgers +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_MAIL_VAN :{G=Masculin}Vagó de correu +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :{G=Masculin}Vagó de carbó +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_OIL_TANKER :{G=Masculin}Tanc de petroli +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_LIVESTOCK_VAN :{G=Masculin}Vagó de bestiar +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GOODS_VAN :{G=Masculin}Vagó de mercaderies +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GRAIN_HOPPER :{G=Masculin}Vagó de gra +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WOOD_TRUCK :{G=Masculin}Vagó de fusta +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_IRON_ORE_HOPPER :{G=Masculin}Vagó de mineral de ferro +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_STEEL_TRUCK :{G=Masculin}Vagó d'acer +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_ARMORED_VAN :{G=Masculin}Vagó blindat +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FOOD_VAN :{G=Masculin}Vagó de queviures +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PAPER_TRUCK :{G=Masculin}Vagó de paper +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :{G=Masculin}Vagó de mineral de coure +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WATER_TANKER :{G=Masculin}Tanc d'aigua +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FRUIT_TRUCK :{G=Masculin}Vagó de fruita +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_RUBBER_TRUCK :{G=Masculin}Vagó de cautxú +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_SUGAR_TRUCK :{G=Masculin}Vagó de sucre +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COTTON_CANDY_HOPPER :{G=Masculin}Vagó de cotó de sucre +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOFFEE_HOPPER :{G=Masculin}Vagó de caramels +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BUBBLE_VAN :{G=Masculin}Vagó de bombolles +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COLA_TANKER :{G=Masculin}Tanc de refresc +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_CANDY_VAN :{G=Masculin}Vagó de dolços +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :{G=Masculin}Vagó de joguines +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :{G=Masculin}Vagó de piles +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :{G=Masculin}Vagó de begudes gasoses +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PLASTIC_TRUCK :{G=Masculin}Vagó de plàstic STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cíclope' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Quimera' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :{G=Masculin}Vagó de Passatgers -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :{G=Masculin}Vagó per Correu -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COAL_CAR :{G=Masculin}Vagó per Carbó -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_OIL_TANKER :{G=Masculin}Tanc de Petroli -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_LIVESTOCK_VAN :{G=Masculin}Vagó per Bestiar -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GOODS_VAN :{G=Masculin}Vagó de Mercaderies -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GRAIN_HOPPER :{G=Masculin}Vagó per Gra -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WOOD_TRUCK :{G=Masculin}Vagó per Fusta -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_IRON_ORE_HOPPER :{G=Masculin}Vagó per Mineral de Ferro -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_STEEL_TRUCK :{G=Masculin}Vagó per Acer -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_ARMORED_VAN :{G=Masculin}Vagó Blindat -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FOOD_VAN :{G=Masculin}Vagó per Queviures -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PAPER_TRUCK :{G=Masculin}Vagó per Paper -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :{G=Masculin}Vagó per Mineral de Coure -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WATER_TANKER :{G=Masculin}Tanc d'Aigua -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FRUIT_TRUCK :{G=Masculin}Vagó per Fruita -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_RUBBER_TRUCK :{G=Masculin}Vagó per Cautxú -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_SUGAR_TRUCK :{G=Masculin}Vagó per Sucre -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COTTON_CANDY_HOPPER :{G=Masculin}Vagó per Cotó de Sucre -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOFFEE_HOPPER :{G=Masculin}Vagó per Caramels -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BUBBLE_VAN :{G=Masculin}Vagó per Bombolles -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COLA_TANKER :{G=Masculin}Tanc per Refresc -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_CANDY_VAN :{G=Masculin}Vagó per Dolços -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOY_VAN :{G=Masculin}Vagó per Joguines -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BATTERY_TRUCK :{G=Masculin}Vagó per Piles -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FIZZY_DRINK_TRUCK :{G=Masculin}Vagó per Begudes Gasoses -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PLASTIC_TRUCK :{G=Masculin}Vagó per Plàstic +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :{G=Masculin}Vagó de passatgers +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :{G=Masculin}Vagó de correu +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COAL_CAR :{G=Masculin}Vagó de carbó +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_OIL_TANKER :{G=Masculin}Tanc de petroli +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_LIVESTOCK_VAN :{G=Masculin}Vagó de bestiar +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GOODS_VAN :{G=Masculin}Vagó de mercaderies +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GRAIN_HOPPER :{G=Masculin}Vagó de gra +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WOOD_TRUCK :{G=Masculin}Vagó de fusta +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_IRON_ORE_HOPPER :{G=Masculin}Vagó de mineral de ferro +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_STEEL_TRUCK :{G=Masculin}Vagó d'acer +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_ARMORED_VAN :{G=Masculin}Vagó blindat +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FOOD_VAN :{G=Masculin}Vagó de queviures +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PAPER_TRUCK :{G=Masculin}Vagó de paper +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :{G=Masculin}Vagó de mineral de coure +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WATER_TANKER :{G=Masculin}Tanc d'aigua +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FRUIT_TRUCK :{G=Masculin}Vagó de fruita +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_RUBBER_TRUCK :{G=Masculin}Vagó de cautxú +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_SUGAR_TRUCK :{G=Masculin}Vagó de sucre +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COTTON_CANDY_HOPPER :{G=Masculin}Vagó de cotó de sucre +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOFFEE_HOPPER :{G=Masculin}Vagó de caramels +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BUBBLE_VAN :{G=Masculin}Vagó de bombolles +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COLA_TANKER :{G=Masculin}Tanc de refresc +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_CANDY_VAN :{G=Masculin}Vagó de dolços +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOY_VAN :{G=Masculin}Vagó de joguines +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BATTERY_TRUCK :{G=Masculin}Vagó de piles +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FIZZY_DRINK_TRUCK :{G=Masculin}Vagó de begudes gasoses +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PLASTIC_TRUCK :{G=Masculin}Vagó de plàstic STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_REGAL_BUS :{G=Masculin}Autobús MPS Regal STR_VEHICLE_NAME_ROAD_VEHICLE_HEREFORD_LEOPARD_BUS :{G=Masculin}Autobús Hereford Leopard STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_BUS :{G=Masculin}Autobús Foster From db8d95b1a0ec456f86912bdea87774e041214e6c Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 31 Mar 2016 17:45:35 +0000 Subject: [PATCH 021/417] (svn r27529) -Update from Eints: scottish gaelic: 3 changes by GunChleoc frisian: 6 changes by BAJansen spanish: 13 changes by SilverSurferZzZ portuguese (brazilian): 1 change by Tucalipe --- src/lang/brazilian_portuguese.txt | 2 +- src/lang/gaelic.txt | 6 +++--- src/lang/spanish.txt | 26 +++++++++++++------------- src/lang/unfinished/frisian.txt | 6 ++++++ 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 5fbf136205..7165bd60ea 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1090,7 +1090,7 @@ STR_CITY_APPROVAL_HOSTILE :Hostil STR_WARNING_NO_SUITABLE_AI :{WHITE}Não há IA compatíveis disponíveis...{}Você pode baixar várias IA's pelo sistema de 'Conteúdo Online' # Settings tree window -STR_CONFIG_SETTING_TREE_CAPTION :[WHITE}Configurações +STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}Configurações STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}Filtro: STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Maximizar tudo STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Minimizar tudo diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index ca6bc88697..cf77a8d16b 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1232,7 +1232,7 @@ STR_CURRENCY_PREVIEW :{LTBLUE}Ro-shea STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 not (£) san airgeadra agad STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Atharraich paramadair an airgeadra ghnàthaichte -STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Àireamh as motha dhe dh'fharpaisichean: {ORANGE}{COMMA} +STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Àireamh as motha dhe cho-fharpaisich: {ORANGE}{COMMA} STR_NONE :Chan eil gin STR_FUNDING_ONLY :Le maoineachadh a-mhàin @@ -1431,7 +1431,7 @@ STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Na h-uile port- STR_CONFIG_SETTING_BRIBE :Ceadaich brìbeadh an ùghdarrais ionadail: {STRING} STR_CONFIG_SETTING_BRIBE_HELPTEXT :Faodaidh companaidhean feuchainn ri ùghdarras ionadail a' bhaile a bhrìbeadh. Ma mhothaicheas neach-sgrùdaidh am brìbeadh, chan fhaod a' chompanaidh dad a dhèanamh tuilleadh sa bhaile fad sia mìosan STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Ceadaich ceannach aig còirichean giùlain às-dùnach: {STRING} -STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Ma cheannaicheas companaidh còirichean giùlain às-dùnach airson baile, chan fhaigh stèiseanan (taistealaich no carago) nan co-fharpaisichean carago sam bith fad bliadhna +STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Ma cheannaicheas companaidh còirichean giùlain às-dùnach airson baile, chan fhaigh stèiseanan (taistealaich no carago) nan co-fharpaiseach carago sam bith fad bliadhna STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Ceadaich maoineachadh thogalaichean: {STRING} STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Faodaidh companaidhean airgead a thoirt dha bhailtean ach an tog iad taighean ùra STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Ceadaich maoineachadh ath-thogail rathaidean ionadail: {STRING} @@ -1991,7 +1991,7 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}A bheil # Cheat window STR_CHEATS :{WHITE}Cealgaireachd STR_CHEATS_TOOLTIP :{BLACK}Is ciall dha bhogsaichean-cromaige gun deach a' chealgaireachd seo a chleachdadh roimhe -STR_CHEATS_WARNING :{BLACK}Rabhadh! Tha thu gu bhith a' mealladh na co-fharpaisichean agad. Thoir an aire gun cumar cuimhne air an tàmailt seo gu bràth tuilleadh +STR_CHEATS_WARNING :{BLACK}Rabhadh! Tha thu gu bhith a' mealladh nan co-fharpaiseach agad. Thoir an aire gun cumar cuimhne air an tàmailt seo gu bràth tuilleadh STR_CHEAT_MONEY :{LTBLUE}Meudaich an t-airgead le {CURRENCY_LONG} STR_CHEAT_CHANGE_COMPANY :{LTBLUE}A' cluich mar a' chompanaidh: {ORANGE}{COMMA} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Bulldozer draoidheach (thoir air falbh gnìomhachasan, oibseactan do-ghluasad): {ORANGE}{STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index c3c8073283..89be4e44c7 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -471,7 +471,7 @@ STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Historial de me STR_ABOUT_MENU_LAND_BLOCK_INFO :Información sobre terreno STR_ABOUT_MENU_SEPARATOR : STR_ABOUT_MENU_TOGGLE_CONSOLE :Activar consola -STR_ABOUT_MENU_AI_DEBUG :Depuración de Script de IA / Juego +STR_ABOUT_MENU_AI_DEBUG :Depuración de Script de Juego / IA STR_ABOUT_MENU_SCREENSHOT :Captura de pantalla STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Captura con zoom de cerca STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura con zoom por defecto @@ -870,7 +870,7 @@ STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO :{WHITE}{STATION STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIG_FONT}{BLACK}Oferta de subvención terminada:{}{}{STRING} de {STRING} a {STRING} ya no conlleva una subvención STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIG_FONT}{BLACK}Subvención retirada:{}{}Servicio de {STRING} desde {STRING} a {STRING} ya no está subvencionado STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}Se ofrece subvención:{}{}¡Al primer servicio de {STRING} que cubra la línea desde {STRING} a {STRING} se le otorgará una subvención durante un año por parte de las autoridades locales! -STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará el 50% más durante un año! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará un 50% más durante un año! STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará tasa doble durante un año! STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará tasa triple durante un año! STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará tasa cuádruple durante un año! @@ -1048,7 +1048,7 @@ STR_VARIETY_VERY_LOW :Muy baja STR_VARIETY_LOW :Baja STR_VARIETY_MEDIUM :Media STR_VARIETY_HIGH :Alta -STR_VARIETY_VERY_HIGH :Muy Alta +STR_VARIETY_VERY_HIGH :Muy alta STR_AI_SPEED_VERY_SLOW :Muy lenta STR_AI_SPEED_SLOW :Lenta @@ -1328,7 +1328,7 @@ STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una o m STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o más casillas en uno de los bordes no es agua STR_CONFIG_SETTING_STATION_SPREAD :Máxima extensión de estaciones: {STRING} -STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Máxima área que pueden ocupar las partes de una estación. Valores muy altos pueden ralentizar el juego +STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Área máxima que pueden ocupar las partes de una estación. Cuidado, los valores muy altos pueden ralentizar el juego STR_CONFIG_SETTING_SERVICEATHELIPAD :Realizar, automáticamente, el mantenimiento de los helicópteros en helipuertos: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Dar servicio a los helicópteros después de cada aterrizaje, aunque no haya hangar en el aeropuerto STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Une la barra de terreno a la barra de construcción: {STRING} @@ -1451,7 +1451,7 @@ STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactivar barc STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activar esta opción deshabilita la construcción de barcos para las IA STR_CONFIG_SETTING_AI_PROFILE :Perfil por defecto: {STRING} -STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Permite decidir el perfil a emplear para IA aleatorias o para los valores iniciales al añadir una nueva IA o un script de juego +STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Permite decidir el perfil a emplear para IAs aleatorias o para los valores iniciales al añadir una nueva IA o un script de juego STR_CONFIG_SETTING_AI_PROFILE_EASY :Fácil STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Intermedio STR_CONFIG_SETTING_AI_PROFILE_HARD :Difícil @@ -1476,7 +1476,7 @@ STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Fija el interva STR_CONFIG_SETTING_NOSERVICE :Desactivar mantenimiento cuando las averías están desactivadas: {STRING} STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Cuando se activa, los vehículos no reciben mantenimiento si no pueden romperse STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Activar límites de velocidad en vagones: {STRING} -STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Si se activa, se tienen en cuenta los límites de velocidad de los vagones a la hora de decidir la máxima velocidad de un tren +STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Si se activa, se tienen en cuenta los límites de velocidad de los vagones a la hora de decidir la velocidad máxima de un tren STR_CONFIG_SETTING_DISABLE_ELRAILS :Desactivar ferrocarriles eléctricos: {STRING} STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Si se activa, no es necesario electrificar los ferrocarriles para hacer que los trenes eléctricos puedan recorrerlos @@ -1582,9 +1582,9 @@ STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Número máximo STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA} STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :deshabilitado STR_CONFIG_SETTING_ZOOM_MIN :Máximo acercamiento: {STRING} -STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Máximo nivel de acercamiento para las ventanas de vista y la vista principal. Aumentar el nivel de acercamiento aumenta el consumo de memoria del juego +STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Nivel máximo de acercamiento para las ventanas de vista y la vista principal. Cuidado, aumentar el nivel de acercamiento incrementa el consumo de memoria del juego STR_CONFIG_SETTING_ZOOM_MAX :Máximo alejamiento: {STRING} -STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Máximo nivel de alejamiento para las ventanas de vista y la vista principal. Niveles altos de alejamiento pueden hacer que el juego se ralentize +STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Nivel máximo de alejamiento para las ventanas de vista y la vista principal. Cuidado, niveles altos de alejamiento pueden ralentizar el juego STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal @@ -1759,7 +1759,7 @@ STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Mostrar STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Mostrar configuración STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Muestra ajustes de NewGRF STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comprobar si hay nuevos contenidos actualizados para descargar -STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts de IA y Juego +STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts de juego e IAs STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' STR_INTRO_TRANSLATION :{BLACK}A esta traducción le faltan {NUM} cadena{P "" s}. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta readme.txt para más detalles. @@ -3956,7 +3956,7 @@ STR_DATE_YEAR_TOOLTIP :{BLACK}Seleccio # AI debug window -STR_AI_DEBUG :{WHITE}Depuración de Scripts de IA / Juego +STR_AI_DEBUG :{WHITE}Depuración de Scripts de Juego / IA STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM}) STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Nombre del script STR_AI_DEBUG_SETTINGS :{BLACK}Configuración @@ -3976,13 +3976,13 @@ STR_AI_GAME_SCRIPT :{BLACK}Script d STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Comprobar el registro del Script de Juego STR_ERROR_AI_NO_AI_FOUND :No se encontró IA apropiada para cargar.{}Ésta es una IA por defecto que no realiza acción alguna.{}Puedes descargar nuevas IA mediante el sistema de 'Contenido Online' -STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Uno de los scripts ejecutados ha fallado. Por favor, reporte el fallo al autor del script con una captura de la ventana de depuración de IA / Script +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Uno de los scripts ejecutados ha fallado. Por favor, informe del fallo al autor del script con una captura de la ventana de depuración de Script / IA STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La ventana de depuración de scripts solo está disponible para el servidor # AI configuration window STR_AI_CONFIG_CAPTION :{WHITE}Configuración de Scripts -STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Script de Juego que será cargado en la próxima partida -STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Las IA que serán cargadas en la próxima partida +STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Script de Juego que será cargada en la próxima partida +STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}IAs que serán cargadas en la próxima partida STR_AI_CONFIG_HUMAN_PLAYER :Jugador Humano STR_AI_CONFIG_RANDOM_AI :IA aleatoria STR_AI_CONFIG_NONE :(ninguna) diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 72d8dfd96e..641699d799 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2208,6 +2208,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Bou in t STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Bou autotunnel STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Bou in tramtunnel. Brûk Shift foar ferwachte kosten. STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Wikselje tusken bou en fuortheljen fan dyken +STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Wikselje tusken bou en fuortheljen fan tramwei # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Autodepot rjochting @@ -2368,6 +2369,7 @@ STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Treinspo STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Gemiente: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :Neat STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Boud: {LTBLUE}{DATE_LONG} +STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stasjonstype: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}Fleanfjild klasse: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}Fleanfjild namme: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Fleanfjild tile namme: {LTBLUE}{STRING} @@ -3172,6 +3174,7 @@ STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Skepen - STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}tôgje trein hjirhinne om it te ferkeapjen. STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}tôgje wein hjirhinne om it te ferkeapjen. +STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}Tôgje skip hjirhinne om it te ferkeapjen STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}tôgje fleantúg hjirhinne om it te ferkeapjen. @@ -3254,6 +3257,7 @@ STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Trein om STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Wein ombouwe om in oar soart fracht mei te nimmen STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Skip ombouwe nei in oar saort fracht +STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}Rydrjochting fan trein omkeare STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}Lit oarders fan'e wein sjen. Brûk Ctrl+Klik om de tjinstregeling te sjen STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}Lit de rûte fan dit skip sjen. Ctrl+Click lit tsjinstregeling sjen @@ -3312,6 +3316,7 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Underhâ STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Underhâldsinterval ferheegje mei 10. Ctrl+Klik ferheegt underhâldsinterval mei 5 STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Tiid tusken ûnderhâldsbeurten ferleegje mei 10. Ctrl+Klik ferleegt de tiid tusken ûnderhâldsbeurten mei 5. +STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Feroarje tiid tusken ûnderhâldsbeurten STR_VEHICLE_DETAILS_DEFAULT :Standert STR_VEHICLE_DETAILS_DAYS :Dagen STR_VEHICLE_DETAILS_PERCENT :Persintaazje @@ -3548,6 +3553,7 @@ STR_AI_CONFIG_NONE :(gjin) STR_AI_CONFIG_MOVE_UP :{BLACK}Pleats heger STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Set selektearre AI boppenoan de list +STR_AI_CONFIG_MOVE_DOWN :{BLACK}Pleats leger STR_AI_CONFIG_GAMESCRIPT :{SILVER}Spulskript STR_AI_CONFIG_AI :{SILVER}AIs From 05b5c945cc36c294358941f106cbbf99bcdb072b Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 1 Apr 2016 17:45:37 +0000 Subject: [PATCH 022/417] (svn r27530) -Update from Eints: catalan: 2 changes by juanjo --- src/lang/catalan.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 98bfc24b69..d5b64beb53 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1445,7 +1445,7 @@ STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desactiva els t STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir trens i altres vehicles que utilitzen rails als jugadors IA. STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Desactiva els vehicles de carretera per a les IA: {STRING} STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activant aquesta opció fa que sigui impossible construir automòbils i altres vehicles de carretera als jugadors IA. -STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactiva les aeronaus per a les IA de l'ordinador: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactiva les aeronaus per a les IA: {STRING} STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Activant aquesta opció fa que sigui impossible construir aeronaus als jugadors IA. STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactiva els vaixells per a les IA: {STRING} STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir vaixells als jugadors IA. @@ -3309,7 +3309,7 @@ STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Canvia e STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} tren{P "" s} STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} - {COMMA} vehicle{P "" s} STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} vaixell{P "" s} -STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} avi{P ó ons} +STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} aeronau{P "" s} STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Trens - clica al tren per més informació STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Automòbils - clica en un vehicle per més informació From e580d9e623b453777a6819b7a03317bdb78b53c5 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 2 Apr 2016 15:59:14 +0000 Subject: [PATCH 023/417] (svn r27533) -Update: Baseset translations --- bin/baseset/orig_dos.obg | 1 + bin/baseset/orig_win.obg | 1 + 2 files changed, 2 insertions(+) diff --git a/bin/baseset/orig_dos.obg b/bin/baseset/orig_dos.obg index 693d9dd95f..d4ea3cab9b 100644 --- a/bin/baseset/orig_dos.obg +++ b/bin/baseset/orig_dos.obg @@ -38,6 +38,7 @@ description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에 description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS. description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Grafik. description.lt_LT = Originali Transport Tycoon Deluxe DOS leidimo grafika. +description.ms_MY = Grafik asal Transport Tycoon Deluxe DOS edition. description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS. description.nl_NL = Originele graphics van de Transport Tycoon Deluxe DOS-versie. description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS. diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index 11ad4136f8..0deb62e814 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -38,6 +38,7 @@ description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에 description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe Windows. description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Grafik. description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo grafika. +description.ms_MY = Grafik asal Transport Tycoon Deluxe edisi Windows. description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for Windows. description.nl_NL = Originele graphics van de Transport Tycoon Deluxe Windows-versie. description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for Windows. From 76fc2426669d3a52d392ab6838ebf30326294589 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 2 Apr 2016 16:02:22 +0000 Subject: [PATCH 024/417] (svn r27534) -Fix [FS#6435]: [NewGRF] Station spritelayouts did not accept the var10 flag for the palette. --- src/newgrf_commons.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf_commons.h b/src/newgrf_commons.h index 4202c18dbe..5721b7eb20 100644 --- a/src/newgrf_commons.h +++ b/src/newgrf_commons.h @@ -49,7 +49,7 @@ enum TileLayoutFlags { TLF_SPRITE_VAR10 = 0x40, ///< Resolve sprite with a specific value in variable 10. TLF_PALETTE_VAR10 = 0x80, ///< Resolve palette with a specific value in variable 10. - TLF_KNOWN_FLAGS = 0x7F, ///< Known flags. Any unknown set flag will disable the GRF. + TLF_KNOWN_FLAGS = 0xFF, ///< Known flags. Any unknown set flag will disable the GRF. /** Flags which are still required after loading the GRF. */ TLF_DRAWING_FLAGS = ~TLF_CUSTOM_PALETTE, From 9a5db2063b513a606f9652d580f2a35dfbbba4d6 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 6 Apr 2016 17:45:35 +0000 Subject: [PATCH 025/417] (svn r27535) -Update from Eints: norwegian (bokmal): 16 changes by Leifbk --- src/lang/norwegian_bokmal.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index a6dabc5aef..5041813a22 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -102,25 +102,25 @@ STR_QUANTITY_COAL :{WEIGHT_LONG} k STR_QUANTITY_MAIL :{COMMA}{NBSP}postsekk{P "" er} STR_QUANTITY_OIL :{VOLUME_LONG} olje STR_QUANTITY_LIVESTOCK :{COMMA}{NBSP}enhet{P "" er} buskap -STR_QUANTITY_GOODS :{COMMA}{NBSP}kasse{P "" r} med gods +STR_QUANTITY_GOODS :{COMMA}{NBSP}kasse{P "" r} gods STR_QUANTITY_GRAIN :{WEIGHT_LONG} korn STR_QUANTITY_WOOD :{WEIGHT_LONG} tømmer STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} jernmalm STR_QUANTITY_STEEL :{WEIGHT_LONG} stål -STR_QUANTITY_VALUABLES :{COMMA}{NBSP}sekk{P "" er} med verdisaker +STR_QUANTITY_VALUABLES :{COMMA}{NBSP}sekk{P "" er} verdisaker STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} kobbermalm STR_QUANTITY_MAIZE :{WEIGHT_LONG} mais STR_QUANTITY_FRUIT :{WEIGHT_LONG} frukt -STR_QUANTITY_DIAMONDS :{COMMA}{NBSP}sekk{P "" er} med diamanter +STR_QUANTITY_DIAMONDS :{COMMA}{NBSP}sekk{P "" er} diamanter STR_QUANTITY_FOOD :{WEIGHT_LONG} mat STR_QUANTITY_PAPER :{WEIGHT_LONG} papir -STR_QUANTITY_GOLD :{COMMA}{NBSP}sekk{P "" er} med gull +STR_QUANTITY_GOLD :{COMMA}{NBSP}sekk{P "" er} gull STR_QUANTITY_WATER :{VOLUME_LONG} vann STR_QUANTITY_WHEAT :{WEIGHT_LONG} hvete STR_QUANTITY_RUBBER :{VOLUME_LONG} gummi STR_QUANTITY_SUGAR :{WEIGHT_LONG} sukker STR_QUANTITY_TOYS :{COMMA}{NBSP}leke{P "" r} -STR_QUANTITY_SWEETS :{COMMA}{NBSP}sekk{P "" er} med godteri +STR_QUANTITY_SWEETS :{COMMA}{NBSP}sekk{P "" er} godteri STR_QUANTITY_COLA :{VOLUME_LONG} cola STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} sukkerspinn STR_QUANTITY_BUBBLES :{COMMA} boble{P "" r} @@ -816,7 +816,7 @@ STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDE STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} sponset grunnleggelsen av den nye byen {TOWN}! -STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Ny{G "" "" tt} {STRING} bygges i nærheten av {TOWN}! +STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Ny{G "" "" tt} {STRING} blir anlagt i nærheten av {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Ny{G "" "" tt} {STRING} plantes i nærheten av {TOWN}! STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIG_FONT}{BLACK}{STRING} legges ned! @@ -825,7 +825,7 @@ STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLAC STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}Europeisk valutaunion!{}{}Euro introdusert som enerådende valutaenhet for transaksjoner i landet ditt! STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLACK}Global finanskrise!{}{}Økonomer frykter det verste i det økonomien raser! -STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}Finanskrisen over!{}{}Opptur i markedet gir industrien selvsikkerheten tilbake! +STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}Finanskrisen over!{}{}Opptur i markedet gir industrien selvtilliten tilbake! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL :{BIG_FONT}{BLACK}{INDUSTRY} øker produksjonen! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}Ny kullåre funnet i {INDUSTRY}!{}En dobling i produksjonen ventes! @@ -1082,11 +1082,11 @@ STR_TERRAIN_TYPE_VERY_FLAT :Veldig flatt STR_TERRAIN_TYPE_FLAT :Flatt STR_TERRAIN_TYPE_HILLY :Åslendt STR_TERRAIN_TYPE_MOUNTAINOUS :Berglendt -STR_TERRAIN_TYPE_ALPINIST :Alpinist +STR_TERRAIN_TYPE_ALPINIST :Alpint STR_CITY_APPROVAL_PERMISSIVE :Ettergivende STR_CITY_APPROVAL_TOLERANT :Tolerant -STR_CITY_APPROVAL_HOSTILE :Fientlig +STR_CITY_APPROVAL_HOSTILE :Fiendtlig STR_WARNING_NO_SUITABLE_AI :{WHITE}Ingen egnet AI tilgjengelig...{}Du kan laste ned flere AIer fra nettet med spillets nedlastingssystem. @@ -3522,12 +3522,12 @@ 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_RAILROAD_LOCOMOTIVE :lokomotiv -STR_ENGINE_PREVIEW_ROAD_VEHICLE :kjøretøy +STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=neuter}lokomotiv +STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=neuter}kjøretøy STR_ENGINE_PREVIEW_AIRCRAFT :{G=neuter}luftfartøy -STR_ENGINE_PREVIEW_SHIP :skip -STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail-lokomotiv -STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lokomotiv +STR_ENGINE_PREVIEW_SHIP :{G=neuter}skip +STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=neuter}monorail-lokomotiv +STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=neuter}maglev-lokomotiv STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER} Maks trekkraft: {6:FORCE}{}Vedlikehold: {4:CURRENCY_LONG}/år{}Kapasitet: {5:CARGO_LONG} @@ -4423,7 +4423,7 @@ STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}...{NBSP STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Ingen kjøretøyer vil være tilgjengelig i det hele tatt STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Endre din NewGRF konfigurasjon -STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Ingen kjøretøyer er tilgjengelig enda +STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Ingen kjøretøyer er tilgjengelig ennå STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Starte et nytt spill etter {DATE_SHORT}, eller bruke en NewGRF som inneholder tidlige kjøretøy # Specific vehicle errors @@ -4547,7 +4547,7 @@ STR_INDUSTRY_NAME_CANDY_FACTORY :{G=masculine}Go STR_INDUSTRY_NAME_BATTERY_FARM :{G=masculine}Batterigård STR_INDUSTRY_NAME_COLA_WELLS :{G=masculine}Colabrønn STR_INDUSTRY_NAME_TOY_SHOP :{G=masculine}Leketøysbutikk -STR_INDUSTRY_NAME_TOY_FACTORY :Leketøysfabrikk +STR_INDUSTRY_NAME_TOY_FACTORY :{G=masculine}Leketøysfabrikk STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS :{G=feminine}Plastfontene STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY :{G=masculine}Mineralvannfabrikk STR_INDUSTRY_NAME_BUBBLE_GENERATOR :{G=masculine}Boblegenerator From 0badab6d8e4cb7355474be9967c6de609163a6a7 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 7 Apr 2016 17:45:37 +0000 Subject: [PATCH 026/417] (svn r27536) -Update from Eints: belarusian: 1 change by KorneySan malay: 1 change by rionix88 --- src/lang/belarusian.txt | 2 +- src/lang/malay.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 6c190747dd..97bf6daa0f 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3207,7 +3207,7 @@ 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 +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Рухайце спрайт, зьмяняючы зрушэньне па X і па Y. Ctrl+пстрычка, каб зрушыць спрайт на восем адзінак за раз STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Скід зрушэння STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Скінуць значэнні адноснага зрушэння STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Зрушэнне X: {NUM}; зрушэнне Y: {NUM} (абсалютнае) diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 228c827f94..a248a7953b 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1413,6 +1413,7 @@ STR_CONFIG_SETTING_INTERFACE :{ORANGE}Antaram STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Pembinaan STR_CONFIG_SETTING_VEHICLES :{ORANGE}Kenderaan STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Laluan +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Kecelakaan / Kemalangan STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Bandar-bandar STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industri-industri STR_CONFIG_SETTING_AI :{ORANGE}Pesaing From 6ed602fab23e19e0e23762e25727741e80d53876 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 9 Apr 2016 17:45:38 +0000 Subject: [PATCH 027/417] (svn r27537) -Update from Eints: korean: 2 changes by telk5093 --- src/lang/korean.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index a3e4447144..0af590b44b 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3796,8 +3796,8 @@ STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :< STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :≤ STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :> STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :≥ -STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :있을 때 -STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :없을 때 +STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :이 있을 때 +STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :이 없을 때 STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}비교조건에 대한 입력값입니다. STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}비교할 값을 입력하세요. From bff29d86b526fd1759d568f4c56f5e23299eac14 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 13 Apr 2016 17:45:37 +0000 Subject: [PATCH 028/417] (svn r27538) -Update from Eints: hebrew: 18 changes by dnd_man luxembourgish: 1 change by Phreeze --- src/lang/hebrew.txt | 19 ++++++++++++++++++- src/lang/luxembourgish.txt | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index acee83e236..2dd8305df2 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -849,6 +849,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}ל{VEHIC 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_VEHICLE_IS_GETTING_OLD :{WHITE}מתיישן {VEHICLE} STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}מתיישן מאוד {VEHICLE} @@ -1087,6 +1088,7 @@ STR_CITY_APPROVAL_HOSTILE :עויין STR_WARNING_NO_SUITABLE_AI :{WHITE}אין בינות מלאכותיות מתאימות...{}באפשרותך להוריד בינות מלאכותיות בעזרת מערכת ה'תוכן המקוון' # Settings tree window +STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}הגדרות STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}מחרוזת סינון: STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}הרחב הכל STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}צמצם הכל @@ -1613,6 +1615,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :מחלקה מש STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :אופן החלוקה עבור מטענים אחרים: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"אסימטרי" הכוונה שכמויות מטען שרירותיות יכולות להישלח לכל אחד מהכיוונים. "ידני" הכוונה שאין חלוקה אוטומטית עבור המטען. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :דיוק החלוקה: {STRING} +STR_CONFIG_SETTING_DEMAND_SIZE :כמות המטען החוזר עבור מצב סימטרי: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :יחידות מהירות: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :כאשר מוצגת מהירות השתמש ביחידות הנבחרות @@ -1651,11 +1654,13 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :מטרי (מט STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (מטר) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}הגדרות מיקום +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}גרפיקה STR_CONFIG_SETTING_SOUND :{ORANGE}צלילים STR_CONFIG_SETTING_INTERFACE :{ORANGE}ממשק חזותי STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}בנייה STR_CONFIG_SETTING_VEHICLES :{ORANGE}כלי תחבורה STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}ניתוב +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}רשויות STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}ערים STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}תעשיות STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}התפלגות המטען @@ -1694,6 +1699,7 @@ STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... פו STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... מתעלם מערכת גרפיקה בסיסית '{STRING}': לא נמצאה STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... מתעלם מערכת צלילים בסיסית '{STRING}': לא נמצאה STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... מתעלם מערכת מוסיקה בסיסית '{STRING}': לא נמצאה +STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE} הקצאת {BYTES} בתים של מטמון נכשלה. המטמון הופחת ל-{BYTES} בתים. דבר זה יפחית את הביצועים של OpenTTD. כדי להפחית את דרישות הזיכרון ניתן לנסות לבטל את הגרפיקה ב-32bbp ו/או רמות ה-זום-אין # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -1929,6 +1935,7 @@ STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}השם STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}קבע סיסמה STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}הגן על המשחק שלך עם סיסמה אם אתה לא רוצה שהוא יהיה זמין לכולם +STR_NETWORK_START_SERVER_ADVERTISED :כן STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} לקוח{P "" "ות"} STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}מספר מקסימלי של לקוחות: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK} :מספר משתתפים מירבי @@ -2168,6 +2175,7 @@ STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK} בחר STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK} בחר את כל התכנים המהווים שדרוג לבחירה קיימת STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK} בטל בחירה STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK} בטל את כל הבחירות להורדה +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE} התנאים להורדת תוכן מאתר חיצוני השתנו.{}עלייך לפנות לאתרים חיצוניים להנחיות כיצד להתקין את התוכן לתוך OpenTTD.{}האם ברצונך להמשיך? STR_CONTENT_FILTER_TITLE :{BLACK}סינון תוית\שם: STR_CONTENT_OPEN_URL :{BLACK}בקר באתר האינטרנט STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}בקר באתר האינטרנט עבור התוכן הזה @@ -2239,6 +2247,7 @@ STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}הסתר # Linkgraph legend window STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}מקרא זרימת מטענים +STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}בחר חברות להצגה # Linkgraph legend window and linkgraph legend in smallmap @@ -2828,7 +2837,8 @@ 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 +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}הזז את הספרייט, תוך שינוי ההיסט של צירי ה-X וה-Y. לחץ עם ctrl כדי להזיז את הספרייט שמונה יחידות בבת אחת +STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}איפוס יחסית STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}בחר ספרייט STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}בחר ספרייט מנקודה כלשהיא במסך @@ -3029,6 +3039,7 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}לחץ על שירות כדי להתמקד על עיר/תעשייה. Ctrl+לחיצה פותח חלונית תצוגה חדשה על מיקום העיר/תעשייה # Story book window +STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}קפוץ לדף ספציפי באמצעות בחירתו ברשימה נפתחת זו. STR_STORY_BOOK_INVALID_GOAL_REF :{RED}מטרה לא תקינה # Station list window @@ -3056,6 +3067,8 @@ STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPAN STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}דירוג STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}הצג את דירוג השירות +STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}אספקה חודשית ודירוג מקומי: +STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%) STR_STATION_VIEW_GROUP :{BLACK}קבץ לפי STR_STATION_VIEW_WAITING_STATION :תחנה: בהמתנה @@ -3353,6 +3366,7 @@ STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}החלף STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}החלף שם סוג כלי הטיס +STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}תצוגה STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :הסתר/הצג סוג של כלי שיט STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}הסתר/הצג סוג של כלי טיס @@ -3591,6 +3605,8 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{LTBLUE}{1:DATE 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_VEHICLE_DETAILS_PERCENT :אחוז STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}תן שם לרכבת STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}תן שם לכלי הרכב @@ -3812,6 +3828,7 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :(מסע (ללא STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :סע במהירות שהיא לכל היותר {2:VELOCITY} (ללא לוח זמנים) STR_TIMETABLE_TRAVEL_FOR :{STRING} ערוך מסע ל STR_TIMETABLE_TRAVEL_FOR_SPEED :סע למשך {STRING} במהירות שהיא לכל היותר {VELOCITY} +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(מסע עבור {STRING} ללא טבלת זמנים) STR_TIMETABLE_STAY_FOR :{STRING} והמתן למשך STR_TIMETABLE_AND_TRAVEL_FOR :{STRING} וערוך מסע ל STR_TIMETABLE_DAYS :{P 0 "יום " ""}{COMMA}{P "" " ימים"} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index b6d1b43704..ea90888d82 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -2874,7 +2874,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Géi op STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Viregt Sprite STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Géi weider op déi nächst normal Sprite, iwwersprang all pseudo/recolour/font Sprite an sprang zréck op den Ufank no der leschter. STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representatioun vun der grad gewielter Sprite. Den Alignement gëtt ignoréiert wann d'Sprite gezun gëtt -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Beweg Sprite, X an Y offsets enneren sech +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Beweg Sprite, X an Y offsets enneren sech. Ctrl+Klick fir de Sprite8 Eenheete matenen ze bewegen. STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Relativ zerécksetzen STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Momentan relativ Offsets zerécksetzen STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X-Offset: {NUM}, Y-Offset: {NUM} (Absolut) From 35aa952c36ca59f3daa5800aced0125c1f1ec0f0 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 14 Apr 2016 17:45:35 +0000 Subject: [PATCH 029/417] (svn r27539) -Update from Eints: hebrew: 66 changes by dnd_man --- src/lang/hebrew.txt | 67 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 2dd8305df2..1717174a9c 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -263,7 +263,10 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}פס ה STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}הסרת בניינים וכו' במשבצת קרקע. מקש Ctrl מסמן את האזור באופן אלכנסוני. מקש Shift מעביר בין בנייה לבין הצגה של הערכת העלות # Show engines button +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}הצג מוסתרים +STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}הצג מוסתרים +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}על ידי אפשור כפתור זה, כלי טיס מוסתרים יוצגו גם # Query window STR_BUTTON_DEFAULT :{BLACK}בחירת מחדל @@ -378,6 +381,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :יציאה ############ range for settings menu starts STR_SETTINGS_MENU_GAME_OPTIONS :אפשרויות המשחק +STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :הגדרות STR_SETTINGS_MENU_SCRIPT_SETTINGS :הגדרות סקריפטים של משחק/שחקני מחשב STR_SETTINGS_MENU_NEWGRF_SETTINGS :הגדרות GRF חדש STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :אפשרויות שקיפות @@ -985,7 +989,11 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}רזלו STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}בחר את רזולוציית המסך STR_GAME_OPTIONS_RESOLUTION_OTHER :אחר +STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}גודל ממשק +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}בחר את ממשק גודל העצם לשימוש +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :גודל כפול +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :גודל מרובע STR_GAME_OPTIONS_BASE_GRF :{BLACK}ערכת גרפיקה בסיסית STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}בחר בערכת גרפיקה בסיסית לשימוש @@ -1192,6 +1200,8 @@ STR_CONFIG_SETTING_INFLATION :אנפלציה: STR_CONFIG_SETTING_INFLATION_HELPTEXT :אפשר אינפלציה בכלכלה, כך שהעלויות עולות מעט מהר יותר מאשר התשלומים STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :אורך גשר מירבי: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :אורך מירבי לבניית גשרים +STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :גובה גשר מקסימלי: {STRING} +STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :גובה מקסימלי לבניית גשרים STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :אורך מנהרה מירבי: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :אורך מירבי לבניית מנהרות STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :{STRING} :שיטת היצירה של משאבי טבע חדשים @@ -1285,6 +1295,7 @@ 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_LAND_GENERATOR :מחולל פני שטח: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :המחולל המקורי מבוסס על הגרפיקה הבסיסית, ויוצר פני שטח אחידים. בורא הקרקע מבוסס על אלגוריתם רעש פרלין עם אפשרויות עריכה עדינות STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :מקורי @@ -1615,7 +1626,11 @@ STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :מחלקה מש STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :אופן החלוקה עבור מטענים אחרים: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"אסימטרי" הכוונה שכמויות מטען שרירותיות יכולות להישלח לכל אחד מהכיוונים. "ידני" הכוונה שאין חלוקה אוטומטית עבור המטען. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :דיוק החלוקה: {STRING} +STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :ככל שתקבע ערך גבוה יותר כך ייארך זמן עיבוד במעד של גרף הקישור. אם זה ייארך זמן רב מידי אתה עלול לראות תקיעות. אולם אם תקבע ערך זה להיות נמוך, החלוקה לא תהיה מדוייקת, ואתה עלול לראות שהמטען לא יישלח למקומות שאתה מצפה שישלח. +STR_CONFIG_SETTING_DEMAND_DISTANCE :השפעת המרחק על ביקושים: {STRING} +STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :אם תקבע ערך זה ליותר מ-0, המרחק בין תחנת מקור A של מטען מסויים ויעד אפשרי B ישפיע על כמות המטען שנשלח מ-A ל-B. ככל ש-B מרוחקת מ-A כך פחות מטען יישלח. כלל שתקבע ערך גבוה יותר, כך פחות מטען יישלח לתחנות מרוחקות ויותר מטען יישלח לתחנות קרובות. STR_CONFIG_SETTING_DEMAND_SIZE :כמות המטען החוזר עבור מצב סימטרי: {STRING} +STR_CONFIG_SETTING_SHORT_PATH_SATURATION :הרוויה של מסלולים קצרים לפני שימוש במסלולי קיבולת גבוהה: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :יחידות מהירות: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :כאשר מוצגת מהירות השתמש ביחידות הנבחרות @@ -1657,8 +1672,14 @@ STR_CONFIG_SETTING_LOCALISATION :{ORANGE}הגד STR_CONFIG_SETTING_GRAPHICS :{ORANGE}גרפיקה STR_CONFIG_SETTING_SOUND :{ORANGE}צלילים STR_CONFIG_SETTING_INTERFACE :{ORANGE}ממשק חזותי +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}כללי +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}נקודות מבט STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}בנייה +STR_CONFIG_SETTING_ADVISORS :{ORANGE}חדשות / יועצים +STR_CONFIG_SETTING_COMPANY :{ORANGE}חברה +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}חשבונאות STR_CONFIG_SETTING_VEHICLES :{ORANGE}כלי תחבורה +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}פיזיקה STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}ניתוב STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}רשויות STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}ערים @@ -1699,6 +1720,7 @@ STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... פו STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... מתעלם מערכת גרפיקה בסיסית '{STRING}': לא נמצאה STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... מתעלם מערכת צלילים בסיסית '{STRING}': לא נמצאה STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... מתעלם מערכת מוסיקה בסיסית '{STRING}': לא נמצאה +STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}הזיכרון התמלא STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE} הקצאת {BYTES} בתים של מטמון נכשלה. המטמון הופחת ל-{BYTES} בתים. דבר זה יפחית את הביצועים של OpenTTD. כדי להפחית את דרישות הזיכרון ניתן לנסות לבטל את הגרפיקה ב-32bbp ו/או רמות ה-זום-אין # Intro window @@ -1713,6 +1735,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}משחק STR_INTRO_GAME_OPTIONS :{BLACK}אפשרויות STR_INTRO_HIGHSCORE :{BLACK}טבלת ניקוד מירבי +STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}הגדרות STR_INTRO_NEWGRF_SETTINGS :{BLACK}(NewGRF)הגדרות שדרוג גראפי STR_INTRO_ONLINE_CONTENT :{BLACK} בדוק תוכן מקוון STR_INTRO_SCRIPT_SETTINGS :{BLACK}הגדרות סקריפטים של משחק/שחקני מחשב @@ -1877,6 +1900,10 @@ STR_FACE_TIE_EARRING_TOOLTIP :{BLACK} שנה # Network server list STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}משחק רשת +STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}מפורסם +STR_NETWORK_SERVER_LIST_ADVERTISED_TOOLTIP :{BLACK}בחר בין משחק מפורסם (אינטרנטי) ומשחק לא מפורסם (רשת מקומית, LAN) +STR_NETWORK_SERVER_LIST_ADVERTISED_NO :לא +STR_NETWORK_SERVER_LIST_ADVERTISED_YES :כן STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK} :שם השחקן STR_NETWORK_SERVER_LIST_ENTER_NAME_TOOLTIP :{BLACK}זהו שמך כפי שיצפה ע"י המשתתפים האחרים @@ -1935,6 +1962,7 @@ STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}השם 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 "" "ות"} STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}מספר מקסימלי של לקוחות: @@ -2175,6 +2203,7 @@ STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK} בחר STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK} בחר את כל התכנים המהווים שדרוג לבחירה קיימת STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK} בטל בחירה STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK} בטל את כל הבחירות להורדה +STR_CONTENT_SEARCH_EXTERNAL :{BLACK}חפש באתרים חיצוניים STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE} התנאים להורדת תוכן מאתר חיצוני השתנו.{}עלייך לפנות לאתרים חיצוניים להנחיות כיצד להתקין את התוכן לתוך OpenTTD.{}האם ברצונך להמשיך? STR_CONTENT_FILTER_TITLE :{BLACK}סינון תוית\שם: STR_CONTENT_OPEN_URL :{BLACK}בקר באתר האינטרנט @@ -2247,9 +2276,12 @@ STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}הסתר # Linkgraph legend window STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}מקרא זרימת מטענים +STR_LINKGRAPH_LEGEND_ALL :{BLACK}הכל STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}בחר חברות להצגה # Linkgraph legend window and linkgraph legend in smallmap +STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}לא בשימוש +STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}רווי # Base for station construction window(s) STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}הדגשת שטח הכיסוי @@ -2839,6 +2871,8 @@ STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}עבור STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}הייצוג של הספרייט הנבחר. בעת ציור הספרייט, נתעלם מהיישור שלו STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}הזז את הספרייט, תוך שינוי ההיסט של צירי ה-X וה-Y. לחץ עם ctrl כדי להזיז את הספרייט שמונה יחידות בבת אחת STR_SPRITE_ALIGNER_RESET_BUTTON :{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}בחר ספרייט מנקודה כלשהיא במסך @@ -2895,6 +2929,7 @@ STR_NEWGRF_LIST_MISSING :{RED}חסרים STR_NEWGRF_BROKEN :{WHITE}התנהגות ה-NewGRF '{STRING}' עלולה לגרום לקריסה ו/או חוסר סנכרון STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}שינה את מצב קרון מונע עבור '{1:ENGINE}' כאשר לא נמצא במוסך STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}זה שינה את אורך הרכב ל'{1:ENGINE}' כאשר לא במוסך +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}זה שינה את קיבולת כלי הרכב של '{1:ENGINE}' כשלא בתוך מוסך או תיקון STR_BROKEN_VEHICLE_LENGTH :{WHITE}רכבת '{VEHICLE}' השייכת לחברת '{COMPANY}' בעלת אורך לא חוקי. דבר זה נגרם ככל הנראה בעקבות בעיות ב-NEWGRF. המשחק עלול לצאת מסנכרון או לקרוס STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' סיפק מידע לא נכון @@ -2999,6 +3034,8 @@ STR_GOALS_GLOBAL_TITLE :{BLACK}מטרו STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- אין - 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 פותח חלון תצוגה חדש במיקום התעשיה/העיירה/המשבצת @@ -3039,7 +3076,12 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}לחץ על שירות כדי להתמקד על עיר/תעשייה. Ctrl+לחיצה פותח חלונית תצוגה חדשה על מיקום העיר/תעשייה # Story book window -STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}קפוץ לדף ספציפי באמצעות בחירתו ברשימה נפתחת זו. +STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}ספר סיפור כללי +STR_STORY_BOOK_GENERIC_PAGE_ITEM :עמוד {NUM} +STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}קפוץ לדף מסויים באמצעות בחירתו ברשימה נפתחת זו. +STR_STORY_BOOK_PREV_PAGE :{BLACK}קודם +STR_STORY_BOOK_NEXT_PAGE :{BLACK}הבא +STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}עבור לעמוד הבא STR_STORY_BOOK_INVALID_GOAL_REF :{RED}מטרה לא תקינה # Station list window @@ -3302,6 +3344,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}מחק STR_GROUP_RENAME_TOOLTIP :{BLACK}שנה את שם הקבוצה STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}לחץ על מנת להגן על הכלים בקבוצה בפני החלפה אוטומטית +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}אתה בטוח שברצונך למחוק את הקבוצה הזאת ואת הקשורים אליה? STR_GROUP_ADD_SHARED_VEHICLE :הוסף כלים STR_GROUP_REMOVE_ALL_VEHICLES :הסר את כל הכלים מהקבוצה @@ -3365,9 +3408,17 @@ 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_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}הסתר +STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}הסתר +STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}הסתר +STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}הסתר 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 :הסתר/הצג סוג של כלי שיט STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}הסתר/הצג סוג של כלי טיס @@ -3475,6 +3526,8 @@ STR_REPLACE_VEHICLE_ROAD_VEHICLE :רכב STR_REPLACE_VEHICLE_SHIP :כלי שייט STR_REPLACE_VEHICLE_AIRCRAFT :כלי טייס +STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}עמודה עם כלי רכב בבעלותך +STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}עמודה עם כלי רכב זמינים להחלפה STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}בחר את סוג המנוע/קטר שברצונך להחליף STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}בחר את הקטר/מנוע שברצונך לבנות במקום הקטר/מנוע הקיים @@ -3606,6 +3659,8 @@ STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}הגדל STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}הקטן את מרווח הזמן עד קבלת שירות ב-10. Ctrl+לחיצה מקטינה את המרווח ב-5 STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}שנה סוג מרווח שירות +STR_VEHICLE_DETAILS_DEFAULT :ברירת מחדל +STR_VEHICLE_DETAILS_DAYS :ימים STR_VEHICLE_DETAILS_PERCENT :אחוז STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}תן שם לרכבת @@ -3982,6 +4037,9 @@ STR_INCOME_FLOAT_INCOME_SMALL :{TINY_FONT}{GRE STR_INCOME_FLOAT_INCOME :{GREEN} {CURRENCY_LONG} :הכנסה STR_FEEDER_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG} STR_FEEDER :{YELLOW}העברה: {CURRENCY_LONG} +STR_FEEDER_INCOME_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {GREEN}הכנסה:{CURRENCY_LONG} +STR_FEEDER_COST_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {RED}עלות: {CURRENCY_LONG} +STR_FEEDER_COST :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / עלות: {CURRENCY_LONG} STR_MESSAGE_ESTIMATED_COST :{WHITE}{CURRENCY_LONG} :מחיר משוער STR_MESSAGE_ESTIMATED_INCOME :{WHITE}{CURRENCY_LONG} :הכנסה משוערת @@ -4066,6 +4124,7 @@ 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}לא ניתן לשנות את שם החברה... @@ -4116,6 +4175,7 @@ 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}' # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}לא ניתן לבנות תחנת רכבת כאן... @@ -4383,6 +4443,11 @@ STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}לא נ STR_DESKTOP_SHORTCUT_COMMENT :משחק סימולציה המבוסס על תחבורה, הון ופאר # Translatable descriptions in media/baseset/*.ob* files +STR_BASEGRAPHICS_WIN_DESCRIPTION :גרפיקות Transport Tycoon Deluxe המקורי בגרסת Windows. +STR_BASESOUNDS_DOS_DESCRIPTION :צלילי Transport Tycoon Deluxe המקורי בגרסת DOS. +STR_BASESOUNDS_WIN_DESCRIPTION :צלילי Transport Tycoon Deluxe המקורי בגרסת Windows. +STR_BASESOUNDS_NONE_DESCRIPTION :אוסף צלילים ללא צלילים. +STR_BASEMUSIC_NONE_DESCRIPTION :אוסף מנגינות ללא מנגינות. ##id 0x2000 # Town building names From c723ef85ff0b6a28eacb75028e8bbc023ee5a259 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 16 Apr 2016 17:45:37 +0000 Subject: [PATCH 030/417] (svn r27540) -Update from Eints: hebrew: 40 changes by dnd_man --- src/lang/hebrew.txt | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 1717174a9c..29a6717260 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -263,9 +263,14 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}פס ה STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}הסרת בניינים וכו' במשבצת קרקע. מקש Ctrl מסמן את האזור באופן אלכנסוני. מקש Shift מעביר בין בנייה לבין הצגה של הערכת העלות # Show engines button +STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}הצגת מוסתרים STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}הצג מוסתרים STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}הצג מוסתרים +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}הצגת מוסתרים +STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}על ידי אפשור כפתור זה, רכבות מוסתרות יוצגו גם +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}על ידי אפשור כפתור זה, כלי רכב מוסתרים יוצגו גם +STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}על ידי אפשור כפתור זה, ספינות מוסתרות יוצגו גם STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}על ידי אפשור כפתור זה, כלי טיס מוסתרים יוצגו גם # Query window @@ -332,7 +337,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}הצג STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}הצג רשימת תחנות החברה STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}הצג מידע כספי על החברה STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}הצג מידע כללי על החברה -STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}הצג את סיפור החברה +STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}הצג סיפור חברה STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}הצג רשימת מטרות STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}הצג גרפים STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}הצג את טבלת ליגת החברות @@ -992,6 +997,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :אחר STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}גודל ממשק STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}בחר את ממשק גודל העצם לשימוש +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :רגיל STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :גודל כפול STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :גודל מרובע @@ -1088,6 +1094,7 @@ STR_TERRAIN_TYPE_VERY_FLAT :שטוח ביו STR_TERRAIN_TYPE_FLAT :שטוח STR_TERRAIN_TYPE_HILLY :נוף גבעות STR_TERRAIN_TYPE_MOUNTAINOUS :הררי +STR_TERRAIN_TYPE_ALPINIST :מטפס הרים STR_CITY_APPROVAL_PERMISSIVE :מתירני STR_CITY_APPROVAL_TOLERANT :סביר @@ -1296,6 +1303,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :עובי קוו STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :עובי הקו בגרפים. קו דק ניתן לקריאה באופן מדויק יותר, אולם קל יותר לראות קו עבה ולהבחין בין הצבעים של קוים עבים STR_CONFIG_SETTING_LANDSCAPE :תמונת נוף: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :תוואי נוף מגדירים תרחישי משחק עם דרישות מטען וצמיחת ערים שונות. NewGRF וסקריפטים של המשחק מאפשרים שליטה עדיין יותר STR_CONFIG_SETTING_LAND_GENERATOR :מחולל פני שטח: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :המחולל המקורי מבוסס על הגרפיקה הבסיסית, ויוצר פני שטח אחידים. בורא הקרקע מבוסס על אלגוריתם רעש פרלין עם אפשרויות עריכה עדינות STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :מקורי @@ -1630,7 +1638,9 @@ STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :ככל שתקב STR_CONFIG_SETTING_DEMAND_DISTANCE :השפעת המרחק על ביקושים: {STRING} STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :אם תקבע ערך זה ליותר מ-0, המרחק בין תחנת מקור A של מטען מסויים ויעד אפשרי B ישפיע על כמות המטען שנשלח מ-A ל-B. ככל ש-B מרוחקת מ-A כך פחות מטען יישלח. כלל שתקבע ערך גבוה יותר, כך פחות מטען יישלח לתחנות מרוחקות ויותר מטען יישלח לתחנות קרובות. STR_CONFIG_SETTING_DEMAND_SIZE :כמות המטען החוזר עבור מצב סימטרי: {STRING} +STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :קביעת ערך זה לקטן מ-100% יגרום לחלוקה הסימטרית להתנהג יותר כמו חלוקה אסימטרית. פחות מטען יישלח בעל כורחו חזרה אם כמות מסויימת נשלחת לתחנה. אם ערך זה ייקבע ל-0%, החלוקה הסימטרית תהיה חלוקה אסימטרית. STR_CONFIG_SETTING_SHORT_PATH_SATURATION :הרוויה של מסלולים קצרים לפני שימוש במסלולי קיבולת גבוהה: {STRING} +STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :לעיתים קרובות יש מספר מסלולים בין שתי תחנות נתונות. אלגוריתם מרחק-מטען יגרום לרוויה במסלול הקצר ביותר תחילה, אחר כך ישתמש במסלול הקצר הבא אחריו עד שהוא יהיה רווי וכן הלאה. רוויה נקבעת על ידי הערכת הקיבולת והשימוש המתוכנן. ברגע שכל המסלולים רוויים, אם עדיין נותר ביקוש, הוא יעמיס על כל המסלולים, תוך כדי העדפת המסלולים עם קיבולת גבוהה. רוב הזמן האלגוריתם לא יעריך את הקיבלת במדוייק. הגדרה זאת מאפשרת לך לציין עד לאיזה אחוז יש לגרום למסלול קצר לרוויה בפעם הראשונה לפני שייבחר המסלול הבא הארוך ממנו. קבע הגדרה זו לערך קטן מ-100% כדי למנוע תחנות צפופות במקרה של הערכת יתר של הקיבולת. STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :יחידות מהירות: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :כאשר מוצגת מהירות השתמש ביחידות הנבחרות @@ -1681,6 +1691,10 @@ STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}חשב STR_CONFIG_SETTING_VEHICLES :{ORANGE}כלי תחבורה STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}פיזיקה STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}ניתוב +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}מגבלות +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}אסונות / תאונות +STR_CONFIG_SETTING_GENWORLD :{ORANGE}יצירת עולם +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}סביבה STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}רשויות STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}ערים STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}תעשיות @@ -1755,6 +1769,7 @@ STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}ארץ STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}הצג הגדרות משחק STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}הצג טבלת ניקוד מירבי +STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}הצגת הגדרות STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}הצג הגדרות שדרוג גראפי STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK} חפש תוכן חדש/מעודכן להורדה STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK} הצג הגדרות סקריפטים של משחק/שחקני מחשב @@ -1781,7 +1796,7 @@ STR_OSNAME_OS2 :מערכת הפ STR_OSNAME_SUNOS :סולריס # Abandon game -STR_ABANDON_GAME_CAPTION :{WHITE}עזוב משחק +STR_ABANDON_GAME_CAPTION :{WHITE}עזיבת משחק STR_ABANDON_GAME_QUERY :{YELLOW}?האם אתה בטוח שברצונך לעזוב את המשחק STR_ABANDON_SCENARIO_QUERY :{YELLOW}האם אתה בטוח שברצונך לצאת משלב זה? @@ -2204,6 +2219,8 @@ STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{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}בקר באתר האינטרנט @@ -2277,11 +2294,13 @@ STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}הסתר # Linkgraph legend window STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}מקרא זרימת מטענים STR_LINKGRAPH_LEGEND_ALL :{BLACK}הכל +STR_LINKGRAPH_LEGEND_NONE :{BLACK}ללא STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}בחר חברות להצגה # Linkgraph legend window and linkgraph legend in smallmap STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}לא בשימוש STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}רווי +STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLACK}העמסת יתר # Base for station construction window(s) STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}הדגשת שטח הכיסוי @@ -2871,6 +2890,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}עבור STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}הייצוג של הספרייט הנבחר. בעת ציור הספרייט, נתעלם מהיישור שלו STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}הזז את הספרייט, תוך שינוי ההיסט של צירי ה-X וה-Y. לחץ עם ctrl כדי להזיז את הספרייט שמונה יחידות בבת אחת 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}בחר ספרייט @@ -3076,10 +3096,13 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}לחץ על שירות כדי להתמקד על עיר/תעשייה. Ctrl+לחיצה פותח חלונית תצוגה חדשה על מיקום העיר/תעשייה # Story book window +STR_STORY_BOOK_CAPTION :ספר סיפור {WHITE}{COMPANY} STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}ספר סיפור כללי +STR_STORY_BOOK_TITLE :{YELLOW}{STRING} STR_STORY_BOOK_GENERIC_PAGE_ITEM :עמוד {NUM} STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}קפוץ לדף מסויים באמצעות בחירתו ברשימה נפתחת זו. STR_STORY_BOOK_PREV_PAGE :{BLACK}קודם +STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}עבור לעמוד קודם STR_STORY_BOOK_NEXT_PAGE :{BLACK}הבא STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}עבור לעמוד הבא STR_STORY_BOOK_INVALID_GOAL_REF :{RED}מטרה לא תקינה @@ -3099,6 +3122,7 @@ STR_STATION_LIST_NO_WAITING_CARGO :{BLACK}שום STR_STATION_VIEW_CAPTION :{WHITE}{STATION} {STATION_FEATURES} STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_LONG} STR_STATION_VIEW_EN_ROUTE_FROM :{YELLOW}({CARGO_SHORT} בדרך מ{STATION}) +STR_STATION_VIEW_RESERVED :{YELLOW}({CARGO_SHORT} שמור לטעינה) STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}מקבל STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}הצג רשימת סוגי המטען שהתחנה מקבלת @@ -3276,6 +3300,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK} :תפו STR_INDUSTRY_VIEW_TRANSPORTED :{BLACK}(הובלו {NBSP}{2:COMMA}%) {YELLOW}{1:STRING}{0:CARGO_LONG} STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}מקד את התצוגה הראשית על מיקום התעשייה. Ctrl+לחיצה פותח חלונית תצוגה חדשה על מיקום התעשייה STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}רמת הפקה: {YELLOW}{COMMA}% +STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}התעשייה הכריזה על סגירה מתקרבת! ############ range for requires starts STR_INDUSTRY_VIEW_REQUIRES_CARGO :{YELLOW}{1:STRING}{0:STRING}{BLACK} : דורש @@ -3344,6 +3369,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}מחק STR_GROUP_RENAME_TOOLTIP :{BLACK}שנה את שם הקבוצה STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}לחץ על מנת להגן על הכלים בקבוצה בפני החלפה אוטומטית +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}מחק קבוצה STR_GROUP_DELETE_QUERY_TEXT :{WHITE}אתה בטוח שברצונך למחוק את הקבוצה הזאת ואת הקשורים אליה? STR_GROUP_ADD_SHARED_VEHICLE :הוסף כלים @@ -3413,6 +3439,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}הסתר STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}הסתר STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}הסתר +STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}תצוגה STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}תצוגה STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}תצוגה STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}תצוגה @@ -3526,7 +3553,9 @@ STR_REPLACE_VEHICLE_ROAD_VEHICLE :רכב STR_REPLACE_VEHICLE_SHIP :כלי שייט STR_REPLACE_VEHICLE_AIRCRAFT :כלי טייס +STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}כלי רכב בשימוש 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}בחר את סוג המנוע/קטר שברצונך להחליף @@ -3883,6 +3912,9 @@ STR_TIMETABLE_TRAVEL_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_TRAVEL_FOR_SPEED_ESTIMATED :מסע (עבור {STRING}, לא מתוזמן) במהירות שיא של {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(נשאר ל-{STRING}, לא מתוזמן) STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(מסע עבור {STRING} ללא טבלת זמנים) STR_TIMETABLE_STAY_FOR :{STRING} והמתן למשך STR_TIMETABLE_AND_TRAVEL_FOR :{STRING} וערוך מסע ל @@ -4038,6 +4070,7 @@ STR_INCOME_FLOAT_INCOME :{GREEN} {CURREN STR_FEEDER_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG} STR_FEEDER :{YELLOW}העברה: {CURRENCY_LONG} STR_FEEDER_INCOME_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {GREEN}הכנסה:{CURRENCY_LONG} +STR_FEEDER_INCOME :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {GREEN}הכנסה: {CURRENCY_LONG} STR_FEEDER_COST_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {RED}עלות: {CURRENCY_LONG} STR_FEEDER_COST :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / עלות: {CURRENCY_LONG} STR_MESSAGE_ESTIMATED_COST :{WHITE}{CURRENCY_LONG} :מחיר משוער @@ -4176,6 +4209,7 @@ 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}' +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}שנה את פרמטרי יצירת המפה לקבלת מפה טובה יותר # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}לא ניתן לבנות תחנת רכבת כאן... @@ -4340,6 +4374,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... שט 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_REMOVE_ALL_VEHICLES :{WHITE}לא ניתן למחוק את כל הכלים מקבוצה זו... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}לא ניתן להוסיף כלי זה לקבוצה זו... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}לא ניתן להוסיף כלים משותפים לרשימה זו... @@ -4443,10 +4478,13 @@ STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}לא נ STR_DESKTOP_SHORTCUT_COMMENT :משחק סימולציה המבוסס על תחבורה, הון ופאר # Translatable descriptions in media/baseset/*.ob* files +STR_BASEGRAPHICS_DOS_DESCRIPTION :גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS. +STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS (גרמנית). STR_BASEGRAPHICS_WIN_DESCRIPTION :גרפיקות Transport Tycoon Deluxe המקורי בגרסת Windows. STR_BASESOUNDS_DOS_DESCRIPTION :צלילי Transport Tycoon Deluxe המקורי בגרסת DOS. STR_BASESOUNDS_WIN_DESCRIPTION :צלילי Transport Tycoon Deluxe המקורי בגרסת Windows. STR_BASESOUNDS_NONE_DESCRIPTION :אוסף צלילים ללא צלילים. +STR_BASEMUSIC_WIN_DESCRIPTION :מנגינות Transport Tycoon Deluxe המקורי בגרסת Windows. STR_BASEMUSIC_NONE_DESCRIPTION :אוסף מנגינות ללא מנגינות. ##id 0x2000 From 4cfa482786f82435d18352c8a4d4df3db9829866 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 17 Apr 2016 16:30:45 +0000 Subject: [PATCH 031/417] (svn r27541) -Update: Baseset translations --- bin/baseset/no_music.obm | 1 + bin/baseset/no_sound.obs | 1 + bin/baseset/orig_dos.obg | 1 + bin/baseset/orig_dos.obs | 1 + bin/baseset/orig_dos_de.obg | 1 + bin/baseset/orig_win.obg | 1 + bin/baseset/orig_win.obm | 1 + bin/baseset/orig_win.obs | 1 + 8 files changed, 8 insertions(+) diff --git a/bin/baseset/no_music.obm b/bin/baseset/no_music.obm index 07dcedf50b..ebd331d04e 100644 --- a/bin/baseset/no_music.obm +++ b/bin/baseset/no_music.obm @@ -27,6 +27,7 @@ description.fr_FR = Un pack de musiques sans musiques. description.ga_IE = Pacáiste ceoil gan aon cheol iarbhír ann. description.gd_GB = Pacaid ciùil anns nach eil fonn sam bith. description.gl_ES = Un conxunto de músicas sen ningunha música. +description.he_IL = אוסף מנגינות ללא מנגינות. description.hr_HR = Glazbeni paket bez ikakve glazbe. description.hu_HU = Zenei alapcsomag zene nélkül. description.id_ID = Paket musik tanpa musik sungguhan. diff --git a/bin/baseset/no_sound.obs b/bin/baseset/no_sound.obs index 522c45b9b9..d5b0c9f80d 100644 --- a/bin/baseset/no_sound.obs +++ b/bin/baseset/no_sound.obs @@ -28,6 +28,7 @@ description.fr_FR = Un pack de sons sans sons. description.ga_IE = Pacáiste fuaimeanna gan aon fhuaimeanna ann. description.gd_GB = Pacaid fhuaimean anns nach eil fuaim sam bith. description.gl_ES = Un conxunto de sons sen ningún son +description.he_IL = אוסף צלילים ללא צלילים. description.hr_HR = Zvučni paket bez ikakvih zvukova. description.hu_HU = Hang alapcsomag hangok nélkül. description.id_ID = Paket efek suara tanpa suara apapun. diff --git a/bin/baseset/orig_dos.obg b/bin/baseset/orig_dos.obg index d4ea3cab9b..4fa32f6dc8 100644 --- a/bin/baseset/orig_dos.obg +++ b/bin/baseset/orig_dos.obg @@ -28,6 +28,7 @@ description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS. description.gd_GB = Grafaigeachd aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe. description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para DOS. +description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS. description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS izdanje. description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának grafikája. description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS. diff --git a/bin/baseset/orig_dos.obs b/bin/baseset/orig_dos.obs index 38eb7b5818..df26f15fab 100644 --- a/bin/baseset/orig_dos.obs +++ b/bin/baseset/orig_dos.obs @@ -27,6 +27,7 @@ description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS). description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán DOS. description.gd_GB = Fuaimean aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe. description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para DOS. +description.he_IL = צלילי Transport Tycoon Deluxe המקורי בגרסת DOS. description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe DOS izdanje. description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának hangjai. description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi DOS. diff --git a/bin/baseset/orig_dos_de.obg b/bin/baseset/orig_dos_de.obg index e9344b3f63..d13e12ed60 100644 --- a/bin/baseset/orig_dos_de.obg +++ b/bin/baseset/orig_dos_de.obg @@ -28,6 +28,7 @@ description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS (Gearmánach). description.gd_GB = Grafaigeachd aig an deasachadh DOS (Gearmailteach) tùsail aig Transport Tycoon Deluxe. description.gl_ES = Graficos da edición orixinal (alemá) de Transport Tycoon Deluxe para DOS. +description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS (גרמנית). description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS (Njemački) izdanje. description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS (német) verziójának grafikája. description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS (Jerman). diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index 0deb62e814..1d3cb8d655 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -28,6 +28,7 @@ description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version Win description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán Windows. description.gd_GB = Grafaigeachd aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe. description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para Windows. +description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת Windows. description.hr_HR = Originalna grafika za Transport Tycoon Deluxe Windows izdanje. description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának grafikája. description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi Windows. diff --git a/bin/baseset/orig_win.obm b/bin/baseset/orig_win.obm index 27164c73bc..63e678131d 100644 --- a/bin/baseset/orig_win.obm +++ b/bin/baseset/orig_win.obm @@ -27,6 +27,7 @@ description.fr_FR = Musiques originales de Transport Tycoon Deluxe (version Wind description.ga_IE = Ceol bunaidh Transport Tycoon Deluxe, eagrán Windows. description.gd_GB = Ceòl aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe. description.gl_ES = Música da edición orixinal de Transport Tycoon Deluxe para Windows. +description.he_IL = מנגינות Transport Tycoon Deluxe המקורי בגרסת Windows. description.hr_HR = Originalna glazba za Transport Tycoon Deluxe Windows izdanje. description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának zenéje. description.id_ID = Musik pengiring orisinil Transport Tycoon Deluxe versi Windows. diff --git a/bin/baseset/orig_win.obs b/bin/baseset/orig_win.obs index 9fe250b304..748633f8b1 100644 --- a/bin/baseset/orig_win.obs +++ b/bin/baseset/orig_win.obs @@ -27,6 +27,7 @@ description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows). description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán Windows. description.gd_GB = Fuaimean aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe. description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para Windows. +description.he_IL = צלילי Transport Tycoon Deluxe המקורי בגרסת Windows. description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe Windows izdanje. description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának hangjai. description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi Windows. From e7e6b45d89f2ca3f9c2a9ff3e0683e7610f2d565 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 17 Apr 2016 16:50:37 +0000 Subject: [PATCH 032/417] (svn r27542) -Fix (r27367) [FS#6427]: ICU got disabled for Windows builds. --- Doxyfile | 2 +- projects/openttd_vs100.vcxproj | 8 ++++---- projects/openttd_vs100.vcxproj.in | 8 ++++---- projects/openttd_vs140.vcxproj | 8 ++++---- projects/openttd_vs140.vcxproj.in | 8 ++++---- projects/openttd_vs80.vcproj | 8 ++++---- projects/openttd_vs80.vcproj.in | 8 ++++---- projects/openttd_vs90.vcproj | 8 ++++---- projects/openttd_vs90.vcproj.in | 8 ++++---- 9 files changed, 33 insertions(+), 33 deletions(-) diff --git a/Doxyfile b/Doxyfile index 957ba60e19..58d7f0a89a 100644 --- a/Doxyfile +++ b/Doxyfile @@ -195,7 +195,7 @@ EXPAND_ONLY_PREDEF = YES SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = -PREDEFINED = ENABLE_NETWORK WITH_ZLIB WITH_LZO WITH_LZMA WITH_SDL WITH_PNG WITH_FONTCONFIG WITH_FREETYPE WITH_ICU UNICODE _UNICODE _GNU_SOURCE FINAL= +PREDEFINED = ENABLE_NETWORK WITH_ZLIB WITH_LZO WITH_LZMA WITH_SDL WITH_PNG WITH_FONTCONFIG WITH_FREETYPE WITH_ICU_SORT WITH_ICU_LAYOUT UNICODE _UNICODE _GNU_SOURCE FINAL= EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj index 37f9948032..59e087ee70 100644 --- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -102,7 +102,7 @@ Size true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) + WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) true Sync MultiThreaded @@ -156,7 +156,7 @@ /MP %(AdditionalOptions) Disabled ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) + WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -204,7 +204,7 @@ Size true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) + WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) true Sync MultiThreaded @@ -256,7 +256,7 @@ /MP %(AdditionalOptions) Disabled ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) + WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug diff --git a/projects/openttd_vs100.vcxproj.in b/projects/openttd_vs100.vcxproj.in index 7a4f0bce81..c6b16455a9 100644 --- a/projects/openttd_vs100.vcxproj.in +++ b/projects/openttd_vs100.vcxproj.in @@ -102,7 +102,7 @@ Size true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) + WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) true Sync MultiThreaded @@ -156,7 +156,7 @@ /MP %(AdditionalOptions) Disabled ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) + WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -204,7 +204,7 @@ Size true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) + WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) true Sync MultiThreaded @@ -256,7 +256,7 @@ /MP %(AdditionalOptions) Disabled ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) + WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index 88f7b44ddd..8d8b980649 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -105,7 +105,7 @@ Size true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) + WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) true Sync MultiThreaded @@ -163,7 +163,7 @@ Disabled true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) + WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -214,7 +214,7 @@ Size true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) + WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) true Sync MultiThreaded @@ -270,7 +270,7 @@ Disabled true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) + WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;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 8089278bff..76b16b5109 100644 --- a/projects/openttd_vs140.vcxproj.in +++ b/projects/openttd_vs140.vcxproj.in @@ -105,7 +105,7 @@ Size true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) + WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) true Sync MultiThreaded @@ -163,7 +163,7 @@ Disabled true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) + WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -214,7 +214,7 @@ Size true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) + WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) true Sync MultiThreaded @@ -270,7 +270,7 @@ Disabled true ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) + WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj index f859fcf18a..70dcab226a 100644 --- a/projects/openttd_vs80.vcproj +++ b/projects/openttd_vs80.vcproj @@ -52,7 +52,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT" StringPooling="true" ExceptionHandling="1" RuntimeLibrary="0" @@ -156,7 +156,7 @@ AdditionalOptions="/MP" Optimization="0" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\"" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -257,7 +257,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT" StringPooling="true" ExceptionHandling="1" RuntimeLibrary="0" @@ -362,7 +362,7 @@ AdditionalOptions="/MP" Optimization="0" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" diff --git a/projects/openttd_vs80.vcproj.in b/projects/openttd_vs80.vcproj.in index 57938f9e91..587871dca0 100644 --- a/projects/openttd_vs80.vcproj.in +++ b/projects/openttd_vs80.vcproj.in @@ -52,7 +52,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT" StringPooling="true" ExceptionHandling="1" RuntimeLibrary="0" @@ -156,7 +156,7 @@ AdditionalOptions="/MP" Optimization="0" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\"" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -257,7 +257,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT" StringPooling="true" ExceptionHandling="1" RuntimeLibrary="0" @@ -362,7 +362,7 @@ AdditionalOptions="/MP" Optimization="0" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj index 0cf6627fef..dd722d085d 100644 --- a/projects/openttd_vs90.vcproj +++ b/projects/openttd_vs90.vcproj @@ -53,7 +53,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT" StringPooling="true" ExceptionHandling="1" RuntimeLibrary="0" @@ -155,7 +155,7 @@ AdditionalOptions="/MP" Optimization="0" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\"" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -255,7 +255,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT" StringPooling="true" ExceptionHandling="1" RuntimeLibrary="0" @@ -359,7 +359,7 @@ AdditionalOptions="/MP" Optimization="0" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" diff --git a/projects/openttd_vs90.vcproj.in b/projects/openttd_vs90.vcproj.in index 2793927bdb..ce90ab5f29 100644 --- a/projects/openttd_vs90.vcproj.in +++ b/projects/openttd_vs90.vcproj.in @@ -53,7 +53,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT" StringPooling="true" ExceptionHandling="1" RuntimeLibrary="0" @@ -155,7 +155,7 @@ AdditionalOptions="/MP" Optimization="0" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\"" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -255,7 +255,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT" StringPooling="true" ExceptionHandling="1" RuntimeLibrary="0" @@ -359,7 +359,7 @@ AdditionalOptions="/MP" Optimization="0" AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" From d70da28365187d6f19b7d758242c808c4ff98175 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 17 Apr 2016 17:10:07 +0000 Subject: [PATCH 033/417] (svn r27543) -Fix (r27379): ScriptExec/TestMode::FinalRelease is not part of the API. --- src/script/api/script_execmode.hpp | 3 +++ src/script/api/script_testmode.hpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/script/api/script_execmode.hpp b/src/script/api/script_execmode.hpp index 84eda5ce26..96d30d1e4a 100644 --- a/src/script/api/script_execmode.hpp +++ b/src/script/api/script_execmode.hpp @@ -47,6 +47,9 @@ public: */ ~ScriptExecMode(); + /** + * @api -all + */ virtual void FinalRelease(); }; diff --git a/src/script/api/script_testmode.hpp b/src/script/api/script_testmode.hpp index 25c1ddaab0..699d4db18b 100644 --- a/src/script/api/script_testmode.hpp +++ b/src/script/api/script_testmode.hpp @@ -49,6 +49,9 @@ public: */ ~ScriptTestMode(); + /** + * @api -all + */ virtual void FinalRelease(); }; From 507e7135ecf5a7d33ac7e32977694b8e9b93d77e Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 17 Apr 2016 19:50:27 +0000 Subject: [PATCH 034/417] (svn r27544) -Fix-ish: Mark ScriptText::GetEncodedText as not part of any API, instead of relying on the export script to break on '/*'. --- src/script/api/script_text.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/script/api/script_text.hpp b/src/script/api/script_text.hpp index 21bf3929fb..ed14e391d0 100644 --- a/src/script/api/script_text.hpp +++ b/src/script/api/script_text.hpp @@ -124,7 +124,10 @@ public: ScriptText *AddParam(Object value); #endif /* DOXYGEN_API */ - /* virtual */ const char *GetEncodedText(); + /** + * @api -all + */ + virtual const char *GetEncodedText(); private: StringID string; From e9fea1738aea819848f48e0f4f4cd8d167f59bbb Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 17 Apr 2016 19:51:42 +0000 Subject: [PATCH 035/417] (svn r27545) -Fix: Remove special handling of classes with virtual methods from squirrel_export.awk. It seems to serve no purpose, except to break on 3 classes. --- src/script/api/squirrel_export.awk | 36 +++++++++++++----------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/script/api/squirrel_export.awk b/src/script/api/squirrel_export.awk index c397d1da6b..2cb47deddd 100644 --- a/src/script/api/squirrel_export.awk +++ b/src/script/api/squirrel_export.awk @@ -81,7 +81,6 @@ function reset_reader() struct_size = 0 method_size = 0 static_method_size = 0 - virtual_class = "false" cls = "" start_squirrel_define_on_next_line = "false" cls_level = 0 @@ -97,7 +96,6 @@ BEGIN { struct_size = 0 method_size = 0 static_method_size = 0 - virtual_class = "false" super_cls = "" cls = "" api_selected = "" @@ -340,7 +338,7 @@ BEGIN { } else { print " SQ" api_cls ".PreRegister(engine, \"" api_super_cls "\");" } - if (virtual_class == "false" && super_cls != "ScriptEvent") { + if (super_cls != "ScriptEvent") { if (cls_param[2] == "v") { print " SQ" api_cls ".AddSQAdvancedConstructor(engine);" } else { @@ -409,22 +407,21 @@ BEGIN { } if (static_method_size != 0) print "" - if (virtual_class == "false") { - # Non-static methods - mlen = 0 - for (i = 1; i <= method_size; i++) { - if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0]) - } - for (i = 1; i <= method_size; i++) { - if (methods[i, 2] == "v") { - print " SQ" api_cls ".DefSQAdvancedMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0]) - 8) "\"" methods[i, 0] "\");" - } else { - print " SQ" api_cls ".DefSQMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0])) "\"" methods[i, 0] "\", " substr(spaces, 1, mlen - length(methods[i, 0])) "" methods[i, 1] ", \"" methods[i, 2] "\");" - } - delete methods[i] - } - if (method_size != 0) print "" + # Non-static methods + mlen = 0 + for (i = 1; i <= method_size; i++) { + if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0]) } + for (i = 1; i <= method_size; i++) { + if (methods[i, 2] == "v") { + print " SQ" api_cls ".DefSQAdvancedMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0]) - 8) "\"" methods[i, 0] "\");" + } else { + print " SQ" api_cls ".DefSQMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0])) "\"" methods[i, 0] "\", " substr(spaces, 1, mlen - length(methods[i, 0])) "" methods[i, 1] ", \"" methods[i, 2] "\");" + } + delete methods[i] + } + if (method_size != 0) print "" + print " SQ" api_cls ".PostRegister(engine);" print "}" @@ -489,9 +486,6 @@ BEGIN { } is_static = match($0, "static") - if (match($0, "virtual")) { - virtual_class = "true" - } gsub("\\yvirtual\\y", "", $0) gsub("\\ystatic\\y", "", $0) gsub("\\yconst\\y", "", $0) From 732260853e223a8feba19fcfc0777e59ba49f3c8 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 17 Apr 2016 20:20:52 +0000 Subject: [PATCH 036/417] (svn r27546) -Fix: Remove SetFill from vehicle GUI buttons, so that the viewport is resized instead of them in case of long window titles. --- src/vehicle_gui.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 10f1d952da..1f03319ed0 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2278,22 +2278,22 @@ static const NWidgetPart _nested_vehicle_view_widgets[] = { EndContainer(), EndContainer(), NWidget(NWID_VERTICAL), - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_CENTER_MAIN_VIEW), SetMinimalSize(18, 18), SetFill(1, 1), SetDataTip(SPR_CENTRE_VIEW_VEHICLE, 0x0 /* filled later */), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_CENTER_MAIN_VIEW), SetMinimalSize(18, 18), SetDataTip(SPR_CENTRE_VIEW_VEHICLE, 0x0 /* filled later */), NWidget(NWID_SELECTION, INVALID_COLOUR, WID_VV_SELECT_DEPOT_CLONE), - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_GOTO_DEPOT), SetMinimalSize(18, 18), SetFill(1, 1), SetDataTip(0x0 /* filled later */, 0x0 /* filled later */), - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_CLONE), SetMinimalSize(18, 18), SetFill(1, 1), SetDataTip(0x0 /* filled later */, 0x0 /* filled later */), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_GOTO_DEPOT), SetMinimalSize(18, 18), SetDataTip(0x0 /* filled later */, 0x0 /* filled later */), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_CLONE), SetMinimalSize(18, 18), SetDataTip(0x0 /* filled later */, 0x0 /* filled later */), EndContainer(), /* For trains only, 'ignore signal' button. */ - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_FORCE_PROCEED), SetMinimalSize(18, 18), SetFill(1, 1), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_FORCE_PROCEED), SetMinimalSize(18, 18), SetDataTip(SPR_IGNORE_SIGNALS, STR_VEHICLE_VIEW_TRAIN_IGNORE_SIGNAL_TOOLTIP), NWidget(NWID_SELECTION, INVALID_COLOUR, WID_VV_SELECT_REFIT_TURN), - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_REFIT), SetMinimalSize(18, 18), SetFill(1, 1), SetDataTip(SPR_REFIT_VEHICLE, 0x0 /* filled later */), - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_TURN_AROUND), SetMinimalSize(18, 18), SetFill(1, 1), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_REFIT), SetMinimalSize(18, 18), SetDataTip(SPR_REFIT_VEHICLE, 0x0 /* filled later */), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_TURN_AROUND), SetMinimalSize(18, 18), SetDataTip(SPR_FORCE_VEHICLE_TURN, STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP), EndContainer(), - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_SHOW_ORDERS), SetFill(1, 1), SetMinimalSize(18, 18), SetDataTip(SPR_SHOW_ORDERS, 0x0 /* filled later */), - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_SHOW_DETAILS), SetFill(1, 1), SetMinimalSize(18, 18), SetDataTip(SPR_SHOW_VEHICLE_DETAILS, 0x0 /* filled later */), - NWidget(WWT_PANEL, COLOUR_GREY), SetFill(1, 1), SetMinimalSize(18, 0), SetResize(0, 1), EndContainer(), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_SHOW_ORDERS), SetMinimalSize(18, 18), SetDataTip(SPR_SHOW_ORDERS, 0x0 /* filled later */), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_VV_SHOW_DETAILS), SetMinimalSize(18, 18), SetDataTip(SPR_SHOW_VEHICLE_DETAILS, 0x0 /* filled later */), + NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(18, 0), SetResize(0, 1), EndContainer(), EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL), From 34b68c7a825b0059c76010ef4d59c2334e4aac51 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 19 Apr 2016 20:39:08 +0000 Subject: [PATCH 037/417] (svn r27547) -Fix: Use a more appropiate sound effect for convert-rail. (andythenorth) --- src/rail_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index a48abd29cc..3a903fbe7f 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -710,7 +710,7 @@ struct BuildRailToolbarWindow : Window { break; case DDSP_CONVERT_RAIL: - DoCommandP(end_tile, start_tile, _cur_railtype | (_ctrl_pressed ? 0x10 : 0), CMD_CONVERT_RAIL | CMD_MSG(STR_ERROR_CAN_T_CONVERT_RAIL), CcPlaySound10); + DoCommandP(end_tile, start_tile, _cur_railtype | (_ctrl_pressed ? 0x10 : 0), CMD_CONVERT_RAIL | CMD_MSG(STR_ERROR_CAN_T_CONVERT_RAIL), CcPlaySound1E); break; case DDSP_REMOVE_STATION: From fa83b145c8433ccf694a2cc19e1e56bf47e1a2f2 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 21 Apr 2016 17:45:38 +0000 Subject: [PATCH 038/417] (svn r27548) -Update from Eints: korean: 1 change by telk5093 --- 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 0af590b44b..8934559eb7 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1530,7 +1530,7 @@ STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA}칸 간 STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :드래그할 때, 신호기 사이의 거리를 계속 고정: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :신호기를 CTRL+드래그 하여 설치할 때의 행동을 선택합니다. 이 옵션을 끄면, 신호기가 없는 긴 폐색을 만들지 않기 위해 터널이나 다리 주변에 먼저 신호기가 설치될 것입니다. 이 옵션을 켜면, 신호기는 터널/다리와 상관없이 매 n개의 칸마다 설치될 것입니다. STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :전자식 신호기의 사용: {STRING}년 이후에 -STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :전자식 신호기를 사용할 수 있는 연도를 설정합니다. 이 이전에는 구식 신호기만 사용 가능합니다. (두 신호등은 기능적으로는 동일하고 모습만 다릅니다.) +STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :전자식 신호기를 사용할 수 있는 연도를 설정합니다. 이 이전에는 구식 신호기만 사용 가능합니다. (두 신호기는 기능적으로는 동일하고 모습만 다릅니다.) STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :신호기 설치시 신호기 선택 창을 띄움: {STRING} STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :설치할 신호기 종류를 고를 수 있는 신호기 선택 창을 표시합니다. 이 옵션을 끄면 선택 창 없이 CTRL+클릭 만으로 신호기의 종류를 바꿔야 합니다. STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :기본적으로 만들 신호기 종류: {STRING} From d23bcc13b148c5d4f7d05dd74d7105c49f9ffa7a Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 23 Apr 2016 17:45:37 +0000 Subject: [PATCH 039/417] (svn r27549) -Update from Eints: chinese (traditional): 1 change by ww9980 --- src/lang/traditional_chinese.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 9713a26a08..e0586ff7d8 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2874,7 +2874,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}前往 STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}上一個子畫面 STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}繼續處理上一個正常的子畫面,略過任何虛位/重新著色/文字字型相關的子畫面,並在到達第一個子畫面後,返回最後的子畫面繼續進行處理。 STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}顯示目前選取的 sprite。當 sprite 正在描繪時會忽略其定位 -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}移動 sprite 到指定的 X 及 Y 座標位移 +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}移動 sprite 到指定的 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}(絕對值) From 729a03ea6764850ede1aed2028e3c5a19e1a77df Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 25 Apr 2016 17:45:36 +0000 Subject: [PATCH 040/417] (svn r27550) -Update from Eints: frisian: 7 changes by BAJansen --- src/lang/unfinished/frisian.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 641699d799..7f077e244b 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -1976,6 +1976,7 @@ STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nei Bedr STR_NETWORK_CLIENTLIST_KICK :Skoppe STR_NETWORK_CLIENTLIST_GIVE_MONEY :Jouw jild STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Tsjin elkenien prate +STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Praat mei bedriuw STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT :Priveeberjocht STR_NETWORK_SERVER :Tsjinner @@ -2975,6 +2976,7 @@ STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Fiertúch STR_COMPANY_VIEW_TRAINS :{WHITE}{COMMA} trein{P "" en} STR_COMPANY_VIEW_ROAD_VEHICLES :{WHITE}{COMMA} Wein{P "" en} STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} fleantugen +STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} sk{P ip epen} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Gjin STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Bedriuwswearde: {WHITE}{CURRENCY_LONG} STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% besit fan {COMPANY}) @@ -3085,6 +3087,7 @@ STR_GROUP_ALL_ROAD_VEHICLES :Alle weinen STR_GROUP_ALL_SHIPS :Alle skepen STR_GROUP_ALL_AIRCRAFTS :Alle fleantugen +STR_GROUP_DEFAULT_SHIPS :Net groepearre skepen STR_GROUP_CREATE_TOOLTIP :{BLACK}Klik om in groep oan te meitsje STR_GROUP_DELETE_TOOLTIP :{BLACK}Smit de selektearre groep fuort @@ -3098,6 +3101,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Alle fiertugen # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nije spoar weinen STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nije elektryske treinen +STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nije Maglev Treinen STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nije Weinen STR_BUY_VEHICLE_SHIP_CAPTION :Nije Skepen @@ -3105,6 +3109,7 @@ STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nije fleantugen STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Snelheid: {GOLD}{VELOCITY}{BLACK} Kracht: {GOLD}{POWER} STR_PURCHASE_INFO_SPEED :{BLACK}Snelheid: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}Faasje op see: {GOLD}{VELOCITY} STR_PURCHASE_INFO_RUNNINGCOST :{BLACK}Underhâldskosten: {GOLD}{CURRENCY_LONG}/jr STR_PURCHASE_INFO_CAPACITY :{BLACK}Kapasiteit: {GOLD}{CARGO_LONG} {STRING} STR_PURCHASE_INFO_REFITTABLE :(kin omboud wurde) @@ -3202,6 +3207,7 @@ STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Klik om STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Klik om alle weinen yn dizze garaazje te stopjen STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Klik om alle fleantugen yn dizze hangar te stopje +STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Klik om alle skepen te starte # Engine preview window @@ -3365,6 +3371,7 @@ STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Fleantú STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Trein ombouwe nei selektearre fracht STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Wein ombouwe nij selektearre fracht STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Skip ombouwe nei selektearre fracht +STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Fleantúch ombouwe nei selektearre fracht # Order view STR_ORDERS_TIMETABLE_VIEW :{BLACK}Tjinstregeling From 806d97435e8a78e6a5a3e88202ea9e05fde4d6cf Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 28 Apr 2016 17:45:35 +0000 Subject: [PATCH 041/417] (svn r27551) -Update from Eints: ukrainian: 3 changes by odisseus --- src/lang/ukrainian.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index a07138e60f..9ee521a921 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -2491,7 +2491,7 @@ STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Комб STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Розширений сигнал (семафор){}Розширений сигнал дозволяє більше ніж одному поїзду одночасно заходити до блоку сигналів, якщо поїзд може зарезервувати шлях до безпечної точки зупинки. Розширені сигнали дозволяють проїжджати їх з обох сторін STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Односторонній розширений сигнал (семафор){}Розширений сигнал дозволяє більше ніж одному поїзду одночасно заходити до блоку сигналів, якщо поїзд може зарезервувати шлях до безпечної точки зупинки. Односторонні розширені сигнали не дозволяють вїжджати з іншої сторони STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Звичайний сигнал (електричний){}Найпростіший тип сигналу, який дозволяє перебувати у сигнальному блоці тільки одному поїзду. Сигнали необхідні для того, щоб уникнути зіткнень поїздів на залізницях, де більше одного поїзда -STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Вхідний сигнал (електричний){}Зелений, доки один або більше зелених вихідних сигналів з наступної блок-дільниці. Інакше червоний +STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Вхідний сигнал (електричний){}Зелений, доки є один або більше зелених вихідних сигналів з наступної блок-дільниці. Інакше червоний STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Вихідний сигнал (електричний){}Працює як звичайний сигнал, але необхідний для нормальної роботи вхідного або комбінованого пре-сигналів STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Комбінований сигнал (електричний){}Комбінований сигнал працює як об'єднаний вхідний-вихідний сигнал. Це дозволяє будувати великі "дерева" пре-сигналів STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Розширений сигнал (електричний){}Розширений сигнал дозволяє більше ніж одному поїзду одночасно заходити до блоку сигналів, якщо поїзд може зарезервувати шлях до безпечної точки зупинки. Розширені сигнали дозволяють проїжджати їх з обох сторін @@ -3005,7 +3005,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Йти STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Попередній спрайт STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Повернутися до попереднього нормального спрайту, пропускаючи будь-які псевдо/перемальовані/шрифтові спрайти і обгортаючи (wrap) навколо починаючи з першого спрайту і закінчуючи останнім STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Відображення обраного спрайту (вирівнювання ігнорується) -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Рухайте спрайт навколо, змінюючи його зміщення за X та Y +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} (Абсолютно) @@ -4096,7 +4096,7 @@ 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_CONTINUE :{BLACK}Продовжити From a3ffac00254271994d6f4f0ffe1bc9127dc5a879 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 30 Apr 2016 08:28:40 +0000 Subject: [PATCH 042/417] (svn r27552) -Feature: Mexican Spanish (Absay) --- src/lang/spanish_MX.txt | 4971 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 4971 insertions(+) create mode 100644 src/lang/spanish_MX.txt diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt new file mode 100644 index 0000000000..9771aac2c1 --- /dev/null +++ b/src/lang/spanish_MX.txt @@ -0,0 +1,4971 @@ +##name Spanish (Mexican) +##ownname Español mexicano (MX) +##isocode es_MX +##plural 0 +##textdir ltr +##digitsep , +##digitsepcur , +##decimalsep . +##winlangid 0x080a +##grflangid 0x55 +##gender m f + + +# $Id$ + +# This file is part of OpenTTD. +# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + + +##id 0x0000 +STR_NULL : +STR_EMPTY : +STR_UNDEFINED :(no definido) +STR_JUST_NOTHING :Nada + +# Cargo related strings +# Plural cargo name +STR_CARGO_PLURAL_NOTHING : +STR_CARGO_PLURAL_PASSENGERS :{G=m}Pasajeros +STR_CARGO_PLURAL_COAL :{G=m}Carbón +STR_CARGO_PLURAL_MAIL :{G=m}Correo +STR_CARGO_PLURAL_OIL :{G=m}Petróleo +STR_CARGO_PLURAL_LIVESTOCK :{G=m}Ganado +STR_CARGO_PLURAL_GOODS :{G=f}Mercancías +STR_CARGO_PLURAL_GRAIN :{G=m}Grano +STR_CARGO_PLURAL_WOOD :{G=f}Madera +STR_CARGO_PLURAL_IRON_ORE :{G=m}Mineral de hierro +STR_CARGO_PLURAL_STEEL :{G=m}Acero +STR_CARGO_PLURAL_VALUABLES :{G=m}Valores +STR_CARGO_PLURAL_COPPER_ORE :{G=m}Mineral de cobre +STR_CARGO_PLURAL_MAIZE :{G=m}Maíz +STR_CARGO_PLURAL_FRUIT :{G=f}Frutas +STR_CARGO_PLURAL_DIAMONDS :{G=m}Diamantes +STR_CARGO_PLURAL_FOOD :{G=m}Alimentos +STR_CARGO_PLURAL_PAPER :{G=m}Papel +STR_CARGO_PLURAL_GOLD :{G=m}Oro +STR_CARGO_PLURAL_WATER :{G=m}Agua +STR_CARGO_PLURAL_WHEAT :{G=m}Trigo +STR_CARGO_PLURAL_RUBBER :{G=m}Caucho +STR_CARGO_PLURAL_SUGAR :{G=m}Azúcar +STR_CARGO_PLURAL_TOYS :{G=m}Juguetes +STR_CARGO_PLURAL_CANDY :{G=m}Dulces +STR_CARGO_PLURAL_COLA :{G=f}Bebida de cola +STR_CARGO_PLURAL_COTTON_CANDY :{G=m}Algodón de azúcar +STR_CARGO_PLURAL_BUBBLES :{G=f}Burbujas +STR_CARGO_PLURAL_TOFFEE :{G=m}Jamoncillos +STR_CARGO_PLURAL_BATTERIES :{G=f}Pilas +STR_CARGO_PLURAL_PLASTIC :{G=m}Plástico +STR_CARGO_PLURAL_FIZZY_DRINKS :{G=m}Refrescos + +# Singular cargo name +STR_CARGO_SINGULAR_NOTHING : +STR_CARGO_SINGULAR_PASSENGER :{G=m}Pasajero +STR_CARGO_SINGULAR_COAL :{G=m}Carbón +STR_CARGO_SINGULAR_MAIL :{G=m}Correo +STR_CARGO_SINGULAR_OIL :{G=m}Petróleo +STR_CARGO_SINGULAR_LIVESTOCK :{G=m}Ganado +STR_CARGO_SINGULAR_GOODS :{G=f}Mercancía +STR_CARGO_SINGULAR_GRAIN :{G=m}Grano +STR_CARGO_SINGULAR_WOOD :{G=f}Madera +STR_CARGO_SINGULAR_IRON_ORE :{G=m}Mineral de hierro +STR_CARGO_SINGULAR_STEEL :{G=m}Acero +STR_CARGO_SINGULAR_VALUABLES :{G=m}Objeto de valor +STR_CARGO_SINGULAR_COPPER_ORE :{G=m}Mineral de cobre +STR_CARGO_SINGULAR_MAIZE :{G=m}Maíz +STR_CARGO_SINGULAR_FRUIT :{G=f}Fruta +STR_CARGO_SINGULAR_DIAMOND :{G=m}Diamante +STR_CARGO_SINGULAR_FOOD :{G=m}Alimento +STR_CARGO_SINGULAR_PAPER :{G=m}Papel +STR_CARGO_SINGULAR_GOLD :{G=m}Oro +STR_CARGO_SINGULAR_WATER :{G=m}Agua +STR_CARGO_SINGULAR_WHEAT :{G=m}Trigo +STR_CARGO_SINGULAR_RUBBER :{G=m}Caucho +STR_CARGO_SINGULAR_SUGAR :{G=m}Azúcar +STR_CARGO_SINGULAR_TOY :{G=m}Juguete +STR_CARGO_SINGULAR_CANDY :{G=m}Dulce +STR_CARGO_SINGULAR_COLA :{G=f}Bebida de cola +STR_CARGO_SINGULAR_COTTON_CANDY :{G=m}Algodón de azúcar +STR_CARGO_SINGULAR_BUBBLE :{G=f}Burbuja +STR_CARGO_SINGULAR_TOFFEE :{G=m}Jamoncillo +STR_CARGO_SINGULAR_BATTERY :{G=f}Pila +STR_CARGO_SINGULAR_PLASTIC :{G=m}Plástico +STR_CARGO_SINGULAR_FIZZY_DRINK :{G=m}Refresco + +# Quantity of cargo +STR_QUANTITY_NOTHING : +STR_QUANTITY_PASSENGERS :{COMMA}{NBSP}pasajero{P "" s} +STR_QUANTITY_COAL :{WEIGHT_LONG} de carbón +STR_QUANTITY_MAIL :{COMMA}{NBSP}bolsa{P "" s} de correo +STR_QUANTITY_OIL :{VOLUME_LONG} de petróleo +STR_QUANTITY_LIVESTOCK :{COMMA}{NBSP}cabeza{P "" s} de ganado +STR_QUANTITY_GOODS :{COMMA}{NBSP}caja{P "" s} de mercancías +STR_QUANTITY_GRAIN :{WEIGHT_LONG} de grano +STR_QUANTITY_WOOD :{WEIGHT_LONG} de madera +STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} de mineral de hierro +STR_QUANTITY_STEEL :{WEIGHT_LONG} de acero +STR_QUANTITY_VALUABLES :{COMMA}{NBSP}bolsa{P "" s} de objetos de valor +STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} de mineral de cobre +STR_QUANTITY_MAIZE :{WEIGHT_LONG} de maíz +STR_QUANTITY_FRUIT :{WEIGHT_LONG} de fruta +STR_QUANTITY_DIAMONDS :{COMMA}{NBSP}bolsa{P "" s} de diamantes +STR_QUANTITY_FOOD :{WEIGHT_LONG} de alimento +STR_QUANTITY_PAPER :{WEIGHT_LONG} de papel +STR_QUANTITY_GOLD :{COMMA}{NBSP}bolsa{P "" s} de oro +STR_QUANTITY_WATER :{VOLUME_LONG} de agua +STR_QUANTITY_WHEAT :{WEIGHT_LONG} de trigo +STR_QUANTITY_RUBBER :{VOLUME_LONG} de caucho +STR_QUANTITY_SUGAR :{WEIGHT_LONG} de azúcar +STR_QUANTITY_TOYS :{COMMA}{NBSP}juguete{P "" s} +STR_QUANTITY_SWEETS :{COMMA}{NBSP}bolsa{P "" s} de dulces +STR_QUANTITY_COLA :{VOLUME_LONG} de cola +STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} de algo{P dón dones} de azúcar +STR_QUANTITY_BUBBLES :{COMMA} burbuja{P "" s} +STR_QUANTITY_TOFFEE :{WEIGHT_LONG} de jamoncillo{P "" s} +STR_QUANTITY_BATTERIES :{COMMA} pila{P "" s} +STR_QUANTITY_PLASTIC :{VOLUME_LONG} de plásticos +STR_QUANTITY_FIZZY_DRINKS :{COMMA} refresco{P "" s} +STR_QUANTITY_N_A :Ninguna + +# Two letter abbreviation of cargo name +STR_ABBREV_NOTHING : +STR_ABBREV_PASSENGERS :{TINY_FONT}PJ +STR_ABBREV_COAL :{TINY_FONT}CB +STR_ABBREV_MAIL :{TINY_FONT}CR +STR_ABBREV_OIL :{TINY_FONT}PT +STR_ABBREV_LIVESTOCK :{TINY_FONT}GN +STR_ABBREV_GOODS :{TINY_FONT}MC +STR_ABBREV_GRAIN :{TINY_FONT}GR +STR_ABBREV_WOOD :{TINY_FONT}MD +STR_ABBREV_IRON_ORE :{TINY_FONT}MH +STR_ABBREV_STEEL :{TINY_FONT}AC +STR_ABBREV_VALUABLES :{TINY_FONT}VA +STR_ABBREV_COPPER_ORE :{TINY_FONT}MC +STR_ABBREV_MAIZE :{TINY_FONT}MZ +STR_ABBREV_FRUIT :{TINY_FONT}FT +STR_ABBREV_DIAMONDS :{TINY_FONT}DM +STR_ABBREV_FOOD :{TINY_FONT}AL +STR_ABBREV_PAPER :{TINY_FONT}PP +STR_ABBREV_GOLD :{TINY_FONT}OR +STR_ABBREV_WATER :{TINY_FONT}AG +STR_ABBREV_WHEAT :{TINY_FONT}TG +STR_ABBREV_RUBBER :{TINY_FONT}GA +STR_ABBREV_SUGAR :{TINY_FONT}AZ +STR_ABBREV_TOYS :{TINY_FONT}JG +STR_ABBREV_SWEETS :{TINY_FONT}DC +STR_ABBREV_COLA :{TINY_FONT}CL +STR_ABBREV_CANDYFLOSS :{TINY_FONT}AA +STR_ABBREV_BUBBLES :{TINY_FONT}BU +STR_ABBREV_TOFFEE :{TINY_FONT}JM +STR_ABBREV_BATTERIES :{TINY_FONT}PI +STR_ABBREV_PLASTIC :{TINY_FONT}PL +STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}RF +STR_ABBREV_NONE :{TINY_FONT}NO +STR_ABBREV_ALL :{TINY_FONT}TOD + +# 'Mode' of transport for cargoes +STR_PASSENGERS :{COMMA}{NBSP}pasajero{P "" s} +STR_BAGS :{COMMA}{NBSP}bolsa{P "" s} +STR_TONS :{COMMA}{NBSP}tonelada{P "" s} +STR_LITERS :{COMMA}{NBSP}litro{P "" s} +STR_ITEMS :{COMMA}{NBSP}artículo{P "" s} +STR_CRATES :{COMMA}{NBSP}caja{P "" s} + +# Colours, do not shuffle +STR_COLOUR_DARK_BLUE :Azul oscuro +STR_COLOUR_PALE_GREEN :Verde claro +STR_COLOUR_PINK :Rosa +STR_COLOUR_YELLOW :Amarillo +STR_COLOUR_RED :Rojo +STR_COLOUR_LIGHT_BLUE :Azul claro +STR_COLOUR_GREEN :Verde +STR_COLOUR_DARK_GREEN :Verde oscuro +STR_COLOUR_BLUE :Azul +STR_COLOUR_CREAM :Crema +STR_COLOUR_MAUVE :Malva +STR_COLOUR_PURPLE :Morado +STR_COLOUR_ORANGE :Naranja +STR_COLOUR_BROWN :Café +STR_COLOUR_GREY :Gris +STR_COLOUR_WHITE :Blanco + +# Units used in OpenTTD +STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph +STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km/h +STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s + +STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}hp +STR_UNITS_POWER_METRIC :{COMMA}{NBSP}cv +STR_UNITS_POWER_SI :{COMMA}{NBSP}kW + +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}tonelada{P "" s} +STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP}tonelada{P "" s} +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}{NBSP}m³ + +STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA} gal{P ón ones} +STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}litro{P "" s} +STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³ + +STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lbf +STR_UNITS_FORCE_METRIC :{COMMA}{NBSP}kp +STR_UNITS_FORCE_SI :{COMMA}{NBSP}kN + +STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP}pies +STR_UNITS_HEIGHT_METRIC :{COMMA}{NBSP}m +STR_UNITS_HEIGHT_SI :{COMMA}{NBSP}m + +# Common window strings +STR_LIST_FILTER_TITLE :{BLACK}Filtrar palabras: +STR_LIST_FILTER_OSKTITLE :{BLACK}Indicar una palabra a filtrar +STR_LIST_FILTER_TOOLTIP :{BLACK}Indicar una palabra clave para filtrar la lista + +STR_TOOLTIP_GROUP_ORDER :{BLACK}Elegir orden de grupo +STR_TOOLTIP_SORT_ORDER :{BLACK}Elegir orden descendiente o ascendiente +STR_TOOLTIP_SORT_CRITERIA :{BLACK}Elegir criterio de orden +STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Elegir criterio de filtrado +STR_BUTTON_SORT_BY :{BLACK}Ordenar por +STR_BUTTON_LOCATION :{BLACK}Ubicación +STR_BUTTON_RENAME :{BLACK}Cambiar nombre + +STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Cerrar ventana +STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Título de la ventana (arrastrar para mover) +STR_TOOLTIP_SHADE :{BLACK}Ocultar ventana (mostrar solo título) +STR_TOOLTIP_DEBUG :{BLACK}Mostrar información de depuración de NewGRF +STR_TOOLTIP_DEFSIZE :{BLACK}Cambiar al tamaño predeterminado de la ventana. Ctrl+Clic guarda el tamaño actual como nuevo tamaño predeterminado +STR_TOOLTIP_STICKY :{BLACK}Excluir esta ventana de la función 'Cerrar todas las ventanas' (tecla Supr). Ctrl+Clic guarda esta preferencia como opción predeterminada +STR_TOOLTIP_RESIZE :{BLACK}Arrastrar para cambiar el tamaño de esta ventana +STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Cambiar entre tamaño de ventana grande o pequeño +STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de desplazamiento (mueve la lista arriba o abajo) +STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de desplazamiento (mueve la lista izquierda o derecha) +STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Demoler edificios, etc. en un área de terreno. Ctrl permite trazar una diagonal para seleccionar un área cuadrada. Mayús muestra una estimación del precio + +# Show engines button +STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}Mostrar ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}Mostrar ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Mostrar ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Mostrar ocultos + +STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Activar para mostrar también los trenes ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Activar para mostrar también los vehículos de carretera ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Activar para mostrar también los barcos ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Activar para mostrar también las aeronaves ocultas + +# Query window +STR_BUTTON_DEFAULT :{BLACK}Predeterminado +STR_BUTTON_CANCEL :{BLACK}Cancelar +STR_BUTTON_OK :{BLACK}Aceptar + +# On screen keyboard window +STR_OSK_KEYBOARD_LAYOUT :|1234567890'¿\qwertyuiop´+asdfghjklñ{}ZXCVBNM;:_ . + +# Measurement tooltip +STR_MEASURE_LENGTH :{BLACK}Longitud: {NUM} +STR_MEASURE_AREA :{BLACK}Área: {NUM} x {NUM} +STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Longitud: {NUM}{}Diferencia altura: {HEIGHT} +STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Área: {NUM}×{NUM}{}Diferencia altura: {HEIGHT} + + +# These are used in buttons +STR_SORT_BY_CAPTION_NAME :{BLACK}Nombre +STR_SORT_BY_CAPTION_DATE :{BLACK}Fecha +# These are used in dropdowns +STR_SORT_BY_NAME :Nombre +STR_SORT_BY_PRODUCTION :Producción +STR_SORT_BY_TYPE :Tipo +STR_SORT_BY_TRANSPORTED :Transportado +STR_SORT_BY_NUMBER :Número +STR_SORT_BY_PROFIT_LAST_YEAR :Utilidad año pasado +STR_SORT_BY_PROFIT_THIS_YEAR :Utilidad este año +STR_SORT_BY_AGE :Edad +STR_SORT_BY_RELIABILITY :Fiabilidad +STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Capacidad por tipo de carga +STR_SORT_BY_MAX_SPEED :Velocidad máxima +STR_SORT_BY_MODEL :Modelo +STR_SORT_BY_VALUE :Valor +STR_SORT_BY_LENGTH :Longitud +STR_SORT_BY_LIFE_TIME :Tiempo de vida restante +STR_SORT_BY_TIMETABLE_DELAY :Retraso en itinerario +STR_SORT_BY_FACILITY :Tipo de estación +STR_SORT_BY_WAITING_TOTAL :Cargamento total en espera +STR_SORT_BY_WAITING_AVAILABLE :Cargamento disponible en espera +STR_SORT_BY_RATING_MAX :Valoración más alta de cargamento +STR_SORT_BY_RATING_MIN :Valoración más baja de cargamento +STR_SORT_BY_ENGINE_ID :Id. de locomotora (orden clásico) +STR_SORT_BY_COST :Costo +STR_SORT_BY_POWER :Potencia +STR_SORT_BY_TRACTIVE_EFFORT :Fuerza de tracción +STR_SORT_BY_INTRO_DATE :Fecha de introducción +STR_SORT_BY_RUNNING_COST :Costo de operación +STR_SORT_BY_POWER_VS_RUNNING_COST :Potencia vs. costo de operación +STR_SORT_BY_CARGO_CAPACITY :Capacidad de carga +STR_SORT_BY_RANGE :Alcance +STR_SORT_BY_POPULATION :Población +STR_SORT_BY_RATING :Evaluación + +# Tooltips for the main toolbar +STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Poner en pausa +STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Avance rápido +STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Opciones +STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Guardar partida, retirarse, salir +STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Mostrar mapa, ventana de vista adicional o lista de carteles +STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Mostrar guía de pueblos +STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Mostrar subsidios +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Mostrar lista de estaciones +STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Mostrar información financiera de la empresa +STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Mostrar información general de la empresa +STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Mostrar historial +STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Mostrar lista de metas +STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Mostrar gráficas +STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Mostrar tabla de evaluación de empresas +STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Aportar fondos para construir una nueva industria +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Mostrar lista de trenes de la empresa. Ctrl+Clic oculta la lista de grupos +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Mostrar lista de vehículos de carretera de la empresa. Ctrl+Clic oculta la lista de grupos +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Mostrar lista de barcos de la empresa. Ctrl+Clic oculta la lista de grupos +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}Mostrar lista de aeronaves de la empresa. Ctrl+Clic oculta la lista de grupos +STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Acercar vista +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_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. +STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Mostrar ventana de sonido y música +STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Mostrar último mensaje o noticia, mostrar opciones de mensajes +STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Información sobre área de terreno, consola, depuración de script, capturas de pantalla, acerca de OpenTTD +STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Cambiar barras de herramientas + +# Extra tooltips for the scenario editor toolbar +STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Guardar mapa personalizado, cargar mapa personalizado, salir del editor, salir +STR_SCENEDIT_TOOLBAR_OPENTTD :{YELLOW}OpenTTD +STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR :{YELLOW}Editor de mapas personalizados +STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD :{BLACK}Retroceder un año la fecha de inicio +STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD :{BLACK}Avanzar un año la fecha de inicio +STR_SCENEDIT_TOOLBAR_TOOLTIP_SET_DATE :{BLACK}Clic para establecer el año inicial +STR_SCENEDIT_TOOLBAR_TOOLTIP_DISPLAY_MAP_TOWN_DIRECTORY :{BLACK}Mostrar mapa, guía de pueblos +STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Generación de terreno +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_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 + +############ range for SE file menu starts +STR_SCENEDIT_FILE_MENU_SAVE_SCENARIO :Guardar mapa +STR_SCENEDIT_FILE_MENU_LOAD_SCENARIO :Cargar mapa +STR_SCENEDIT_FILE_MENU_SAVE_HEIGHTMAP :Guardar mapa de alturas +STR_SCENEDIT_FILE_MENU_LOAD_HEIGHTMAP :Cargar mapa de alturas +STR_SCENEDIT_FILE_MENU_QUIT_EDITOR :Salir del editor +STR_SCENEDIT_FILE_MENU_SEPARATOR : +STR_SCENEDIT_FILE_MENU_QUIT :Salir +############ range for SE file menu starts + +############ range for settings menu starts +STR_SETTINGS_MENU_GAME_OPTIONS :Opciones de juego +STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :Configuración +STR_SETTINGS_MENU_SCRIPT_SETTINGS :Configuración de scripts +STR_SETTINGS_MENU_NEWGRF_SETTINGS :Configuración de NewGRF +STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :Opciones de transparencia +STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED :Mostrar nombres de pueblos +STR_SETTINGS_MENU_STATION_NAMES_DISPLAYED :Mostrar nombres de estaciones +STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED :Mostrar puestos guías +STR_SETTINGS_MENU_SIGNS_DISPLAYED :Mostrar carteles propios +STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS :Mostrar carteles y nombres del competidor +STR_SETTINGS_MENU_FULL_ANIMATION :Animación completa +STR_SETTINGS_MENU_FULL_DETAIL :Detalle completo +STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS :Edificios transparentes +STR_SETTINGS_MENU_TRANSPARENT_SIGNS :Carteles transparentes +############ range ends here + +############ range for file menu starts +STR_FILE_MENU_SAVE_GAME :Guardar partida +STR_FILE_MENU_LOAD_GAME :Cargar partida +STR_FILE_MENU_QUIT_GAME :Retirarse de la partida +STR_FILE_MENU_SEPARATOR : +STR_FILE_MENU_EXIT :Salir +############ range ends here + +# map menu +STR_MAP_MENU_MAP_OF_WORLD :Minimapa completo +STR_MAP_MENU_EXTRA_VIEW_PORT :Ventana de vista adicional +STR_MAP_MENU_LINGRAPH_LEGEND :Leyenda de flujo de cargamento +STR_MAP_MENU_SIGN_LIST :Lista de carteles + +############ range for town menu starts +STR_TOWN_MENU_TOWN_DIRECTORY :Guía de pueblos +STR_TOWN_MENU_FOUND_TOWN :Fundar pueblo +############ range ends here + +############ range for subsidies menu starts +STR_SUBSIDIES_MENU_SUBSIDIES :Subsidios +############ range ends here + +############ range for graph menu starts +STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH :Gráfica de utilidades operativas +STR_GRAPH_MENU_INCOME_GRAPH :Gráfica de ingresos +STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH :Gráfica de cargamento entregado +STR_GRAPH_MENU_PERFORMANCE_HISTORY_GRAPH :Gráfica de desempeño +STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :Gráfica del valor de la empresa +STR_GRAPH_MENU_CARGO_PAYMENT_RATES :Tarifas de pagos por cargamento +############ range ends here + +############ range for company league menu starts +STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :Tabla de evaluación de empresas +STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING :Detalles de desempeño +STR_GRAPH_MENU_HIGHSCORE :Tabla de puntuaciones +############ range ends here + +############ range for industry menu starts +STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :Guía de industrias +STR_INDUSTRY_MENU_INDUSTRY_CHAIN :Cadenas de industrias +STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Fundar nueva industria +############ range ends here + +############ range for railway construction menu starts +STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construcción de ferrocarril +STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcción de ferrocarril eléctrico +STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construcción de monorriel +STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construcción de maglev +############ range ends here + +############ range for road construction menu starts +STR_ROAD_MENU_ROAD_CONSTRUCTION :Construcción de carretera +STR_ROAD_MENU_TRAM_CONSTRUCTION :Construcción de tranvía +############ range ends here + +############ range for waterways construction menu starts +STR_WATERWAYS_MENU_WATERWAYS_CONSTRUCTION :Construcción de canales +############ range ends here + +############ range for airport construction menu starts +STR_AIRCRAFT_MENU_AIRPORT_CONSTRUCTION :Construcción de aeropuerto +############ range ends here + +############ range for landscaping menu starts +STR_LANDSCAPING_MENU_LANDSCAPING :Terreno +STR_LANDSCAPING_MENU_PLANT_TREES :Plantar árboles +STR_LANDSCAPING_MENU_PLACE_SIGN :Poner letrero +############ range ends here + +############ range for music menu starts +STR_TOOLBAR_SOUND_MUSIC :Sonido y música +############ range ends here + +############ range for message menu starts +STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Último mensaje o noticia +STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Historial de mensajes +############ range ends here + +############ range for about menu starts +STR_ABOUT_MENU_LAND_BLOCK_INFO :Información sobre área de terreno +STR_ABOUT_MENU_SEPARATOR : +STR_ABOUT_MENU_TOGGLE_CONSOLE :Activar consola +STR_ABOUT_MENU_AI_DEBUG :Depuración de scripts de IA o juego +STR_ABOUT_MENU_SCREENSHOT :Captura de pantalla +STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Captura con acercamiento completo +STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura con acercamiento predeterminado +STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de mapa completo +STR_ABOUT_MENU_ABOUT_OPENTTD :Acerca de 'OpenTTD' +STR_ABOUT_MENU_SPRITE_ALIGNER :Alineador de sprites +STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Activar cajas delimitadoras +STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :Activar coloreado de bloques modificados +############ range ends here + +############ range for ordinal numbers used for the place in the highscore window +STR_ORDINAL_NUMBER_1ST :1º +STR_ORDINAL_NUMBER_2ND :2º +STR_ORDINAL_NUMBER_3RD :3º +STR_ORDINAL_NUMBER_4TH :4º +STR_ORDINAL_NUMBER_5TH :5º +STR_ORDINAL_NUMBER_6TH :6º +STR_ORDINAL_NUMBER_7TH :7º +STR_ORDINAL_NUMBER_8TH :8º +STR_ORDINAL_NUMBER_9TH :9º +STR_ORDINAL_NUMBER_10TH :10º +STR_ORDINAL_NUMBER_11TH :11º +STR_ORDINAL_NUMBER_12TH :12º +STR_ORDINAL_NUMBER_13TH :13º +STR_ORDINAL_NUMBER_14TH :14º +STR_ORDINAL_NUMBER_15TH :15º +############ range for ordinal numbers ends + +############ range for days starts +STR_DAY_NUMBER_1ST :1 +STR_DAY_NUMBER_2ND :2 +STR_DAY_NUMBER_3RD :3 +STR_DAY_NUMBER_4TH :4 +STR_DAY_NUMBER_5TH :5 +STR_DAY_NUMBER_6TH :6 +STR_DAY_NUMBER_7TH :7 +STR_DAY_NUMBER_8TH :8 +STR_DAY_NUMBER_9TH :9 +STR_DAY_NUMBER_10TH :10 +STR_DAY_NUMBER_11TH :11 +STR_DAY_NUMBER_12TH :12 +STR_DAY_NUMBER_13TH :13 +STR_DAY_NUMBER_14TH :14 +STR_DAY_NUMBER_15TH :15 +STR_DAY_NUMBER_16TH :16 +STR_DAY_NUMBER_17TH :17 +STR_DAY_NUMBER_18TH :18 +STR_DAY_NUMBER_19TH :19 +STR_DAY_NUMBER_20TH :20 +STR_DAY_NUMBER_21ST :21 +STR_DAY_NUMBER_22ND :22 +STR_DAY_NUMBER_23RD :23 +STR_DAY_NUMBER_24TH :24 +STR_DAY_NUMBER_25TH :25 +STR_DAY_NUMBER_26TH :26 +STR_DAY_NUMBER_27TH :27 +STR_DAY_NUMBER_28TH :28 +STR_DAY_NUMBER_29TH :29 +STR_DAY_NUMBER_30TH :30 +STR_DAY_NUMBER_31ST :31 +############ range for days ends + +############ range for months starts +STR_MONTH_ABBREV_JAN :Ene +STR_MONTH_ABBREV_FEB :Feb +STR_MONTH_ABBREV_MAR :Mar +STR_MONTH_ABBREV_APR :Abr +STR_MONTH_ABBREV_MAY :May +STR_MONTH_ABBREV_JUN :Jun +STR_MONTH_ABBREV_JUL :Jul +STR_MONTH_ABBREV_AUG :Ago +STR_MONTH_ABBREV_SEP :Sep +STR_MONTH_ABBREV_OCT :Oct +STR_MONTH_ABBREV_NOV :Nov +STR_MONTH_ABBREV_DEC :Dic + +STR_MONTH_JAN :Enero +STR_MONTH_FEB :Febrero +STR_MONTH_MAR :Marzo +STR_MONTH_APR :Abril +STR_MONTH_MAY :Mayo +STR_MONTH_JUN :Junio +STR_MONTH_JUL :Julio +STR_MONTH_AUG :Agosto +STR_MONTH_SEP :Septiembre +STR_MONTH_OCT :Octubre +STR_MONTH_NOV :Noviembre +STR_MONTH_DEC :Diciembre +############ range for months ends + +# Graph window +STR_GRAPH_KEY_BUTTON :{BLACK}Leyenda +STR_GRAPH_KEY_TOOLTIP :{BLACK}Mostrar leyenda de gráficas +STR_GRAPH_X_LABEL_MONTH :{TINY_FONT}{STRING}{} {STRING} +STR_GRAPH_X_LABEL_MONTH_YEAR :{TINY_FONT}{STRING}{} {STRING}{}{NUM} +STR_GRAPH_Y_LABEL :{TINY_FONT}{STRING} +STR_GRAPH_Y_LABEL_NUMBER :{TINY_FONT}{COMMA} + +STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Gráfica de utilidad operativa +STR_GRAPH_INCOME_CAPTION :{WHITE}Gráfica de ingresos +STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Unidades de cargamento entregadas +STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Nivel de desempeño (nivel máximo: 1000) +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Valor de la empresa + +STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Tarifas de pago por cargamento +STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Días en tránsito +STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Pago por entregar 10 unidades (o 10,000 litros) de cargamento por distancia de 20 casillas +STR_GRAPH_CARGO_ENABLE_ALL :{TINY_FONT}{BLACK}Activar todos +STR_GRAPH_CARGO_DISABLE_ALL :{TINY_FONT}{BLACK}Desactivar todos +STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL :{BLACK}Mostrar todos los tipos de carga en la gráfica de tarifas de pago por cargamento +STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Ocultar todos los tipos de carga en la gráfica de tarifas de pago por cargamento +STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Mostrar u ocultar gráfica de este tipo de cargamento +STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING} + +STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Mostrar detalles de nivel de desempeño + +# Graph key window +STR_GRAPH_KEY_CAPTION :{WHITE}Leyenda de claves de gráfica +STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Mostrar u ocultar la entrada de la empresa en la gráfica + +# Company league window +STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Tabla de evaluación de empresas +STR_COMPANY_LEAGUE_COMPANY_NAME :{ORANGE}{COMPANY} {BLACK}{COMPANY_NUM} '{STRING}' +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER :Ingeniero +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER :Director de Tráfico +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRANSPORT_COORDINATOR :Coordinador de Transporte +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR :Supervisor de Ruta +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR :Directivo +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE :Subdirector +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN :Director +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :Presidente +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Magnate + +# Performance detail window +STR_PERFORMANCE_DETAIL :{WHITE}Detalle de nivel de desempeño +STR_PERFORMANCE_DETAIL_KEY :{BLACK}Detalle +STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT}) +STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA}) +STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}% +STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP :{BLACK}Mostrar detalles de esta empresa +############ Those following lines need to be in this order!! +STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}Vehículos: +STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}Estaciones: +STR_PERFORMANCE_DETAIL_MIN_PROFIT :{BLACK}Utilidad mín.: +STR_PERFORMANCE_DETAIL_MIN_INCOME :{BLACK}Ingreso mín.: +STR_PERFORMANCE_DETAIL_MAX_INCOME :{BLACK}Ingreso máx.: +STR_PERFORMANCE_DETAIL_DELIVERED :{BLACK}Entregado: +STR_PERFORMANCE_DETAIL_CARGO :{BLACK}Cargamento: +STR_PERFORMANCE_DETAIL_MONEY :{BLACK}Dinero: +STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Préstamo: +STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total: +############ End of order list +STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Número de vehículos que generaron utilidades el año pasado. Incluye vehículos de carretera, trenes, barcos y aeronaves +STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Número de estaciones abastecidas recientemente. Las estaciones de tren, paradas de autobuses, aeropuertos y demás se contabilizan aparte, aun si pertenecen a la misma estación +STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Utilidad del vehículo con menores ingresos (de entre aquellos con más de 2 años) +STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Cantidad de efectivo ganado en el trimestre con la utilidad más baja de los pasados 12 trimestres +STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Cantidad de efectivo ganado en el trimestre con la utilidad más alta de los pasados 12 trimestres +STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Unidades de cargamento entregadas en los pasados cuatro trimestres +STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}Número de tipos de cargamento entregados en el trimestre pasado +STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Cantidad de dinero que esta empresa tiene en el banco +STR_PERFORMANCE_DETAIL_LOAN_TOOLTIP :{BLACK}Cantidad de dinero que esta empresa ha recibido como préstamo +STR_PERFORMANCE_DETAIL_TOTAL_TOOLTIP :{BLACK}Total de puntos ganados del máximo posible + +# Music window +STR_MUSIC_JAZZ_JUKEBOX_CAPTION :{WHITE}Selección de jazz +STR_MUSIC_PLAYLIST_ALL :{TINY_FONT}{BLACK}Todo +STR_MUSIC_PLAYLIST_OLD_STYLE :{TINY_FONT}{BLACK}Antiguo +STR_MUSIC_PLAYLIST_NEW_STYLE :{TINY_FONT}{BLACK}Moderno +STR_MUSIC_PLAYLIST_EZY_STREET :{TINY_FONT}{BLACK}Ezy Street +STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLACK}Personal 1 +STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personal 2 +STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volumen música +STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volumen efectos +STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MÍN +STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MÁX +STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}' +STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}-- +STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM} +STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------ +STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}" +STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Pista +STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Título +STR_MUSIC_SHUFFLE :{TINY_FONT}{BLACK}Mezclar +STR_MUSIC_PROGRAM :{TINY_FONT}{BLACK}Programa +STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Saltar a la pista anterior de la selección +STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Saltar a la pista siguiente de la selección +STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Detener música +STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Comenzar música +STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Mover los cursores para ajustar el volumen de la música y los efectos +STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Elegir programa 'todas las pistas' +STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Elegir programa 'antiguo' +STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Elegir programa 'moderno' +STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Elegir programa 'Ezy Street' +STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Elegir programa 'Personal 1' (definido por el usuario) +STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Elegir programa 'Personal 2' (definido por el usuario) +STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Encender o apagar mezclador +STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Mostrar ventana de selección de pistas musicales + +STR_ERROR_NO_SONGS :{WHITE}Se eligió una colección vacía. No se reproducirá música + +# Playlist window +STR_PLAYLIST_MUSIC_PROGRAM_SELECTION :{WHITE}Selección del programa musical +STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}" +STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Lista de reproducción +STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Programa: '{STRING}' +STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Eliminar +STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Eliminar programa actual (solo Personal 1 y Personal 2) +STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Clic en la pista de música para añadirla al programa actual (solo Personal 1 y 2) +STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Clic en la pista de música para quitarla del programa actual (solo Personal 1 y 2) + +# Highscore window +STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Lista de empresas que han alcanzado {NUM} +STR_HIGHSCORE_TOP_COMPANIES_NETWORK_GAME :{BIG_FONT}{BLACK}Tabla de clasificación de empresas en {NUM} +STR_HIGHSCORE_POSITION :{BIG_FONT}{BLACK}{COMMA}. +STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN :Hombre de negocios +STR_HIGHSCORE_PERFORMANCE_TITLE_ENTREPRENEUR :Empresario +STR_HIGHSCORE_PERFORMANCE_TITLE_INDUSTRIALIST :Industrial +STR_HIGHSCORE_PERFORMANCE_TITLE_CAPITALIST :Capitalista +STR_HIGHSCORE_PERFORMANCE_TITLE_MAGNATE :Magnate +STR_HIGHSCORE_PERFORMANCE_TITLE_MOGUL :Potentado +STR_HIGHSCORE_PERFORMANCE_TITLE_TYCOON_OF_THE_CENTURY :Magnate del siglo +STR_HIGHSCORE_NAME :{PRESIDENT_NAME}, {COMPANY} +STR_HIGHSCORE_STATS :{BIG_FONT}'{STRING}' ({COMMA}) +STR_HIGHSCORE_COMPANY_ACHIEVES_STATUS :{BIG_FONT}{BLACK}¡{COMPANY} logra colocarse como '{STRING}'! +STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS :{BIG_FONT}{WHITE}¡{PRESIDENT_NAME} de {COMPANY} logra colocarse como '{STRING}'! + +# Smallmap window +STR_SMALLMAP_CAPTION :{WHITE}Mapa: {STRING} + +STR_SMALLMAP_TYPE_CONTOURS :Contornos +STR_SMALLMAP_TYPE_VEHICLES :Vehículos +STR_SMALLMAP_TYPE_INDUSTRIES :Industrias +STR_SMALLMAP_TYPE_ROUTEMAP :Flujo de cargamento +STR_SMALLMAP_TYPE_ROUTES :Rutas +STR_SMALLMAP_TYPE_VEGETATION :Vegetación +STR_SMALLMAP_TYPE_OWNERS :Propietarios +STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Mostrar curvas de nivel en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP :{BLACK}Mostrar vehículos en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}Mostrar industrias en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Mostrar flujo de cargamento en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Mostrar rutas de transporte en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Mostrar vegetación en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Mostrar dueños de terreno en el mapa +STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Clic en un tipo de industria para mostrarlo u ocultarlo. Ctrl+Clic oculta todos los tipos excepto el elegido. Ctrl+Clic de nuevo en el mismo tipo muestra todos los tipos de industrias +STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Clic en una empresa para mostrar u ocultar sus propiedades. Ctrl+Clic oculta todas las empresas excepto la elegida. Ctrl+Clic de nuevo en la misma empresa muestra todas las empresas +STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Clic en un cargamento para mostrar u ocultar sus propiedades. Ctrl+Clic oculta todos los cargamentos excepto el elegido. Ctrl+Clic de nuevo muestra todos los tipos de cargamento + +STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Carreteras +STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Ferrocarriles +STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS :{TINY_FONT}{BLACK}Estaciones/Aeropuertos/Puertos +STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES :{TINY_FONT}{BLACK}Edificios/Industrias +STR_SMALLMAP_LEGENDA_VEHICLES :{TINY_FONT}{BLACK}Vehículos +STR_SMALLMAP_LEGENDA_TRAINS :{TINY_FONT}{BLACK}Trenes +STR_SMALLMAP_LEGENDA_ROAD_VEHICLES :{TINY_FONT}{BLACK}Vehículos de carretera +STR_SMALLMAP_LEGENDA_SHIPS :{TINY_FONT}{BLACK}Barcos +STR_SMALLMAP_LEGENDA_AIRCRAFT :{TINY_FONT}{BLACK}Aeronaves +STR_SMALLMAP_LEGENDA_TRANSPORT_ROUTES :{TINY_FONT}{BLACK}Rutas de transporte +STR_SMALLMAP_LEGENDA_FOREST :{TINY_FONT}{BLACK}Bosque +STR_SMALLMAP_LEGENDA_RAILROAD_STATION :{TINY_FONT}{BLACK}Estación de ferrocarril +STR_SMALLMAP_LEGENDA_TRUCK_LOADING_BAY :{TINY_FONT}{BLACK}Estación de carga de camiones +STR_SMALLMAP_LEGENDA_BUS_STATION :{TINY_FONT}{BLACK}Parada de autobús +STR_SMALLMAP_LEGENDA_AIRPORT_HELIPORT :{TINY_FONT}{BLACK}Aeropuerto/Helipuerto +STR_SMALLMAP_LEGENDA_DOCK :{TINY_FONT}{BLACK}Muelle +STR_SMALLMAP_LEGENDA_ROUGH_LAND :{TINY_FONT}{BLACK}Terreno irregular +STR_SMALLMAP_LEGENDA_GRASS_LAND :{TINY_FONT}{BLACK}Pasto +STR_SMALLMAP_LEGENDA_BARE_LAND :{TINY_FONT}{BLACK}Terreno árido +STR_SMALLMAP_LEGENDA_FIELDS :{TINY_FONT}{BLACK}Campos +STR_SMALLMAP_LEGENDA_TREES :{TINY_FONT}{BLACK}Árboles +STR_SMALLMAP_LEGENDA_ROCKS :{TINY_FONT}{BLACK}Rocas +STR_SMALLMAP_LEGENDA_WATER :{TINY_FONT}{BLACK}Agua +STR_SMALLMAP_LEGENDA_NO_OWNER :{TINY_FONT}{BLACK}Sin propietario +STR_SMALLMAP_LEGENDA_TOWNS :{TINY_FONT}{BLACK}Pueblos +STR_SMALLMAP_LEGENDA_INDUSTRIES :{TINY_FONT}{BLACK}Industrias +STR_SMALLMAP_LEGENDA_DESERT :{TINY_FONT}{BLACK}Desierto +STR_SMALLMAP_LEGENDA_SNOW :{TINY_FONT}{BLACK}Nieve + +STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Mostrar u ocultar nombres de pueblos en el mapa +STR_SMALLMAP_CENTER :{BLACK}Centrar vista en la ubicación actual +STR_SMALLMAP_INDUSTRY :{TINY_FONT}{STRING} ({NUM}) +STR_SMALLMAP_LINKSTATS :{TINY_FONT}{STRING} +STR_SMALLMAP_COMPANY :{TINY_FONT}{COMPANY} +STR_SMALLMAP_TOWN :{TINY_FONT}{WHITE}{TOWN} +STR_SMALLMAP_DISABLE_ALL :{BLACK}Desactivar todo +STR_SMALLMAP_ENABLE_ALL :{BLACK}Activar todo +STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Mostrar altura +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}No mostrar industrias en el mapa +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Mostrar todas las industrias en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Mostrar u ocultar mapa de alturas +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}No mostrar propiedades de empresas en el mapa +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Mostrar todas las propiedades de empresas en el mapa +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}No mostrar ningún cargamento en el mapa +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Muestra todos los cargamentos en el mapa + +# Status bar messages +STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Mostrar último mensaje o noticia +STR_STATUSBAR_COMPANY_NAME :{SILVER}- - {COMPANY} - - +STR_STATUSBAR_PAUSED :{YELLOW}* * EN PAUSA * * +STR_STATUSBAR_AUTOSAVE :{RED}GUARDADO AUTOMÁTICO +STR_STATUSBAR_SAVING_GAME :{RED}* * GUARDANDO PARTIDA * * + +# News message history +STR_MESSAGE_HISTORY :{WHITE}Historial de mensajes +STR_MESSAGE_HISTORY_TOOLTIP :{BLACK}Lista de los mensajes más recientes +STR_MESSAGE_NEWS_FORMAT :{STRING} - {STRING} + +STR_NEWS_MESSAGE_CAPTION :{WHITE}Mensaje +STR_NEWS_CUSTOM_ITEM :{BIG_FONT}{BLACK}{STRING} + +STR_NEWS_FIRST_TRAIN_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer tren llega a {STATION}! +STR_NEWS_FIRST_BUS_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer autobús llega a {STATION}! +STR_NEWS_FIRST_TRUCK_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer camión llega a {STATION}! +STR_NEWS_FIRST_PASSENGER_TRAM_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer tranvía de pasajeros llega a {STATION}! +STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer tranvía de carga llega a {STATION}! +STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer barco llega a {STATION}! +STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primera aeronave llega a {STATION}! + +STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}¡Accidente de tren!{}{COMMA} muertos deja explosión después de choque +STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}¡Accidente de tráfico!{}Muere conductor en explosión después de choque con el tren +STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}¡Accidente de tráfico!{}{COMMA} muertos ddeja explosión después de choque con el tren +STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}¡Accidente aéreo!{}{COMMA} muertos deja explosión en {STATION} +STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}¡Accidente aéreo!{}Avión se queda sin combustible, ¡{COMMA} personas mueren en explosión! + +STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}¡Desastre de zepelín en {STATION}! +STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}¡Vehículo destruido en la carretara al impactar con ovni! +STR_NEWS_DISASTER_AIRPLANE_OIL_REFINERY :{BIG_FONT}{BLACK}¡Explota refinería de petróleo cerca de {TOWN}! +STR_NEWS_DISASTER_HELICOPTER_FACTORY :{BIG_FONT}{BLACK}¡Fábrica destruida misteriosamente cerca de {TOWN}! +STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}¡Ovni aterriza cerca de {TOWN}! +STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}¡Hundimiento de mina de carbón deja ola de destrucción cerca de {TOWN}! +STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}¡Inundación!{}Desaparecidos o muertos al menos {COMMA} después de las terribles inundaciones! + +STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}¡Empresa de transporte en problemas! +STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} será vendida o declarada en bancarrota de no incrementar su desempeño pronto! +STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLACK}¡Fusión de empresa de transportes! +STR_NEWS_COMPANY_MERGER_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} fue vendida a {STRING} por {CURRENCY_LONG}! +STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLACK}¡En bancarrota! +STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} fue cerrada por sus acreedores y todos sus activos fueron vendidos! +STR_NEWS_COMPANY_LAUNCH_TITLE :{BIG_FONT}{BLACK}¡Nueva empresa de transportes! +STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} comienza su construcción cerca de {TOWN}! +STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}¡{STRING} ha sido adquirida por {STRING}! +STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Presidente) + +STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}¡{STRING} patrocina la creación del nuevo pueblo de {TOWN}! + +STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}¡Nuev{G o a} {STRING} en construcción cerca de {TOWN}! +STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}¡Nuev{G o a} {STRING} fundad{G o a} cerca de {TOWN}! + +STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIG_FONT}{BLACK}¡La industria {STRING} anuncia su inminente cierre! +STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS :{BIG_FONT}{BLACK}¡Problemas con suministros provocan que {STRING} anuncie su inminente cierre! +STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLACK}¡La falta de árboles hace que {STRING} anuncie su inminente cierre! + +STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}¡Unión Monetaria Europea!{}{}¡El Euro es introducido como la nueva moneda oficial de todas las transacciones! +STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLACK}¡Recesión mundial!{}{}¡Expertos temen lo peor mientras la economía se desploma! +STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}¡Fin de la recesión!{}{}¡Incremento en el comercio da confianza a las industrias mientras la economía se fortalece! + +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL :{BIG_FONT}{BLACK}¡{INDUSTRY} incrementa su producción! +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}¡Encontrado nuevo yacimiento de carbón en {INDUSTRY}!{}¡Se espera duplicar la producción! +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIG_FONT}{BLACK}¡Encontradas nuevas reservas de petróleo en {INDUSTRY}!{}¡Se espera duplicar la producción! +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIG_FONT}{BLACK}¡Nuevos métodos agrícolas en {INDUSTRY} esperan duplicar la producción! +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{BIG_FONT}{BLACK}¡La producción de {STRING} en {INDUSTRY} aumenta un {COMMA}%! +STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLACK}¡La producción en {INDUSTRY} desciende un 50%! +STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}¡Plaga de insectos causa estragos en {INDUSTRY}!{} La producción desciente un 50% +STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIG_FONT}{BLACK}¡La producción de {STRING} en {INDUSTRY} desciende un {COMMA}%! + +STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} está esperando en el depósito +STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE} está esperando en el depósito +STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} está esperando en el astillero +STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} está esperando en el hangar + +# Order review system / warnings +STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} tiene muy pocas órdenes en la lista +STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} tiene una orden vacía +STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} tiene órdenes duplicadas +STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} tiene en la lista una estación no válida +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} tiene en la lista un aeropuerto con una pista muy corta + +STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} se está haciendo viejo +STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} se está haciendo muy viejo +STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD_AND :{WHITE}{VEHICLE} se está haciendo muy viejo y requiere renovación urgente +STR_NEWS_TRAIN_IS_STUCK :{WHITE}{VEHICLE} no encuentra una ruta para continuar +STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE} se perdió +STR_NEWS_VEHICLE_IS_UNPROFITABLE :{WHITE}La utilidad del año pasado del {VEHICLE} fue de {CURRENCY_LONG} +STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE} no puede llegar al siguiente destino porque no está a su alcance + +STR_NEWS_ORDER_REFIT_FAILED :{WHITE}{VEHICLE} no avanza porque no pudo reequipar su carga +STR_NEWS_VEHICLE_AUTORENEW_FAILED :{WHITE}Renovación automática fallida para {VEHICLE}{}{STRING} + +STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE :{BIG_FONT}{BLACK}¡Nuev{G o a} {STRING} ahora disponible! +STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE} +STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}¡Nuev{G o a} {STRING} ahora disponible! - {ENGINE} + +STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ya no recibe {STRING} +STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ya no recibe {STRING} ni {STRING} +STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} recibe ahora {STRING} +STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO :{WHITE}{STATION} recibe ahora {STRING} y {STRING} + +STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIG_FONT}{BLACK}Oferta de subsidio vencida:{}{}{STRING} de {STRING} a {STRING} ya no está subsidiado +STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIG_FONT}{BLACK}Subsidio retirado:{}{}El servicio de {STRING} desde {STRING} a {STRING} ya no está subsidiado +STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}Se ofrece subsidio.{}{}¡El primer servicio de {STRING} desde {STRING} a {STRING} tendrá subsidio durante un año parte del ayuntamiento local! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIG_FONT}{BLACK}¡Subsidio otorgado a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} generará un 50% extra por un año! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIG_FONT}{BLACK}¡Subsidio otorgado a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} generará tasa doble durante un año! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}¡Subsidio otorgado a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} generará tasa triple durante un año! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIG_FONT}{BLACK}¡Subsidio otorgado a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} generará tasa cuádruple por un año! + +STR_NEWS_ROAD_REBUILDING :{BIG_FONT}{BLACK}¡Caos por el tráfico en {TOWN}!{}{}¡Obras de reconstrucción de caminos por parte de {STRING} provocan 6 meses de dolores de cabeza a conductores! +STR_NEWS_EXCLUSIVE_RIGHTS_TITLE :{BIG_FONT}{BLACK}¡Monopolio de transportes! +STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLACK}¡Ayuntamiento de {TOWN} firma contrato de exclusividad con {STRING} por un año! + +# Extra view window +STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Vista {COMMA} +STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Copiar ventana de vista +STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Copiar la vista principal a esta ventana de vista +STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Pegar ventana de vista +STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Pegar esta ventana de vista en la principal + +# Game options window +STR_GAME_OPTIONS_CAPTION :{WHITE}Opciones de juego +STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Unidad monetaria +STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Selección de unidad monetaria + +############ start of currency region +STR_GAME_OPTIONS_CURRENCY_GBP :Libra británica (GBP) +STR_GAME_OPTIONS_CURRENCY_USD :Dólar americano (USD) +STR_GAME_OPTIONS_CURRENCY_EUR :Euro (EUR) +STR_GAME_OPTIONS_CURRENCY_JPY :Yen japonés (¥) +STR_GAME_OPTIONS_CURRENCY_ATS :Chelín austríaco (ATS) +STR_GAME_OPTIONS_CURRENCY_BEF :Franco belga (BEF) +STR_GAME_OPTIONS_CURRENCY_CHF :Franco suizo (CHF) +STR_GAME_OPTIONS_CURRENCY_CZK :Corona checa (CZK) +STR_GAME_OPTIONS_CURRENCY_DEM :Marco alemán (DEM) +STR_GAME_OPTIONS_CURRENCY_DKK :Corona danesa (DKK) +STR_GAME_OPTIONS_CURRENCY_ESP :Peseta española (ESP) +STR_GAME_OPTIONS_CURRENCY_FIM :Marco finlandés (FIM) +STR_GAME_OPTIONS_CURRENCY_FRF :Franco francés (FRF) +STR_GAME_OPTIONS_CURRENCY_GRD :Dracma griego (GRD) +STR_GAME_OPTIONS_CURRENCY_HUF :Florín húngaro (HUF) +STR_GAME_OPTIONS_CURRENCY_ISK :Corona islandesa (ISK) +STR_GAME_OPTIONS_CURRENCY_ITL :Lira italiana (ITL) +STR_GAME_OPTIONS_CURRENCY_NLG :Florín holandés (NLG) +STR_GAME_OPTIONS_CURRENCY_NOK :Corona noruega(NOK) +STR_GAME_OPTIONS_CURRENCY_PLN :Esloti polaco (PLN) +STR_GAME_OPTIONS_CURRENCY_RON :Leu rumano (RON) +STR_GAME_OPTIONS_CURRENCY_RUR :Rublo ruso (RUR) +STR_GAME_OPTIONS_CURRENCY_SIT :Tólar esloveno (SIT) +STR_GAME_OPTIONS_CURRENCY_SEK :Corona sueca (SEK) +STR_GAME_OPTIONS_CURRENCY_TRY :Lira turca (TRY) +STR_GAME_OPTIONS_CURRENCY_SKK :Corona eslovaca +STR_GAME_OPTIONS_CURRENCY_BRL :Real brasileño (BRL) +STR_GAME_OPTIONS_CURRENCY_EEK :Corona estonia (EEK) +STR_GAME_OPTIONS_CURRENCY_LTL :Litas lituana (LTL) +STR_GAME_OPTIONS_CURRENCY_KRW :Won surcoreano (KRW) +STR_GAME_OPTIONS_CURRENCY_ZAR :Rand sudafricano (ZAR) +STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizada... +STR_GAME_OPTIONS_CURRENCY_GEL :Lari georgiano (GEL) +STR_GAME_OPTIONS_CURRENCY_IRR :Rial iraní (IRR) +############ end of currency region + +STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Vehículos de carretera +STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_TOOLTIP :{BLACK}Elegir de qué lado irá la circulación +STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Manejar por la izquierda +STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT :Manejar por la derecha + +STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}Nombres de pueblos +STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP :{BLACK}Elegir el estilo de nombres para pueblos + +############ start of townname region +STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH :Inglés +STR_GAME_OPTIONS_TOWN_NAME_FRENCH :Francés +STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Alemán +STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Inglés (adicional) +STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN :Latinoamericano +STR_GAME_OPTIONS_TOWN_NAME_SILLY :Tonterías (inglés) +STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :Sueco +STR_GAME_OPTIONS_TOWN_NAME_DUTCH :Holandés +STR_GAME_OPTIONS_TOWN_NAME_FINNISH :Finlandés +STR_GAME_OPTIONS_TOWN_NAME_POLISH :Polaco +STR_GAME_OPTIONS_TOWN_NAME_SLOVAK :Eslovaco +STR_GAME_OPTIONS_TOWN_NAME_NORWEGIAN :Noruego +STR_GAME_OPTIONS_TOWN_NAME_HUNGARIAN :Húngaro +STR_GAME_OPTIONS_TOWN_NAME_AUSTRIAN :Austríaco +STR_GAME_OPTIONS_TOWN_NAME_ROMANIAN :Rumano +STR_GAME_OPTIONS_TOWN_NAME_CZECH :Checo +STR_GAME_OPTIONS_TOWN_NAME_SWISS :Suizo +STR_GAME_OPTIONS_TOWN_NAME_DANISH :Danés +STR_GAME_OPTIONS_TOWN_NAME_TURKISH :Turco +STR_GAME_OPTIONS_TOWN_NAME_ITALIAN :Italiano +STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Catalán +############ end of townname region + +STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Guardado automático +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Elegir el intervalo de guardados automáticos + +############ start of autosave dropdown +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Desactivado +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Cada mes +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Cada 3 meses +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Cada 6 meses +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Cada 12 meses +############ end of autosave dropdown + +STR_GAME_OPTIONS_LANGUAGE :{BLACK}Idioma +STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Elegir el idioma de la interfaz + +STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Pantalla completa +STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Jugar OpenTTD en pantalla completa + +STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolución de pantalla +STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Elegir la resolución de pantalla +STR_GAME_OPTIONS_RESOLUTION_OTHER :Otra + +STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elige el tamaño de los elementos de la interfaz + +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádruple + +STR_GAME_OPTIONS_BASE_GRF :{BLACK}Gráficos base +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Elegir los gráficos base +STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} archivo{P "" s} perdido{P "" s} o con errores +STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Información adicional sobre los gráficos base + +STR_GAME_OPTIONS_BASE_SFX :{BLACK}Sonidos base +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Elegir sonidos base +STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Información adicional sobre los sonidos base + +STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Música base +STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Elegir música base +STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} archivo{P "" s} con errores +STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Información adicional sobre música base + +STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}No se pudo obtener una lista de resoluciones soportadas +STR_ERROR_FULLSCREEN_FAILED :{WHITE}El modo de pantalla completa falló + +# Custom currency window + +STR_CURRENCY_WINDOW :{WHITE}Moneda personalizada +STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Tasa de cambio: {ORANGE}{CURRENCY_LONG} = £ {COMMA} +STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Reducir el valor de la moneda por una libra (£) +STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Incrementar el valor de la moneda por una libra (£) +STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP :{BLACK}Ajustar el valor de cambio de la moneda por una Libra (£) + +STR_CURRENCY_SEPARATOR :{LTBLUE}Separador: {ORANGE}{STRING} +STR_CURRENCY_SET_CUSTOM_CURRENCY_SEPARATOR_TOOLTIP :{BLACK}Establecer el separador de cifras de la moneda + +STR_CURRENCY_PREFIX :{LTBLUE}Prefijo: {ORANGE}{STRING} +STR_CURRENCY_SET_CUSTOM_CURRENCY_PREFIX_TOOLTIP :{BLACK}Establecer el prefijo de la moneda +STR_CURRENCY_SUFFIX :{LTBLUE}Sufijo: {ORANGE}{STRING} +STR_CURRENCY_SET_CUSTOM_CURRENCY_SUFFIX_TOOLTIP :{BLACK}Establecer el sufijo de la moneda + +STR_CURRENCY_SWITCH_TO_EURO :{LTBLUE}Cambiar a euro: {ORANGE}{NUM} +STR_CURRENCY_SWITCH_TO_EURO_NEVER :{LTBLUE}Cambiar a euro: {ORANGE}nunca +STR_CURRENCY_SET_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Establecer el año del cambio a euro +STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Cambiar a euro antes +STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Cambiar a euro después + +STR_CURRENCY_PREVIEW :{LTBLUE}Vista previa: {ORANGE}{CURRENCY_LONG} +STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 libras (£) en la moneda +STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Cambiar parámetro de moneda personalizada + +STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Núm. máximo de jugadores: {ORANGE}{COMMA} + +STR_NONE :Ninguno +STR_FUNDING_ONLY :Solo fundadas +STR_MINIMAL :Mínimo +STR_NUM_VERY_LOW :Muy bajo +STR_NUM_LOW :Bajo +STR_NUM_NORMAL :Normal +STR_NUM_HIGH :Alto +STR_NUM_CUSTOM :Personalizado +STR_NUM_CUSTOM_NUMBER :Personalizado ({NUM}) + +STR_VARIETY_NONE :Ninguna +STR_VARIETY_VERY_LOW :Muy baja +STR_VARIETY_LOW :Baja +STR_VARIETY_MEDIUM :Media +STR_VARIETY_HIGH :Alta +STR_VARIETY_VERY_HIGH :Muy alta + +STR_AI_SPEED_VERY_SLOW :Muy lenta +STR_AI_SPEED_SLOW :Lenta +STR_AI_SPEED_MEDIUM :Media +STR_AI_SPEED_FAST :Rápida +STR_AI_SPEED_VERY_FAST :Muy rápida + +STR_SEA_LEVEL_VERY_LOW :Muy bajo +STR_SEA_LEVEL_LOW :Bajo +STR_SEA_LEVEL_MEDIUM :Medio +STR_SEA_LEVEL_HIGH :Alto +STR_SEA_LEVEL_CUSTOM :Personalizado +STR_SEA_LEVEL_CUSTOM_PERCENTAGE :Personalizado ({NUM}%) + +STR_RIVERS_NONE :Ninguno +STR_RIVERS_FEW :Muy pocos +STR_RIVERS_MODERATE :Regular +STR_RIVERS_LOT :Muchos + +STR_DISASTER_NONE :Ninguno +STR_DISASTER_REDUCED :Reducidos +STR_DISASTER_NORMAL :Normal + +STR_SUBSIDY_X1_5 :x1.5 +STR_SUBSIDY_X2 :x2 +STR_SUBSIDY_X3 :x3 +STR_SUBSIDY_X4 :x4 + +STR_TERRAIN_TYPE_VERY_FLAT :Muy plano +STR_TERRAIN_TYPE_FLAT :Plano +STR_TERRAIN_TYPE_HILLY :Accidentado +STR_TERRAIN_TYPE_MOUNTAINOUS :Montañoso +STR_TERRAIN_TYPE_ALPINIST :Escarpado + +STR_CITY_APPROVAL_PERMISSIVE :Permisiva +STR_CITY_APPROVAL_TOLERANT :Tolerante +STR_CITY_APPROVAL_HOSTILE :Hostil + +STR_WARNING_NO_SUITABLE_AI :{WHITE}No se encontraron archivos de IA apropiados...{}Se pueden descargar por medio del sistema de 'Contenido en línea' + +# Settings tree window +STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}Configuración +STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}Filtrar palabras: +STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Desplegar todo +STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Plegar todo +STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(no hay explicación disponible) +STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Valor predeterminado: {ORANGE}{STRING} +STR_CONFIG_SETTING_TYPE :{LTBLUE}Tipo de opción: {ORANGE}{STRING} +STR_CONFIG_SETTING_TYPE_CLIENT :Opción de cliente (no se almacena en partidas guardadas, afecta a todas las partidas) +STR_CONFIG_SETTING_TYPE_GAME_MENU :Opción de partida (se almacena en las partidas guardadas, afecta solamente a nuevas partidas) +STR_CONFIG_SETTING_TYPE_GAME_INGAME :Opción de partida (almacenada en la partida guardada, afecta solamente a la partida actual) +STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Opción de empresa (se almacena en las partidas guardadas, afecta solamente a las nuevas partidas) +STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Opción de empresa (almacenada en la partida guardada, afecta solamente a la empresa actual) + +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categoría: +STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tipo: +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Mostrar lista con opciones predeterminadas +STR_CONFIG_SETTING_RESTRICT_BASIC :Básico (mostrar solo las opciones más esenciales) +STR_CONFIG_SETTING_RESTRICT_ADVANCED :Avanzado (mostrar la mayoría de las opciones) +STR_CONFIG_SETTING_RESTRICT_ALL :Experto (mostrar todas las opciones, hasta las más extrañas) +STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :Opciones con un valor diferente al predeterminado +STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Opciones con un valor diferente a las opciones de partida nueva + +STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Restringir la lista a ciertos tipos de opciones +STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Todos los tipos de opciones +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Opciones de cliente (no se almacena en partidas guardadas, afecta a todas las partidas) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Opciones de juego (se almacena en las partidas guardadas, afecta solamente a partidas nuevas) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Opciones de juego (se almacena en las partidas guardadas, afecta solamente a la partida actual) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente a partidas nuevas) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente a la empresa actual) +STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Tipo {BLACK}a {WHITE}Todos los tipos de opción +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} {BLACK}y {SILVER}Tipo {BLACK}a {WHITE}Todos los tipos de opción +STR_CONFIG_SETTINGS_NONE :{WHITE}- Ninguno - + +STR_CONFIG_SETTING_OFF :No +STR_CONFIG_SETTING_ON :Sí +STR_CONFIG_SETTING_DISABLED :Deshabilitado + +STR_CONFIG_SETTING_COMPANIES_OFF :Desactivado +STR_CONFIG_SETTING_COMPANIES_OWN :Empresa propia +STR_CONFIG_SETTING_COMPANIES_ALL :Todas las empresas + +STR_CONFIG_SETTING_NONE :Ninguno +STR_CONFIG_SETTING_ORIGINAL :Original +STR_CONFIG_SETTING_REALISTIC :Simulado + +STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Izquierda +STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro +STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Derecha + +STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Máximo préstamo inicial: {STRING} +STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Máxima cantidad que una empresa puede recibir como préstamo (sin tener en cuenta la inflación) +STR_CONFIG_SETTING_INTEREST_RATE :Porcentaje de interés: {STRING} +STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Porcentaje de interés de los préstamos; controla también la inflación, en caso de estar activada +STR_CONFIG_SETTING_RUNNING_COSTS :Costos de operación: {STRING} +STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Nivel de los costos de mantenimiento y operación de vehículos e infraestructura +STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Velocidad de construcción: {STRING} +STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Restringir la velocidad de las acciones de construcción de jugadores no humanos +STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Descomposturas de vehículos: {STRING} +STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controlar cada cuánto los vehículos con poco mantenimiento sufren fallas +STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Multiplicador de subsidio: {STRING} +STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Establecer cuánto se paga por subsidios conectados +STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Costos de construcción: {STRING} +STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Nivel de costos de construcción y adquisición +STR_CONFIG_SETTING_RECESSIONS :Recesiones: {STRING} +STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Si se activa, habrá recesiones cada ciertos años. Durante una recesión, toda la producción decaerá considerablente (se restablecerá al final de la recesión) +STR_CONFIG_SETTING_TRAIN_REVERSING :Prohibir a los trenes que cambien de dirección en las estaciones: {STRING} +STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, los trenes no podrán girar al lado opuesto en estaciones intermedias, ni siquiera si al girar hay una ruta más corta a su próximo destino +STR_CONFIG_SETTING_DISASTERS :Desastres: {STRING} +STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Desastres que ocasionalmente pueden bloquear o destruir vehículos o infraestructura +STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de los ayuntamientos ante restructuraciones hechas en sus zonas: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :En qué medida el ruido y el daño ambiental causado por las empresas afectan su evaluación y futuras acciones de construcción en las mismas zonas + +STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máxima del mapa: {STRING} +STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :La altura máxima que las montañas pueden tener en el mapa +STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No se puede establecer la altura máxima del mapa en el valor indicado. Al menos una montaña ya es más alta +STR_CONFIG_SETTING_AUTOSLOPE :Permitir modificar terreno debajo edificios, vías férreas, etc.: {STRING} +STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Modificar el terreno debajo de edificios y vías de tren sin quitarlos +STR_CONFIG_SETTING_CATCHMENT :Permitir cambiar el tamaño del área de recolección a una forma más real: {STRING} +STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Las áreas de recolección se adecúan a diferentes tamaños, según los tipos de estaciones y aeropuertos +STR_CONFIG_SETTING_EXTRADYNAMITE :Permitir quitar mayor cantidad de carreteras, puentes y túneles de los pueblos: {STRING} +STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Hacer más fácil eliminar infraestructura y edificios que sean propiedad de los pueblos +STR_CONFIG_SETTING_TRAIN_LENGTH :Longitud máxima de trenes: {STRING} +STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Longitud máxima permitida para los trenes +STR_CONFIG_SETTING_TILE_LENGTH :{COMMA} casilla{P 0 "" s} +STR_CONFIG_SETTING_SMOKE_AMOUNT :Cantidad de humo o chispas: {STRING} +STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Cantidad de humo o chispas que son emitidos por los vehículos +STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :Modelo de aceleración para trenes: {STRING} +STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Elegir el modelo de física para emplear en la aceleración de trenes. El modelo 'Original' penaliza las pendientes de forma idéntica para todos los vehículos. El modelo 'Simulado' penaliza pendientes y curvas según las características del tren como longitud, fuerza de tracción, etc. +STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Modelo de aceleración para vehículos de carretera: {STRING} +STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Elegir el modelo de física para emplear en la aceleración de vehículos de carretera. El modelo 'O'riginal' penaliza las pendientes de forma idéntica para todos los vehículos. El modelo 'Simulado' penaliza pendientes y curvas según las características del vehículo como potencia, fuerza de tracción, etc. +STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :Inclinación de pendientes para trenes: {STRING} +STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :Grado de inclinación de una casilla con pendiente para un tren. Los valores altos hacen que sea más difícil subir las colinas +STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% +STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Inclinación de pendientes para vehículos de carretera: {STRING} +STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Grado de inclinación de una casilla con pendiente para un vehículo de carretera. Los valores altos hacen que sea más difícil subir las colinas +STR_CONFIG_SETTING_FORBID_90_DEG :Prohibir a trenes y barcos realizar giros de 90°: {STRING} +STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Los giros de 90° ocurren en vías férreas perpendiculares donde el tren gira 90° al pasar de una casilla a otra, en lugar de los 45° habituales en otras combinaciones de vías. Esto también se aplica al radio de giro de los barcos +STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permitir la ampliación de estaciones no adyacentes: {STRING} +STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permitir añadir de partes a una estación sin tener que estar en contacto directo con las partes existentes. Se debe pulsar Ctrl+Clic para añadir las nuevas partes +STR_CONFIG_SETTING_INFLATION :Inflación: {STRING} +STR_CONFIG_SETTING_INFLATION_HELPTEXT :Activar inflación en la economía, lo que hace que los costos aumenten ligeramente más rápido que los ingresos +STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Longitud máxima de puentes: {STRING} +STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Longitud máxima permitida al construir puentes +STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Altura máxima de puentes: {STRING} +STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Altura máxima permitida al construir puentes +STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Longitud máxima de túneles: {STRING} +STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Longitud máxima permitida al construir túneles +STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Método para fundar una industria primaria: {STRING} +STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Método en como se funda una industria primaria. 'Ninguno' indica que no se puede crear ninguna. 'Prospeccón' indica que se puede fundar una nueva industria pero cuya construcción ocurrirá en un lugar aleatorio del mapa con posibilidad de fallar. 'Como las demás' indica que las industrias primarias pueden construirse como otras industrias, en el lugar que se quiera +STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Ninguno +STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Como las demás +STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Prospección +STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Área plana alrededor de industrias: {STRING} +STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Cantidad de espacio plano alrededor de las industrias. Esto asegura que haya espacio libre alrededor de las industrias para construir vías férreas, etc. +STR_CONFIG_SETTING_MULTIPINDTOWN :Permitir múltiples industrias similares por pueblo: {STRING} +STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Generalmente, no se permite más de una industria del mismo tipo por pueblo. Con esta opción se permiten múltiples industrias del mismo tipo en el mismo pueblo +STR_CONFIG_SETTING_SIGNALSIDE :Mostrar señales: {STRING} +STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT :De qué lado de las vías se instalarán las señales +STR_CONFIG_SETTING_SIGNALSIDE_LEFT :A la izquierda +STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :En el lado de conducción +STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :A la derecha +STR_CONFIG_SETTING_SHOWFINANCES :Mostrar ventana de finanzas al final del año: {STRING} +STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si se activa, la ventana de finanzas aparecerá al final de cada año para realizar una inspección más fácil del estado financiero de la empresa +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Toda nueva orden es 'Sin paradas' por defecto: {STRING} +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Generalmente, un tren se detendrá en cada estación por la que pase. Si se activa esta opción, pasará sin detenerse a través de todas las estaciones hasta llegar a su destino. Esta opción solamente define el valor predeterminado de las órdenes nuevas. Es posible especificar para cada orden el comportamiento deseado +STR_CONFIG_SETTING_STOP_LOCATION :Todos los nuevos trenes paran por defecto en el {STRING} del andén +STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :En qué parte predeterminada del andén se detendrán los trenes. En el 'principio' el tren se detiene cerca del punto de entrada, en el 'mitad' se detiene en el punto medio del andén y en el 'fondo' se detiene lejos del punto de entrada. Esta opción solamente define el valor predeterminado de las órdenes nuevas. Es posible especificar para cada orden el comportamiento deseado +STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :principio +STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :centro +STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :fondo +STR_CONFIG_SETTING_AUTOSCROLL :Recorrer vista cuando se mueve el cursor a los bordes: {STRING} +STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Si se activa esta opción, las vistas se recorrerán cuando el ratón esté cerca de los bordes de la ventana +STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desactivado +STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Vista principal, solo en pantalla completa +STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Vista principal +STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Todas las vistas +STR_CONFIG_SETTING_BRIBE :Permitir sobornos al ayuntamiento: {STRING} +STR_CONFIG_SETTING_BRIBE_HELPTEXT :Las empresas pueden tratar de sobornar a los ayuntamientos. Si el soborno es descubierto por un inspector, la empresa no podrá realizar actividades en la localidad durante seis meses +STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Permitir adquirir los derechos de transporte exclusivos: {STRING} +STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una empresa adquiere los derechos de transporte exclusivos en un pueblo, las estaciones de la competencia (pasajeros o cargamento) no recibirán nada para transportar durante un año +STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Permitir la construcción de nuevos edificios: {STRING} +STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Las empresas aportan dinero a los ayuntamientos para que construyan nuevas casas y edificios +STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permitir el pago de la reconstrucción de las carreteras locales: {STRING} +STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Las empresas aportan dinero a los ayuntamientos para que reconstruyan sus carreteras y así sabotear a otros servicios de transporte por carretera que operen en la zona +STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permitir enviar dinero a otras empresas: {STRING} +STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permitir la transferencia de dinero entre empresas en modo multijugador +STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de peso para simular trenes pesados: {STRING} +STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Establece el impacto de llevar cargamento en los trenes. Un valor mayor exige mayor potencia a los trenes para llevar una carga, sobretodo al subir colinas +STR_CONFIG_SETTING_PLANE_SPEED :Factor de velocidad de aeronaves: {STRING} +STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Establece la velocidad relativa de las aeronaves comparada con la de otros vehículos para reducir las utilidades de transportación aérea +STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1/{COMMA} +STR_CONFIG_SETTING_PLANE_CRASHES :Cantidad de accidentes aéreos: {STRING} +STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Probabilidad de que ocurran accidentes aéreos +STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Ninguno +STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reducida +STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permitir la construcción de paradas intermedias sobre carreteras en pueblos: {STRING} +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Construir paradas de autobuses intermedias en carreteras que sean propiedad de los pueblos +STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permitir la construcción de paradas intermedias sobre carreteras de la competencia: {STRING} +STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Construir paradas de autobuses intermedias en carreteras que sean propiedad de otras empresas +STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}No se puede cambiar esta opción si ya existen vehículos +STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Mantenimiento de infraestructura: {STRING} +STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Cuando se activa, la infraestructura tiene costo de mantenimiento, el cual aumenta en relación con el tamaño de la red de transporte. Esto afecta en mayor medida a las empresas grandes que a las pequeñas + +STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Areopuertos siempre disponibles: {STRING} +STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Los tipos de aeropuertos estarán disponibles todo el tiempo después de haber surgido + +STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Avisar si un vehículo se ha perdido: {STRING} +STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Mostrar un mensajes indicando aquellos vehículos que no puedan encontrar una ruta a su destino +STR_CONFIG_SETTING_ORDER_REVIEW :Analizar órdenes de vehículos: {STRING} +STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Cuando se activa, las órdenes de los vehículos se analizan regularmente y los problemas que se encuentren se informan en una noticia +STR_CONFIG_SETTING_ORDER_REVIEW_OFF :No +STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Sí, excepto los vehículos detenidos +STR_CONFIG_SETTING_ORDER_REVIEW_ON :Todos los vehículos +STR_CONFIG_SETTING_WARN_INCOME_LESS :Avisar si las utilidades de un vehículo son negativas: {STRING} +STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Mostrar un mensaje cuando un vehículo no haya obtenido ninguna ganancia durante un año +STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Vehículos siempre disponibles: {STRING} +STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Todos los modelos de vehículos estarán disponibles para siempre tras haber sido introducidos +STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Renovar automáticamente vehículos que se hagan viejos: {STRING} +STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Los vehículos próximos al final de su vida útil serán renovados automáticamente, siempre y cuando se cumplan las condiciones de renovación +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Renovar automáticamente el vehículo a {STRING} de su edad máxima +STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Edad relativa en la que un vehículo es considerado para renovarse +STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mes{P 0 "" es} antes +STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mes{P 0 "" es} después +STR_CONFIG_SETTING_AUTORENEW_MONEY :Costo mínimo requerido para renovación automática: {STRING} +STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Mínima cantidad de dinero disponible en el banco para poder considerar la renovación automática de vehículos +STR_CONFIG_SETTING_ERRMSG_DURATION :Duración de mensajes de error: {STRING} +STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duración de los mensajes de error mostrados en los avisos en rojo. Algunos mensajes de error (críticos) no se cierran automáticamente, solo de forma manual +STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundo{P 0 "" s} +STR_CONFIG_SETTING_HOVER_DELAY :Mostrar información de herramientas: {STRING} +STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Al posar el ratón sobre un elemento de la interfaz, el tiempo de retraso requerido para mostrar información de ayuda o sugerencias. También se puede establecer el valor en 0 para mostrar estos mensajes con el botón derecho del ratón. +STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Posar el ratón durante {COMMA} milisegundo{P 0 "" s} +STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Botón derecho +STR_CONFIG_SETTING_POPULATION_IN_LABEL :Mostrar población de pueblos: {STRING} +STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Mostrar en el mapa la población de los pueblos junto a sus nombres +STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grosor de las líneas en las gráficas: {STRING} +STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grosor de las líneas en las gráficas. Una línea fina es más precisa, una línea más gruesa es más fácil de distinguir + +STR_CONFIG_SETTING_LANDSCAPE :Terreno: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Los terrenos definen mapas con diferentes tipos de cargamentos y requisitos de crecimiento para los pueblos. Es posible modificarlos empleando NewGRF y scripts de juego +STR_CONFIG_SETTING_LAND_GENERATOR :Generador de terreno: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :El generador 'Original' depende de los gráficos base y crea formas de terreno fijas. 'TerraGenesis' es un generador basado en Ruido Perlin que permite un mayor control de configuración +STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original +STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Tipo de terreno: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Solo TerraGenesis) Colinas del terreno +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densidad industrial: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :El número de industrias a generar y el nivel a mantener durante el juego +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distancia máxima de refinerías de petróleo con los bordes del mapa: {STRING} +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Las refinerías de petróleo se construyen cerca del borde del mapa, el cual es costa en mapas con borde marítimo +STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Nivel de inicio de nieve: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :En los mapas de clima Subártico, la altura a la cual la nieve comienza. La nieve también afecta a la generación de industrias y a los requisitos de crecimiento de los pueblos +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Irregularidad del terreno: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Solo TerraGenesis) Cantidad de colinas: los terrenos más planos tienen menos colinas, aunque suelen ser más extensas. Los terrenos más accidentados tienen múltiples colinas, lo cual puede resultar repetitivo +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Muy Suave +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Suave +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rugoso +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Muy rugoso +STR_CONFIG_SETTING_VARIETY :Distribución de variedad: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Sólo TerraGenesis) Controlar si el mapa tendrá zonas montañosas y planas. Puesto que esta opción solo hace más plano el mapa, hay que elegir terreno montañoso en otras opciones +STR_CONFIG_SETTING_RIVER_AMOUNT :Cantidad de ríos: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Número de ríos que habrá en el mapa +STR_CONFIG_SETTING_TREE_PLACER :Algoritmo de colocación de árboles: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :La distribución de los árboles sobre el mapa. 'Original' distribuye la plantación de árboles uniformemente, mientras que 'Mejorado' los planta en grupos +STR_CONFIG_SETTING_TREE_PLACER_NONE :Ninguno +STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original +STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Mejorado +STR_CONFIG_SETTING_ROAD_SIDE :Vehículos de carretera: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Elegir de qué lado irá la circulación +STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotar mapa de alturas: {STRING} +STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :A la izquierda +STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :A la derecha +STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :El nivel de la altura del mapa plano tiene: {STRING} +STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una o más casillas del borde norte no están vacías +STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o más casillas en uno de los bordes no es agua + +STR_CONFIG_SETTING_STATION_SPREAD :Máxima ampliación de estaciones: {STRING} +STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Máxima área que pueden ocupar las partes de una estación. Los valores muy altos pueden alentar el juego +STR_CONFIG_SETTING_SERVICEATHELIPAD :Realizar automáticamente el mantenimiento de helicópteros en los helipuertos: {STRING} +STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Dar mantenimiento a los helicópteros después de cada aterrizaje, aun sin haber hangar en el aeropuerto +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Unir la barra de transformación de terreno con la barra de construcción: {STRING} +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Al abrir alguna de las barras de herramientas de construcción abrir también la barra de transformación de terreno +STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Color de terreno usado en el minimapa: {STRING} +STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Color para el terreno mostrado en el minimapa +STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Verde +STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Verde oscuro +STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violeta +STR_CONFIG_SETTING_REVERSE_SCROLLING :Desplazamiento de vista invertido: {STRING} +STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :Efecto al arrastrar el mapa con el botón derecho. Si se desactiva, el ratón mueve la cámara. Si se activa, el ratón mueve el mapa +STR_CONFIG_SETTING_SMOOTH_SCROLLING :Desplazamiento de vista suavizado: {STRING} +STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Forma en la que la vista principal se mueve a una ubicación específica al hacer clic en el minimapa o tras una orden de moverse a un objeto determinado del mapa. Si se activa, la vista se mueve de forma suave. Si se desactiva, la vista se mueve instantáneamente al sitio indicado +STR_CONFIG_SETTING_MEASURE_TOOLTIP :Mostrar información de medidas al usar las herramientas de construcción: {STRING} +STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Mostrar distancias en número de casillas y las diferencias de altura cuando se realicen labores de construcción +STR_CONFIG_SETTING_LIVERIES :Mostrar combinaciones de color, según tipo de vehículo: {STRING} +STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Controlar el uso de combinaciones de color específicos para vehículos, en contraste a los específicos para empresas +STR_CONFIG_SETTING_LIVERIES_NONE :Ninguno +STR_CONFIG_SETTING_LIVERIES_OWN :Empresa propia +STR_CONFIG_SETTING_LIVERIES_ALL :Todas las empresas +STR_CONFIG_SETTING_PREFER_TEAMCHAT :Activar chat de equipo con : {STRING} +STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :Cambiar el acceso al chat interno de la empresa y al chat público entre y +STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :Función de la rueda del ratón: {STRING} +STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Activar el deslizamiento con ratones de rueda bidimensional +STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Enforcar mapa +STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Desplazarse sobre el mapa +STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Nada +STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Velocidad de la rueda del ratón sobre el mapa: {STRING} +STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Controlar la sensibilidad de la rueda del ratón +STR_CONFIG_SETTING_OSK_ACTIVATION :Teclado en pantalla: {STRING} +STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Elegir el método para abrir el teclado en pantalla y escribir texto empleando solamente el puntero. Esta opción está pensada para dispositivos pequeños sin teclado físico +STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :Deshabilitado +STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :Doble clic +STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :Un solo clic (al enfocar) +STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK :Un solo clic (instantáneo) + +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :Emulación del botón derecho: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT :Método para emular los clic con el botón derecho del ratón +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Command+Clic +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+Clic +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Ninguno + +STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplazamiento con botón izquierdo: {STRING} +STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activa el deslizamiento del mapa al arrastrar con el botón izquierdo. Esto es especialmente útil al usar pantallas táctiles + +STR_CONFIG_SETTING_AUTOSAVE :Guardado automático: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Intervalo entre guardados automáticos de la partida + +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Usar formato de fecha {STRING} para los nombres de partidas guardadas +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Asigna un formato de fecha como nombre al guardar una partida +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :largo (31 Dic 2008) +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :corto (31-12-2008) +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) + +STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Poner el juego en pausa al comenzar una partida: {STRING} +STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Si se activa, el juego se detendrá automáticamente al comenzar nuevas partidas para permitir revisar el mapa +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Al pausar el juego, permitir: {STRING} +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Qué acciones se pueden realizar mientras el juego está en pausa. +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Ninguna acción +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Todas las acciones, excepto construir +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Todas las acciones, excepto modificar terreno +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Todas las acciones +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Usar grupos en la lista de vehículos: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Activar el uso de listas avanzadas para agrupar vehículos +STR_CONFIG_SETTING_LOADING_INDICATORS :Usar indicadores de carga: {STRING} +STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Mostrar indicadores sobre los vehículos mientras cargan o descargan +STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Mostrar tiempo de viaje en ticks en lugar de días: {STRING} +STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Mostrar los tiempos de viaje en los itinerarios en impulsos de reloj de sistema (ticks) en lugar de días +STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Mostrar salidas y llegadas en itinerarios: {STRING} +STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Mostrar tiempos de llegadas y salidas anticipados en los itinerarios +STR_CONFIG_SETTING_QUICKGOTO :Creación rápida de órdenes para vehículos: {STRING} +STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Elegir automáticamente la opción 'Ir a' al abrir la ventana de órdenes +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Tipo de vía férrea predeterminada al iniciar o cargar un juego: {STRING} +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo de vía férrea predeterminada al iniciar o cargar un juego. 'Primera disponible' elige el tipo más viejo, 'Última disponible' elige el tipo más nuevo, y 'Más usado' elige el tipo de mayor uso al momento +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Primero disponible +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Último disponible +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Más usado +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Mostrar rutas reservadas sobre las vías férreas: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Dar un color especial a las vías de tren reservadas para ayudar a resolver problemas con trenes que no ingresan en secciones con señales de ruta +STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Mantener activas las herramientas de construcción tras su uso: {STRING} +STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantener las herramientas de construcción de puentes, túneles, etc., abiertas después de usarlas +STR_CONFIG_SETTING_EXPENSES_LAYOUT :Agrupar gastos en la ventana de finanzas: {STRING} +STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Definir el diseño de la ventana de finanzas + +STR_CONFIG_SETTING_SOUND_TICKER :Boletín de noticias: {STRING} +STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Reproducir sonido para mensajes resumidos de noticias +STR_CONFIG_SETTING_SOUND_NEWS :Noticias: {STRING} +STR_CONFIG_SETTING_SOUND_NEWS_HELPTEXT :Reproducir sonido al mostrar noticias +STR_CONFIG_SETTING_SOUND_NEW_YEAR :Fin de año: {STRING} +STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT :Reproducir sonido al mostrar el resumen anual del desempeño de la empresa al terminar el año +STR_CONFIG_SETTING_SOUND_CONFIRM :Construcción: {STRING} +STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Reproducir sonido al construir con éxito o realizar otras acciones +STR_CONFIG_SETTING_SOUND_CLICK :Clic de botones: {STRING} +STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT :Emitir pitido al pulsar botones +STR_CONFIG_SETTING_SOUND_DISASTER :Desastres y accidentes: {STRING} +STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Reproducir efectos de sonido en desastres y accidentes +STR_CONFIG_SETTING_SOUND_VEHICLE :Vehículos: {STRING} +STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT :Reproducir efectos de sonido de vehículos +STR_CONFIG_SETTING_SOUND_AMBIENT :Ambiente: {STRING} +STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Reproducir sonidos ambientales de terreno, industrias y pueblos + +STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Deshabilitar construcción de infraestructura cuando no haya vehículos apropiados disponibles: {STRING} +STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Cuando se activa, solamente se puede construir infraestructura si hay vehículos apropiados disponibles, previniendo un gasto innecesario de tiempo y dinero +STR_CONFIG_SETTING_MAX_TRAINS :Número máximo de trenes por empresa: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Número máximo de trenes que una empresa puede tener +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Número máximo de vehículos de carretera por empresa: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Número máximo de vehículos de carretera que una empresa puede tener +STR_CONFIG_SETTING_MAX_AIRCRAFT :Número máximo de aeronaves por empresa: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Número máximo de aeronaves que una empresa puede tener +STR_CONFIG_SETTING_MAX_SHIPS :Número máximo de barcos por empresa: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Número máximo de barcos que una empresa puede tener + +STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desactivar trenes para la computadora: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activar esta opción para deshabilitar la construcción de trenes por jugadores no humanos +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Desactivar vehículos de carretera para la computadora: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activar esta opción para deshabilitar la construcción de vehículos de carretra por jugadores no humanos +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactivar aeroplanos para la computadora: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Activar esta opción deshabilita la construcción de aeronaves por jugadores no humanos +STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactivar barcos para la computadora: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activar esta opción deshabilita la construcción de barcos por jugadores no humanos + +STR_CONFIG_SETTING_AI_PROFILE :Perfil predeterminado: {STRING} +STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Perfil para los jugadores no humanos aleatorios, o para los valores iniciales al añadir un nuevo jugador no humano o un script de juego +STR_CONFIG_SETTING_AI_PROFILE_EASY :Fácil +STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Intermedio +STR_CONFIG_SETTING_AI_PROFILE_HARD :Difícil + +STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permitir jugadores no humanos en modo multijugador: {STRING} +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_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 +STR_CONFIG_SETTING_SERVINT_TRAINS :Intervalo de mantenimiento predeterminado para trenes: {STRING} +STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Intervalo de mantenimiento predeterminado para nuevos trenes, en caso de no definirse otro explícitamente +STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}día{P 0 "" s}/% +STR_CONFIG_SETTING_SERVINT_DISABLED :Deshabilitado +STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Intervalo de mantenimiento predeterminado para vehículos de carretera: {STRING} +STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Intervalo de mantenimiento predeterminado para nuevos vehículos de carretera, en caso de no definirse otro explícitamente +STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalo de mantenimiento predeterminado para aeronaves: {STRING} +STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Intervalo de mantenimiento predeterminado para nuevas aeronaves, en caso de no definirse otro explícitamente +STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalo de mantenimiento predeterminado para barcos: {STRING} +STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Intervalo de mantenimiento predeterminado para nuevos barcos, en caso de no definirse otro explícitamente +STR_CONFIG_SETTING_NOSERVICE :Desactivar mantenimiento si las descomposturas están desactivadas: {STRING} +STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Al activarse, los vehículos no recibirán mantenimiento si no pueden descomponerse +STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Activar límites de velocidad para vagones: {STRING} +STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Al activarse, se tienen en cuenta los límites de velocidad de los vagones para decidir la máxima velocidad de un tren +STR_CONFIG_SETTING_DISABLE_ELRAILS :Desactivar ferrocarriles eléctricos: {STRING} +STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Si se activa, no es necesario electrificar las vías férreas para hacer que los trenes eléctricos puedan recorrerlas + +STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Llegada del primer vehículo a una estación del jugador: {STRING} +STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Mostrar una noticia cuando el primer vehículo llegue a una estación del jugador +STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Llegada del primer vehículo a una estación de la competencia: {STRING} +STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Mostrar una noticia cuando el primer vehículo llegue a la estación de un competidor +STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidentes y desastres: {STRING} +STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Mostrar noticias cuando ocurra un accidente o un desastre +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Información de la empresa: {STRING} +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Mostrar una noticia cuando una nueva empresa sea creada o cuando alguna empresa esté en peligro de quiebra +STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Apertura de industrias: {STRING} +STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Mostrar noticia cuando abra una nueva industrias +STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Cierre de industrias: {STRING} +STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Mostrar noticias cuando cierre una industria +STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Cambios en la economía: {STRING} +STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Mostrar noticias sobre cambios globales a la economía +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Cambios de producción en industrias atendidas por la empresa: {STRING} +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Mostrar una noticia cuando cambie el nivel de producción de una industria que está atendida por la empres del jugador +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Cambios de producción en las industrias servidas por los competidores: {STRING} +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Mostrar una noticia cuando cambie el nivel de producción de una industria que está atendida por las empresas de la competencia +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Cambios de producción de otras industrias: {STRING} +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Mostrar una noticia cuando cambie el nivel de producción de una industria que no está atendida por nadie +STR_CONFIG_SETTING_NEWS_ADVICE :Sugerencias e información de los vehículos de la empresa: {STRING} +STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Mostrar mensajes sobre vehículos que requieran atención +STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nuevos vehículos: {STRING} +STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Mostrar noticias sobre nuevos tipos de vehículos disponibles +STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Cambios en la recepción de cargamento: {STRING} +STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Mostrar mensajes sobre cambios a la recepción de cargamento en estaciones +STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subsidios: {STRING} +STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Mostrar noticias sobre eventos relativos a subsidios +STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Información general: {STRING} +STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Mostrar noticias de eventos generales, tales como la compra de derechos de transporte exclusivos o el pago de reconstrucción de carreteras locales + +STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Desactivado +STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Resumen +STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Completo + +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Noticias a color aparecen en: {STRING} +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Año en el que los periódicos comenzarán a imprimirse a color. Antes de ese año apacerán en blanco y negro +STR_CONFIG_SETTING_STARTING_YEAR :Fecha de inicio: {STRING} +STR_CONFIG_SETTING_SMOOTH_ECONOMY :Activar economía fácil (cambios más pequeños): {STRING} +STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Al activarse, habrá cambios de producción en las industrias más frecuentemente y en escala menor. Si se usa un NewGRF con industrias adicionales esta opción generalmente no tiene efecto +STR_CONFIG_SETTING_ALLOW_SHARES :Permitir comprar acciones de otras empresas: {STRING} +STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Al activarse, se pueden comprar y vender acciones de otras empresas. Las acciones de una empresa solamente estarán disponibles cuando la empresa cumpla una edad determinada +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaje de la utilidad total a pagar por transferencias de cargamento: {STRING} +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de utilidad cedida a los transportes intermedios en sistemas de transferencias de cargamento, dando un mayor control sobre la utilidad de cada vehículo +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Al arrastrar, colocar señales cada: {STRING} +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Distancia de separación entre señales hasta topar con algún obstáculo (otra señal, un desvío, etc.) al instalarlas mediante arrastre con el ratón +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} casilla{P 0 "" s} +STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Al arrastrar, mantener distancia fija entre señales: {STRING} +STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Forma en que se instalan las señales cuando se usa Ctrl+Arrastrar. Si se desactiva, se instalan señales a la entrada de túneles y puentes para evitar tramos largas de vías férreas sin señales. Si se activa, se colocan señales cada cierto número de casillas, haciendo que el alineamiento de señales en vías paralelas sea más sencillo +STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Señales mecánicas por defecto antes de: {STRING} +STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Año a partir del cual se usarán señales eléctricas. Antes de ese año se usarán señales mecánicas, las cuales funcionan igual pero tienen distinto aspecto +STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Activar interfaz de señales: {STRING} +STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Mostrar una ventana para elegir los tipos de señales a instalar. Si no se activa, se instalan las señales y se selecciona un tipo determinado mediante Ctrl+Clic, sin que aparezca ninguna interfaz +STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Tipo de señal predeterminada a instalar: {STRING} +STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Tipo de señal predeterminada que se usará la primera vez +STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Señales de bloqueo +STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Señales de ruta +STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :Señales de ruta de un sentido +STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Cambiar entre tipos de señales: {STRING} +STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Elegir entre qué señales se debe cambiar al usar Ctrl+Clic con la herramienta de señales +STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Solo señales de bloqueo +STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Solo señales de ruta +STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Todas + +STR_CONFIG_SETTING_TOWN_LAYOUT :Diseño urbano para los nuevos pueblos: {STRING} +STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT :Diseño de carreteras y calles para las redes de transporte en los pueblos +STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :Original +STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :Mejorado +STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :Rejilla de 2×2 +STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :Rejilla de 3×3 +STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Aleatorio +STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Permitir que los pueblos construyan carreteras: {STRING} +STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Los pueblos podrán construir carreteras para expandirse. Si se deshabilita, los ayuntamientos no podrán construir ninguna carretera +STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Permitir a los pueblos construir pasos a nivel: {STRING} +STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Los pueblos podrán construir pasos a nivel +STR_CONFIG_SETTING_NOISE_LEVEL :Permitir a los pueblos controlar el nivel de ruido de los aeropuertos: {STRING} +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Al desactivarse, puede haber solo dos aeropuertos por pueblo. Al activarse, el número de aeropuertos en el pueblo depende del nivel de aceptación de ruido en la misma, el cual depende de la población, del tamaño de los aeropuertos y de la distancia entre ellos +STR_CONFIG_SETTING_TOWN_FOUNDING :Fundar pueblos: {STRING} +STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Los jugadores podrán crear nuevos pueblos durante la partida +STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Prohibido +STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Permitido +STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Permitido, diseño urbano personalizado + +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Crecimiento de árboles durante la partida: {STRING} +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controlar la aparición aleatoria de árboles durante la partida. Esto puede afectar a industrias que dependen del crecimiento de árboles, como los aserraderos +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :Ninguno {RED}(inutiliza aserraderos) +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :Solo en selva +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :Cualquier parte + +STR_CONFIG_SETTING_TOOLBAR_POS :Posición de la barra de herramientas principal: {STRING} +STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Posición horizontal de la barra de herramientas principal en la parte superior de la pantalla +STR_CONFIG_SETTING_STATUSBAR_POS :Posición de la barra de estado: {STRING} +STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Posición horizontal de la barra de estado en la parte inferior de la pantalla +STR_CONFIG_SETTING_SNAP_RADIUS :Radio de ajuste de ventana: {STRING} +STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Distancia máxima entre ventanas antes de que la ventana que se está moviendo sea ajustada automáticamente con las ventanas cercanas +STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} pixel{P 0 "" s} +STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Deshabilitado +STR_CONFIG_SETTING_SOFT_LIMIT :Máximo número de ventanas sin anclar: {STRING} +STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Número máximo de ventanas sin anclar que pueden estar abiertas antes de que las anteriores se cierren automáticamente para dejar paso a las nuevas +STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA} +STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :Deshabilitado +STR_CONFIG_SETTING_ZOOM_MIN :Máximo acercamiento: {STRING} +STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Máximo nivel de acercamiento para las ventanas de vista y la vista principal. Aumentar el nivel de acercamiento aumenta el consumo de memoria del juego +STR_CONFIG_SETTING_ZOOM_MAX :Máximo alejamiento: {STRING} +STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Máximo nivel de alejamiento para las ventanas de vista y la vista principal. Los niveles altos podrían provocar que el juego se alente +STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x +STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x +STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal +STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x +STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x +STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x +STR_CONFIG_SETTING_TOWN_GROWTH :Velocidad de crecimiento de pueblos: {STRING} +STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :A qué velocidad se expanden los pueblos +STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Ninguna +STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Lenta +STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Normal +STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Rápida +STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Muy rápida +STR_CONFIG_SETTING_LARGER_TOWNS :Proporción de pueblos que se convertirán en ciudades: {STRING} +STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Número de pueblos que se convertirán en ciudades. Las ciudades comienzan siendo más grandes y crecen más rápido +STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 de cada {COMMA} +STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ninguno +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial de tamaño de ciudad: {STRING} +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamaño medio de las ciudades en relación a los pueblos al comienzo de la partida + +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualizar la gráfica de distribución cada {STRING}{NBSP}día{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Periodo de tiempo entre cálculos consecutivos de la gráfica de distribución. Esta opción se refiere a los cálculos para cada uno de los componentes de la gráfica, por lo cual estabecer un valor no quiere decir que la gráfica completa se actualizará tras ese número de días, solo algún componente lo hará. Cuanto menor sea, mayor tiempo de CPU será necesario para calcular la gráfica distribución. Cuanto mayor sea, más tardará la gráfica en adaptarse a nuevas rutas +STR_CONFIG_SETTING_LINKGRAPH_TIME :Usar {STRING}{NBSP}día{P 0:2 "" s} para el cálculo de la gráfica de distribución +STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Tiempo requerido en el cálculo de cada uno de los componentes de la gráfica de distribución. Cuanto menor sea este valor, más probable es que el juego se alente. Cuanto mayor sea, más tiempo tardará la distribución en actualizarse cuando se produzcan cambios en las rutas +STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :Manual +STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :Asimétrica +STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :Simétrica +STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribución para pasajeros: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :En una distribución 'Simétrica', se envía la misma cantidad de pasajeros entre dos estaciones. En una distribución 'Asimétrica', se pueden enviar cantidades arbitrarias de pasajeros en ambas direcciones. 'Manual' significa que no hay distribución automática para los pasajeros +STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Modo de distribución para el correo: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :En una distribución 'Simétrica', se envía la misma cantidad de correo entre dos estaciones. En una distribución 'Asimétrica', se pueden enviar cantidades arbitrarias de correo en ambas direcciones. 'Manual' significa que no hay distribución automática para el correo +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modo de distribución para cargamento de valores: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :El cargamento de valores contiene objetos de valor en el clima Templado, diamantes en el clima Subtropical y oro en el clima Subártico (hay NewGRF para modificar esto). En una distribución 'Simétrica', se envía la misma cantidad de cargamento entre dos estaciones. En una distribución 'Asimétrica', se pueden enviar cantidades arbitrarias de cargamento en ambas direcciones. 'Manual' significa que no hay distribución automática para este cargamento. Se recomienda establecer la distribución en 'Asimétrica' o en 'Manual' al jugar en clima Subártico, pues los bancos no regresarán el oro a sus minas de procedencia. En los climas Templado y Subtropical se puede escoger 'Simétrica', ya que los bancos pueden regresar los objetos de valor a su banco origen. +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Modo de distribución para otro cargamento: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :'Asimétrica' significa que se pueden mover cantidades arbitrarias de cargamento en ambas direcciones. 'Manual' significa que no habrá distribución automática para esta clase de cargamento. +STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Precisión de la distribución: {STRING} +STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Si el valor es alto, se requerirá mayor tiempo para calcular la gráfica de distribución (si se lleva demasiado tiempo, se notará desfase en el juego). Si es muy bajo, la distribución será imprecisa, pudiendo hacer que el cargamento no vaya al lugar indicado +STR_CONFIG_SETTING_DEMAND_DISTANCE :Efecto de la distancia en la demanda: {STRING} +STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Con un valor diferente a 0, la distancia entre la estación de origen de cierto cargamento y una posible estación de destino afectará a la cantidad de cargamento que se envíe entre ambas. Cuanto más lejos estén entre sí, menos cargamento se enviará. Cuanto mayor sea el valor de esta opción, menos cargamento se enviará a estaciones distantes en favor de estaciones cercanas +STR_CONFIG_SETTING_DEMAND_SIZE :Cantidad de cargamento a devolver en modo simétrico: {STRING} +STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Establecer un valor menor de 100% hará que la distribución simétrica de cargamento sea más asimétrica. Se enviará menos cargamento de regreso forzosamente si una cantidad determinada es enviada a una estación. Si se fija a 0%, la distribución simétrica será como una distribución asimétrica +STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Nivel de saturación de rutas cortas antes de cambiar a rutas de mayor capacidad: {STRING} +STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Entre dos estaciones usualmente hay más de una ruta posible. Se intentarán saturar las rutas más cotas primero, luego las que le siguen, y así sucesivamente. La saturación está determinada por una estimación de capacidad y uso planificado. Una vez que se hayan saturado todas las rutas, si todavía hay demanda se sobrecargarán los caminos empezando por aquellos de mayor capacidad. El algoritmo no siempre estimará la capacidad de forma precisa. Esta opción permite especificar el porcentaje de saturación que debe tener una ruta en el primer análisis antes de pasar a la siguiente ruta. Ponerlo a menos de 100% permite evitar estaciones sobrecargadas en el caso de que se sobreestimen las capacidades + +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidades de velocidad: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cada vez que se muestre una velocidad en la interfaz de usuario, se emplerán las unidades elegidas +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) + +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Unidades de potencia de vehículos: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Cada vez que se muestre la potencia de un vehículo en la interfaz de usuario, se emplearán las unidades elegidas +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Imperial (cv) +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Métrico (cv) +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :SI (kW) + +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Unidades de peso: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT :Cada vez que se muestre un peso en la interfaz de usuario, se emplearán las unidades elegidas +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :Imperial (t o tonelada) +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :Métrico (t o tonelada) +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :SI (kg) + +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :Unidades de volumen: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT :Cada vez que se muestre un volumen en la interfaz de usuario, se emplearán las unidades elegidas +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :Imperial (gal) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Métrico (l) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³) + +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Unidades de fuerza de tracción: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :Cada vez que se muestre un fuerza de tracción (o esfuerzo de tracción) en la interfaz de usuario, se emplearán las unidades elegidas +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperial (lbf) +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Métrico (kp) +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :SI (kN) + +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Unidades de altura: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :Cada vez que se muestre una altura en la interfaz de usuario, se emplearán las unidades elegidas +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (pies) +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrico (m) +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) + +STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localización +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Gráficos +STR_CONFIG_SETTING_SOUND :{ORANGE}Sonido +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfaz +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}General +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Ventanas de vista +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construcción +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Noticias y sugerencias +STR_CONFIG_SETTING_COMPANY :{ORANGE}Empresa +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Contabilidad +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehículos +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Leyes físicas +STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Enrutamiento +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitaciones +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres y accidentes +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generación de mapa +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Ambiente +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoridades +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Pueblos +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribución de cargamento +STR_CONFIG_SETTING_AI :{ORANGE}Competidores +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadores no humanos + +STR_CONFIG_SETTING_PATHFINDER_OPF :Original +STR_CONFIG_SETTING_PATHFINDER_NPF :NPF +STR_CONFIG_SETTING_PATHFINDER_YAPF_RECOMMENDED :YAPF {BLUE}(recomendado) + +STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :Algoritmo de rutas para trenes: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT :Algoritmo de búsqueda de rutas para trenes +STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :Algoritmo de rutas para vehículos de carretera: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT :Algoritmo de búsqueda de rutas para para vehículos de carretera +STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :Algoritmo de rutas para barcos: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT :Algoritmo de búsqueda de rutas para barcos +STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :Cambio de sentido automático en señales: {STRING} +STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT :Los trenes se darán la vuelta ante una señal si han estado esperado durante un tiempo largo + +STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Establecer valor + +# Config errors +STR_CONFIG_ERROR :{WHITE}Error en el archivo de configuración... +STR_CONFIG_ERROR_ARRAY :{WHITE}... error en arreglo '{STRING}' +STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... valor '{STRING}' no válido para '{STRING}' +STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... carácteres en blanco al final de la opción '{STRING}' +STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... NewGRF '{STRING}' ignorado: GRF ID duplicado con '{STRING}' +STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... NewGRF '{STRING}' no válido, ignorado: {STRING} +STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :no encontrado +STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :inseguro para uso estático +STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :NewGRF de sistema +STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :incompatible con esta versión de OpenTTD +STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :desconocido +STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... el nivel de compresión '{STRING}' no es válido +STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... el formato de guardado '{STRING}' no está disponible. Revertiendo a '{STRING}' +STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... gráficos base '{STRING}' ignorados: no encontrados +STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... sonidos base '{STRING}' ignorados: no encontrados +STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... música base '{STRING}' ignorada: no encontrada +STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}No hay memoria suficiente +STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}La asignación de {BYTES} de caché de sprites ha fallado. La caché de sprites ha sido reducida a {BYTES}, lo que reducirá el desempeño de OpenTTD. Para reducir los requisitos de memoria es posible deshabilitar los gráficos de 32bpp o reducir los grados de acercamiento + +# Intro window +STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} + +STR_INTRO_NEW_GAME :{BLACK}Nueva partida +STR_INTRO_LOAD_GAME :{BLACK}Cargar partida +STR_INTRO_PLAY_SCENARIO :{BLACK}Jugar mapa pers. +STR_INTRO_PLAY_HEIGHTMAP :{BLACK}Jugar mapa de alturas +STR_INTRO_SCENARIO_EDITOR :{BLACK}Editor de mapas +STR_INTRO_MULTIPLAYER :{BLACK}Multijugador + +STR_INTRO_GAME_OPTIONS :{BLACK}Opciones de juego +STR_INTRO_HIGHSCORE :{BLACK}Tabla de puntuaciones +STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}Configuración +STR_INTRO_NEWGRF_SETTINGS :{BLACK}Config. NewGRF +STR_INTRO_ONLINE_CONTENT :{BLACK}Contenido en línea +STR_INTRO_SCRIPT_SETTINGS :{BLACK}Configuración de scripts +STR_INTRO_QUIT :{BLACK}Salir + +STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Comenzar una nueva partida. Ctrl+Clic omite la configuración del mapa +STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Cargar una partida guardada +STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Empezar una nueva partida usando un mapa de alturas como terreno +STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Comenzar una nueva partida usando un mapa personalizado +STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Crear un mapa personalizado +STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Empezar una partida multijugador + +STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}Elegir mapa de clima 'Templado' +STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Elegir mapa de clima 'Subártico' +STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}Elegir mapa de clima 'Subtropical' +STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Elegir mapa de clima 'Mundo de juguetes' + +STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Mostrar las opciones de juego +STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Mostrar tabla de puntuaciones +STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Mostrar configuración +STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Muestra configuración de NewGRF +STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Revisar si hay nuevos contenidos actualizados para descargar +STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts +STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' + +STR_INTRO_TRANSLATION :{BLACK}A esta traducción le falta{P 0 "" n} {NUM} cadena{P "" s}. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta el archivo readme.txt para más detalles. + +# Quit window +STR_QUIT_CAPTION :{WHITE}Salir +STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}¿Estás seguro de salir de OpenTTD y regresar a {STRING}? +STR_QUIT_YES :{BLACK}Sí +STR_QUIT_NO :{BLACK}No + +# Supported OSes +STR_OSNAME_WINDOWS :Windows +STR_OSNAME_DOS :DOS +STR_OSNAME_UNIX :Unix +STR_OSNAME_OSX :OS{NBSP}X +STR_OSNAME_BEOS :BeOS +STR_OSNAME_HAIKU :Haiku +STR_OSNAME_MORPHOS :MorphOS +STR_OSNAME_AMIGAOS :AmigaOS +STR_OSNAME_OS2 :OS/2 +STR_OSNAME_SUNOS :SunOS + +# Abandon game +STR_ABANDON_GAME_CAPTION :{WHITE}Retirarse de la partida +STR_ABANDON_GAME_QUERY :{YELLOW}¿Estás seguro de que deseas retirarte de esta partida? +STR_ABANDON_SCENARIO_QUERY :{YELLOW}¿Estás seguro de que deseas salir de este mapa? + +# Cheat window +STR_CHEATS :{WHITE}Trucos +STR_CHEATS_TOOLTIP :{BLACK}Las casillas verificadas indican que ya se usó este truco +STR_CHEATS_WARNING :{BLACK}¡Atención! Estás a punto de traicionar a tus competidores. Recuerda que siempre se recordará tal deshonra +STR_CHEAT_MONEY :{LTBLUE}Recibir {CURRENCY_LONG} de dinero +STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jugar como la empresa: {ORANGE}{COMMA} +STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Excavadora mágica (elimina industrias y objetos inamovibles): {ORANGE}{STRING} +STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Los túneles se pueden cruzar: {ORANGE}{STRING} +STR_CHEAT_NO_JETCRASH :{LTBLUE}Las aeronaves jets no se estrellan (tanto) en aeropuertos pequeños: {ORANGE}{STRING} +STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Cambiar la altura máxima del mapa: {ORANGE}{NUM} +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Cambiar la altura máxima de las montañas en el mapa +STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Clima Templado +STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Clima Subártico +STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Clima Subtropical +STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Clima Mundo de juguetes +STR_CHEAT_CHANGE_DATE :{LTBLUE}Cambiar fecha: {ORANGE} {DATE_SHORT} +STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar año actual +STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir cambiar los valores de producción: {ORANGE}{STRING} + +# Livery window +STR_LIVERY_CAPTION :{WHITE}Diseño de colores corporativos + +STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar diseño general de colores +STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostrar diseño general de colores para trenes +STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Mostrar diseño general de colores para vehículos de carretera +STR_LIVERY_SHIP_TOOLTIP :{BLACK}Mostrar diseño general de colores de colores para barcos +STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Mostrar diseño general de colores de colores para aeronaves +STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Elegir el color principal para el diseño seleccionado. Ctrl+Clic para establecerlo como diseño general +STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Elegir el color secundario para el diseño seleccionado. Ctrl+Clic para establecerlo como diseño general +STR_LIVERY_PANEL_TOOLTIP :{BLACK}Elegir un solo diseño de colores, o Ctrl+Clic para elegir varios. Verificar cada una casilla para establecer diferentes combinaciones según el tipo de vehículo + +STR_LIVERY_DEFAULT :Diseño de colores estándar +STR_LIVERY_STEAM :Locomotora a vapor +STR_LIVERY_DIESEL :Locomotora de diésel +STR_LIVERY_ELECTRIC :Locomotora eléctrica +STR_LIVERY_MONORAIL :Locomotora de monorriel +STR_LIVERY_MAGLEV :Locomotora maglev +STR_LIVERY_DMU :DMU +STR_LIVERY_EMU :EMU +STR_LIVERY_PASSENGER_WAGON_STEAM :Carro de pasajeros (vapor) +STR_LIVERY_PASSENGER_WAGON_DIESEL :Carro de pasajeros (diésel) +STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Carro de pasajeros (eléctrico) +STR_LIVERY_PASSENGER_WAGON_MONORAIL :Carro de pasajeros (monorriel) +STR_LIVERY_PASSENGER_WAGON_MAGLEV :Carro de pasajeros (maglev) +STR_LIVERY_FREIGHT_WAGON :Vagón de carga +STR_LIVERY_BUS :Autobús +STR_LIVERY_TRUCK :Camión de carga +STR_LIVERY_PASSENGER_SHIP :Transbordador de pasajeros +STR_LIVERY_FREIGHT_SHIP :Barco de carga +STR_LIVERY_HELICOPTER :Helicóptero +STR_LIVERY_SMALL_PLANE :Aeronave pequeña +STR_LIVERY_LARGE_PLANE :Aeronave grande +STR_LIVERY_PASSENGER_TRAM :Tranvía de pasajeros +STR_LIVERY_FREIGHT_TRAM :Tranvía de carga + +# Face selection window +STR_FACE_CAPTION :{WHITE}Selección de cara +STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancelar selección de nueva cara +STR_FACE_OK_TOOLTIP :{BLACK}Aceptar selección de nueva cara +STR_FACE_RANDOM :{BLACK}Aleatorio + +STR_FACE_MALE_BUTTON :{BLACK}Hombre +STR_FACE_MALE_TOOLTIP :{BLACK}Elegir cara masculina +STR_FACE_FEMALE_BUTTON :{BLACK}Mujer +STR_FACE_FEMALE_TOOLTIP :{BLACK}Elegir cara femenina +STR_FACE_NEW_FACE_BUTTON :{BLACK}Nueva cara +STR_FACE_NEW_FACE_TOOLTIP :{BLACK}Generar cara al azar +STR_FACE_ADVANCED :{BLACK}Avanzada +STR_FACE_ADVANCED_TOOLTIP :{BLACK}Selección avanzada de caras +STR_FACE_SIMPLE :{BLACK}Simple +STR_FACE_SIMPLE_TOOLTIP :{BLACK}Selección simple de caras +STR_FACE_LOAD :{BLACK}Cargar +STR_FACE_LOAD_TOOLTIP :{BLACK}Cargar cara favorita +STR_FACE_LOAD_DONE :{WHITE}Cara favorita cargada desde el archivo de configuración +STR_FACE_FACECODE :{BLACK}Número de cara +STR_FACE_FACECODE_TOOLTIP :{BLACK}Establecer un número de cara +STR_FACE_FACECODE_CAPTION :{WHITE}Establecer un número de cara +STR_FACE_FACECODE_SET :{WHITE}Nuevo número de cara fue asignado +STR_FACE_FACECODE_ERR :{WHITE}No se puede asignar número de cara, ¡debe ser un valor entre 0 y 4,294,967,295! +STR_FACE_SAVE :{BLACK}Guardar +STR_FACE_SAVE_TOOLTIP :{BLACK}Guardar cara favorita +STR_FACE_SAVE_DONE :{WHITE}Cara guardada como favorita en el archivo de configuración +STR_FACE_EUROPEAN :{BLACK}Europea +STR_FACE_SELECT_EUROPEAN :{BLACK}Elegir cara con rasgos europeos +STR_FACE_AFRICAN :{BLACK}Africana +STR_FACE_SELECT_AFRICAN :{BLACK}Elegir cara con rasgos africanos +STR_FACE_YES :Sí +STR_FACE_NO :No +STR_FACE_MOUSTACHE_EARRING_TOOLTIP :{BLACK}Añadir bigotes o aretes +STR_FACE_HAIR :Pelo: +STR_FACE_HAIR_TOOLTIP :{BLACK}Cambiar cabello +STR_FACE_EYEBROWS :Cejas: +STR_FACE_EYEBROWS_TOOLTIP :{BLACK}Cambiar cejas +STR_FACE_EYECOLOUR :Color de ojos: +STR_FACE_EYECOLOUR_TOOLTIP :{BLACK}Cambiar color de ojos +STR_FACE_GLASSES :Gafas: +STR_FACE_GLASSES_TOOLTIP :{BLACK}Añadir gafas +STR_FACE_GLASSES_TOOLTIP_2 :{BLACK}Cambiar gafas +STR_FACE_NOSE :Nariz: +STR_FACE_NOSE_TOOLTIP :{BLACK}Cambiar nariz +STR_FACE_LIPS :Labios: +STR_FACE_MOUSTACHE :Bigote: +STR_FACE_LIPS_MOUSTACHE_TOOLTIP :{BLACK}Cambiar labios o bigote +STR_FACE_CHIN :Barbilla: +STR_FACE_CHIN_TOOLTIP :{BLACK}Cambiar barbilla +STR_FACE_JACKET :Saco: +STR_FACE_JACKET_TOOLTIP :{BLACK}Cambiar saco +STR_FACE_COLLAR :Cuello: +STR_FACE_COLLAR_TOOLTIP :{BLACK}Cambiar cuello +STR_FACE_TIE :Corbata: +STR_FACE_EARRING :Aretes: +STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Cambiar corbata o aretes + +# Network server list +STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Multijugador +STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}Público +STR_NETWORK_SERVER_LIST_ADVERTISED_TOOLTIP :{BLACK}Permitir escoger entre una partida pública (Internet) y una partida privada (LAN) +STR_NETWORK_SERVER_LIST_ADVERTISED_NO :No +STR_NETWORK_SERVER_LIST_ADVERTISED_YES :Sí +STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Nombre del jugador: +STR_NETWORK_SERVER_LIST_ENTER_NAME_TOOLTIP :{BLACK}Nombre con el que otros jugadores te identificarán + +STR_NETWORK_SERVER_LIST_GAME_NAME :{BLACK}Nombre +STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP :{BLACK}Nombre de la partida +STR_NETWORK_SERVER_LIST_GENERAL_ONLINE :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA} +STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Clientes +STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Clientes conectados/máx. clientes{}Empresas conectadas/máximo de empresas +STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}×{COMMA} +STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Tamaño del mapa +STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Tamaño del mapa de la partida{}Clic para ordenar por área +STR_NETWORK_SERVER_LIST_DATE_CAPTION :{BLACK}Fecha +STR_NETWORK_SERVER_LIST_DATE_CAPTION_TOOLTIP :{BLACK}Fecha actual +STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}Años +STR_NETWORK_SERVER_LIST_YEARS_CAPTION_TOOLTIP :{BLACK}Número de años{}que han transcurrido en la partida +STR_NETWORK_SERVER_LIST_INFO_ICONS_TOOLTIP :{BLACK}Idioma, versión del servidor, etc. + +STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Clic para elegir una partida de la lista +STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}Servidor al que te conectaste la última vez: +STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Clic para elegir el servidor al que te conectaste la última vez + +STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}INFORMACIÓN DE PARTIDA +STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Clientes: {WHITE}{COMMA}/{COMMA} - {COMMA}/{COMMA} +STR_NETWORK_SERVER_LIST_LANGUAGE :{SILVER}Idioma: {WHITE}{STRING} +STR_NETWORK_SERVER_LIST_LANDSCAPE :{SILVER}Clima: {WHITE}{STRING} +STR_NETWORK_SERVER_LIST_MAP_SIZE :{SILVER}Tamaño del mapa: {WHITE}{COMMA}x{COMMA} +STR_NETWORK_SERVER_LIST_SERVER_VERSION :{SILVER}Versión del servidor: {WHITE}{STRING} +STR_NETWORK_SERVER_LIST_SERVER_ADDRESS :{SILVER}Dirección del servidor: {WHITE}{STRING} +STR_NETWORK_SERVER_LIST_START_DATE :{SILVER}Fecha de inicio: {WHITE}{DATE_SHORT} +STR_NETWORK_SERVER_LIST_CURRENT_DATE :{SILVER}Fecha actual: {WHITE}{DATE_SHORT} +STR_NETWORK_SERVER_LIST_PASSWORD :{SILVER}¡Protegido por contraseña! +STR_NETWORK_SERVER_LIST_SERVER_OFFLINE :{SILVER}SERVIDOR APAGADO +STR_NETWORK_SERVER_LIST_SERVER_FULL :{SILVER}SERVIDOR LLENO +STR_NETWORK_SERVER_LIST_VERSION_MISMATCH :{SILVER}INCOMPATIBILIDAD DE VERSIONES +STR_NETWORK_SERVER_LIST_GRF_MISMATCH :{SILVER}INCOMPATIBILIDAD CON NEWGRF + +STR_NETWORK_SERVER_LIST_JOIN_GAME :{BLACK}Unirse a la partida +STR_NETWORK_SERVER_LIST_REFRESH :{BLACK}Volver a cargar servidor +STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}Volver a cargar información del servidor + +STR_NETWORK_SERVER_LIST_FIND_SERVER :{BLACK}Buscar servidor +STR_NETWORK_SERVER_LIST_FIND_SERVER_TOOLTIP :{BLACK}Buscar servidor en la red +STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Añadir servidor +STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}Añadir el servidor a una lista que siempre será analizada en busca de partidas activas +STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Iniciar servidor +STR_NETWORK_SERVER_LIST_START_SERVER_TOOLTIP :{BLACK}Iniciar un nuevo servidor + +STR_NETWORK_SERVER_LIST_PLAYER_NAME_OSKTITLE :{BLACK}Introducir nombre del jugador +STR_NETWORK_SERVER_LIST_ENTER_IP :{BLACK}Introducir la dirección IP del servidor + +# Start new multiplayer server +STR_NETWORK_START_SERVER_CAPTION :{WHITE}Empezar nueva partida multijugador + +STR_NETWORK_START_SERVER_NEW_GAME_NAME :{BLACK}Nombre de la partida: +STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}La partida será mostrada a otros jugadores en el menú de selección de partidas +STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Establecer contraseña +STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Proteger la partida con una contraseña para prevenir el acceso a otras personas + +STR_NETWORK_START_SERVER_UNADVERTISED :No +STR_NETWORK_START_SERVER_ADVERTISED :Sí +STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} cliente{P "" s} +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Número máximo de clientes: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Elegir el número máximo de clientes. No es necesario que se conecten todos +STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} empresa{P "" s} +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Número máximo de empresas: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limitar el servidor a un cierto número de empresas +STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} espectador{P "" es} +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Número máximo de espectadores: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limitar el servidor a un cierto número de espectadores +STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Idioma: +STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Otros jugadores sabrán qué idioma se utiliza en este servidor + +STR_NETWORK_START_SERVER_NEW_GAME_NAME_OSKTITLE :{BLACK}Introducir un nombre para la partida en red + +# Network game languages +############ Leave those lines in this order!! +STR_NETWORK_LANG_ANY :Cualquiera +STR_NETWORK_LANG_ENGLISH :Inglés +STR_NETWORK_LANG_GERMAN :Alemán +STR_NETWORK_LANG_FRENCH :Francés +STR_NETWORK_LANG_BRAZILIAN :Portugués (Brasil) +STR_NETWORK_LANG_BULGARIAN :Búlgaro +STR_NETWORK_LANG_CHINESE :Chino +STR_NETWORK_LANG_CZECH :Checo +STR_NETWORK_LANG_DANISH :Danés +STR_NETWORK_LANG_DUTCH :Alemán +STR_NETWORK_LANG_ESPERANTO :Esperanto +STR_NETWORK_LANG_FINNISH :Finés +STR_NETWORK_LANG_HUNGARIAN :Húngaro +STR_NETWORK_LANG_ICELANDIC :Islandés +STR_NETWORK_LANG_ITALIAN :Italiano +STR_NETWORK_LANG_JAPANESE :Japonés +STR_NETWORK_LANG_KOREAN :Coreano +STR_NETWORK_LANG_LITHUANIAN :Lituano +STR_NETWORK_LANG_NORWEGIAN :Noruego +STR_NETWORK_LANG_POLISH :Polaco +STR_NETWORK_LANG_PORTUGUESE :Portugués +STR_NETWORK_LANG_ROMANIAN :Rumano +STR_NETWORK_LANG_RUSSIAN :Ruso +STR_NETWORK_LANG_SLOVAK :Eslovaco +STR_NETWORK_LANG_SLOVENIAN :Esloveno +STR_NETWORK_LANG_SPANISH :Español +STR_NETWORK_LANG_SWEDISH :Sueco +STR_NETWORK_LANG_TURKISH :Turco +STR_NETWORK_LANG_UKRAINIAN :Ucraniano +STR_NETWORK_LANG_AFRIKAANS :Afrikáans +STR_NETWORK_LANG_CROATIAN :Croata +STR_NETWORK_LANG_CATALAN :Catalán +STR_NETWORK_LANG_ESTONIAN :Estonio +STR_NETWORK_LANG_GALICIAN :Gallego +STR_NETWORK_LANG_GREEK :Griego +STR_NETWORK_LANG_LATVIAN :Letón +############ End of leave-in-this-order + +# Network game lobby +STR_NETWORK_GAME_LOBBY_CAPTION :{WHITE}Sala virtual de partidas multijugador + +STR_NETWORK_GAME_LOBBY_PREPARE_TO_JOIN :{BLACK}Preparándose para unirse: {ORANGE}{STRING} +STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP :{BLACK}Lista de empresas presentes en el juego. Puedes unirte a una empresa existente o crear una nueva si hay espacio libre + +STR_NETWORK_GAME_LOBBY_COMPANY_INFO :{SILVER}INFORMACIÓN DE LA EMPRESA +STR_NETWORK_GAME_LOBBY_COMPANY_NAME :{SILVER}Nombre empresa: {WHITE}{STRING} +STR_NETWORK_GAME_LOBBY_INAUGURATION_YEAR :{SILVER}Inauguración: {WHITE}{NUM} +STR_NETWORK_GAME_LOBBY_VALUE :{SILVER}Valor de la empresa: {WHITE}{CURRENCY_LONG} +STR_NETWORK_GAME_LOBBY_CURRENT_BALANCE :{SILVER}Saldo actual: {WHITE}{CURRENCY_LONG} +STR_NETWORK_GAME_LOBBY_LAST_YEARS_INCOME :{SILVER}Ingresos año pasado: {WHITE}{CURRENCY_LONG} +STR_NETWORK_GAME_LOBBY_PERFORMANCE :{SILVER}Desempeño: {WHITE}{NUM} + +STR_NETWORK_GAME_LOBBY_VEHICLES :{SILVER}Vehículos: {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {SHIP}, {NUM} {PLANE} +STR_NETWORK_GAME_LOBBY_STATIONS :{SILVER}Estaciones: {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {SHIP}, {NUM} {PLANE} +STR_NETWORK_GAME_LOBBY_PLAYERS :{SILVER}Jugadores: {WHITE}{STRING} + +STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Nueva empresa +STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Crear nueva empresa +STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Observar partida +STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Observar una partida como espectador +STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Unirse a empresa +STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}Ayudar a dirigir esta empresa + +# Network connecting window +STR_NETWORK_CONNECTING_CAPTION :{WHITE}Conectando... + +############ Leave those lines in this order!! +STR_NETWORK_CONNECTING_1 :{BLACK}(1/6) Conectando... +STR_NETWORK_CONNECTING_2 :{BLACK}(2/6) Autorizando... +STR_NETWORK_CONNECTING_3 :{BLACK}(3/6) Esperando... +STR_NETWORK_CONNECTING_4 :{BLACK}(4/6) Descargando mapa... +STR_NETWORK_CONNECTING_5 :{BLACK}(5/6) Procesando datos... +STR_NETWORK_CONNECTING_6 :{BLACK}(6/6) Registrando... + +STR_NETWORK_CONNECTING_SPECIAL_1 :{BLACK}Recibiendo información de partida... +STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}Recibiendo información de la empresa... +############ End of leave-in-this-order +STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM} cliente{P "" s} en espera +STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} descargados hasta ahora +STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES}/{BYTES} descargados + +STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Desconectarse + +STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor protegido. Introducir contraseña +STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Empresa protegida. Introducir contraseña + +# Network company list added strings +STR_NETWORK_COMPANY_LIST_CLIENT_LIST :{WHITE}Lista de clientes +STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Observar +STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nueva empresa + +# Network client list +STR_NETWORK_CLIENTLIST_KICK :Expulsar +STR_NETWORK_CLIENTLIST_BAN :Prohibir acceso +STR_NETWORK_CLIENTLIST_GIVE_MONEY :Dar dinero +STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Hablar a todos +STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Hablar a una empresa +STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT :Mensaje privado + +STR_NETWORK_SERVER :Servidor +STR_NETWORK_CLIENT :Cliente +STR_NETWORK_SPECTATORS :Espectadores + +STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}Introducir la cantidad de dinero a dar +STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}Espectador + +# Network set password +STR_COMPANY_PASSWORD_CANCEL :{BLACK}No guardar la contraseña introducida +STR_COMPANY_PASSWORD_OK :{BLACK}Asignar a la empresa la nueva contraseña +STR_COMPANY_PASSWORD_CAPTION :{WHITE}Contraseña de la empresa +STR_COMPANY_PASSWORD_MAKE_DEFAULT :{BLACK}Contraseña predeterminada de la empresa +STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP :{BLACK}Usar la contraseña de esta empresa para cualquier otra nueva empresa + +# Network company info join/password +STR_COMPANY_VIEW_JOIN :{BLACK}Unirse +STR_COMPANY_VIEW_JOIN_TOOLTIP :{BLACK}Unirse y jugar como esta empresa +STR_COMPANY_VIEW_PASSWORD :{BLACK}Contraseña +STR_COMPANY_VIEW_PASSWORD_TOOLTIP :{BLACK}Proteger con contraseña tu empresa para prevenir que usuarios no autorizados se unan a ella +STR_COMPANY_VIEW_SET_PASSWORD :{BLACK}Establecer contraseña de la empresa + +# Network chat +STR_NETWORK_CHAT_SEND :{BLACK}Enviar +STR_NETWORK_CHAT_COMPANY_CAPTION :[Equipo] : +STR_NETWORK_CHAT_CLIENT_CAPTION :[Privado] {STRING}: +STR_NETWORK_CHAT_ALL_CAPTION :[Todos] : + +STR_NETWORK_CHAT_COMPANY :[Equipo] {STRING}: {WHITE}{STRING} +STR_NETWORK_CHAT_TO_COMPANY :[Equipo] a {STRING}: {WHITE}{STRING} +STR_NETWORK_CHAT_CLIENT :[Privado] {STRING}: {WHITE}{STRING} +STR_NETWORK_CHAT_TO_CLIENT :[Privado] a {STRING}: {WHITE}{STRING} +STR_NETWORK_CHAT_ALL :[Todos] {STRING}: {WHITE}{STRING} +STR_NETWORK_CHAT_OSKTITLE :{BLACK}Introducir mensaje para el chat en red + +# Network messages +STR_NETWORK_ERROR_NOTAVAILABLE :{WHITE}No se encontraron ni compilaron dispositivos sin soporte de red +STR_NETWORK_ERROR_NOSERVER :{WHITE}No se pudo encontrar ninguna partida en red +STR_NETWORK_ERROR_NOCONNECTION :{WHITE}El servidor no responde a la petición +STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}No se pudo conectar debido a incompatibilidad de NewGRF +STR_NETWORK_ERROR_DESYNC :{WHITE}La sincronización de la partida en red falló +STR_NETWORK_ERROR_LOSTCONNECTION :{WHITE}La conexión con la partida en red se perdió +STR_NETWORK_ERROR_SAVEGAMEERROR :{WHITE}No se pudo cargar la partida +STR_NETWORK_ERROR_SERVER_START :{WHITE}No se pudo iniciar el servidor +STR_NETWORK_ERROR_CLIENT_START :{WHITE}No se pudo conectar +STR_NETWORK_ERROR_TIMEOUT :{WHITE}Tiempo de espera agotado en conexión #{NUM} +STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}Se produjo un error de protocolo y la conexión fue cerrada +STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}La versión de este cliente no corresponde con la versión del servidor +STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Contraseña incorrecta +STR_NETWORK_ERROR_SERVER_FULL :{WHITE}El servidor está completo +STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Se te ha prohibido el acceso al servidor +STR_NETWORK_ERROR_KICKED :{WHITE}Has sido expulsado del servidor +STR_NETWORK_ERROR_CHEATER :{WHITE}No se permiten trucos en este servidor +STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Estabas enviando demasiados comandos al servidor +STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Tardaste demasiado en introducir la contraseña +STR_NETWORK_ERROR_TIMEOUT_COMPUTER :{WHITE}Tu computadora es demasiado lenta para seguir la velocidad del servidor +STR_NETWORK_ERROR_TIMEOUT_MAP :{WHITE}Tu computadora tardó demasiado en descargar el mapa +STR_NETWORK_ERROR_TIMEOUT_JOIN :{WHITE}Tu computadora tardó demasiado en conectarse al servidor + +############ Leave those lines in this order!! +STR_NETWORK_ERROR_CLIENT_GENERAL :error general +STR_NETWORK_ERROR_CLIENT_DESYNC :error de desincronización +STR_NETWORK_ERROR_CLIENT_SAVEGAME :no se puede cargar el mapa +STR_NETWORK_ERROR_CLIENT_CONNECTION_LOST :conexión perdida +STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :error de protocolo +STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF incompatible +STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :no autorizado +STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :recibido paquete inválido o inesperado +STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :revisión incorrecta +STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :nombre en uso +STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :contraseña incorrecta +STR_NETWORK_ERROR_CLIENT_COMPANY_MISMATCH :empresa incorrecta en un DoCommand +STR_NETWORK_ERROR_CLIENT_KICKED :expulsado por el servidor +STR_NETWORK_ERROR_CLIENT_CHEATER :trataste de usar un truco +STR_NETWORK_ERROR_CLIENT_SERVER_FULL :servidor lleno +STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :estabas enviando demasiados comandos +STR_NETWORK_ERROR_CLIENT_TIMEOUT_PASSWORD :no se recibió la contraseña a tiempo +STR_NETWORK_ERROR_CLIENT_TIMEOUT_COMPUTER :tiempo agotado en general +STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :la descarga del mapa tardó demsiado +STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :el procesado del mapa tardó demasiado +############ End of leave-in-this-order + +STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE}Posible pérdida de conexión +STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION :{WHITE}No se han recibido datos del servidor desde hace {NUM} segundo{P "" s} + +# Network related errors +STR_NETWORK_SERVER_MESSAGE :*** {1:STRING} +############ Leave those lines in this order!! +STR_NETWORK_SERVER_MESSAGE_GAME_PAUSED :Partida en pausa ({STRING}) +STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 :Partida aún en pausa ({STRING}) +STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Partida aún en pausa ({STRING}, {STRING}) +STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Partida aún en pausa ({STRING}, {STRING}, {STRING}) +STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :Partida aún en pausa ({STRING}, {STRING}, {STRING}, {STRING}) +STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Partida reanudada ({STRING}) +STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :número de jugadores +STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :clientes conectándose +STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manual +STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :script de juego +############ End of leave-in-this-order +STR_NETWORK_MESSAGE_CLIENT_LEAVING :saliendo +STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} se unió a la partida +STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} se unió a la partida (Cliente #{2:NUM}) +STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} se unió a la empresa #{2:NUM} +STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} se unió como espectador +STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} creó una nueva empresa (#{2:NUM}) +STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} salió de la partida ({2:STRING}) +STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} cambió su nombre a {STRING} +STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} le dio a tu empresa {2:CURRENCY_LONG} +STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** {2:CURRENCY_LONG} entregado a la empresa {1:STRING} +STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}El servidor ha cerrado la sesión +STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Se está reiniciando el servidor...{}Espera por favor... + +# Content downloading window +STR_CONTENT_TITLE :{WHITE}Descarga de contenido +STR_CONTENT_TYPE_CAPTION :{BLACK}Tipo +STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Tipo de contenido +STR_CONTENT_NAME_CAPTION :{BLACK}Nombre +STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Nombre del contenido +STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Clic en un elemento para ver los detalles{}Clic en las casillas para seleccionar una descarga +STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Elegir todas +STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Marcar para descargar todo el contenido +STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Elegir actualizaciones +STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Marcar para descargar solo actualizaciones de contenido existente +STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Desmarcar todas +STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Desmarcar todo el contenido para no ser descargado +STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Buscar en sitios web externos +STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Buscar contenido no disponible en el servicio de contenido del juego en sitios web externos no asociados con OpenTTD +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}¡Estás saliendo de OpenTTD! +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Los términos y condiciones para descargar contenido de sitios web externos varían.{}Será necesario referirse a tales sitios para saber cómo instalar el contenido en OpenTTD.{}¿Continuar? +STR_CONTENT_FILTER_TITLE :{BLACK}Etiqueta o palabras claves +STR_CONTENT_OPEN_URL :{BLACK}Visitar sitio web +STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Visitar el sitio web de este contenido +STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Descargar +STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}Comenzar a descargar el contenido elegido +STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}Tamaño total de la descarga: {WHITE}{BYTES} +STR_CONTENT_DETAIL_TITLE :{SILVER}INFORMACIÓN DEL CONTENIDO +STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}Contenido no elegido para descargar +STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}Contenido elegido para descargar +STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}Dependencia elegida para descargar +STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}Este contenido ya fue descargado +STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}Este contenido es desconocido y no puede ser descargado en OpenTTD +STR_CONTENT_DETAIL_UPDATE :{SILVER}Este es un sustituto de un{G "" a} {STRING} existente +STR_CONTENT_DETAIL_NAME :{SILVER}Nombre: {WHITE}{STRING} +STR_CONTENT_DETAIL_VERSION :{SILVER}Versión: {WHITE}{STRING} +STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}Descripción: {WHITE}{STRING} +STR_CONTENT_DETAIL_URL :{SILVER}URL: {WHITE}{STRING} +STR_CONTENT_DETAIL_TYPE :{SILVER}Tipo: {WHITE}{STRING} +STR_CONTENT_DETAIL_FILESIZE :{SILVER}Tamaño de descarga: {WHITE}{BYTES} +STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Razón de selección: {WHITE}{STRING} +STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Dependencias: {WHITE}{STRING} +STR_CONTENT_DETAIL_TAGS :{SILVER}Etiquetas: {WHITE}{STRING} +STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD ha sido compilado sin soporte "zlib"... +STR_CONTENT_NO_ZLIB_SUB :{WHITE}... ¡No es posible descargar contenido! + +# Order of these is important! +STR_CONTENT_TYPE_BASE_GRAPHICS :{G=m}Gráficos base +STR_CONTENT_TYPE_NEWGRF :{G=m}NewGRF +STR_CONTENT_TYPE_AI :{G=f}IA +STR_CONTENT_TYPE_AI_LIBRARY :{G=f}Biblioteca de IA +STR_CONTENT_TYPE_SCENARIO :{G=m}Mapa pers. +STR_CONTENT_TYPE_HEIGHTMAP :{G=m}Mapa de alturas +STR_CONTENT_TYPE_BASE_SOUNDS :{G=m}Sonidos base +STR_CONTENT_TYPE_BASE_MUSIC :{G=m}Música base +STR_CONTENT_TYPE_GAME_SCRIPT :Script de juego +STR_CONTENT_TYPE_GS_LIBRARY :Biblioteca SJ + +# Content downloading progress window +STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Descargando contenido... +STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Solicitando archivos... +STR_CONTENT_DOWNLOAD_FILE :{WHITE}Descargando {STRING} ({NUM} de {NUM}) +STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Descarga finalizada +STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} de {BYTES} descargados ({NUM} %) + +# Content downloading error messages +STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}No es posible conectarse al servidor de contenidos... +STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}Descarga errónea... +STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... conexión perdida +STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no se puede escribir en el archivo +STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el archivo descargado + +STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gráficos no encontrados +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD requiere gráficos para funcionar pero no se pudo encontrar ninguno. ¿Permitir que OpenTTD descargue e instale dichos gráficos? +STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descargar los gráficos +STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, salir de OpenTTD + +# Transparency settings window +STR_TRANSPARENCY_CAPTION :{WHITE}Opciones de transparencia +STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Activar o desactivar transparencia para carteles. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}Activar o desactivar transparencia para árboles. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}Activar o desactivar transparencia para casas. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_INDUSTRIES_TOOLTIP :{BLACK}Activar o desactivar transparencia para industrias. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_BUILDINGS_TOOLTIP :{BLACK}Activar o desactivar transparencia para edificios como estaciones, depósitos o puestos guías. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_BRIDGES_TOOLTIP :{BLACK}Activar o desactivar transparencia para puentes. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_STRUCTURES_TOOLTIP :{BLACK}Activar o desactivar transparencia para estructuras como faros o antenas. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}Activar o desactivar transparencia para catenaria. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Activar o desactivar transparencia para indicadores de carga. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Ocultar objetos totalmente (deben ser transparentes primero) + +# Linkgraph legend window +STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Leyenda de flujo de cargamento +STR_LINKGRAPH_LEGEND_ALL :{BLACK}Todas +STR_LINKGRAPH_LEGEND_NONE :{BLACK}Ninguna +STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Elegir las empresas a mostrar + +# Linkgraph legend window and linkgraph legend in smallmap +STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}sin uso +STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}saturado +STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLACK}sobrecargado + +# Base for station construction window(s) +STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}Mostrar área de recolección +STR_STATION_BUILD_COVERAGE_OFF :{BLACK}Desactivado +STR_STATION_BUILD_COVERAGE_ON :{BLACK}Activado +STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP :{BLACK}No mostrar área de recolección en el sitio planeado +STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP :{BLACK}Mostrar área de recolección en el sitio planeado +STR_STATION_BUILD_ACCEPTS_CARGO :{BLACK}Recibe: {GOLD}{CARGO_LIST} +STR_STATION_BUILD_SUPPLIES_CARGO :{BLACK}Suministra: {GOLD}{CARGO_LIST} + +# Join station window +STR_JOIN_STATION_CAPTION :{WHITE}Ampliar estación +STR_JOIN_STATION_CREATE_SPLITTED_STATION :{YELLOW}Construir aparte + +STR_JOIN_WAYPOINT_CAPTION :{WHITE}Unir puestos guías +STR_JOIN_WAYPOINT_CREATE_SPLITTED_WAYPOINT :{YELLOW}Construir aparte + +# Rail construction toolbar +STR_RAIL_TOOLBAR_RAILROAD_CONSTRUCTION_CAPTION :Construcción de ferrocarril +STR_RAIL_TOOLBAR_ELRAIL_CONSTRUCTION_CAPTION :Construcción ferrocarril eléctrico +STR_RAIL_TOOLBAR_MONORAIL_CONSTRUCTION_CAPTION :Construcción de monorriel +STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Construcción de maglev + +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Construir tramo de vías férreas en una orientación. Ctrl quita o coloca vías. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Construir tramo de vías férreas con orientación automática. Ctrl quita o coloca vías. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Construir depósito de trenes (para comprar y dar mantenimiento a trenes). Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Construir puesto guía sobre vía férrea. Ctrl activa la unión de puestos guías. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Construir estación de ferrocarril. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Instalar señales de ferrocarril. Ctrl cambia entre señales mecánicas y eléctricas{}Al arrastrar sobre las vías se instalan señales a lo largo de un tramo recto elegido. Ctrl instala señales hasta el siguiente desvío u otra señal{}Ctrl+Clic cambia a la herramienta de selección de señales. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Construir puente de ferrocarril. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Construir túnel de ferrocarril. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Quitar vías férreas, señales, estaciones y puestos guías. Al mantener pulsado Ctrl se quita también el ferrocarril si se retrian estaciones o puestos guías +STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Convertir o actualizar tipo de vía férrea. Mayús muestra una estimación del precio + +STR_RAIL_NAME_RAILROAD :Ferrocarril +STR_RAIL_NAME_ELRAIL :Ferrocarril eléctrico +STR_RAIL_NAME_MONORAIL :Monorriel +STR_RAIL_NAME_MAGLEV :Maglev + +# Rail depot construction window +STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}Orientación del depósito +STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}Elegir la orientación del depósito de trenes + +# Rail waypoint construction window +STR_WAYPOINT_CAPTION :{WHITE}Puesto guía +STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Elegir el tipo de puesto guía + +# Rail station construction window +STR_STATION_BUILD_RAIL_CAPTION :{WHITE}Selección de estación +STR_STATION_BUILD_ORIENTATION :{BLACK}Orientación +STR_STATION_BUILD_RAILROAD_ORIENTATION_TOOLTIP :{BLACK}Elegir la orientación de la estación de ferrocarril +STR_STATION_BUILD_NUMBER_OF_TRACKS :{BLACK}Número de andenes +STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}Elegir el número de andenes de la estación de ferrocarril +STR_STATION_BUILD_PLATFORM_LENGTH :{BLACK}Longitud del andén +STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}Elegir la longitud de la estación de ferrocarril +STR_STATION_BUILD_DRAG_DROP :{BLACK}Arrastrar y soltar +STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}Construir una estación mediante arrastrar y soltar el ratón + +STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Mostrar el tipo de estación elegida +STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Construir el tipo de estación elegida + +STR_STATION_CLASS_DFLT :Estación predeterminada +STR_STATION_CLASS_WAYP :Puestos guías + +# Signal window +STR_BUILD_SIGNAL_CAPTION :{WHITE}Selección de señales +STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Señal de bloqueo (mecánica){}Es el tipo de señal más básico que permite a un único tren ocupar al mismo tiempo un tramo de vía entre dos señales +STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Señal de entrada (mecánica){}Abierta si existe una o más señales de salida en el siguiente tramo, de lo contrario se mostrará cerrada +STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Señal de salida (mecánica){}Igual que una señal de bloqueo pero es necesaria para activar la posición correcta de las señales de entrada y combo +STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Señal de combo (mecánica){}La señal hace lo mismo que una señal de entrada y salida a la vez, lo que permite construir grandes "árboles" de señales condicionales +STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Señal de ruta (mecánica){}Una señal de ruta permite a más de un tren entrar al mismo tiempo en un tramo de vía con señales, en tanto que el tren pueda reservar una ruta hasta un lugar seguro. Puede ser pasada por detrás +STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de un sentido (mecánica){}Igual que una señal de ruta pero no ser pasada por detrás +STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Señal de bloqueo (eléctrica){}Es el tipo de señal más básico que permite a un único tren ocupar al mismo tiempo un tramo de vía entre dos señales +STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Señal de entrada (eléctrica){}Verde si existe una o más señales de salida en el siguiente tramo, de lo contrario se mostrará en rojo +STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Señal de salida (eléctrica){}Igual que una señal de bloqueo pero es necesaria para activar el color correcto de las señales de entrada y combo +STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Señal combo (eléctrica){}La señal hace lo mismo que una señal de entrada y salida a la vez, lo que permite construir grandes "árboles" de señales condicionales +STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Señal de ruta (eléctrica){}Una señal de ruta permite a más de un tren entrar al mismo tiempo en un tramo de vía con señales, en tanto que el tren pueda reservar una ruta hasta un lugar seguro. Puede ser pasada por detrás +STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de un sentido (eléctrica){}gual que una señal de ruta pero no ser pasada por detrás +STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Conversión de señal{}Activar para pulsar sobre una señal existente y convertirla en el tipo y variante elegidos. Ctrl+Clic permite cambiar entre variantes de señales. Mayús+Clic muestra una estimación del precio de conversión +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Cantidad de señales instaladas al arrastrar +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Más +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Menos + +# Bridge selection window +STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Selección de puente de ferrocarril +STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Selección de puente de carretera +STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Selección de puente: Clic en el puente elegido para construirlo +STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} +STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} +STR_BRIDGE_NAME_SUSPENSION_STEEL :Colgante (acero) +STR_BRIDGE_NAME_GIRDER_STEEL :Vigas (acero) +STR_BRIDGE_NAME_CANTILEVER_STEEL :Voladizo (acero) +STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Colgante (concreto) +STR_BRIDGE_NAME_WOODEN :Madera +STR_BRIDGE_NAME_CONCRETE :Concreto +STR_BRIDGE_NAME_TUBULAR_STEEL :Tubular (acero) +STR_BRIDGE_TUBULAR_SILICON :Tubular (silicio) + + +# Road construction toolbar +STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Construcción de carretera +STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Construcción de tranvía +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}Construir sección de carretera. Ctrl quita las carreteras. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Construir sección de tranvía. Ctrl quita los carriles de tranvía. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}Construir carretera con orientación automática. Ctrl quita carreteras. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}Construir tranvías con orientación automática. Ctrl quita los carriles de tranvía. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Construir depósito de carretera (para comprar y dar mantenimiento a vehículos). Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Construir depósito de tranvías (para comprar y dar mantenimiento a tranvías). Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Construir parada de autobús. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Construir estación de tranvía de pasajeros. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Construir estación de carga de camiones. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}Construir estación de tranvía de carga. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}Activar y desactivar carreteras de un sentido +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Construir puente de carretera. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Construir puente de tranvía. Mayús muestra una estimación del precio +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Construir túnel de carretera. Mayús muestra una estimación del precio +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 + +# Road depot construction window +STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientación del depósito +STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Elegir la orientación del depósito de vehículos de carretera +STR_BUILD_DEPOT_TRAM_ORIENTATION_CAPTION :{WHITE}Orientación del depósito +STR_BUILD_DEPOT_TRAM_ORIENTATION_SELECT_TOOLTIP :{BLACK}Elegir la orientación del depósito de tranvías + +# Road vehicle station construction window +STR_STATION_BUILD_BUS_ORIENTATION :{WHITE}Orientación de la parada de autobús +STR_STATION_BUILD_BUS_ORIENTATION_TOOLTIP :{BLACK}Elegir la orientación de la parada de autobús +STR_STATION_BUILD_TRUCK_ORIENTATION :{WHITE}Orientación de la estación de camiones +STR_STATION_BUILD_TRUCK_ORIENTATION_TOOLTIP :{BLACK}Elegir la orientación de la estación de camiones +STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION :{WHITE}Orientación de la estación de tranvía de pasajeros +STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION_TOOLTIP :{BLACK}Elegir la orientación de la estación de tranvía de pasajeros +STR_STATION_BUILD_CARGO_TRAM_ORIENTATION :{WHITE}Orientación de la estación de tranvía de carga +STR_STATION_BUILD_CARGO_TRAM_ORIENTATION_TOOLTIP :{BLACK}Elegir la orientación de la estación de tranvía de carga + +# Waterways toolbar (last two for SE only) +STR_WATERWAYS_TOOLBAR_CAPTION :{WHITE}Vías fluviales +STR_WATERWAYS_TOOLBAR_CAPTION_SE :{WHITE}Canales +STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}Construir canal. Mayús muestra una estimación del precio +STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}Construir esclusa. Mayús muestra una estimación del precio +STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}Construir astillero (para comprar y dar mantenimiento a barcos). Mayús muestra una estimación del precio +STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Construir muelles. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio +STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Colocar boya para utilizar como puesto guía marítimo. Mayús muestra una estimación del precio +STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Construir acueducto. Mayús muestra una estimación del precio +STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Definir cuerpo de agua.{}Crea un canal, a menos que se pulse Ctrl en un área al nivel del mar, en cuyo caso se inundarán los alrededores +STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Colocar ríos + +# Ship depot construction window +STR_DEPOT_BUILD_SHIP_CAPTION :{WHITE}Orientación del astillero +STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP :{BLACK}Elegir la orientación del astillero + +# Dock construction window +STR_STATION_BUILD_DOCK_CAPTION :{WHITE}Muelle + +# Airport toolbar +STR_TOOLBAR_AIRCRAFT_CAPTION :{WHITE}Aeropuertos +STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Construir aeropuerto. Ctrl activa la ampliación de aeropuertos. Mayús muestra una estimación del precio + +# Airport construction window +STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Selección de aeropuerto +STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Elegir tamaño y tipo de aeropuerto +STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Tipo de aeropuerto +STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Diseño {NUM} + +STR_AIRPORT_SMALL :Pequeño +STR_AIRPORT_CITY :Ciudad +STR_AIRPORT_METRO :Metropolitano +STR_AIRPORT_INTERNATIONAL :Internacional +STR_AIRPORT_COMMUTER :Suburbano +STR_AIRPORT_INTERCONTINENTAL :Intercontinental +STR_AIRPORT_HELIPORT :Helipuerto +STR_AIRPORT_HELIDEPOT :Hangar para helicóptero +STR_AIRPORT_HELISTATION :Estación de helicóptero + +STR_AIRPORT_CLASS_SMALL :Aeropuertos pequeños +STR_AIRPORT_CLASS_LARGE :Aeropuertos grandes +STR_AIRPORT_CLASS_HUB :Aeropuertos centrales +STR_AIRPORT_CLASS_HELIPORTS :Helipuertos + +STR_STATION_BUILD_NOISE :{BLACK}Ruido generado: {GOLD}{COMMA} + +# Landscaping toolbar +STR_LANDSCAPING_TOOLBAR :{WHITE}Modificación de terreno +STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Disminuir una esquina del terreno. Al arrastrar el ratón se reduce la primera esquina elegida y se nivela el resto del terreno seleccionado a dicha altura. Ctrl permite trazar una diagonal para seleccionar un área cuadrada. +STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Elevar una esquina del terreno. Al arrastrar el ratón se eleva la primera esquina elegida y se nivela el resto del terreno seleccionado a dicha altura. Ctrl permite trazar una diagonal para seleccionar un área cuadrada. Mayús muestra una estimación del precio +STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Nivela un área de terreno a la altura de la primera esquina seleccionada. Ctrl permite trazar una diagonal para seleccionar un área cuadrada. Mayús muestra una estimación del precio +STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Comprar terreno para usos futuros. Mayús muestra una estimación del precio + +# Object construction window +STR_OBJECT_BUILD_CAPTION :{WHITE}Selección de objeto +STR_OBJECT_BUILD_TOOLTIP :{BLACK}Elegir una estructura u objeto a construir. Mayús muestra una estimación del precio +STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Elegir el tipo de objeto o estructura a construir +STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Vista previa del objeto +STR_OBJECT_BUILD_SIZE :{BLACK}Tamaño: {GOLD}{NUM}×{NUM} casillas + +STR_OBJECT_CLASS_LTHS :Faros +STR_OBJECT_CLASS_TRNS :Torres de transmisión + +# Tree planting window (last two for SE only) +STR_PLANT_TREE_CAPTION :{WHITE}Árboles +STR_PLANT_TREE_TOOLTIP :{BLACK}Elegir el tipo de árboles a plantar. Si la casilla ya tiene un árbol, se añadirán más árboles de distintos tipos sin importar el tipo elegido +STR_TREES_RANDOM_TYPE :{BLACK}Tipo aleatorio +STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}Colocar árboles de distinto tipo al azar. Mayús muestra una estimación del precio +STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Árboles al azar +STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Planta árboles al azar sobre el terreno + +# Land generation window (SE) +STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Generación de terrenos +STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Colocar zonas rocosas sobre el terreno +STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}Definir área desértica.{}Mantener pulsado Ctrl para quitarla +STR_TERRAFORM_TOOLTIP_INCREASE_SIZE_OF_LAND_AREA :{BLACK}Aumentar el tamaño del área de terreno a disminuir o elevar +STR_TERRAFORM_TOOLTIP_DECREASE_SIZE_OF_LAND_AREA :{BLACK}Disminuir el tamaño del área de terreno a disminuir o elevar +STR_TERRAFORM_TOOLTIP_GENERATE_RANDOM_LAND :{BLACK}Generar terreno al azar +STR_TERRAFORM_SE_NEW_WORLD :{BLACK}Crear nuevo mapa +STR_TERRAFORM_RESET_LANDSCAPE :{BLACK}Restaurar terreno +STR_TERRAFORM_RESET_LANDSCAPE_TOOLTIP :{BLACK}Eliminar del mapa todas las propiedades de las empresas + +STR_QUERY_RESET_LANDSCAPE_CAPTION :{WHITE}Restaurar terreno +STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}¿Eliminar todas las propiedades de las empresas? + +# Town generation window (SE) +STR_FOUND_TOWN_CAPTION :{WHITE}Creación de pueblos +STR_FOUND_TOWN_NEW_TOWN_BUTTON :{BLACK}Nuevo pueblo +STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}Fundar un nuevo pueblo. Mayús muestra una estimación del precio +STR_FOUND_TOWN_RANDOM_TOWN_BUTTON :{BLACK}Pueblo aleatorio +STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}Fundar pueblo en un lugar aleatorio +STR_FOUND_TOWN_MANY_RANDOM_TOWNS :{BLACK}Muchos pueblos aleatorios +STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}Cubrir el mapa con pueblos colocados al azar + +STR_FOUND_TOWN_NAME_TITLE :{YELLOW}Nombre del pueblo: +STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}Indicar el nombre del pueblo +STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Clic para indicar el nombre del pueblo +STR_FOUND_TOWN_NAME_RANDOM_BUTTON :{BLACK}Nombre aleatorio +STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Generar nuevo nombre al azar + +STR_FOUND_TOWN_INITIAL_SIZE_TITLE :{YELLOW}Tamaño del pueblo: +STR_FOUND_TOWN_INITIAL_SIZE_SMALL_BUTTON :{BLACK}Pequeño +STR_FOUND_TOWN_INITIAL_SIZE_MEDIUM_BUTTON :{BLACK}Mediano +STR_FOUND_TOWN_INITIAL_SIZE_LARGE_BUTTON :{BLACK}Grande +STR_FOUND_TOWN_SIZE_RANDOM :{BLACK}Aleatorio +STR_FOUND_TOWN_INITIAL_SIZE_TOOLTIP :{BLACK}Elegir el tamaño del pueblo +STR_FOUND_TOWN_CITY :{BLACK}Ciudad +STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}Las ciudades crecen más rápido que los pueblos{}Según la configuración del juego, al ser creadas tendrán mayor población + +STR_FOUND_TOWN_ROAD_LAYOUT :{YELLOW}Diseño urbano: +STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK}Elegir el diseño de carreteras y cuadras para este pueblo +STR_FOUND_TOWN_SELECT_LAYOUT_ORIGINAL :{BLACK}Original +STR_FOUND_TOWN_SELECT_LAYOUT_BETTER_ROADS :{BLACK}Mejorado +STR_FOUND_TOWN_SELECT_LAYOUT_2X2_GRID :{BLACK}Rejilla de 2×2 +STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}Rejilla de 3×3 +STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Aleatorio + +# Fund new industry window +STR_FUND_INDUSTRY_CAPTION :{WHITE}Fundación de una nueva industria +STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Elegir de la lista la industria adecuada +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :Muchas industrias al azar +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Cubrir el mapa con industrias colocadas al azar +STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}Costo: {YELLOW}{CURRENCY_LONG} +STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}Prospección +STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Construir +STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Fundar + +# Industry cargoes window +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadena industrial para la industria de {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cadena industrial para el cargamento de {STRING} +STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Industrias proveedoras +STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Industrias receptoras +STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Casas +STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Clic en la industria para ver sus industrias proveedoras y receptoras +STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Clic en el cargamento para ver sus industrias proveedoras y receptoras +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Mostrar cadena +STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Mostrar las industrias que suministran y reciben el cargamento +STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Ver en minimapa +STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Elegir y ver en el minimapa las industrias mostradas en el mapa prinicpal +STR_INDUSTRY_CARGOES_SELECT_CARGO :{BLACK}Elegir cargamento +STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}Elegir el tipo de cargamento a mostrar +STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}Elegir industria +STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Elegir la industria a mostrar + +# Land area window +STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Información sobre área de terreno +STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK}Costo por despejar: {LTBLUE}N/D +STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}Costo por despejar: {RED}{CURRENCY_LONG} +STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}Ingreso por despejar: {LTBLUE}{CURRENCY_LONG} +STR_LAND_AREA_INFORMATION_OWNER_N_A :N/D +STR_LAND_AREA_INFORMATION_OWNER :{BLACK}Propietario: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}Propietario de la carretera: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propietario del tranvía: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Propietario del ferrocarril: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Ayuntamiento: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :Ninguno +STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Coordenadas: {LTBLUE}{NUM}×{NUM}×{NUM} ({STRING}) +STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Construido: {LTBLUE}{DATE_LONG} +STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Clase de estación: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de estación: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}Tipo de aeropuerto: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}Nombre del aeropuerto: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nombre de casilla del aeropuerto: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargamento que recibe: {LTBLUE} +STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {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} + +# Description of land area of different tiles +STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocas +STR_LAI_CLEAR_DESCRIPTION_ROUGH_LAND :Terreno irregular +STR_LAI_CLEAR_DESCRIPTION_BARE_LAND :Tierra árida +STR_LAI_CLEAR_DESCRIPTION_GRASS :Hierba +STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos +STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terreno nevado +STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto + +STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de {STRING} +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de {STRING} con señales de bloqueo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de {STRING} con señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de {STRING} con señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de {STRING} con señales de combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de {STRING} con señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de {STRING} con señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de {STRING} con señales de bloqueo y señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de {STRING} con señales de bloqueo y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de {STRING} con señales de bloqueo y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de {STRING} con señales de bloqueo y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de {STRING} con señales de bloqueo y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de {STRING} con señales de entrada y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de {STRING} con señales de entrada y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de {STRING} con señales de entrada y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de {STRING} con señales de entrada y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de {STRING} con señales de salida y señales de combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de {STRING} con señales de salida y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de {STRING} con señales de salida y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de {STRING} con señales de combo y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de {STRING} con señales de combo y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de {STRING} con señales de ruta y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito ({STRING}) + +STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera +STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera con alumbrado +STR_LAI_ROAD_DESCRIPTION_TREE_LINED_ROAD :Carretera con árboles +STR_LAI_ROAD_DESCRIPTION_ROAD_VEHICLE_DEPOT :Depósito de vehículos de carretera +STR_LAI_ROAD_DESCRIPTION_ROAD_RAIL_LEVEL_CROSSING :Paso a nivel +STR_LAI_ROAD_DESCRIPTION_TRAMWAY :Tranvía + +# Houses come directly from their building names +STR_LAI_TOWN_INDUSTRY_DESCRIPTION_UNDER_CONSTRUCTION :{STRING} (en construcción) + +STR_LAI_TREE_NAME_TREES :Árboles +STR_LAI_TREE_NAME_RAINFOREST :Selva +STR_LAI_TREE_NAME_CACTUS_PLANTS :Cactus + +STR_LAI_STATION_DESCRIPTION_RAILROAD_STATION :Estación de ferrocarril +STR_LAI_STATION_DESCRIPTION_AIRCRAFT_HANGAR :Hangar de aeronaves +STR_LAI_STATION_DESCRIPTION_AIRPORT :Aeropuerto +STR_LAI_STATION_DESCRIPTION_TRUCK_LOADING_AREA :Estación de carga de camiones +STR_LAI_STATION_DESCRIPTION_BUS_STATION :Parada de autobús +STR_LAI_STATION_DESCRIPTION_SHIP_DOCK :Muelle +STR_LAI_STATION_DESCRIPTION_BUOY :Boya +STR_LAI_STATION_DESCRIPTION_WAYPOINT :puesto guía + +STR_LAI_WATER_DESCRIPTION_WATER :Agua +STR_LAI_WATER_DESCRIPTION_CANAL :Canal +STR_LAI_WATER_DESCRIPTION_LOCK :Esclusa +STR_LAI_WATER_DESCRIPTION_RIVER :Río +STR_LAI_WATER_DESCRIPTION_COAST_OR_RIVERBANK :Costa o rivera +STR_LAI_WATER_DESCRIPTION_SHIP_DEPOT :Astillero + +# Industries come directly from their industry names + +STR_LAI_TUNNEL_DESCRIPTION_RAILROAD :Túnel de ferrocarril +STR_LAI_TUNNEL_DESCRIPTION_ROAD :Túnel de carretera + +STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL :Puente colgante de ferrocarril (acero) +STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL :Puente de vigas de ferrocarril (acero) +STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL :Puente voladizo de ferrocarril (acero) +STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_CONCRETE :Puente colgante de ferrocarril (concreto reforzado) +STR_LAI_BRIDGE_DESCRIPTION_RAIL_WOODEN :Puente de ferrocarril (madera) +STR_LAI_BRIDGE_DESCRIPTION_RAIL_CONCRETE :Puente de ferrocarril (concreto) +STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL :Puente tubular de ferrocarril + +STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL :Puente colgante de carretera (acero) +STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL :Puente de vigas de carretera (acero) +STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL :Puente voladizo de carretera (acero) +STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_CONCRETE :Puente colgante de carretera (concreto reforzado) +STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN :Puente de carretera (madera) +STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE :Puente de carretera (concreto) +STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL :Puente tubular de carretera + +STR_LAI_BRIDGE_DESCRIPTION_AQUEDUCT :Acueducto + +STR_LAI_OBJECT_DESCRIPTION_TRANSMITTER :Torre de transmisión +STR_LAI_OBJECT_DESCRIPTION_LIGHTHOUSE :Faro +STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Sede de la empresa +STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propiedad de una empresa + +# About OpenTTD window +STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD +STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados +STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 El equipo de OpenTTD + +# Save/load game/scenario +STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar partida +STR_SAVELOAD_LOAD_CAPTION :{WHITE}Cargar partida +STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Guardar mapa +STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Cargar mapa +STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Cargar mapa de alturas +STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Guardar mapa de alturas +STR_SAVELOAD_HOME_BUTTON :{BLACK}Clic para ir a la carpeta de guardado predeterminada +STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} libres +STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Lista de unidades de almacenamiento, carpetas y partidas guardadas +STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Nombre elegido para la partida a guardar +STR_SAVELOAD_DELETE_BUTTON :{BLACK}Eliminar +STR_SAVELOAD_DELETE_TOOLTIP :{BLACK}Eliminar la partida guardada elegida +STR_SAVELOAD_SAVE_BUTTON :{BLACK}Guardar +STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Guardar la partida actual usando el nombre elegido +STR_SAVELOAD_LOAD_BUTTON :{BLACK}Cargar +STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Cargar la partida elegida +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Cargar el mapa de alturas elegido +STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalles de la partida +STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}No hay información disponible +STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} +STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} + +STR_SAVELOAD_OSKTITLE :{BLACK}Indicar un nombre para la partida a guardar + +# World generation +STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}Generación de mapa +STR_MAPGEN_MAPSIZE :{BLACK}Tamaño del mapa: +STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Elegir el tamaño del mapa en número de casillas. El número real de casillas disponibles en el mapa será ligeramente inferior +STR_MAPGEN_BY :{BLACK}× +STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Núm. de pueblos: +STR_MAPGEN_DATE :{BLACK}Fecha: +STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Núm. de industrias: +STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Altura máxima del mapa: +STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Aumentar la altura máxima de las montañas del mapa una unidad +STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Disminuir la altura máxima de las montañas del mapa una unidad +STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Nivel de nieve: +STR_MAPGEN_SNOW_LINE_UP :{BLACK}Mover el nivel de inicio de nieve hacia arriba +STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Mover el nivel de inicio de nieve hacia abajo +STR_MAPGEN_LAND_GENERATOR :{BLACK}Generador de terreno: +STR_MAPGEN_TREE_PLACER :{BLACK}Algoritmo de árboles: +STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo de terreno +STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Nivel del mar: +STR_MAPGEN_QUANTITY_OF_RIVERS :{BLACK}Ríos: +STR_MAPGEN_SMOOTHNESS :{BLACK}Suavidad: +STR_MAPGEN_VARIETY :{BLACK}Variedad: +STR_MAPGEN_GENERATE :{WHITE}Generar + +# Strings for map borders at game generation +STR_MAPGEN_BORDER_TYPE :{BLACK}Bordes del mapa: +STR_MAPGEN_NORTHWEST :{BLACK}Noroeste +STR_MAPGEN_NORTHEAST :{BLACK}Noreste +STR_MAPGEN_SOUTHEAST :{BLACK}Sureste +STR_MAPGEN_SOUTHWEST :{BLACK}Suroeste +STR_MAPGEN_BORDER_FREEFORM :{BLACK}Forma libre +STR_MAPGEN_BORDER_WATER :{BLACK}Agua +STR_MAPGEN_BORDER_RANDOM :{BLACK}Aleatorio +STR_MAPGEN_BORDER_RANDOMIZE :{BLACK}Aleatorio +STR_MAPGEN_BORDER_MANUAL :{BLACK}Manual + +STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Rotación del mapa de alturas: +STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nombre del mapa de alturas: +STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamaño: +STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM}×{NUM} + +STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Cambiar la altura máxima del mapa +STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Cambiar el nivel de inicio de nieve +STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Cambiar año de inicio + +# SE Map generation +STR_SE_MAPGEN_CAPTION :{WHITE}Tipo de mapa +STR_SE_MAPGEN_FLAT_WORLD :{WHITE}Terreno plano +STR_SE_MAPGEN_FLAT_WORLD_TOOLTIP :{BLACK}Generar un mapa plano +STR_SE_MAPGEN_RANDOM_LAND :{WHITE}Terreno aleatorio +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT :{BLACK}Altura terreno plano: +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_DOWN :{BLACK}Reducir la altura del terreno plano +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}Aumenta la altura del terreno plano + +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Cambiar la altura del terreno plano + +# Map generation progress +STR_GENERATION_WORLD :{WHITE}Generando mapa... +STR_GENERATION_ABORT :{BLACK}Cancelar +STR_GENERATION_ABORT_CAPTION :{WHITE}Cancelar generación de mapa +STR_GENERATION_ABORT_MESSAGE :{YELLOW}¿Cancelar realmente la generación del mapa? +STR_GENERATION_PROGRESS :{WHITE}{NUM}% completado +STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM}/{NUM} +STR_GENERATION_WORLD_GENERATION :{BLACK}Generación de mapa +STR_GENERATION_RIVER_GENERATION :{BLACK}Generación de ríos +STR_GENERATION_TREE_GENERATION :{BLACK}Generación de árboles +STR_GENERATION_OBJECT_GENERATION :{BLACK}Generación de objetos +STR_GENERATION_CLEARING_TILES :{BLACK}Generación de áreas irregulares y rocosas +STR_GENERATION_SETTINGUP_GAME :{BLACK}Configurando partida +STR_GENERATION_PREPARING_TILELOOP :{BLACK}Generando casillas +STR_GENERATION_PREPARING_SCRIPT :{BLACK}Ejecutando script +STR_GENERATION_PREPARING_GAME :{BLACK}Preparando partida + +# NewGRF settings +STR_NEWGRF_SETTINGS_CAPTION :{WHITE}Configuración de NewGRF +STR_NEWGRF_SETTINGS_INFO_TITLE :{WHITE}Información detallada de NewGRF +STR_NEWGRF_SETTINGS_ACTIVE_LIST :{WHITE}Archivos NewGRF activos +STR_NEWGRF_SETTINGS_INACTIVE_LIST :{WHITE}Archivos NewGRF inactivos +STR_NEWGRF_SETTINGS_SELECT_PRESET :{ORANGE}Seleccionar perfil: +STR_NEWGRF_FILTER_TITLE :{ORANGE}Filtrar palabras: +STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}Cargar perfil +STR_NEWGRF_SETTINGS_PRESET_SAVE :{BLACK}Guardar +STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP :{BLACK}Guardar lista actual como nuevo perfil +STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY :{BLACK}Indicar nombre de perfil +STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Eliminar +STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Eliminar el perfil elegido +STR_NEWGRF_SETTINGS_ADD :{BLACK}Añadir +STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Añadir el NewGRF seleccionado a la lista de archivos activos +STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Volver a cargar archivos +STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Volver a cargar la lista de archivos NewGRF disponibles +STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Quitar +STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Quitar el NewGRF elegido de la lista de archivos activos +STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Subir +STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mover el NewGRF elegido una posición arriba en la lista +STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Bajar +STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mover el NewGRF elegido una posición abajo en la lista +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualizar +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualizar los archivos NewGRF que lo requieran a la versión más reciente +STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Lista de los archivos NewGRF instalados + +STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Establecer parámetros +STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Mostrar parámetros +STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Cambiar paleta +STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Cambia la paleta del NewGRF elegido.{}Esto es necesario cuando los gráficos de un NewGRF se ven de color rosa durante el juego +STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Aplicar cambios + +STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Buscar en línea el contenido que haga falta +STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Revisar si el contenido que falta puede ser encontrado en línea + +STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Archivo: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versión: {SILVER}{NUM} +STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versión compatible: {SILVER}{NUM} +STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING} + +STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No hay información disponible +STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Archivo no encontrado +STR_NEWGRF_SETTINGS_DISABLED :{RED}Desactivado +STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}No compatible con esta versión de OpenTTD + +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Guardar perfil +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Lista de perfiles disponibles (elegir uno para copiar el nombre en el perfil inferior) +STR_SAVE_PRESET_TITLE :{BLACK}Indicar un nombre para el perfil +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Nombre del perfil a guardar +STR_SAVE_PRESET_CANCEL :{BLACK}Cancelar +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}No modificar el perfil +STR_SAVE_PRESET_SAVE :{BLACK}Guardar +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Guardar el perfil con el nombre elegido + +# NewGRF parameters window +STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Cambiar parámetros de NewGRF +STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Cerrar +STR_NEWGRF_PARAMETERS_RESET :{BLACK}Restablecer +STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}Restablecer todos los parámentros a sus valores predeterminados +STR_NEWGRF_PARAMETERS_DEFAULT_NAME :Parámetro {NUM} +STR_NEWGRF_PARAMETERS_SETTING :{STRING}: {ORANGE}{STRING} +STR_NEWGRF_PARAMETERS_NUM_PARAM :{LTBLUE}Número de parámetros: {ORANGE}{NUM} + +# NewGRF inspect window +STR_NEWGRF_INSPECT_CAPTION :{WHITE}Analizar: {STRING} +STR_NEWGRF_INSPECT_PARENT_BUTTON :{BLACK}Superior +STR_NEWGRF_INSPECT_PARENT_TOOLTIP :{BLACK}Inspeccionar objeto del entorno superior + +STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT :{STRING} en {HEX} +STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT :Objeto +STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Tipo de ferrocarril + +STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parámetro de variable NewGRF 60+x (hexadecimal) + +# Sprite aligner window +STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alinear sprite {COMMA} ({STRING}) +STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Siguiente sprite +STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir al siguiente sprite (ignorando pseudosprites, sprites recoloreados y sprites de fuente) y pasar del último al primer sprite +STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir a sprite +STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Ir al sprite indicado. Si el sprite no es un sprite normal, ir al siguiente sprite normal +STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite anterior +STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir al sprite anterior (ignorando pseudosprites, sprites recoloreados y sprites de fuente) y pasar del primer al último sprite +STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representación del sprite elegido. Se ignora la alineación al ser dibujado +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover el sprite cambiando los valores X y Y. Ctrl+Clic mueve el sprite ocho unidades de una sola vez +STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Restaurar coordenadas relativas +STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Restaurar las coordenadas relativas +STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Coordenada X: {NUM}, Coordenada Y: {NUM} (absoluta) +STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Coordenada X: {NUM}, Coordenada Y: {NUM} (relativa) +STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Elegir sprite +STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Elegir un sprite de cualquier parte de la pantalla + +STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}Ir a sprite + +# NewGRF (self) generated warnings/errors +STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING} +STR_NEWGRF_ERROR_MSG_WARNING :{RED}Atención: {SILVER}{STRING} +STR_NEWGRF_ERROR_MSG_ERROR :{RED}Error: {SILVER}{STRING} +STR_NEWGRF_ERROR_MSG_FATAL :{RED}Error fatal: {SILVER}{STRING} +STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Ocurrió un error fatal de NewGRF:{}{STRING} +STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} no funcionará con la con la versión de TTDPatch reportada por OpenTTD +STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} es la para la versión {STRING} de TTD +STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} está diseñado para usarse con {STRING} +STR_NEWGRF_ERROR_INVALID_PARAMETER :Parámetro no válido para {1:STRING}: párametro {STRING} ({NUM}) +STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING} debe cargarse antes de {STRING} +STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING} debe cargarse después de {STRING} +STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} requiere OpenTTD versión {STRING} o superior +STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :El archivo GRF fue diseñado para ser traducido +STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Demasiados NewGRFs cargados +STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Cargar {1:STRING} como NewGRF estático con {STRING} puede causar desincronizaciones +STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Sprite inesperado (sprite {3:NUM}) +STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Propiedad de Acción 0 desconocida {4:HEX} (sprite {3:NUM}) +STR_NEWGRF_ERROR_INVALID_ID :Intento de usar una ID no válida (sprite {3:NUM}) +STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contiene un sprite con errores. Todos los sprites con errores se muestran como un símbolo de interrogación rojo (?) +STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contiene múltiples entradas de Acción 8 (sprite {3:NUM}) +STR_NEWGRF_ERROR_READ_BOUNDS :La lectura excedió el límite de pseudo-sprite (sprite {3:NUM}) +STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}A los gráficos base actualmente en uso les faltan algunos sprites.{}Los gráficos base deben ser actualizados +STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}A los gráficos base actualmente en uso les faltan algunos sprites.{}Los gráficos base deben ser actualizados.{}Dado que esta es una {YELLOW}versión de desarrollo de OpenTTD{WHITE}, es posible que también se requiera una {YELLOW}versión de desarrollo de los gráficos base{WHITE} +STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF solicitados no disponibles (sprite {3:NUM}) +STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} fue desactivado por {STRING} +STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de colocación de sprites no válido o desconocido (sprite {3:NUM}) + +# NewGRF related 'general' warnings +STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}¡Precaución! +STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Se van a modificar los NewGRF de una partida ya comenzada. Esto puede provocar un error fatal en OpenTTD o corromper la partida.{}No se deben crear reportes de errores por problemas causados por esta acción.{}¿Continuar de todos modos? + +STR_NEWGRF_DUPLICATE_GRFID :{WHITE}El archivo no puede añadirse: GRF ID duplicado +STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Archivo no encontrado (GRF compatible cargado) +STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir archivo: se alcanzó el máximo de NewGRFs permitidos + +STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargado para archivos que faltan +STR_NEWGRF_DISABLED_WARNING :{WHITE}El o los archivos GRF no encontrados han sido desactivados +STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Archivo(s) GRF no encontrados +STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Reanudar la partida puede provocar un error fatal en OpenTTD. No se deben crear reportes para errores fatales posteriores.{}¿Reaunudar la paritda de todos modos? + +# NewGRF status +STR_NEWGRF_LIST_NONE :Ninguno +STR_NEWGRF_LIST_ALL_FOUND :Todos los archivos presentes +STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Archivos compatibles encontrados +STR_NEWGRF_LIST_MISSING :{RED}Archivos que faltan + +# NewGRF 'it's broken' warnings +STR_NEWGRF_BROKEN :{WHITE}Es posible que el funcionamiento del NewGRF '{0:STRING}' cause desincronizaciones o errores +STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Cambió el estado 'vagón con motor' para '{1:ENGINE}' cuando no estaba dentro de un depósito +STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}cambió la longitud del vehículo para '{1:ENGINE}' cuando no estaba dentro de un depósito +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Cambió la capacidad del vehículo para '{1:ENGINE}' cuando no estaba dentro de un depósito o mientras no se estaba reequipando +STR_BROKEN_VEHICLE_LENGTH :{WHITE}Tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud no válida. Puede ser debido a problemas con los NewGRF. El juego puede fallar + +STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' da información incorrecta +STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La información de cargamanto o reequipamiento para '{1:ENGINE}' difiere de la lista de compra después de la construcción. Esto puede causar que la renovación y el reemplazo automático no haga el reequipamiento correcta +STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ha causado un bucle sin fin en la llamada de producción +STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}La llamada {1:HEX} devolvió un resultado desconocido o no válido {2:HEX} + +# 'User removed essential NewGRFs'-placeholders for stuff without specs +STR_NEWGRF_INVALID_CARGO : +STR_NEWGRF_INVALID_CARGO_ABBREV :?? +STR_NEWGRF_INVALID_CARGO_QUANTITY :{COMMA} de +STR_NEWGRF_INVALID_ENGINE : +STR_NEWGRF_INVALID_INDUSTRYTYPE : + +# Placeholders for other invalid stuff, e.g. vehicles that have gone (Game Script). +STR_INVALID_VEHICLE : + +# NewGRF scanning window +STR_NEWGRF_SCAN_CAPTION :{WHITE}Analizando archivos NewGRF +STR_NEWGRF_SCAN_MESSAGE :{BLACK}Analizando archivos NewGRFs. Dependiendo de la cantidad esto puede tardar un poco... +STR_NEWGRF_SCAN_STATUS :{BLACK}{NUM} NewGRF{P "" s} analizado{P "" s} de un total aproximado de {NUM} NewGRF{P "" s} +STR_NEWGRF_SCAN_ARCHIVES :Analizando archivos + +# Sign list window +STR_SIGN_LIST_CAPTION :{WHITE}Lista de carteles: {COMMA} cartel{P "" es} +STR_SIGN_LIST_MATCH_CASE :{BLACK}Distinguir mayúsculas +STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}Distinguir entre mayúsculas y minúsculas al filtrar la lista de carteles + +# Sign window +STR_EDIT_SIGN_CAPTION :{WHITE}Editar texto del cartel +STR_EDIT_SIGN_NEXT_SIGN_TOOLTIP :{BLACK}Ir al siguiente cartel +STR_EDIT_SIGN_PREVIOUS_SIGN_TOOLTIP :{BLACK}Ir al cartel anterior + +STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Indicar un nombre para el cartel + +# Town directory window +STR_TOWN_DIRECTORY_CAPTION :{WHITE}Pueblos +STR_TOWN_DIRECTORY_NONE :{ORANGE}- Ninguno - +STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) +STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Nombres de pueblos. Clic en un nombre para centrar la vista principal en el pueblo. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_TOWN_POPULATION :{BLACK}Población mundial: {COMMA} + +# Town view window +STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN} +STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (ciudad) +STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Habitantes: {ORANGE}{COMMA}{BLACK} Casas: {ORANGE}{COMMA} +STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Pasajeros mes pasado: {ORANGE}{COMMA}{BLACK} Máx.: {ORANGE}{COMMA} +STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Correo mes pasado: {ORANGE}{COMMA}{BLACK} Máx.: {ORANGE}{COMMA} +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Cargamento necesario para crecimiento: +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} requeridos +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} requerido en invierno +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} entregado +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY}/{CARGO_LONG}{RED} (todavía requerido) +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY}/{CARGO_LONG}{GREEN} (entregado) +STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}El pueblo crece cada {ORANGE}{COMMA}{BLACK}{NBSP}día{P "" s} +STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}El pueblo crece cada {ORANGE}{COMMA}{BLACK}{NBSP}días{P "" s} (obra negra) +STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}El pueblo {RED}no{BLACK} está creciendo +STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Nivel de ruido en el pueblo: {ORANGE}{COMMA}{BLACK} Máx.: {ORANGE}{COMMA} +STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Centrar vista sobre el pueblo. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Ayuntamiento +STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Mostrar información sobre el ayuntamiento local +STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}Cambiar nombre del pueblo + +STR_TOWN_VIEW_EXPAND_BUTTON :{BLACK}Aumentar +STR_TOWN_VIEW_EXPAND_TOOLTIP :{BLACK}Aumentar la población del pueblo +STR_TOWN_VIEW_DELETE_BUTTON :{BLACK}Eliminar +STR_TOWN_VIEW_DELETE_TOOLTIP :{BLACK}Eliminar este pueblo completamente + +STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Cambiar nombre + +# Town local authority window +STR_LOCAL_AUTHORITY_CAPTION :Ayuntamiento de {WHITE}{TOWN} +STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Evaluación de empresas de transporte: +STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} +STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Acciones disponibles: +STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Lista de acciones que pueden llevarse a cabo en este pueblo. Clic en un elemento de la lista para obtener más detalles +STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Realizar +STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Llevar a cabo la acción elegida en la lista + +STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Pequeña campaña publicitaria +STR_LOCAL_AUTHORITY_ACTION_MEDIUM_ADVERTISING_CAMPAIGN :Mediana campaña publicitaria +STR_LOCAL_AUTHORITY_ACTION_LARGE_ADVERTISING_CAMPAIGN :Gran campaña publicitaria +STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Pagar la reconstrucción de las carreteras locales +STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Poner una estatua al dueño de la empresa +STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Pagar la construcción de nuevos edificios +STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar los derechos exclusivos de transporte +STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar al ayuntamiento + +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y cargamento a tus servicios de transporte.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local mediana para atraer más pasajeros y cargamento a tus servicios de transporte.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar una gran campaña publicitaria local para atraer más pasajeros y cargamento a tus servicios de transporte.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Pagar la reconstrucción de las carreteras locales. Provoca considerables complicaciones al tráfico durante 6 meses.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construir una estatua en honor a tu empresa.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Pagar la construcción de nuevos edificios comerciales en el pueblo.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Comprar la exclusividad de los derechos de servicio de transporte en este pueblo durante un año. El ayuntamiento solo permitirá el uso de las estaciones pertenecientes a tu empresa.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Sobornar al ayuntamiento para aumentar mejorar tu evaluación, con el riesgo de una severa penalización si llegas a ser descubierto.{}Costo: {CURRENCY_LONG} + +# Goal window +STR_GOALS_CAPTION :{WHITE}Metas de {COMPANY} +STR_GOALS_SPECTATOR_CAPTION :{WHITE}Metas globales +STR_GOALS_GLOBAL_TITLE :{BLACK}Metas globales: +STR_GOALS_TEXT :{ORANGE}{STRING} +STR_GOALS_NONE :{ORANGE}- Ninguna - +STR_GOALS_SPECTATOR_NONE :{ORANGE}- No aplica - +STR_GOALS_PROGRESS :{ORANGE}{STRING} +STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} +STR_GOALS_COMPANY_TITLE :{BLACK}Metas de la empresa +STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clic en una meta para centrar la vista principal en la casilla, industria o pueblo. Ctrl+Clic abre una nueva ventana de vista en dicha ubicación + +# Goal question window +STR_GOAL_QUESTION_CAPTION_QUESTION :Pregunta +STR_GOAL_QUESTION_CAPTION_INFORMATION :Información +STR_GOAL_QUESTION_CAPTION_WARNING :Advertencia +STR_GOAL_QUESTION_CAPTION_ERROR :Error + +############ Start of Goal Question button list +STR_GOAL_QUESTION_BUTTON_CANCEL :Cancelar +STR_GOAL_QUESTION_BUTTON_OK :Aceptar +STR_GOAL_QUESTION_BUTTON_NO :No +STR_GOAL_QUESTION_BUTTON_YES :Sí +STR_GOAL_QUESTION_BUTTON_DECLINE :Rechazar +STR_GOAL_QUESTION_BUTTON_ACCEPT :Aceptar +STR_GOAL_QUESTION_BUTTON_IGNORE :Ignorar +STR_GOAL_QUESTION_BUTTON_RETRY :Reintentar +STR_GOAL_QUESTION_BUTTON_PREVIOUS :Anterior +STR_GOAL_QUESTION_BUTTON_NEXT :Siguiente +STR_GOAL_QUESTION_BUTTON_STOP :Detener +STR_GOAL_QUESTION_BUTTON_START :Comenzar +STR_GOAL_QUESTION_BUTTON_GO :Ir +STR_GOAL_QUESTION_BUTTON_CONTINUE :Continuar +STR_GOAL_QUESTION_BUTTON_RESTART :Reiniciar +STR_GOAL_QUESTION_BUTTON_POSTPONE :Posponer +STR_GOAL_QUESTION_BUTTON_SURRENDER :Rendirse +STR_GOAL_QUESTION_BUTTON_CLOSE :Cerrar +############ End of Goal Question button list + +# Subsidies window +STR_SUBSIDIES_CAPTION :{WHITE}Subsidios +STR_SUBSIDIES_OFFERED_TITLE :{BLACK}Se ofrecen subsidios al servicio que lleve: +STR_SUBSIDIES_OFFERED_FROM_TO :{ORANGE}{STRING} desde {STRING} a {STRING}{YELLOW} (antes de {DATE_SHORT}) +STR_SUBSIDIES_NONE :{ORANGE}- Ninguno - +STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}Servicios con subsidio: +STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING} desde {STRING} a {STRING}{YELLOW} ({COMPANY}{YELLOW}, hasta {DATE_SHORT}) +STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clic en un servicio para centrar la vista principal en esta industria o pueblo. Ctrl+Clic abre una ventana de vista en dicha ubicación + +# Story book window +STR_STORY_BOOK_CAPTION :{WHITE}Historial de {COMPANY} +STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Historial global +STR_STORY_BOOK_TITLE :{YELLOW}{STRING} +STR_STORY_BOOK_GENERIC_PAGE_ITEM :Página {NUM} +STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Permitir ir a una página específica al elegirla en esta lista desplegable +STR_STORY_BOOK_PREV_PAGE :{BLACK}Anterior +STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}Ir a la página anterior +STR_STORY_BOOK_NEXT_PAGE :{BLACK}Siguiente +STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Ir a la siguiente página +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Referencia a objetivos no válida + +# Station list window +STR_STATION_LIST_TOOLTIP :{BLACK}Nombres de estación: Clic en un nombre para centrar la vista principal en la estación. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE :{BLACK}Mantener pulsado Ctrl para seleccionar más de un elemento +STR_STATION_LIST_CAPTION :{WHITE}{COMPANY}: {COMMA} estaci{P ón ones} +STR_STATION_LIST_STATION :{YELLOW}{STATION} {STATION_FEATURES} +STR_STATION_LIST_WAYPOINT :{YELLOW}{WAYPOINT} +STR_STATION_LIST_NONE :{YELLOW}- Ninguna - +STR_STATION_LIST_SELECT_ALL_FACILITIES :{BLACK}Elegir todos los tipos de estación +STR_STATION_LIST_SELECT_ALL_TYPES :{BLACK}Elegir todos los tipos de cargamento (incluidos los que no estén en espera) +STR_STATION_LIST_NO_WAITING_CARGO :{BLACK}Ningún tipo de cargamento está esperando + +# Station view window +STR_STATION_VIEW_CAPTION :{WHITE}{STATION} {STATION_FEATURES} +STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_LONG} +STR_STATION_VIEW_EN_ROUTE_FROM :{YELLOW}({CARGO_SHORT} en camino desde {STATION}) +STR_STATION_VIEW_RESERVED :{YELLOW}({CARGO_SHORT} reservado para cargar) + +STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Recibe +STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostrar lista de cargamento recibido +STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Recibe: {WHITE}{CARGO_LIST} + +STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación tiene los derechos exclusivos de transporte en este pueblo. +STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} compró los derechos exclusivos de transporte en este pueblo. + +STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Evaluación +STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Ver evaluación de la estación +STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Suministro mensual y evaluación local: +STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA}/{STRING} ({COMMA}%) + +STR_STATION_VIEW_GROUP :{BLACK}Agrupar por +STR_STATION_VIEW_WAITING_STATION :Estación: Esperando +STR_STATION_VIEW_WAITING_AMOUNT :Cantidad: Esperando +STR_STATION_VIEW_PLANNED_STATION :Estación: Planeado +STR_STATION_VIEW_PLANNED_AMOUNT :Cantidad: Planeado +STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} desde {STATION} +STR_STATION_VIEW_VIA :{YELLOW}{CARGO_SHORT} por {STATION} +STR_STATION_VIEW_TO :{YELLOW}{CARGO_SHORT} a {STATION} +STR_STATION_VIEW_FROM_ANY :{RED}{CARGO_SHORT} desde estación desconocida +STR_STATION_VIEW_TO_ANY :{RED}{CARGO_SHORT} a cualquier estación +STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHORT} por cualquier estación +STR_STATION_VIEW_FROM_HERE :{GREEN}{CARGO_SHORT} con salida desde esta estación +STR_STATION_VIEW_VIA_HERE :{GREEN}{CARGO_SHORT} se detendrá en esta estación +STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} a esta estación +STR_STATION_VIEW_NONSTOP :{YELLOW}{CARGO_SHORT} sin paradas + +STR_STATION_VIEW_GROUP_S_V_D :Origen-Ruta-Destino +STR_STATION_VIEW_GROUP_S_D_V :Origen-Destino-Ruta +STR_STATION_VIEW_GROUP_V_S_D :Ruta-Origen-Destino +STR_STATION_VIEW_GROUP_V_D_S :Ruta-Destino-Origen +STR_STATION_VIEW_GROUP_D_S_V :Destino-Origen-Ruta +STR_STATION_VIEW_GROUP_D_V_S :Destino-Ruta-Origen + +############ range for rating starts +STR_CARGO_RATING_APPALLING :Espantosa +STR_CARGO_RATING_VERY_POOR :Precaria +STR_CARGO_RATING_POOR :Mala +STR_CARGO_RATING_MEDIOCRE :Mediocre +STR_CARGO_RATING_GOOD :Buena +STR_CARGO_RATING_VERY_GOOD :Muy buena +STR_CARGO_RATING_EXCELLENT :Excelente +STR_CARGO_RATING_OUTSTANDING :Excepcional +############ range for rating ends + +STR_STATION_VIEW_CENTER_TOOLTIP :{BLACK}Centrar vista en la ubicación de la estación. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_STATION_VIEW_RENAME_TOOLTIP :{BLACK}Cambiar nombre de la estación + +STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}Mostrar aquellos trenes que tienen esta estación en su itinerario +STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :{BLACK}Mostrar aquellos vehículos de carretera que tienen esta parada en su itinerario +STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}Mostrar aquellas aeronaves que tienen este aeropuerto en su horario +STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}Mostrar aquellos barcos que tienen este muelle en su horario + +STR_STATION_VIEW_RENAME_STATION_CAPTION :Cambiar nombre de estación + +STR_STATION_VIEW_CLOSE_AIRPORT :{BLACK}Cerrar aeropuerto +STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}No permitir que aterricen aviones en este aeropuerto + +# Waypoint/buoy view window +STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT} +STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centrar vista en ubicación del puesto guía. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Cambiar nombre de puesto guía +STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centrar vista en ubicación de la boya. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Cambiar nombre de boya + +STR_EDIT_WAYPOINT_NAME :{WHITE}Cambiar nombre de puesto guía + +# Finances window +STR_FINANCES_CAPTION :{WHITE}Finanzas de {COMPANY} {BLACK}{COMPANY_NUM} +STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}Gastos e ingresos +STR_FINANCES_YEAR :{WHITE}{NUM} +STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}Construcción +STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Nuevos vehículos +STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Gastos de operación de trenes +STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Gastos de operación de vehículos de carretera +STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Gastos de operación de aeronaves +STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Gastos de operación de barcos +STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}Mantenimiento de propiedades +STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Ingresos de trenes +STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Ingresos de vehículos de carretera +STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}Ingresos de aeronaves +STR_FINANCES_SECTION_SHIP_INCOME :{GOLD}Ingresos de barcos +STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD}Intereses por préstamo +STR_FINANCES_SECTION_OTHER :{GOLD}Otros +STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG} +STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG} +STR_FINANCES_TOTAL_CAPTION :{WHITE}Total: +STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Saldo en banco +STR_FINANCES_LOAN_TITLE :{WHITE}Préstamo +STR_FINANCES_MAX_LOAN :{WHITE}Préstamo máximo: {BLACK}{CURRENCY_LONG} +STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} +STR_FINANCES_BORROW_BUTTON :{BLACK}Pedir préstamo {CURRENCY_LONG} +STR_FINANCES_BORROW_TOOLTIP :{BLACK}Incrementar préstamo. Ctrl+Clic solicita todo el préstamo posible +STR_FINANCES_REPAY_BUTTON :{BLACK}Pagar préstamo {CURRENCY_LONG} +STR_FINANCES_REPAY_TOOLTIP :{BLACK}Pagar parte del préstamo. Ctrl+Clic paga todo el préstamo posible +STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}Infraestructura + +# Company view +STR_COMPANY_VIEW_CAPTION :{WHITE}{COMPANY} {BLACK}{COMPANY_NUM} +STR_COMPANY_VIEW_PRESIDENT_MANAGER_TITLE :{WHITE}{PRESIDENT_NAME}{}{GOLD}(Presidente) + +STR_COMPANY_VIEW_INAUGURATED_TITLE :{GOLD}Inaugurada: {WHITE}{NUM} +STR_COMPANY_VIEW_COLOUR_SCHEME_TITLE :{GOLD}Combinación de olor: +STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Vehículos: +STR_COMPANY_VIEW_TRAINS :{WHITE}{COMMA} tren{P "" es} +STR_COMPANY_VIEW_ROAD_VEHICLES :{WHITE}{COMMA} vehículo{P "" s} de carretera +STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} aeronave{P "" s} +STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} barco{P "" s} +STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ninguno +STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor de la empresa: {WHITE}{CURRENCY_LONG} +STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propiedad de {COMPANY}) +STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestructura: +STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} tramo{P "" s} de vías férreas +STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} tramo{P "" s} de carretera +STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} casilla{P "" s} de agua +STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} casilla{P "" s} de estación +STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} aeropuerto{P "" s} +STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Ninguna + +STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}Construir sede +STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Construir edificio de las oficinas centrales de la empresa +STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}Ver sede +STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Ver edificio de las oficinas centrales de la empresa +STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Reubicar sede +STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Reubicar la sede de la empresa a cualquier otro lugar con el costo del 1% del valor total de la empresa. Mayús+Clic muestra una estimación del precio sin mover la sede +STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Detalles +STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Ver informe detallado de infraestructura + +STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nueva cara +STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Elegir nueva cara para el presidente +STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Diseño de color +STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Cambiar el diseño de colores corportativos de la empresa +STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Nombre de la empresa +STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambiar el nombre de la empresa +STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nombre del presidente +STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Cambiar el nombre del presidente + +STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Comprar un 25% de las acciones +STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vender 25% de las acciones +STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Comprar 25% de las acciones de esta empresa. Mayús+Clic muestra una estimación del precio sin comprar ninguna acción +STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vender 25% de las acciones de esta empresa. Mayús+Clic muestra una estimación del beneficio sin vender ninguna acción + +STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nombre de la empresa +STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nombre del presidente + +STR_BUY_COMPANY_MESSAGE :{WHITE}Buscamos una empresa de transportes que quiera adquirir la nuestra{}{}¿Comprar {COMPANY} por {CURRENCY_LONG}? + +# Company infrastructure window +STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infraestructura de {COMPANY} +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_ROAD :{WHITE}Carretera +STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}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: +STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Casillas de estación +STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS :{WHITE}Aeropuertos +STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENCY_LONG}/año + +# Industry directory +STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrias +STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ninguna - +STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}){YELLOW} ({COMMA}% transportado) +STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}, {CARGO_LONG}{STRING}){YELLOW} ({COMMA}%, {COMMA}% transportado) +STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} +STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Nombre de industria: Clic en un nombre para centrar la vista principal en la industria. Ctrl+Clic abre una ventana de vista en dicha ubicación + +# Industry view +STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} +STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producción en el mes anterior: +STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportado) +STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrar la vista sobre la industria. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivel de producción: {YELLOW}{COMMA}% +STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}¡La industria ha anunciado su cierre inminente! + +############ range for requires starts +STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING} +STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} +############ range for requires ends + +############ range for produces starts +STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargamento esperando a ser procesado: +STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} +STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} +############ range for produces ends + +STR_CONFIG_GAME_PRODUCTION :{WHITE}Cambiar producción (múltiplo de 8, máximo 2040) +STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Cambiar nivel de producción (porcentaje, máximo 800%) + +# Vehicle lists +STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING}: {COMMA} tren{P "" es} +STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING}: {COMMA} vehículo{P "" s} de carretera +STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING}: {COMMA} barco{P "" s} +STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING}: {COMMA} aeronave{P "" s} + +STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Trenes: Clic en un tren para más información +STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehículos de carretera: Clic en un vehículo para más información +STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Barcos: Clic en un barco para más información +STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Aeronave: Clic en una aeronave para más información + +STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Utilidad este año: {CURRENCY_LONG} (año pasado: {CURRENCY_LONG}) + +STR_VEHICLE_LIST_AVAILABLE_TRAINS :Trenes disponibles +STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Vehículos de carretera disponibles +STR_VEHICLE_LIST_AVAILABLE_SHIPS :Barcos disponibles +STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Aeronaves disponibles +STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}Ver la lista de modelos disponibles para este tipo de vehículo + +STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Administrar lista +STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Enviar instrucciones a todos los vehículos de la lista +STR_VEHICLE_LIST_REPLACE_VEHICLES :Reemplazar vehículos +STR_VEHICLE_LIST_SEND_FOR_SERVICING :Enviar a mantenimiento + +STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Enviar a depósito +STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Enviar a depósito +STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Enviar a astillero +STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Enviar al hangar + +STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Clic para detener todos los vehículos de la lista +STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Clic para poner en marcha todos los vehículos de la lista + +STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}Órdenes compartidas por {COMMA} vehículo{P "" s} + +# Group window +STR_GROUP_ALL_TRAINS :Todos los trenes +STR_GROUP_ALL_ROAD_VEHICLES :Todos los vehículos de carretera +STR_GROUP_ALL_SHIPS :Todos los barcos +STR_GROUP_ALL_AIRCRAFTS :Todas las aeronaves + +STR_GROUP_DEFAULT_TRAINS :Trenes sin agrupar +STR_GROUP_DEFAULT_ROAD_VEHICLES :Vehículos de carretera sin agrupar +STR_GROUP_DEFAULT_SHIPS :Barcos sin agrupar +STR_GROUP_DEFAULT_AIRCRAFTS :Aeronaves sin agrupar + +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupos: Clic en un grupo para ver los vehículos incluidos. Arrastrar y soltar para reorganizar los grupos. +STR_GROUP_CREATE_TOOLTIP :{BLACK}Clic para crear un grupo +STR_GROUP_DELETE_TOOLTIP :{BLACK}Eliminar el grupo seleccionado +STR_GROUP_RENAME_TOOLTIP :{BLACK}Cambiar nombre del grupo seleccionado +STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clic para evitar que los vehículos en este grupo se reemplacen automáticamente. + +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Eliminar grupo +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}¿Eliminar este grupo y todos sus subgrupos? + +STR_GROUP_ADD_SHARED_VEHICLE :Añadir vehículos con órdenes compartidas +STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos los vehículos + +STR_GROUP_RENAME_CAPTION :{BLACK}Cambiar nombre del grupo + +# Build vehicle window +STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos trenes +STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuevos trenes eléctricos +STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nuevos monorrieles +STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nuevos trenes maglev + +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nuevos trenes +STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nuevos vehículos de carretera +STR_BUY_VEHICLE_SHIP_CAPTION :Nuevos barcos +STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nuevas aeronaves + +STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Costo: {GOLD}{CURRENCY_LONG}{BLACK} Peso: {GOLD}{WEIGHT_SHORT} +STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Velocidad: {GOLD}{VELOCITY}{BLACK} Potencia: {GOLD}{POWER} +STR_PURCHASE_INFO_SPEED :{BLACK}Velocidad: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}Velocidad en océano: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_SPEED_CANAL :{BLACK}Velocidad en canales y ríos: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_RUNNINGCOST :{BLACK}Costo de operación: {GOLD}{CURRENCY_LONG}/año +STR_PURCHASE_INFO_CAPACITY :{BLACK}Capacidad: {GOLD}{CARGO_LONG} {STRING} +STR_PURCHASE_INFO_REFITTABLE :(reacondicionable) +STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Diseñado: {GOLD}{NUM}{BLACK} Duración: {GOLD}{COMMA} año{P "" s} +STR_PURCHASE_INFO_RELIABILITY :{BLACK}Máx. fiabilidad: {GOLD}{COMMA}% +STR_PURCHASE_INFO_COST :{BLACK}Costo: {GOLD}{CURRENCY_LONG} +STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Peso: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT}) +STR_PURCHASE_INFO_COST_SPEED :{BLACK}Costo: {GOLD}{CURRENCY_LONG}{BLACK} Velocidad: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacidad: {GOLD}{CARGO_LONG}, {CARGO_LONG} +STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagones con motor: {GOLD}+{POWER}{BLACK} Peso: {GOLD}+{WEIGHT_SHORT} +STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Reequipamiento: {GOLD}{STRING} +STR_PURCHASE_INFO_ALL_TYPES :Todo tipo de carga +STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} +STR_PURCHASE_INFO_MAX_TE :{BLACK}Máx. fuerza de tracción: {GOLD}{FORCE} +STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas + +STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección trenes. Clic en un tren para más información. Ctrl+Clic para mostrar u ocultar el tipo de tren +STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera. Clic en un vehículo para más información. Ctrl+Clic para mostrar u ocultar el tipo del vehículo +STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Lista de selección de barcos. Clic en un barco para más información. Ctrl+Clic para mostrar u ocultar el tipo de barco +STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Lista de selección de aeronaves. Clic en un aeronave para más información. Ctrl+Clic para mostrar u ocultar el tipo de aeronave + +STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Comprar +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Comprar +STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Comprar +STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Comprar + +STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el tren elegido. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el vehículo de carretera elegido. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el barco elegido. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar la aeronave elegida. Mayús+Clic muestra una estimación del precio sin realizar la compra + +STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Cambiar nombre +STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Cambiar nombre +STR_BUY_VEHICLE_SHIP_RENAME_BUTTON :{BLACK}Cambiar nombre +STR_BUY_VEHICLE_AIRCRAFT_RENAME_BUTTON :{BLACK}Cambiar nombre + +STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Cambiar el nombre a este tipo de tren +STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Cambiar el nombre a este tipo de vehículo +STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Cambiar el nombre a este tipo de barco +STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Cambiar el nombre a este tipo de aeronave + +STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar +STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar +STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar +STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar + +STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar +STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar +STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar +STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar + +STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Mostrar u ocultar este tipo de tren +STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Mostrar u ocultar este tipo de vehículo de carretera +STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Mostrar u ocultar este tipo de barco +STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Mostrar u ocultar este tipo de aeronave + +STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Cambiar el nombre del tren +STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Cambiar el nombre del vehículo de carretera +STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}Cambiar el nombre del barco +STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Cambiar el nombre de la aeronave + +# Depot window +STR_DEPOT_CAPTION :{WHITE}{DEPOT} + +STR_DEPOT_RENAME_TOOLTIP :{BLACK}Cambiar nombre del depósito +STR_DEPOT_RENAME_DEPOT_CAPTION :Cambiar nombre del depósito + +STR_DEPOT_NO_ENGINE :{BLACK}- +STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING} +STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}{NUM} vehículo{P "" s}{STRING} +STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT}) + +STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}Trenes: arrastrar vehículos de ferrocarril con Clic izquierdo para añadirlos o quitarlos del tren. Clic derecho para más información. Mantener pulsado Ctrl para usar estos comandos con el resto del tren +STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vehículos de carretera: Clic derecho para más información +STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Barcos: Clic derecho en barco para más información +STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Aeronaves: Clic derecho en la aeronave para más información + +STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}Arrastrar aquí un vehículo para venderlo +STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}Arrastrar aquí el vehículo de carretera para venderlo +STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}Arrastrar aquí el barco para venderlo +STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}Arrastrar aquí la aeronave para venderla + +STR_DEPOT_DRAG_WHOLE_TRAIN_TO_SELL_TOOLTIP :{BLACK}Arrastrar aquí la locomotora para vender todo el tren + +STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TOOLTIP :{BLACK}Vender todos los trenes del depósito +STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :{BLACK}Vender todos los vehículos de carretera del depósito +STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}Vender todos los barcos del astillero +STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}Vender todas las aeronaves del hangar + +STR_DEPOT_AUTOREPLACE_TRAIN_TOOLTIP :{BLACK}Reemplazar automáticamente todos los trenes en el depósito +STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :{BLACK}Reemplazar automáticamente todos los vehículos de carretera en el depósito +STR_DEPOT_AUTOREPLACE_SHIP_TOOLTIP :{BLACK}Reemplazar automáticamente todos los barcos en el astillero +STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}Reemplaza automáticamente todas las aeronaves en el hangar + +STR_DEPOT_TRAIN_NEW_VEHICLES_BUTTON :{BLACK}Nuevo tren +STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_BUTTON :{BLACK}Nuevo vehículo +STR_DEPOT_SHIP_NEW_VEHICLES_BUTTON :{BLACK}Nuevo barco +STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}Nueva aeronave + +STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}Comprar nuevo tren +STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Comprar nuevo vehículo de carretera +STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Comprar nuevo barco +STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Comprar nueva aeronave + +STR_DEPOT_CLONE_TRAIN :{BLACK}Clonar +STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Clonar +STR_DEPOT_CLONE_SHIP :{BLACK}Clonar +STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Clonar + +STR_DEPOT_CLONE_TRAIN_DEPOT_INFO :{BLACK}Esto comprará una copia idéntica del tren, incluyendo todos sus vagones y carros. Clic en este botón y después en el tren a copiar. Ctrl+Clic para compartir las órdenes. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Esto comprará una copia idéntica del vehículo de carretera. Clic en este botón y después en el vehículo a copiar. Ctrl+Clic para compartir las órdenes. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_DEPOT_CLONE_SHIP_DEPOT_INFO :{BLACK}Esto comprará una copia idéntica del barco. Clic en este botón y después en el barco a copiar. Ctrl+Clic para compartir las órdenes. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}Esto comprará una copia idéntica de la aeronave. Clic en este botón y después en la aeronave a copiar. Ctrl+Clic para compartir las órdenes. Mayús+Clic muestra una estimación del precio sin realizar la compra + +STR_DEPOT_TRAIN_LOCATION_TOOLTIP :{BLACK}Centrar vista en la ubicación del depósito de trenes. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrar vista en la ubicación del depósito de vehículos. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}Centrar vista en la ubicación del astillero. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Centrar vista en la ubicación del hangar. Ctrl+Clic abre una ventana de vista en dicha ubicación + +STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}Listar todos los trenes que tengan alguna orden de ir a este depósito +STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Listar todos los vehículos que tengan alguna orden de ir a este depósito +STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}Listar todos los barcos que tengan alguna orden de ir a este astillero +STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Listar todas las aeronaves que tengan alguna orden de ir a este hangar + +STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Clic para detener todos los trenes que hay en el depósito +STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Clic para detener todos los vehículos que hay en el depósito +STR_DEPOT_MASS_STOP_DEPOT_SHIP_TOOLTIP :{BLACK}Clic para detener todos los barcos que hay en el astillero +STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Clic para detener todas las aeronaves que hay en el hangar + +STR_DEPOT_MASS_START_DEPOT_TRAIN_TOOLTIP :{BLACK}Clic para poner en marcha todos los trenes que hay en el depósito +STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Clic para poner en marcha todos los vehículos que hay en el depósito +STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Clic para poner en marcha todos los barcos que hay en el astillero +STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Clic para despegar todas las aeronaves que hay en el hangar + +STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Se venderán todos los vehículos que hay en este depósito. ¿Proceder? + +# Engine preview window +STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mensaje del fabricante de vehículos +STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Hemos diseñado un{G "" a} nuev{G o a} {STRING}. ¿Le interesaría el uso exclusivo de este vehículo por un año para que podamos probar su desempeño antes de lanzarlo al público? +STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}locomotora +STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}vehículo de carretera +STR_ENGINE_PREVIEW_AIRCRAFT :{G=f}aeronave +STR_ENGINE_PREVIEW_SHIP :{G=m}barco +STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}locomotora de monorriel +STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora maglev + +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Costo de operación: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} Máx. F.T.: {6:FORCE}{}Costo de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año + +# Autoreplace window +STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} +STR_REPLACE_VEHICLE_TRAIN :Tren +STR_REPLACE_VEHICLE_ROAD_VEHICLE :Vehículo de carretera +STR_REPLACE_VEHICLE_SHIP :Barco +STR_REPLACE_VEHICLE_AIRCRAFT :Aeronave + +STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Vehículos en uso +STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Esta columna muestra los vehículos ya adquiridos +STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Vehículos disponibles +STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Esta columna muestra los vehículos disponibles para realizar el reemplazo + +STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Elegir el tipo de vehículo a reemplazar +STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Elegir el nuevo tipo de vehículo que reemplazará al vehículo elegido a la izquierda + +STR_REPLACE_VEHICLES_START :{BLACK}Iniciar proceso de reemplazo +STR_REPLACE_VEHICLES_NOW :Reemplazar todos los vehículos ahora +STR_REPLACE_VEHICLES_WHEN_OLD :Reemplazar sólo los vehículos viejos +STR_REPLACE_HELP_START_BUTTON :{BLACK}Clic para reemplazar el vehículo elegido a la izquierda por el elegido a la derecha +STR_REPLACE_NOT_REPLACING :{BLACK}Reemplazo no iniciado +STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}No hay vehículos elegidos +STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} cuando esté viejo +STR_REPLACE_VEHICLES_STOP :{BLACK}Dejar de reemplazar vehículos +STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presionar este botón para detener el reemplazo del vehículo situado a la izquierda + +STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Reemplazando: {ORANGE}{STRING} +STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambiar entre reemplazo de vagón y locomotora +STR_REPLACE_ENGINES :Locomotoras +STR_REPLACE_WAGONS :Vagones + +STR_REPLACE_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 +STR_REPLACE_RAIL_VEHICLES :Trenens +STR_REPLACE_ELRAIL_VEHICLES :Trenes eléctricos +STR_REPLACE_MONORAIL_VEHICLES :Trenes de monorriel +STR_REPLACE_MAGLEV_VEHICLES :Trenes maglev + +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 + +# Vehicle view +STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} + +STR_VEHICLE_VIEW_TRAIN_LOCATION_TOOLTIP :{BLACK}Centrar la vista en la ubicación del tren. Ctrl+Clic sigue al tren en la vista principal +STR_VEHICLE_VIEW_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrar vista en la ubicación del vehículo. Ctrl+Clic sigue al vehículo en la vista principal +STR_VEHICLE_VIEW_SHIP_LOCATION_TOOLTIP :{BLACK}Centrar vista en la ubicación del barco. Ctrl+Clic sigue al barco en la vista principal +STR_VEHICLE_VIEW_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Centrar vista en la ubicación de la aeronave. Ctrl+Clic sigue a la aeronave en la vista principal + +STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}Enviar tren al depósito. Ctrl+Clic para realizar solamente mantenimiento +STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Enviar vehículo al depósito. Ctrl+Clic para realizar solamente mantenimiento +STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}Enviar barco al astillero. Ctrl+Clic para realizar solamente mantenimiento +STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}Enviar aeronave al hangar. Ctrl+Clic para realizar solamente mantenimiento + +STR_VEHICLE_VIEW_CLONE_TRAIN_INFO :{BLACK}Esto comprará una copia idéntica del tren, incluyendo todos sus vagones y carros. Clic en este botón y después en el tren a copiar. Ctrl+Clic para compartir las órdenes. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_VEHICLE_VIEW_CLONE_ROAD_VEHICLE_INFO :{BLACK}Esto comprará una copia idéntica del vehículo. Clic en este botón y después en el tren a copiar. Ctrl+Clic para compartir las órdenes. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_VEHICLE_VIEW_CLONE_SHIP_INFO :{BLACK}Esto comprará una copia idéntica del barco. Clic en este botón y después en el tren a copiar. Ctrl+Clic para compartir las órdenes. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_VEHICLE_VIEW_CLONE_AIRCRAFT_INFO :{BLACK}Esto comprará una copia idéntica de la aeronave. Clic en este botón y después en el tren a copiar. Ctrl+Clic para compartir las órdenes. Mayús+Clic muestra una estimación del precio sin realizar la compra + +STR_VEHICLE_VIEW_TRAIN_IGNORE_SIGNAL_TOOLTIP :{BLACK}Forzar al tren a proceder sin esperar a que la señal le ceda vía libre + +STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Reequipar tren para transportar otro tipo de cargamento +STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Reequipar vehículo de carretera para transportar otro tipo de cargamento +STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Reequipar barco para que transporte otro tipo de cargamento +STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Reequipar aeronave para llevar otro tipo de cargamento + +STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}Cambiar dirección del tren +STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP :{BLACK}Forzar al vehículo a girar en sentido opuesto + +STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP :{BLACK}Ver órdenes del tren. Ctrl+Clic muestra su itinerario +STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}Ver órdenes del vehículo Ctrl+Clic muestra su itinerario +STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}Ver órdenes del barco. Ctrl+Clic muestra su itinerario +STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}Ver órdenes de la aeronave. Ctrl+Clic muestra su itinerario + +STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}Ver detalles del tren +STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Ver detalles del vehículo +STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Ver detalles del barco +STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Ver detalles de la aeronave + +STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Actividad del tren. Clic para detener o poner en marcha. Ctrl+Clic para desplazarse hasta el destino +STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Actividad del vehículo. Clic para detener o poner en marcha. Ctrl+Clic para desplazarse hasta el destino +STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Actividad del barco. Clic para detener o poner en marcha. Ctrl+Clic para desplazarse hasta el destino +STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Actividad de la aeronave. Clic para aterrizar o despegar. Ctrl+Clic para desplazarse hasta el destino + +# Messages in the start stop button in the vehicle view +STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Cargando/Descargando +STR_VEHICLE_STATUS_LEAVING :{LTBLUE}Partiendo +STR_VEHICLE_STATUS_CRASHED :{RED}¡Accidentado! +STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Descompuesto +STR_VEHICLE_STATUS_STOPPED :{RED}Detenido +STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL :{RED}Deteniéndose, {VELOCITY} +STR_VEHICLE_STATUS_TRAIN_NO_POWER :{RED}Sin potencia +STR_VEHICLE_STATUS_TRAIN_STUCK :{ORANGE}Esperando ruta libre +STR_VEHICLE_STATUS_AIRCRAFT_TOO_FAR :{ORANGE}Muy lejos del próximo destino + +STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL :{LTBLUE}Hacia {STATION}, {VELOCITY} +STR_VEHICLE_STATUS_NO_ORDERS_VEL :{LTBLUE}Sin órdenes, {VELOCITY} +STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}Hacia {WAYPOINT}, {VELOCITY} +STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL :{ORANGE}Hacia {DEPOT}, {VELOCITY} +STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL :{LTBLUE}Mantenimiento en {DEPOT}, {VELOCITY} + +# Vehicle stopped/started animations +STR_VEHICLE_COMMAND_STOPPED_SMALL :{TINY_FONT}{RED}Detenido +STR_VEHICLE_COMMAND_STOPPED :{RED}Detenido +STR_VEHICLE_COMMAND_STARTED_SMALL :{TINY_FONT}{GREEN}En marcha +STR_VEHICLE_COMMAND_STARTED :{GREEN}En marcha + +# Vehicle details +STR_VEHICLE_DETAILS_CAPTION :{WHITE}{VEHICLE} (Detalles) +STR_VEHICLE_NAME_BUTTON :{BLACK}Nombre + +STR_VEHICLE_DETAILS_TRAIN_RENAME :{BLACK}Cambiar nombre +STR_VEHICLE_DETAILS_ROAD_VEHICLE_RENAME :{BLACK}Cambiar nombre +STR_VEHICLE_DETAILS_SHIP_RENAME :{BLACK}Cambiar nombre +STR_VEHICLE_DETAILS_AIRCRAFT_RENAME :{BLACK}Cambiar nombre + +STR_VEHICLE_INFO_AGE_RUNNING_COST_YR :{BLACK}Edad: {LTBLUE}{STRING}{BLACK} Costo de mantenimiento: {LTBLUE}{CURRENCY_LONG}/año +# The next two need to stay in this order +STR_VEHICLE_INFO_AGE :{COMMA} año{P "" s} ({COMMA}) +STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) + +STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad máx.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} casillas +STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. máx.: {LTBLUE}{FORCE} + +STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Utilidad este año: {LTBLUE}{CURRENCY_LONG} (año pasado: {CURRENCY_LONG}) +STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Fiabilidad: {LTBLUE}{COMMA}% {BLACK}Descomposturas desde el último mantenimiento: {LTBLUE}{COMMA} + +STR_VEHICLE_INFO_BUILT_VALUE :{LTBLUE}{ENGINE} {BLACK}Construido: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY_LONG} +STR_VEHICLE_INFO_NO_CAPACITY :{BLACK}Capacidad: {LTBLUE}Ninguna{STRING} +STR_VEHICLE_INFO_CAPACITY :{BLACK}Capacidad: {LTBLUE}{CARGO_LONG}{3:STRING} +STR_VEHICLE_INFO_CAPACITY_MULT :{BLACK}Capacidad: {LTBLUE}{CARGO_LONG}{3:STRING} (×{4:NUM}) +STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}Capacidad: {LTBLUE}{CARGO_LONG}, {CARGO_LONG}{STRING} + +STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Créditos por transferencia: {LTBLUE}{CURRENCY_LONG} + +STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Mantenimiento cada: {LTBLUE}{COMMA}{NBSP}días{BLACK} Último mantenimiento: {LTBLUE}{DATE_LONG} +STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Mantenimiento cada: {LTBLUE}{COMMA}%{BLACK} Último mantenimiento: {LTBLUE}{DATE_LONG} +STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Incrementar el intervalo de mantenimiento 10 días. Ctrl+Clic para incrementar el intervalo de mantenimiento en 5 días +STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Reducir intervalo de mantenimiento 10 días. Ctrl+Clic para reducir el intervalo de mantenimiento 5 días + +STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Cambiar tipo de intervalo de mantenimiento +STR_VEHICLE_DETAILS_DEFAULT :Predeterminado +STR_VEHICLE_DETAILS_DAYS :Dias +STR_VEHICLE_DETAILS_PERCENT :Porcentaje + +STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}Cambiar nombre +STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}Cambiar nombre +STR_QUERY_RENAME_SHIP_CAPTION :{WHITE}Cambiar nombre +STR_QUERY_RENAME_AIRCRAFT_CAPTION :{WHITE}Cambiar nombre + +# Extra buttons for train details windows +STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE :{LTBLUE}{ENGINE}{BLACK} Construido: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY_LONG} +STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE :{LTBLUE}{ENGINE}{BLACK} Valor: {LTBLUE}{CURRENCY_LONG} + +STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY_TEXT :{BLACK}Capacidad total de este tren: +STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY :{LTBLUE}- {CARGO_LONG} ({CARGO_SHORT}) +STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY_MULT :{LTBLUE}- {CARGO_LONG} ({CARGO_SHORT}) (×{NUM}) + +STR_VEHICLE_DETAILS_CARGO_EMPTY :{LTBLUE}Vacío +STR_VEHICLE_DETAILS_CARGO_FROM :{LTBLUE}{CARGO_LONG} desde {STATION} +STR_VEHICLE_DETAILS_CARGO_FROM_MULT :{LTBLUE}{CARGO_LONG} desde {STATION} (×{NUM}) + +STR_VEHICLE_DETAIL_TAB_CARGO :{BLACK}Cargamento +STR_VEHICLE_DETAILS_TRAIN_CARGO_TOOLTIP :{BLACK}Mostrar detalles de mercancía transportada +STR_VEHICLE_DETAIL_TAB_INFORMATION :{BLACK}Información +STR_VEHICLE_DETAILS_TRAIN_INFORMATION_TOOLTIP :{BLACK}Mostrar detalles de los vehículos +STR_VEHICLE_DETAIL_TAB_CAPACITIES :{BLACK}Capacidades +STR_VEHICLE_DETAILS_TRAIN_CAPACITIES_TOOLTIP :{BLACK}Mostrar capacidades de cada vehículo del tren +STR_VEHICLE_DETAIL_TAB_TOTAL_CARGO :{BLACK}Cargamento total +STR_VEHICLE_DETAILS_TRAIN_TOTAL_CARGO_TOOLTIP :{BLACK}Mostrar capacidad total del tren dividida por tipo de cargamento + +STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Capacidad: {LTBLUE} + +# Vehicle refit +STR_REFIT_CAPTION :{WHITE}{VEHICLE} (reequipar) +STR_REFIT_TITLE :{GOLD}Elegir el nuevo tipo de cargamento: +STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}{}{BLACK}Costo por reequipar: {RED}{CURRENCY_LONG} +STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}{}{BLACK}Ingreso al reequipar: {GREEN}{CURRENCY_LONG} +STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Costo por reequipar: {RED}{CURRENCY_LONG} +STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Ingreso al reequipar: {GREEN}{CURRENCY_LONG} +STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Elegir los vehículos de ferrocarril a reequipar. Arrastrar con el ratón para elegir más de un vehículo. Clic en un espacio vacío para elegir el tren completo. Ctrl+Clic para elegir una unidad del tren y los vagones subsecuentes + +STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Elegir el tipo de cargamento para el tren +STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Elegir el tipo de cargamento para el vehículo de carretera +STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}Elegir el tipo de cargamento para el barco +STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Elegir el tipo de cargamento para la aeronave + +STR_REFIT_TRAIN_REFIT_BUTTON :{BLACK}Reequipar tren +STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Reequipar vehículo de carretera +STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}Reequipar barco +STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Reequipar aeronave + +STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Reequipar el tren para transportar el cargamento elegido +STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Reequipar el vehículo de carretera para transportar el cargamento elegido +STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Reequipar el barco para transportar el cargamento elegido +STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Reequipar la aeronave para transportar el cargamento elegido + +# Order view +STR_ORDERS_CAPTION :{WHITE}{VEHICLE} (Órdenes) +STR_ORDERS_TIMETABLE_VIEW :{BLACK}Itinerario +STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}Cambiar a la ventana de itinerarios + +STR_ORDERS_LIST_TOOLTIP :{BLACK}Lista de órdenes: Clic en una orden para seleccionarla. Ctrl+Clic para desplazarse a la estación indicada en la orden +STR_ORDER_INDEX :{COMMA}:{NBSP} +STR_ORDER_TEXT :{STRING} {STRING} {STRING} + +STR_ORDERS_END_OF_ORDERS :- - Fin de órdenes - - +STR_ORDERS_END_OF_SHARED_ORDERS :- - Fin de órdenes compartidas - - + +# Order bottom buttons +STR_ORDER_NON_STOP :{BLACK}Sin paradas +STR_ORDER_GO_TO :Ir a +STR_ORDER_GO_NON_STOP_TO :Ir sin paradas a +STR_ORDER_GO_VIA :Ir por +STR_ORDER_GO_NON_STOP_VIA :Ir sin paradas por +STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Cambiar el comportamiento de parada en la orden elegida + +STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Llenar cualquier carga +STR_ORDER_DROP_LOAD_IF_POSSIBLE :Cargar si hay disponible +STR_ORDER_DROP_FULL_LOAD_ALL :Llenar todas las cargas +STR_ORDER_DROP_FULL_LOAD_ANY :Llenar cualquier carga +STR_ORDER_DROP_NO_LOADING :No cargar +STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Cambiar el comportamiento de carga en la orden elegida + +STR_ORDER_TOGGLE_UNLOAD :{BLACK}Descargar todo +STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Descargar si es recibido +STR_ORDER_DROP_UNLOAD :Descargar todo +STR_ORDER_DROP_TRANSFER :Transferir +STR_ORDER_DROP_NO_UNLOADING :No descargar +STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambiar el comportamiento de descarga en la orden elegida + +STR_ORDER_REFIT :{BLACK}Reequipar +STR_ORDER_REFIT_TOOLTIP :{BLACK}Elegir el tipo de cargamento a reequipar en esta orden. Ctrl+Clic para eliminar la orden +STR_ORDER_REFIT_AUTO :{BLACK}Reequipar en estación +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Elegir el tipo de cargamento a reequipar en esta orden. Ctrl+Clic para eliminar la orden. Reequipar solo es posible si el vehículo lo permite +STR_ORDER_DROP_REFIT_AUTO :Cargamento fijo +STR_ORDER_DROP_REFIT_AUTO_ANY :Cargamento disponible + +STR_ORDER_SERVICE :{BLACK}Mantenimiento +STR_ORDER_DROP_GO_ALWAYS_DEPOT :Ir siempre +STR_ORDER_DROP_SERVICE_DEPOT :Mantenimiento si es necesario +STR_ORDER_DROP_HALT_DEPOT :Detenerse +STR_ORDER_SERVICE_TOOLTIP :{BLACK}Ignorar esta orden a menos que el mantenimiento sea necesario + +STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Datos del vehículo para órdenes condicionales + +# Conditional order variables, must follow order of OrderConditionVariable enum +STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Porcentaje de carga +STR_ORDER_CONDITIONAL_RELIABILITY :Fiabilidad +STR_ORDER_CONDITIONAL_MAX_SPEED :Velocidad máxima +STR_ORDER_CONDITIONAL_AGE :Edad (años) +STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Requiere mantenimiento +STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Siempre +STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Tiempo de vida restante (años) + +STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Comparación de los datos del vehículo respecto al valor dado +STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :es igual a +STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :no es igual a +STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :es menos de +STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :es menor o igual a +STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :es más de +STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :es más o igual a +STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :es verdadero +STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :es falso + +STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}El valor contra el cual comparar de los datos del vehículo +STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Indicar el valor contra el cual comparar + +STR_ORDERS_SKIP_BUTTON :{BLACK}Saltar +STR_ORDERS_SKIP_TOOLTIP :{BLACK}Ignorar la orden actual y saltar a la siguiente. Ctrl+Clic salta a la orden elegida + +STR_ORDERS_DELETE_BUTTON :{BLACK}Eliminar +STR_ORDERS_DELETE_TOOLTIP :{BLACK}Eliminar orden marcada +STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Eliminar todas las órdenes +STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Dejar de compartir +STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Dejar de compartir la lista de órdenes. Ctrl+Clic elimina también todas las órdenes de este vehículo + +STR_ORDERS_GO_TO_BUTTON :{BLACK}Ir a +STR_ORDER_GO_TO_NEAREST_DEPOT :Ir al depósito más cercano +STR_ORDER_GO_TO_NEAREST_HANGAR :Ir al hangar más cercano +STR_ORDER_CONDITIONAL :Salto de orden condicional +STR_ORDER_SHARE :Compartir órdenes +STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden marcada o añadirla al final de la lista. Ctrl+Clic sobre una estación para establecer la orden a 'Cargar máx. cualquier carga', sobre un puesto guía para 'Sin paradas' y sobre un depósito para 'Mantenimiento' (esta última desactivará el mantenimiento automático). Ctrl+Clic sobre otro vehículo para hacer que ambos compartan siempre las mismas órdenes. Clic sobre un vehículo para copiar sus órdenes (sin compartirlas). + +STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Ver todos los vehículos que comparten el mismo itinerario + +# String parts to build the order string +STR_ORDER_GO_TO_WAYPOINT :Ir por {WAYPOINT} +STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Ir sin paradas por {WAYPOINT} + +STR_ORDER_SERVICE_AT :Mantenimiento en +STR_ORDER_SERVICE_NON_STOP_AT :Mantenimiento sin paradas en + +STR_ORDER_NEAREST_DEPOT :el más cercano +STR_ORDER_NEAREST_HANGAR :el hangar más cercano +STR_ORDER_TRAIN_DEPOT :depósito de trenes +STR_ORDER_ROAD_VEHICLE_DEPOT :depósito de vehículos de carretera +STR_ORDER_SHIP_DEPOT :astillero de barcos +STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING} +STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT} + +STR_ORDER_REFIT_ORDER :(Reequipar a {STRING}) +STR_ORDER_REFIT_STOP_ORDER :(Reequipar a {STRING} y detenerse) +STR_ORDER_STOP_ORDER :(Detenerse) + +STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING} + +STR_ORDER_IMPLICIT :(Implícito) + +STR_ORDER_FULL_LOAD :(Llenar) +STR_ORDER_FULL_LOAD_ANY :(Llenar cualquiera) +STR_ORDER_NO_LOAD :(No cargar) +STR_ORDER_UNLOAD :(Descargar y cargar) +STR_ORDER_UNLOAD_FULL_LOAD :(Descargar y llenar) +STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Descargar y llenar cualquiera) +STR_ORDER_UNLOAD_NO_LOAD :(Descargar y dejar vacío) +STR_ORDER_TRANSFER :(Transferir y cargar) +STR_ORDER_TRANSFER_FULL_LOAD :(Transferir y llenar) +STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transferir y llenar cualquiera) +STR_ORDER_TRANSFER_NO_LOAD :(Transferir y dejar vacío) +STR_ORDER_NO_UNLOAD :(No descargar y cargar) +STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descargar y llenar) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No descargar y llenar cualquiera) +STR_ORDER_NO_UNLOAD_NO_LOAD :(No descargar ni cargar) + +STR_ORDER_AUTO_REFIT :(Reequipar a {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Reequipar a {STRING} y llenar) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Reequipar a {STRING} y llenar cualquiera) +STR_ORDER_UNLOAD_REFIT :(Descargar y cargar con reequipamiento a {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descargar y llenar con reequipamiento a {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descargar y llenar cualquiera con reequipamiento a {STRING}) +STR_ORDER_TRANSFER_REFIT :(Transferir y cargar con reequipamiento a {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transferir y llenar con reequipamiento a {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transferir y llenar cualquiera con reequipamiento a {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(No descargar y cargar con reequipamiento a {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No descargar y llenar con reequipamiento a {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No descargar y llenar cualquiera con reequipamiento a {STRING}) + +STR_ORDER_AUTO_REFIT_ANY :cargamento disponible + +STR_ORDER_STOP_LOCATION_NEAR_END :[principio] +STR_ORDER_STOP_LOCATION_MIDDLE :[centro] +STR_ORDER_STOP_LOCATION_FAR_END :[fondo] + +STR_ORDER_OUT_OF_RANGE :{RED} (El sig. destino está legos del alcance) + +STR_ORDER_CONDITIONAL_UNCONDITIONAL :Saltar a orden {COMMA} +STR_ORDER_CONDITIONAL_NUM :Saltar a orden {COMMA} cuando {STRING} {STRING} {COMMA} +STR_ORDER_CONDITIONAL_TRUE_FALSE :Saltar a orden {COMMA} cuando {STRING} {STRING} + +STR_INVALID_ORDER :{RED} (Orden no válida) + +# Time table window +STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Itinerarios) +STR_TIMETABLE_ORDER_VIEW :{BLACK}Órdenes +STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}Cambiar a la ventana de órdenes + +STR_TIMETABLE_TOOLTIP :{BLACK}Itinerarios: Clic en una orden para marcarla + +STR_TIMETABLE_NO_TRAVEL :No viajar +STR_TIMETABLE_NOT_TIMETABLEABLE :Viajar (automático; programado por la próxima orden manual) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viajar (no programado) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viajar (no programado) a {2:VELOCITY} como máximo +STR_TIMETABLE_TRAVEL_FOR :Viajar durante {STRING} +STR_TIMETABLE_TRAVEL_FOR_SPEED :Viajar durante {STRING} a {VELOCITY} como máximo +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viajar (durante {STRING}, no programado) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viajar (durante {STRING}, no programado) a {VELOCITY} como máximo +STR_TIMETABLE_STAY_FOR_ESTIMATED :(esperar {STRING}, no programado) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viajar por {STRING}, no programado) +STR_TIMETABLE_STAY_FOR :y esperar {STRING} +STR_TIMETABLE_AND_TRAVEL_FOR :y viajar por {STRING} +STR_TIMETABLE_DAYS :{COMMA}{NBSP}día{P "" s} +STR_TIMETABLE_TICKS :{COMMA}{NBSP}tick{P "" s} + +STR_TIMETABLE_TOTAL_TIME :{BLACK}El itinerario completo se recorre en {STRING} +STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}El itinerario completo se recorre en {STRING} (no todo programado) + +STR_TIMETABLE_STATUS_ON_TIME :{BLACK}Este vehículo va a tiempo +STR_TIMETABLE_STATUS_LATE :{BLACK}Este vehículo va retrasado por {STRING} +STR_TIMETABLE_STATUS_EARLY :{BLACK}Este vehículo va adelantado por {STRING} +STR_TIMETABLE_STATUS_NOT_STARTED :{BLACK}Este itinerario no ha comenzado +STR_TIMETABLE_STATUS_START_AT :{BLACK}Este itinerario comenzará el {STRING} + +STR_TIMETABLE_STARTING_DATE :{BLACK}Fecha de inicio +STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Elegir una fecha de inicio del itinerario. Ctrl+Clic para establecer el inicio del itinerario y distribuir uniformemente todos los demás vehículos que lo compartan, siempre y cuando esté programado completamente + +STR_TIMETABLE_CHANGE_TIME :{BLACK}Cambiar tiempo +STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambiar la cantidad de tiempo para la orden elegida + +STR_TIMETABLE_CLEAR_TIME :{BLACK}Borrar tiempo +STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Borrar la cantidad de tiempo para la orden elegida + +STR_TIMETABLE_CHANGE_SPEED :{BLACK}Cambiar límite de velocidad +STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Cambiar el límite de velocidad para la orden elegida + +STR_TIMETABLE_CLEAR_SPEED :{BLACK}Borrar límite de velocidad +STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Borrar el límite de velocidad para la orden elegida + +STR_TIMETABLE_RESET_LATENESS :{BLACK}Reiniciar retrasos +STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Reiniciar el contador del retraso para que el vehículo vaya a tiempo + +STR_TIMETABLE_AUTOFILL :{BLACK}Rellenar automáticamente +STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Rellenar la tabla de itinerarios automáticamente con los valores del siguiente recorrido (Ctrl+Clic para intentar mantener los tiempos de espera) + +STR_TIMETABLE_EXPECTED :{BLACK}Esperado +STR_TIMETABLE_SCHEDULED :{BLACK}Programado +STR_TIMETABLE_EXPECTED_TOOLTIP :{BLACK}Cambiar entre esperado y programado + +STR_TIMETABLE_ARRIVAL_ABBREVIATION :Lleg: +STR_TIMETABLE_DEPARTURE_ABBREVIATION :Sal: + + +# Date window (for timetable) +STR_DATE_CAPTION :{WHITE}Elegir fecha +STR_DATE_SET_DATE :{BLACK}Elegir fecha +STR_DATE_SET_DATE_TOOLTIP :{BLACK}Usar la fecha elegida como fecha inicial del itinerario +STR_DATE_DAY_TOOLTIP :{BLACK}Elegir día +STR_DATE_MONTH_TOOLTIP :{BLACK}Elegir mes +STR_DATE_YEAR_TOOLTIP :{BLACK}Elegir año + + +# AI debug window +STR_AI_DEBUG :{WHITE}Depuración de scripts de IA y juego +STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM}) +STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Nombre del script +STR_AI_DEBUG_SETTINGS :{BLACK}Configuración +STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Cambiar la configuración del script +STR_AI_DEBUG_RELOAD :{BLACK}Volver a cargar código +STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Eliminar la IA, volver a cargar el código y reiniciar la IA +STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Activar y desactivar interrupción cuando un mensaje de log de la IA coincida con la cadena de interrupción +STR_AI_DEBUG_BREAK_ON_LABEL :{BLACK}Intrrumpir en: +STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}Pausar cuando el script registre esta cadena +STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}Cuando un mensaje de log de una IA coincida con esta cadena, poner el juego en pausa +STR_AI_DEBUG_MATCH_CASE :{BLACK}Distinguir mayúsculas +STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}Activar y desactivar la disinción de mayúsculas y minúsculas al comparar los mensajes de log de la IA con la cadena de interrupción +STR_AI_DEBUG_CONTINUE :{BLACK}Continuar +STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Quitar la pausa y hacer que la IA continúe +STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Mostrar salida de depuración de esta IA +STR_AI_GAME_SCRIPT :{BLACK}Script de juego +STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Analizar el registro del script de juego + +STR_ERROR_AI_NO_AI_FOUND :No se encontró IA apropiada para cargar.{}Esta es una IA predeterminada que no realiza ninguna acción.{}Se pueden descargar nuevas IA a través del sistema de 'Contenido en línea' +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Uno de los scripts ejecutados ha fallado. Por favor, informa del fallo al autor del script con una captura de la ventana de depuración +STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La ventana de depuración de scripts solo está disponible para el servidor + +# AI configuration window +STR_AI_CONFIG_CAPTION :{WHITE}Configuración de scripts +STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Script de juego que será cargado en la próxima partida +STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Scripts de IA que serán cargadas en la próxima partida +STR_AI_CONFIG_HUMAN_PLAYER :Jugador humano +STR_AI_CONFIG_RANDOM_AI :IA aleatoria +STR_AI_CONFIG_NONE :(ninguna) + +STR_AI_CONFIG_MOVE_UP :{BLACK}Mover hacia arriba +STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Mover la IA elegida una posición hacia arriba +STR_AI_CONFIG_MOVE_DOWN :{BLACK}Mover hacia abajo +STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}Mover la IA elegida una posición hacia abajo + +STR_AI_CONFIG_GAMESCRIPT :{SILVER}Script de juego +STR_AI_CONFIG_AI :{SILVER}IA + +STR_AI_CONFIG_CHANGE :{BLACK}Seleccionar {STRING} +STR_AI_CONFIG_CHANGE_NONE : +STR_AI_CONFIG_CHANGE_AI :IA +STR_AI_CONFIG_CHANGE_GAMESCRIPT :Script de juego +STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Cargar otro script +STR_AI_CONFIG_CONFIGURE :{BLACK}Configurar +STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Configura los parámetros del script + +# Available AIs window +STR_AI_LIST_CAPTION :{WHITE}Disponible {STRING} +STR_AI_LIST_CAPTION_AI :Lista de IA +STR_AI_LIST_CAPTION_GAMESCRIPT :Scripts de juego +STR_AI_LIST_TOOLTIP :{BLACK}Clic para elegir un script + +STR_AI_LIST_AUTHOR :{LTBLUE}Autor: {ORANGE}{STRING} +STR_AI_LIST_VERSION :{LTBLUE}Versión: {ORANGE}{NUM} +STR_AI_LIST_URL :{LTBLUE}URL: {ORANGE}{STRING} + +STR_AI_LIST_ACCEPT :{BLACK}Aceptar +STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Elegir el script marcado +STR_AI_LIST_CANCEL :{BLACK}Cancelar +STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}No cambiar de script + +# AI Parameters +STR_AI_SETTINGS_CAPTION :{WHITE}Parámetros {STRING} +STR_AI_SETTINGS_CAPTION_AI :IA +STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de juego +STR_AI_SETTINGS_CLOSE :{BLACK}Cerrar +STR_AI_SETTINGS_RESET :{BLACK}Reiniciar +STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING} +STR_AI_SETTINGS_START_DELAY :Número de días a esperar antes de comenzar esta IA desde el momento en el que empezó la anterior: {ORANGE}{STRING} + + +# Textfile window +STR_TEXTFILE_README_CAPTION :{WHITE}Archivo 'léeme' del {STRING} {STRING} +STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}Registro de cambios del {STRING} {STRING} +STR_TEXTFILE_LICENCE_CAPTION :{WHITE}Licencia del {STRING} {STRING} +STR_TEXTFILE_WRAP_TEXT :{WHITE}Unir texto +STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Unir el texto de la ventana para que quepa sin tener que desplazarse +STR_TEXTFILE_VIEW_README :{BLACK}Ver archivo 'léeme' +STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Registro de cambios +STR_TEXTFILE_VIEW_LICENCE :{BLACK}Licencia + + +# Vehicle loading indicators +STR_PERCENT_UP_SMALL :{TINY_FONT}{WHITE}{NUM}%{UP_ARROW} +STR_PERCENT_UP :{WHITE}{NUM}%{UP_ARROW} +STR_PERCENT_DOWN_SMALL :{TINY_FONT}{WHITE}{NUM}%{DOWN_ARROW} +STR_PERCENT_DOWN :{WHITE}{NUM}%{DOWN_ARROW} +STR_PERCENT_UP_DOWN_SMALL :{TINY_FONT}{WHITE}{NUM}%{UP_ARROW}{DOWN_ARROW} +STR_PERCENT_UP_DOWN :{WHITE}{NUM}%{UP_ARROW}{DOWN_ARROW} +STR_PERCENT_NONE_SMALL :{TINY_FONT}{WHITE}{NUM}% +STR_PERCENT_NONE :{WHITE}{NUM}% + +# Income 'floats' +STR_INCOME_FLOAT_COST_SMALL :{TINY_FONT}{RED}Costo: {CURRENCY_LONG} +STR_INCOME_FLOAT_COST :{RED}Costo: {CURRENCY_LONG} +STR_INCOME_FLOAT_INCOME_SMALL :{TINY_FONT}{GREEN}Ingreso: {CURRENCY_LONG} +STR_INCOME_FLOAT_INCOME :{GREEN}Ingreso: {CURRENCY_LONG} +STR_FEEDER_TINY :{TINY_FONT}{YELLOW}Transferencia: {CURRENCY_LONG} +STR_FEEDER :{YELLOW}Transferencia: {CURRENCY_LONG} +STR_FEEDER_INCOME_TINY :{TINY_FONT}{YELLOW}Transferencia: {CURRENCY_LONG}{WHITE} / {GREEN}Utilidad: {CURRENCY_LONG} +STR_FEEDER_INCOME :{YELLOW}Transferencia: {CURRENCY_LONG}{WHITE} / {GREEN}Utilidad: {CURRENCY_LONG} +STR_FEEDER_COST_TINY :{TINY_FONT}{YELLOW}Transferencia: {CURRENCY_LONG}{WHITE} / {RED}Costo: {CURRENCY_LONG} +STR_FEEDER_COST :{YELLOW}Transferencia: {CURRENCY_LONG}{WHITE} / {RED}Costo: {CURRENCY_LONG} +STR_MESSAGE_ESTIMATED_COST :{WHITE}Costo estimado: {CURRENCY_LONG} +STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Ingreso estimado: {CURRENCY_LONG} + +# Saveload messages +STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Se sigue guardando la partida,{}¡por favor espera hasta que termine! +STR_ERROR_AUTOSAVE_FAILED :{WHITE}Error en guardado automático +STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}No es posible leer la unidad de disco +STR_ERROR_GAME_SAVE_FAILED :{WHITE}Error guardando partida{}{STRING} +STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}No es posible eliminar el archivo +STR_ERROR_GAME_LOAD_FAILED :{WHITE}Error al cargar partida{}{STRING} +STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Error interno: {STRING} +STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Archivo con errores - {STRING} +STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :La partida guardada es de una versión más reciente del juego +STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :No se puede leer el archivo +STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :No se puede escribir en el archivo +STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :El análisis de integridad de los datos falló +STR_GAME_SAVELOAD_NOT_AVAILABLE : +STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}La partida fue guardada en una versión que no admite tranvías. Todos los tranvías serán eliminados + +# Map generation messages +STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generación de mapa abortada...{}... no hay ubicaciones apropiadas para colocar pueblos +STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... no hay pueblos en el mapa + +STR_ERROR_PNGMAP :{WHITE}No se puuede cargar mapa desde PNG... +STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... archivo no encontrado +STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir el tipo de imagen. Se requieren imágenes PNG de 8 o 24 bits +STR_ERROR_PNGMAP_MISC :{WHITE}... algo salió mal (quizá el archivo esté tenga errores) + +STR_ERROR_BMPMAP :{WHITE}No se pudo cargar mapa desde BMP... +STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir el tipo de imagen + +STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... la imagen es demasiado grande + +STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Advertencia de escala +STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}No se recomienda cambiar demasiado el tamaño del mapa de origen. ¿Continuar de todos modos? + +# Soundset messages +STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Solamente se encontraron sonidos de respaldo. Es posible instalar más sonidos a través del 'Contenido en línea' + +# Screenshot related messages +STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Captura de pantalla gigante +STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}La captura de pantalla tendrá una resolución {COMMA}×{COMMA} pixeles. Realizar la captura puede llevar un tiempo. ¿Continuar? + +STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Captura de pantalla guardada existosamente en '{STRING}' +STR_ERROR_SCREENSHOT_FAILED :{WHITE}¡La captura de pantalla falló! + +# Error message titles +STR_ERROR_MESSAGE_CAPTION :{YELLOW}Mensaje +STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Mensaje de {STRING} + +# Generic construction errors +STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Fuera del borde del mapa +STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Demasiado cerca del borde del mapa +STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}No hay suficiente dinero: se requieren {CURRENCY_LONG} +STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}Se requiere terreno plano +STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Tierra inclinada en dirección errónea +STR_ERROR_CAN_T_DO_THIS :{WHITE}No se puede hacer eso... +STR_ERROR_BUILDING_MUST_BE_DEMOLISHED :{WHITE}Primero se debe demoler el edificio +STR_ERROR_CAN_T_CLEAR_THIS_AREA :{WHITE}No se puede despejar esta zona... +STR_ERROR_SITE_UNSUITABLE :{WHITE}... lugar no apropiado +STR_ERROR_ALREADY_BUILT :{WHITE}... ya construido +STR_ERROR_OWNED_BY :{WHITE}... propiedad de {STRING} +STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... otra empresa es dueña de esta área +STR_ERROR_TERRAFORM_LIMIT_REACHED :{WHITE}... límite de modificación de terreno alcanzado +STR_ERROR_CLEARING_LIMIT_REACHED :{WHITE}... límite de casillas despejadas alcanzado +STR_ERROR_TREE_PLANT_LIMIT_REACHED :{WHITE}... limite de plantación de árboles alcanzado +STR_ERROR_NAME_MUST_BE_UNIQUE :{WHITE}El nombre debe ser único +STR_ERROR_GENERIC_OBJECT_IN_THE_WAY :{WHITE}{1:STRING} obstaculiza +STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}No permitido en pausa + +# Local authority errors +STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}El ayuntamiento de {TOWN} se opone a esta acción +STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}El ayuntamiento de {TOWN} se opone a la construcción de otro aeropuerto en este pueblo +STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}El ayuntamiento de {TOWN} se opone a otorgar permiso para la construcción del aeropuerto debido a cuestiones de ruido +STR_ERROR_BRIBE_FAILED :{WHITE}El intento de soborno ha sido descubierto por un investigador de la zona + +# Levelling errors +STR_ERROR_CAN_T_RAISE_LAND_HERE :{WHITE}No se puede elevar el terreno aquí... +STR_ERROR_CAN_T_LOWER_LAND_HERE :{WHITE}No se puede disminuir el terreno aquí... +STR_ERROR_CAN_T_LEVEL_LAND_HERE :{WHITE}No se puede nivelar el terreno aquí... +STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}La excavación dañaría el túnel +STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}... ya está al nivel del mar +STR_ERROR_TOO_HIGH :{WHITE}... demasiado alto +STR_ERROR_ALREADY_LEVELLED :{WHITE}... ya está plano +STR_ERROR_BRIDGE_TOO_HIGH_AFTER_LOWER_LAND :{WHITE}Después del cambio, el puente sobre este terreno será demasiado alto + +# Company related errors +STR_ERROR_CAN_T_CHANGE_COMPANY_NAME :{WHITE}No se puede cambiar el nombre de la empresa... +STR_ERROR_CAN_T_CHANGE_PRESIDENT :{WHITE}No se puede cambiar nombre del presidente... + +STR_ERROR_MAXIMUM_PERMITTED_LOAN :{WHITE}... el máximo préstamo permitido es de {CURRENCY_LONG} +STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}No es posible pedir más préstamo... +STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... no hay préstamo que pagar +STR_ERROR_CURRENCY_REQUIRED :{WHITE}... se requieren {CURRENCY_LONG} +STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}No se puede pagar préstamo... +STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}No se puede regalar dinero que fue prestado de un banco... +STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}No se puede comprar la empresa... +STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No se puede construir la sede de la empresa... +STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}No se puede comprar el 25% de acciones... +STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}No se puede vender el 25% de acciones... +STR_ERROR_PROTECTED :{WHITE}Esta empresa es aún muy reciente para comerciar con acciones... + +# Town related errors +STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}No se puede crear ningún pueblo +STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}No se puede cambiar nombre del pueblo... +STR_ERROR_CAN_T_FOUND_TOWN_HERE :{WHITE}No se puede crear pueblo aquí... +STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}No se puede expandir el pueblo... +STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... demasiado cerca del borde del mapa +STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... demasiado cerca de otro pueblo +STR_ERROR_TOO_MANY_TOWNS :{WHITE}... demasiados pueblos +STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... ya no hay espacio en el mapa +STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}El pueblo no construirá carreteras. La función de construcción de carreteras puede activarse Configuración->Ambiente->Pueblos +STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Obras de carretera en progreso +STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}No se puede eliminar este pueblo...{}Quedan estaciones o depósitos relacionados con él, o una propiedad suya no puede ser retirada +STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... no hay lugar apropiado para una estatua en el centro de esta pueblo + +# Industry related errors +STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... demasiadas industrias +STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}No se pueden crear industrias... +STR_ERROR_CAN_T_BUILD_HERE :{WHITE}No se puede construir {STRING} aquí... +STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}No se puede construir este tipo de industria aquí... +STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... demasiado cerca de otra industria +STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... primero se debe crear al menos un pueblo +STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}... solo se permite una por pueblo +STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... solo se puede construir en pueblos de al menos 1,200 habitantes +STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... solo se puede construir en áreas de selva +STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... solo se puede construir en áreas desérticas +STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... solo se puede construir en pueblos (reemplazando casas) +STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... solo se puede construir cerca del centro de un pueblo +STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... solo se puede construir en zonas bajas +STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... solo se puede situar cerca de los bordes del mapa +STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... los bosques solo se pueden plantar sobre la nieve +STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... solo se puede construir por encima del nivel de nieve +STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... solo se puede construir por debajo del nivel de nieve + +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}No hubo sitios apropiados para industrias '{STRING}' +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Cambia los parámetros de generación para obtener un mejor mapa + +# Station construction related errors +STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}No se puede construir la estación de tren aquí... +STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}No se puede construir la parada de autobús aquí... +STR_ERROR_CAN_T_BUILD_TRUCK_STATION :{WHITE}No se puede construir la estación de camiones aquí... +STR_ERROR_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}No se puede construir la estación de tranvía de pasajeros aquí... +STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}No se puede construir la estación de tranvía de carga aquí... +STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}No se pueden construir muelles aquí... +STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}No se puede construir el aeropuerto aquí... + +STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Se amplía más de una parada o estación existente +STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... estación demasiado amplia +STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Demasiadas estaciones +STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Demasiadas partes de estación de tren +STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paradas de autobuses +STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas estaciones de camiones +STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Demasiado cerca de otra estación de pasajeros o carga +STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Demasiado cerca de otro muelle +STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Demasiado cerca de otro aeropuerto +STR_ERROR_CAN_T_RENAME_STATION :{WHITE}No se puede cambiar nombre de la estación... +STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... esta carretera es propiedad de un pueblo +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 + +# Station destruction related errors +STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}No se puede quitar parte de la estación... +STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Primero se debe quitar la estación de ferrocarril +STR_ERROR_CAN_T_REMOVE_BUS_STATION :{WHITE}No se puede quitar la parada de autobús... +STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}No se puede quitar la estación de camiones... +STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}No se puede quitar la estación de tranvía de pasajeros... +STR_ERROR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}No se puede quitar la estación de tranvía de carga... +STR_ERROR_MUST_REMOVE_ROAD_STOP_FIRST :{WHITE}Primero se debe quitar la parada de autobús +STR_ERROR_THERE_IS_NO_STATION :{WHITE}... no hay ninguna estación aquí + +STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}Primero se debe demoler la estación de ferrocarril +STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}Primero se debe demoler la parada de autobús +STR_ERROR_MUST_DEMOLISH_TRUCK_STATION_FIRST :{WHITE}Primero se debe demoler la estación de camiones +STR_ERROR_MUST_DEMOLISH_PASSENGER_TRAM_STATION_FIRST :{WHITE}Primero se debe demoler la estación del tranvía de pasajeros +STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}Primero se debe demoler la estación del tranvía de carga +STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Primero se debe demoler el muelle +STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Primero se debe demoler el aeropuerto + +# Waypoint related errors +STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Se amplía más de un puesto guía existente +STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Demasiado cerca de otro puesto guía + +STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}No se puede construir el puesto guía aquí... +STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}No se puede colocar la boya aquí... +STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}No se puede cambiar nombre del puesto guía... + +STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}No se puede quitar el puesto guía de aquí... +STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}Primero se debe retirar el puesto guía +STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... una boya obstaculiza +STR_ERROR_BUOY_IS_IN_USE :{WHITE}... ¡boya en uso por otra empresa! + +# Depot related errors +STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}No se puede construir el depósito de trenes aquí... +STR_ERROR_CAN_T_BUILD_ROAD_DEPOT :{WHITE}No se puede construir el depósito de carretera aquí... +STR_ERROR_CAN_T_BUILD_TRAM_DEPOT :{WHITE}No se puede construir el depósito de tranvía aquí... +STR_ERROR_CAN_T_BUILD_SHIP_DEPOT :{WHITE}No se puede construir el astillero aquí... + +STR_ERROR_CAN_T_RENAME_DEPOT :{WHITE}No se puede cambiar nombre del depósito... + +STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... puede que esté detenido dentro de un depósito +STR_ERROR_ROAD_VEHICLE_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... puede que esté detenido dentro de un depósito +STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... puede que esté detenido dentro de un astillero +STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... puede que esté detenido dentro de un hangar + +STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Los trenes únicamente pueden modificarse si están detenidos dentro de un depósito +STR_ERROR_TRAIN_TOO_LONG :{WHITE}Tren demasiado largo +STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}No se puede cambiar dirección del vehículo... +STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... vehículo compuesto por múltiples unidades +STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Los tipos de vías férreas no son compatibles + +STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}No se puede mover vehículo... +STR_ERROR_REAR_ENGINE_FOLLOW_FRONT :{WHITE}El motor posterior debe seguir siempre al delantero +STR_ERROR_UNABLE_TO_FIND_ROUTE_TO :{WHITE}No se puede encontrar ruta al depósito +STR_ERROR_UNABLE_TO_FIND_LOCAL_DEPOT :{WHITE}No se puede encontrar depósito + +STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Tipo de depósito erróneo + +# Autoreplace related errors +STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} es demasiado largo después del reemplazo +STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}No se han aplicado reglas de reemplazo o renovación +STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(límite de dinero) + +# Rail construction errors +STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Combinación imposible de vías +STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Primero se deben quitar las señales +STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Tramo de vías férreas no apropiado +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 :{WHITE}No se permiten pasos a nivel para este tipo de vías férreas +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í... +STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}No se pueden quitar señales de aquí... +STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}No se pueden convertir las señales aquí... +STR_ERROR_THERE_IS_NO_RAILROAD_TRACK :{WHITE}... no hay vías férreas +STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}... no hay señales + +STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}No se puede convertir tipo de vías férreas aquí... + +# Road construction errors +STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}Primero se debe quitar la carretera +STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... las carreteras de un sentido no pueden tener intersecciones +STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}No se puede construir carretera aquí... +STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}No se puede construir tranvía aquí... +STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}No se puede quitar carretera de aquí... +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 + +# Waterway construction errors +STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}No se pueden construir canales aquí... +STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}No se pueden construir esclusas aquí... +STR_ERROR_CAN_T_PLACE_RIVERS :{WHITE}No se pueden colocar ríos aquí... +STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... se debe construir sobre el agua +STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... no se puede construir sobre el agua +STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... no se puede construir sobre mar abierto +STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... no se puede construir sobre un canal +STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... no se puede construir sobre un río +STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Primero se debe tapar el canal +STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}No se puede construir un acueducto aquí + +# Tree related errors +STR_ERROR_TREE_ALREADY_HERE :{WHITE}... ya hay árboles aquí +STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... terreno no apto para este tipo de árbol +STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}No se pueden plantar árboles aquí... + +# Bridge related errors +STR_ERROR_CAN_T_BUILD_BRIDGE_HERE :{WHITE}No se puede construir puente aquí... +STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Primero se debe demoler el puente +STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}No se puede comenzar y acabar en la misma posición +STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}Las estribos del puente no están al mismo nivel +STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}El puente es demasiado bajo para este terreno +STR_ERROR_BRIDGE_TOO_HIGH_FOR_TERRAIN :{WHITE}El puente es demasiado alto para este terreno +STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Principio y final deben estar alineados +STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... los dos extremos del puente deben estar sobre tierra +STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... puente demasiado largo +STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}El puente terminaría fuera del mapa + +# Tunnel related errors +STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}No se puede construir túnel aquí... +STR_ERROR_SITE_UNSUITABLE_FOR_TUNNEL :{WHITE}Lugar no apto para entrada de túnel +STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Primero se debe demoler el túnel +STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Otro túnel obstaculiza +STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}El túnel terminaría fuera del mapa +STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}No se puede excavar la tierra al otro lado del túnel +STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... túnel demasiado largo + +# Object related errors +STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... demasiados objetos +STR_ERROR_CAN_T_BUILD_OBJECT :{WHITE}No se puede colocar objeto... +STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Otro objeto obstaculiza +STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... la sede de la empresa obstaculiza +STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}No es posible adquirir este terreno... +STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... ¡ya fue adquirido por el jugador! + +# Group related errors +STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}No se puede crear grupo... +STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}No se puede eliminar grupo... +STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}No se puede cambiar nombre del grupo... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}No se puede establecer la jerarquía de grupos... +STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}No se pueden quitar todos los vehículos de este grupo... +STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}No se puede añadir el vehículo a este grupo... +STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}No se pueden añadir vehículos compartidos al grupo... + +# Generic vehicle errors +STR_ERROR_TRAIN_IN_THE_WAY :{WHITE}Tren obstaculiza +STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Vehículo de carretera obstaculiza +STR_ERROR_SHIP_IN_THE_WAY :{WHITE}Barco obstaculiza +STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}Aeronave obstaculiza + +STR_ERROR_CAN_T_REFIT_TRAIN :{WHITE}No se puede reequipar tren... +STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}No se puede reequipar vehículo de carretera... +STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}No se puede reequipar barco... +STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}No se puede reequipar aeronave... + +STR_ERROR_CAN_T_RENAME_TRAIN :{WHITE}No se puede cambiar nombre del tren... +STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}No se puede cambiar nombre del vehículo... +STR_ERROR_CAN_T_RENAME_SHIP :{WHITE}No se puede cambiar nombre del barco... +STR_ERROR_CAN_T_RENAME_AIRCRAFT :{WHITE}No se puede cambiar nombre de la aeronave... + +STR_ERROR_CAN_T_STOP_START_TRAIN :{WHITE}No se puede detener o poner en marcha el tren... +STR_ERROR_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}No se puede detener o poner en marcha el vehículo... +STR_ERROR_CAN_T_STOP_START_SHIP :{WHITE}No se puede detener o poner en marcha el barco... +STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}No se puede aterrizar o despegar la aeronave... + +STR_ERROR_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}No se puede enviar el tren al depósito... +STR_ERROR_CAN_T_SEND_ROAD_VEHICLE_TO_DEPOT :{WHITE}No se puede enviar el vehículo al depósito... +STR_ERROR_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}No se puede enviar el barco a astillero... +STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}No se puede enviar el aeronave al hangar + +STR_ERROR_CAN_T_BUY_TRAIN :{WHITE}No se puede comprar tren... +STR_ERROR_CAN_T_BUY_ROAD_VEHICLE :{WHITE}No se puede comprar vehículo... +STR_ERROR_CAN_T_BUY_SHIP :{WHITE}No se puede comprar barco... +STR_ERROR_CAN_T_BUY_AIRCRAFT :{WHITE}No se puede comprar aeronave... + +STR_ERROR_CAN_T_RENAME_TRAIN_TYPE :{WHITE}No se puede cambiar nombre del tipo de tren... +STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE_TYPE :{WHITE}No se puede cambiar nombre del tipo de vehículo... +STR_ERROR_CAN_T_RENAME_SHIP_TYPE :{WHITE}No se puede cambiar nombre del tipo de barco... +STR_ERROR_CAN_T_RENAME_AIRCRAFT_TYPE :{WHITE}No se puede cambiar nombre del tipo de aeronave... + +STR_ERROR_CAN_T_SELL_TRAIN :{WHITE}No se puede vender tren... +STR_ERROR_CAN_T_SELL_ROAD_VEHICLE :{WHITE}No se puede vender vehículo... +STR_ERROR_CAN_T_SELL_SHIP :{WHITE}No se puede vender barco... +STR_ERROR_CAN_T_SELL_AIRCRAFT :{WHITE}No se puede vender aeronave... + +STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Vehículo no disponible +STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Vehículo no disponible +STR_ERROR_SHIP_NOT_AVAILABLE :{WHITE}Barco no disponible +STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Aeronave no disponible + +STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Demasiados vehículos en el juego +STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}No se puede cambiar intervalo de mantenimiento... + +STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... el vehículo está destruido + +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}No habrá vehículos disponibles +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Se debe modificar la configuración de NewGRF +STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Todavía no hay vehículos disponibles +STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Se debe empezar una nueva partida después de {DATE_SHORT} o usar un NewGRF que proporcione vehículos más antiguos + +# Specific vehicle errors +STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}El tren no puede rebasar la señal si está en peligro... +STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}No se puede cambiar la dirección del tren... +STR_ERROR_TRAIN_START_NO_POWER :El tren no tiene potencia + +STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}No se puede girar vehículo de carretera... + +STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}La aeronave está en vuelo + +# Order related errors +STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Ya no hay espacio para más órdenes +STR_ERROR_TOO_MANY_ORDERS :{WHITE}Demasiadas órdenes +STR_ERROR_CAN_T_INSERT_NEW_ORDER :{WHITE}No se puede añadir otra orden... +STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}No se puede eliminar esta orden... +STR_ERROR_CAN_T_MODIFY_THIS_ORDER :{WHITE}No se puede modificar esta orden... +STR_ERROR_CAN_T_MOVE_THIS_ORDER :{WHITE}No se puede mover esta orden... +STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}No se puede saltar la orden actual... +STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}No se puede saltar a la orden elegida... +STR_ERROR_CAN_T_COPY_SHARE_ORDER :{WHITE}... el vehículo no puede ir a todas las estaciones +STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... el vehículo no puede ir a esa estación +STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... un vehículo que comparte esta orden no puede ir a esa estación + +STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}No se puede compartir la lista de órdenes... +STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}No se puede dejar de compartir la lista de órdenes... +STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}No se puede copiar la lista de órdenes... +STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... demasiado lejos del destino anterior +STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... la aeronave no tiene suficiente alcance + +# Timetable related errors +STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}No se pueden asignar itinerarios al vehículo... +STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Los vehículos solo pueden esperar en estaciones +STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Este vehículo se detendrá en esta estación + +# Sign related errors +STR_ERROR_TOO_MANY_SIGNS :{WHITE}... demasiados carteles +STR_ERROR_CAN_T_PLACE_SIGN_HERE :{WHITE}No se puede poner cartel aquí... +STR_ERROR_CAN_T_CHANGE_SIGN_NAME :{WHITE}No se puede cambiar el nombre del cartel... +STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}No se puede quitar el cartel... + +# Translatable comment for OpenTTD's desktop shortcut +STR_DESKTOP_SHORTCUT_COMMENT :Un juego de simulación basado en Transport Tycoon Deluxe + +# Translatable descriptions in media/baseset/*.ob* files +STR_BASEGRAPHICS_DOS_DESCRIPTION :Gráficos originales de Transport Tycoon Deluxe para DOS. +STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :Gráficos originales de Transport Tycoon Deluxe para DOS (en alemán). +STR_BASEGRAPHICS_WIN_DESCRIPTION :Gráficos originales de Transport Tycoon Deluxe para Windows. +STR_BASESOUNDS_DOS_DESCRIPTION :Sonidos originales de Transport Tycoon Deluxe para DOS. +STR_BASESOUNDS_WIN_DESCRIPTION :Sonidos originales de Transport Tycoon Deluxe para Windows. +STR_BASESOUNDS_NONE_DESCRIPTION :Paquete de sonidos vacío +STR_BASEMUSIC_WIN_DESCRIPTION :Música original de Transport Tycoon Deluxe para Windows. +STR_BASEMUSIC_NONE_DESCRIPTION :Paquete de música vacío + +##id 0x2000 +# Town building names +STR_TOWN_BUILDING_NAME_TALL_OFFICE_BLOCK_1 :Edificio alto de oficinas +STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_1 :Edificio de oficinas +STR_TOWN_BUILDING_NAME_SMALL_BLOCK_OF_FLATS_1 :Conjunto habitacional pequeño +STR_TOWN_BUILDING_NAME_CHURCH_1 :Iglesia +STR_TOWN_BUILDING_NAME_LARGE_OFFICE_BLOCK_1 :Complejo de oficinas +STR_TOWN_BUILDING_NAME_TOWN_HOUSES_1 :Casas del pueblo +STR_TOWN_BUILDING_NAME_HOTEL_1 :Hotel +STR_TOWN_BUILDING_NAME_STATUE_1 :Estatua +STR_TOWN_BUILDING_NAME_FOUNTAIN_1 :Fuente +STR_TOWN_BUILDING_NAME_PARK_1 :Parque +STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_2 :Edificio de oficinas +STR_TOWN_BUILDING_NAME_SHOPS_AND_OFFICES_1 :Tiendas y oficinas +STR_TOWN_BUILDING_NAME_MODERN_OFFICE_BUILDING_1 :Edificio de oficinas moderno +STR_TOWN_BUILDING_NAME_WAREHOUSE_1 :Almacén +STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_3 :Edificio de oficinas +STR_TOWN_BUILDING_NAME_STADIUM_1 :Estadio +STR_TOWN_BUILDING_NAME_OLD_HOUSES_1 :Casas viejas +STR_TOWN_BUILDING_NAME_COTTAGES_1 :Casas rurales +STR_TOWN_BUILDING_NAME_HOUSES_1 :Casas +STR_TOWN_BUILDING_NAME_FLATS_1 :Departamentos +STR_TOWN_BUILDING_NAME_TALL_OFFICE_BLOCK_2 :Edificio alto de oficinas +STR_TOWN_BUILDING_NAME_SHOPS_AND_OFFICES_2 :Tiendas y oficinas +STR_TOWN_BUILDING_NAME_SHOPS_AND_OFFICES_3 :Tiendas y oficinas +STR_TOWN_BUILDING_NAME_THEATER_1 :Teatro +STR_TOWN_BUILDING_NAME_STADIUM_2 :Estadio +STR_TOWN_BUILDING_NAME_OFFICES_1 :Oficinas +STR_TOWN_BUILDING_NAME_HOUSES_2 :Casas +STR_TOWN_BUILDING_NAME_CINEMA_1 :Cine +STR_TOWN_BUILDING_NAME_SHOPPING_MALL_1 :Centro comercial +STR_TOWN_BUILDING_NAME_IGLOO_1 :Iglú +STR_TOWN_BUILDING_NAME_TEPEES_1 :Tipis +STR_TOWN_BUILDING_NAME_TEAPOT_HOUSE_1 :Casa de olla de té +STR_TOWN_BUILDING_NAME_PIGGY_BANK_1 :Alcancía + +##id 0x4800 +# industry names +STR_INDUSTRY_NAME_COAL_MINE :{G=f}Mina de carbón +STR_INDUSTRY_NAME_POWER_STATION :{G=f}Central eléctrica +STR_INDUSTRY_NAME_SAWMILL :{G=m}Aserradero +STR_INDUSTRY_NAME_FOREST :{G=m}Bosque +STR_INDUSTRY_NAME_OIL_REFINERY :{G=f}Refinería de petróleo +STR_INDUSTRY_NAME_OIL_RIG :{G=f}Plataforma petrolífera +STR_INDUSTRY_NAME_FACTORY :{G=f}Fábrica +STR_INDUSTRY_NAME_PRINTING_WORKS :{G=f}Imprenta +STR_INDUSTRY_NAME_STEEL_MILL :{G=f}Siderúrgica +STR_INDUSTRY_NAME_FARM :{G=f}Granja +STR_INDUSTRY_NAME_COPPER_ORE_MINE :{G=f}Mina de cobre +STR_INDUSTRY_NAME_OIL_WELLS :{G=m}Pozos petrolíferos +STR_INDUSTRY_NAME_BANK :{G=m}Banco +STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT :{G=f}Planta procesadora de alimentos +STR_INDUSTRY_NAME_PAPER_MILL :{G=f}Fábrica de papel +STR_INDUSTRY_NAME_GOLD_MINE :{G=f}Mina de oro +STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC :{G=m}Banco +STR_INDUSTRY_NAME_DIAMOND_MINE :{G=f}Mina de diamantes +STR_INDUSTRY_NAME_IRON_ORE_MINE :{G=f}Mina de hierro +STR_INDUSTRY_NAME_FRUIT_PLANTATION :{G=f}Plantación de fruta +STR_INDUSTRY_NAME_RUBBER_PLANTATION :{G=f}Plantación de caucho +STR_INDUSTRY_NAME_WATER_SUPPLY :{G=m}Suministro de agua +STR_INDUSTRY_NAME_WATER_TOWER :{G=f}Torre de agua +STR_INDUSTRY_NAME_FACTORY_2 :{G=f}Fábrica +STR_INDUSTRY_NAME_FARM_2 :{G=f}Granja +STR_INDUSTRY_NAME_LUMBER_MILL :{G=m}Aserradero +STR_INDUSTRY_NAME_COTTON_CANDY_FOREST :{G=m}Bosque de algodón de azúcar +STR_INDUSTRY_NAME_CANDY_FACTORY :{G=f}Fábrica de dulces +STR_INDUSTRY_NAME_BATTERY_FARM :{G=f}Granja de pilas +STR_INDUSTRY_NAME_COLA_WELLS :{G=m}Pozos de cola +STR_INDUSTRY_NAME_TOY_SHOP :{G=f}Tienda de juguetes +STR_INDUSTRY_NAME_TOY_FACTORY :{G=f}Fábrica de juguetes +STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS :{G=f}Fuentes de plástico +STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY :{G=f}Fábrica de refrescos +STR_INDUSTRY_NAME_BUBBLE_GENERATOR :{G=m}Generador de burbujas +STR_INDUSTRY_NAME_TOFFEE_QUARRY :{G=f}Cantera de caramelos +STR_INDUSTRY_NAME_SUGAR_MINE :{G=f}Mina de azúcar + +############ WARNING, using range 0x6000 for strings that are stored in the savegame +############ These strings may never get a new id, or savegames will break! +##id 0x6000 +STR_SV_EMPTY : +STR_SV_UNNAMED :Sin nombre +STR_SV_TRAIN_NAME :Tren {COMMA} +STR_SV_ROAD_VEHICLE_NAME :Vehículo de carretera {COMMA} +STR_SV_SHIP_NAME :Barco {COMMA} +STR_SV_AIRCRAFT_NAME :Aeronave {COMMA} + +STR_SV_STNAME :{STRING} +STR_SV_STNAME_NORTH :{STRING} Norte +STR_SV_STNAME_SOUTH :{STRING} Sur +STR_SV_STNAME_EAST :{STRING} Este +STR_SV_STNAME_WEST :{STRING} Oeste +STR_SV_STNAME_CENTRAL :{STRING} Central +STR_SV_STNAME_TRANSFER :Transferencia {STRING} +STR_SV_STNAME_HALT :Paradad {STRING} +STR_SV_STNAME_VALLEY :Valle de {STRING} +STR_SV_STNAME_HEIGHTS :Altos de {STRING} +STR_SV_STNAME_WOODS :Alameda de {STRING} +STR_SV_STNAME_LAKESIDE :Lago de {STRING} +STR_SV_STNAME_EXCHANGE :Intercambio {STRING} +STR_SV_STNAME_AIRPORT :Aeropuerto de {STRING} +STR_SV_STNAME_OILFIELD :Yacimiento petrolífero de {STRING} +STR_SV_STNAME_MINES :Minas de {STRING} +STR_SV_STNAME_DOCKS :Muelles de {STRING} +STR_SV_STNAME_BUOY :{STRING} +STR_SV_STNAME_WAYPOINT :{STRING} +##id 0x6020 +STR_SV_STNAME_ANNEXE :Anexo {STRING} +STR_SV_STNAME_SIDINGS :Inmediaciones de {STRING} +STR_SV_STNAME_BRANCH :Ramal de {STRING} +STR_SV_STNAME_UPPER :Alto {STRING} +STR_SV_STNAME_LOWER :Bajo {STRING} +STR_SV_STNAME_HELIPORT :Helipuerto de {STRING} +STR_SV_STNAME_FOREST :Bosque de {STRING} +STR_SV_STNAME_FALLBACK :{STRING} Estación #{NUM} +############ end of savegame specific region! + +##id 0x8000 +# Vehicle names +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_KIRBY_PAUL_TANK_STEAM :Kirby Paul Tank (vapor) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MJS_250_DIESEL :MJS 250 (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_PLODDYPHUT_CHOO_CHOO :Ploddyphut Choo-Choo +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_POWERNAUT_CHOO_CHOO :Powernaut Choo-Choo +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MIGHTYMOVER_CHOO_CHOO :MightyMover Choo-Choo +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_PLODDYPHUT_DIESEL :Ploddyphut Diésel +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_POWERNAUT_DIESEL :Powernaut Diésel +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_WILLS_2_8_0_STEAM :Wills 2-8-0 (vapor) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_CHANEY_JUBILEE_STEAM :Chaney 'Jubilee' (vapor) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_GINZU_A4_STEAM :Ginzu 'A4' (vapor) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_8P_STEAM :SH '8P' (vapor) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MANLEY_MOREL_DMU_DIESEL :Manley-Morel DMU (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_DASH_DIESEL :'Dash' (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_HENDRY_25_DIESEL :SH/Hendry '25' (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_UU_37_DIESEL :UU '37' (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_FLOSS_47_DIESEL :Floss '47' (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_CS_4000_DIESEL :CS 4000 (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_CS_2400_DIESEL :CS 2400 (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_CENTENNIAL_DIESEL :Centennial (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_KELLING_3100_DIESEL :Kelling 3100 (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_TURNER_TURBO_DIESEL :Turner Turbo (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MJS_1000_DIESEL :MJS 1000 (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_125_DIESEL :SH '125' (diésel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_30_ELECTRIC :SH '30' (eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_40_ELECTRIC :SH '40' (eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_T_I_M_ELECTRIC :'T.I.M.' (eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_ASIASTAR_ELECTRIC :'AsiaStar' (eléctrica) +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PASSENGER_CAR :Carro de pasajeros +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_MAIL_VAN :Vagón de correos +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :Vagón de carbón +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_OIL_TANKER :Cisterna de petróleo +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_LIVESTOCK_VAN :Vagón de ganado +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GOODS_VAN :Vagón de mercancías +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GRAIN_HOPPER :Tolva de grano +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WOOD_TRUCK :Vagón de madera +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_IRON_ORE_HOPPER :Tolva de mineral de hierro +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_STEEL_TRUCK :Vagón de acero +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_ARMORED_VAN :Vagón blindado +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FOOD_VAN :Vagón de alimento +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PAPER_TRUCK :Vagón de papel +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :Tolva de mineral de cobre +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WATER_TANKER :Cisterna de agua +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FRUIT_TRUCK :Vagón de fruta +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_RUBBER_TRUCK :Vagón de caucho +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_SUGAR_TRUCK :Vagón de azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COTTON_CANDY_HOPPER :Tolva de algodón de azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOFFEE_HOPPER :Tolva de caramelos +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BUBBLE_VAN :Vagón de burbujas +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COLA_TANKER :Cisterna de cola +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_CANDY_VAN :Vagón de dulces +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOY_VAN :Vagón de juguetes +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BATTERY_TRUCK :Vagón de pilas +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :Vagón de refrescos +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PLASTIC_TRUCK :Vagón de plásticos +STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_X2001_ELECTRIC :'X2001' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_WIZZOWOW_Z99 :Wizzowow Z99 +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :Carro de pasajeros +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_MAIL_VAN :Vagón de correo +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :Vagón de carbón +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_OIL_TANKER :Cisterna de petróleo +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_LIVESTOCK_VAN :Vagón de ganado +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GOODS_VAN :Vagón de mercancías +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GRAIN_HOPPER :Tolva de grano +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WOOD_TRUCK :Vagón de madera +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_IRON_ORE_HOPPER :Tolva de mineral de hierro +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_STEEL_TRUCK :Vagón de acero +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_ARMORED_VAN :Vagón blindado +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FOOD_VAN :Vagón de alimento +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PAPER_TRUCK :Vagón de papel +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :Tolva de mineral de cobre +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WATER_TANKER :Cisterna de agua +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FRUIT_TRUCK :Vagón de fruta +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_RUBBER_TRUCK :Vagón de caucho +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_SUGAR_TRUCK :Vagón de azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COTTON_CANDY_HOPPER :Tolva de algodón de azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOFFEE_HOPPER :Tolva de caramelos +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BUBBLE_VAN :Vagón de burbujas +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COLA_TANKER :Cisterna de cola +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_CANDY_VAN :Vagón de dulces +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :Vagón de juguetes +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :Vagón de pilas +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :Vagón de refrescos +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PLASTIC_TRUCK :Vagón de plásticos +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cyclops' (eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera' (eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :Vagón de pasajeros +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :Vagón de correo +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COAL_CAR :Vagón de carbón +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_OIL_TANKER :Cisterna de petróleo +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_LIVESTOCK_VAN :Vagón de ganado +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GOODS_VAN :Vagón de mercancías +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GRAIN_HOPPER :Vagón de tolva de grano +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WOOD_TRUCK :Vagón de madera +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_IRON_ORE_HOPPER :Tolva de mineral de hierro +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_STEEL_TRUCK :Vagón de acero +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_ARMORED_VAN :Vagón blindado +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FOOD_VAN :Vagón de alimento +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PAPER_TRUCK :Vagón de papel +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :Tolva de mineral de cobre +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WATER_TANKER :Cisterna de agua +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FRUIT_TRUCK :Vagón de fruta +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_RUBBER_TRUCK :Vagón de caucho +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_SUGAR_TRUCK :Vagón de azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COTTON_CANDY_HOPPER :Tolva de algodón de azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOFFEE_HOPPER :Tolva de caramelos +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BUBBLE_VAN :Vagón de burbujas +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COLA_TANKER :Cisterna de cola +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_CANDY_VAN :Vagón de dulces +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOY_VAN :Vagón de juguetes +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BATTERY_TRUCK :Vagón de pilas +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FIZZY_DRINK_TRUCK :Vagón de refrescos +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PLASTIC_TRUCK :Vagón de plásticos +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_REGAL_BUS :Autobús MPS Regal +STR_VEHICLE_NAME_ROAD_VEHICLE_HEREFORD_LEOPARD_BUS :Autobús Hereford Leopard +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_BUS :Autobús Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_MKII_SUPERBUS :Superbús Foster MkII +STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKI_BUS :Autobús Ploddyphut MkI +STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKII_BUS :Autobús Ploddyphut MkII +STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKIII_BUS :Autobús Ploddyphut MkIII +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_COAL_TRUCK :Camión carbonero Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COAL_TRUCK :Camión carbonero Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_DW_COAL_TRUCK :Camión carbonero DW +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_MAIL_TRUCK :Camión de correo MPS +STR_VEHICLE_NAME_ROAD_VEHICLE_REYNARD_MAIL_TRUCK :Camión de correo Reynard +STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_MAIL_TRUCK :Camión de correo Perry +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_MAIL_TRUCK :Camión de correo MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_MAIL_TRUCK :Camión de correo Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_MAIL_TRUCK :Camión de correo Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_WITCOMBE_OIL_TANKER :Cisterna de petróleo Witcombe +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_OIL_TANKER :Cisterna de petróleo Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_OIL_TANKER :Cisterna de petróleo Perry +STR_VEHICLE_NAME_ROAD_VEHICLE_TALBOTT_LIVESTOCK_VAN :Camión de ganado Talbott +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_LIVESTOCK_VAN :Camión de ganado Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_LIVESTOCK_VAN :Camión de ganado Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_GOODS_TRUCK :Camión de mercancías Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_CRAIGHEAD_GOODS_TRUCK :Camión de mercancías Craighead +STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_GOODS_TRUCK :Camión de mercancías Goss +STR_VEHICLE_NAME_ROAD_VEHICLE_HEREFORD_GRAIN_TRUCK :Camión granero Hereford +STR_VEHICLE_NAME_ROAD_VEHICLE_THOMAS_GRAIN_TRUCK :Camión granero Thomas +STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_GRAIN_TRUCK :Camión granero Goss +STR_VEHICLE_NAME_ROAD_VEHICLE_WITCOMBE_WOOD_TRUCK :Camión maderero Witcombe +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_WOOD_TRUCK :Camión maderero Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_MORELAND_WOOD_TRUCK :Camión maderero Moreland +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_IRON_ORE_TRUCK :Camión de hierro MPS +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_IRON_ORE_TRUCK :Camión de hierro Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_IRON_ORE_TRUCK :Camión de hierro Chippy +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_STEEL_TRUCK :Camión de acero Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_STEEL_TRUCK :Camión de acero Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_KELLING_STEEL_TRUCK :Camión de acero Kelling +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_ARMORED_TRUCK :Camión blindado Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_ARMORED_TRUCK :Camión blindado Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_ARMORED_TRUCK :Camión blindado Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_FOOD_VAN :Camión de alimentos Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_FOOD_VAN :Camión de alimentos Perry +STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_FOOD_VAN :Camión de alimentos Chippy +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_PAPER_TRUCK :Camión de papel Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_PAPER_TRUCK :Camión de papel Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_PAPER_TRUCK :Camión de papel MPS +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_COPPER_ORE_TRUCK :Camión de cobre MPS +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COPPER_ORE_TRUCK :Camión de cobre Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_COPPER_ORE_TRUCK :Camión de cobre Goss +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_WATER_TANKER :Cisterna de agua Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_WATER_TANKER :Cisterna de agua Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_WATER_TANKER :Cisterna de agua MPS +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_FRUIT_TRUCK :Camión frutero Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_FRUIT_TRUCK :Camión frutero Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_KELLING_FRUIT_TRUCK :Camión frutero Kelling +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_RUBBER_TRUCK :Camión de caucho Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_RUBBER_TRUCK :Camión de caucho Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_RMT_RUBBER_TRUCK :Camión de caucho RMT +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_SUGAR_TRUCK :Camión de azúcar MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_SUGAR_TRUCK :Camión de azúcar Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_SUGAR_TRUCK :Camión de azúcar Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COLA_TRUCK :Camión de cola MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COLA_TRUCK :Camión de cola Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COLA_TRUCK :Camión de cola Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COTTON_CANDY :Camión de algodón de azúcar MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COTTON_CANDY :Camión de algodón de azúcar Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COTTON_CANDY_TRUCK :Camión de algodón de azúcar Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_TOFFEE_TRUCK :Camión de caramelos MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_TOFFEE_TRUCK :Camión de caramelos Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_TOFFEE_TRUCK :Camión de caramelos Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_TOY_VAN :Camión de juguetes MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_TOY_VAN :Camión de juguetes Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_TOY_VAN :Camión de juguetes Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_CANDY_TRUCK :Camión de dulces MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_CANDY_TRUCK :Camión de dulces Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_CANDY_TRUCK :Camión de dulces Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_BATTERY_TRUCK :Camión de pilas MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_BATTERY_TRUCK :Camión de pilas Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_BATTERY_TRUCK :Camión de pilas Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_FIZZY_DRINK :Camión de refrescos MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_FIZZY_DRINK :Camión de refrescos Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_FIZZY_DRINK_TRUCK :Camión de refrescos Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_PLASTIC_TRUCK :Camión de plásticos MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_PLASTIC_TRUCK :Camión de plásticos Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_PLASTIC_TRUCK :Camión de plásticos Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_BUBBLE_TRUCK :Camión de burbujas MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_BUBBLE_TRUCK :Camión de burbujas Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_BUBBLE_TRUCK :Camión de burbujas Wizzowow +STR_VEHICLE_NAME_SHIP_MPS_OIL_TANKER :Petrolero MPS +STR_VEHICLE_NAME_SHIP_CS_INC_OIL_TANKER :Petrolero CS-Inc. +STR_VEHICLE_NAME_SHIP_MPS_PASSENGER_FERRY :Transbordador MPS +STR_VEHICLE_NAME_SHIP_FFP_PASSENGER_FERRY :Transbordador FFP +STR_VEHICLE_NAME_SHIP_BAKEWELL_300_HOVERCRAFT :Aerodeslizador Bakewell 300 +STR_VEHICLE_NAME_SHIP_CHUGGER_CHUG_PASSENGER :Transbordador Chugger-Chug +STR_VEHICLE_NAME_SHIP_SHIVERSHAKE_PASSENGER_FERRY :Transbordador Shivershake +STR_VEHICLE_NAME_SHIP_YATE_CARGO_SHIP :Buque carguero Yate +STR_VEHICLE_NAME_SHIP_BAKEWELL_CARGO_SHIP :Buque carguero Bakewell +STR_VEHICLE_NAME_SHIP_MIGHTYMOVER_CARGO_SHIP :Buque carguero MightyMover +STR_VEHICLE_NAME_SHIP_POWERNAUT_CARGO_SHIP :Buque carguero Powernaut +STR_VEHICLE_NAME_AIRCRAFT_SAMPSON_U52 :Sampson U52 +STR_VEHICLE_NAME_AIRCRAFT_COLEMAN_COUNT :Coleman Count +STR_VEHICLE_NAME_AIRCRAFT_FFP_DART :FFP Dart +STR_VEHICLE_NAME_AIRCRAFT_YATE_HAUGAN :Yate Haugan +STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_COTSWALD_LB_3 :Bakewell Cotswald LB-3 +STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_LUCKETT_LB_8 :Bakewell Luckett LB-8 +STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_LUCKETT_LB_9 :Bakewell Luckett LB-9 +STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_LUCKETT_LB80 :Bakewell Luckett LB80 +STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_LUCKETT_LB_10 :Bakewell Luckett LB-10 +STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_LUCKETT_LB_11 :Bakewell Luckett LB-11 +STR_VEHICLE_NAME_AIRCRAFT_YATE_AEROSPACE_YAC_1_11 :Yate Aerospace YAC 1-11 +STR_VEHICLE_NAME_AIRCRAFT_DARWIN_100 :Darwin 100 +STR_VEHICLE_NAME_AIRCRAFT_DARWIN_200 :Darwin 200 +STR_VEHICLE_NAME_AIRCRAFT_DARWIN_300 :Darwin 300 +STR_VEHICLE_NAME_AIRCRAFT_DARWIN_400 :Darwin 400 +STR_VEHICLE_NAME_AIRCRAFT_DARWIN_500 :Darwin 500 +STR_VEHICLE_NAME_AIRCRAFT_DARWIN_600 :Darwin 600 +STR_VEHICLE_NAME_AIRCRAFT_GURU_GALAXY :Guru Galaxy +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A21 :Aerotaxi A21 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A31 :Aerotaxi A31 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A32 :Aerotaxi A32 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A33 :Aerotaxi A33 +STR_VEHICLE_NAME_AIRCRAFT_YATE_AEROSPACE_YAE46 :Yate Aerospace YAe46 +STR_VEHICLE_NAME_AIRCRAFT_DINGER_100 :Dinger 100 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A34_1000 :Aerotaxi A34-1000 +STR_VEHICLE_NAME_AIRCRAFT_YATE_Z_SHUTTLE :Yate Z-Shuttle +STR_VEHICLE_NAME_AIRCRAFT_KELLING_K1 :Kelling K1 +STR_VEHICLE_NAME_AIRCRAFT_KELLING_K6 :Kelling K6 +STR_VEHICLE_NAME_AIRCRAFT_KELLING_K7 :Kelling K7 +STR_VEHICLE_NAME_AIRCRAFT_DARWIN_700 :Darwin 700 +STR_VEHICLE_NAME_AIRCRAFT_FFP_HYPERDART_2 :FFP Hyperdart 2 +STR_VEHICLE_NAME_AIRCRAFT_DINGER_200 :Dinger 200 +STR_VEHICLE_NAME_AIRCRAFT_DINGER_1000 :Dinger 1000 +STR_VEHICLE_NAME_AIRCRAFT_PLODDYPHUT_100 :Ploddyphut 100 +STR_VEHICLE_NAME_AIRCRAFT_PLODDYPHUT_500 :Ploddyphut 500 +STR_VEHICLE_NAME_AIRCRAFT_FLASHBANG_X1 :Flashbang X1 +STR_VEHICLE_NAME_AIRCRAFT_JUGGERPLANE_M1 :Juggerplane M1 +STR_VEHICLE_NAME_AIRCRAFT_FLASHBANG_WIZZER :Flashbang Wizzer +STR_VEHICLE_NAME_AIRCRAFT_TRICARIO_HELICOPTER :Helicóptero Tricario +STR_VEHICLE_NAME_AIRCRAFT_GURU_X2_HELICOPTER :Helicóptero Guru X2 +STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helicóptero Powernaut + +##id 0x8800 +# Formatting of some strings +STR_FORMAT_DATE_TINY :{0:STRING}/{1:STRING}/{2:NUM} +STR_FORMAT_DATE_SHORT :{STRING} {NUM} +STR_FORMAT_DATE_LONG :{0:STRING} de {1:STRING} de {2:NUM} +STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING} + +STR_FORMAT_BUOY_NAME :Boya {TOWN} +STR_FORMAT_BUOY_NAME_SERIAL :Boya {TOWN} #{COMMA} +STR_FORMAT_COMPANY_NUM :(empresa {COMMA}) +STR_FORMAT_GROUP_NAME :Grupo {COMMA} +STR_FORMAT_INDUSTRY_NAME :{TOWN}, {STRING} +STR_FORMAT_WAYPOINT_NAME :Puesto guía {TOWN} +STR_FORMAT_WAYPOINT_NAME_SERIAL :Puesto guía {TOWN} #{COMMA} + +STR_FORMAT_DEPOT_NAME_TRAIN :Depósito de trenes de {TOWN} +STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :Depósito de trenes #{1:COMMA} de {0:TOWN} +STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Depósito de vehículos de carretera de {TOWN} +STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :Depósito de vehículos de carretera #{1:COMMA} de {0:TOWN} +STR_FORMAT_DEPOT_NAME_SHIP :Astillero de {TOWN} +STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :Astillero #{1:COMMA} de {0:TOWN} +STR_FORMAT_DEPOT_NAME_AIRCRAFT :Hangar de {STATION} + +STR_UNKNOWN_STATION :estación desconocida +STR_DEFAULT_SIGN_NAME :Cartel +STR_COMPANY_SOMEONE :alguien + +STR_SAVEGAME_NAME_DEFAULT :{COMPANY}, {STRING} +STR_SAVEGAME_NAME_SPECTATOR :Espectador, {1:STRING} + +# Viewport strings +STR_VIEWPORT_TOWN_POP :{WHITE}{TOWN} ({COMMA}) +STR_VIEWPORT_TOWN :{WHITE}{TOWN} +STR_VIEWPORT_TOWN_TINY_BLACK :{TINY_FONT}{BLACK}{TOWN} +STR_VIEWPORT_TOWN_TINY_WHITE :{TINY_FONT}{WHITE}{TOWN} + +STR_VIEWPORT_SIGN_SMALL_BLACK :{TINY_FONT}{BLACK}{SIGN} +STR_VIEWPORT_SIGN_SMALL_WHITE :{TINY_FONT}{WHITE}{SIGN} + +STR_VIEWPORT_STATION :{STATION} {STATION_FEATURES} +STR_VIEWPORT_STATION_TINY :{TINY_FONT}{STATION} + +STR_VIEWPORT_WAYPOINT :{WAYPOINT} +STR_VIEWPORT_WAYPOINT_TINY :{TINY_FONT}{WAYPOINT} + +# Simple strings to get specific types of data +STR_COMPANY_NAME :{COMPANY} +STR_COMPANY_NAME_COMPANY_NUM :{COMPANY} {COMPANY_NUM} +STR_DEPOT_NAME :{DEPOT} +STR_ENGINE_NAME :{ENGINE} +STR_HIDDEN_ENGINE_NAME :{ENGINE} (oculto) +STR_GROUP_NAME :{GROUP} +STR_INDUSTRY_NAME :{INDUSTRY} +STR_PRESIDENT_NAME :{PRESIDENT_NAME} +STR_SIGN_NAME :{SIGN} +STR_STATION_NAME :{STATION} +STR_TOWN_NAME :{TOWN} +STR_VEHICLE_NAME :{VEHICLE} +STR_WAYPOINT_NAME :{WAYPOINT} + +STR_JUST_CARGO :{CARGO_LONG} +STR_JUST_CHECKMARK :{CHECKMARK} +STR_JUST_COMMA :{COMMA} +STR_JUST_CURRENCY_SHORT :{CURRENCY_SHORT} +STR_JUST_CURRENCY_LONG :{CURRENCY_LONG} +STR_JUST_CARGO_LIST :{CARGO_LIST} +STR_JUST_INT :{NUM} +STR_JUST_DATE_TINY :{DATE_TINY} +STR_JUST_DATE_SHORT :{DATE_SHORT} +STR_JUST_DATE_LONG :{DATE_LONG} +STR_JUST_DATE_ISO :{DATE_ISO} +STR_JUST_STRING :{STRING} +STR_JUST_STRING_STRING :{STRING}{STRING} +STR_JUST_RAW_STRING :{STRING} +STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING} + +# Slightly 'raw' stringcodes with colour or size +STR_BLACK_COMMA :{BLACK}{COMMA} +STR_TINY_BLACK_COMA :{TINY_FONT}{BLACK}{COMMA} +STR_TINY_COMMA :{TINY_FONT}{COMMA} +STR_BLUE_COMMA :{BLUE}{COMMA} +STR_RED_COMMA :{RED}{COMMA} +STR_WHITE_COMMA :{WHITE}{COMMA} +STR_TINY_BLACK_DECIMAL :{TINY_FONT}{BLACK}{DECIMAL} +STR_COMPANY_MONEY :{WHITE}{CURRENCY_LONG} +STR_BLACK_DATE_LONG :{BLACK}{DATE_LONG} +STR_WHITE_DATE_LONG :{WHITE}{DATE_LONG} +STR_SHORT_DATE :{WHITE}{DATE_TINY} +STR_DATE_LONG_SMALL :{TINY_FONT}{BLACK}{DATE_LONG} +STR_TINY_GROUP :{TINY_FONT}{GROUP} +STR_BLACK_INT :{BLACK}{NUM} +STR_ORANGE_INT :{ORANGE}{NUM} +STR_WHITE_SIGN :{WHITE}{SIGN} +STR_TINY_BLACK_STATION :{TINY_FONT}{BLACK}{STATION} +STR_BLACK_STRING :{BLACK}{STRING} +STR_BLACK_RAW_STRING :{BLACK}{STRING} +STR_ORANGE_STRING :{ORANGE}{STRING} +STR_LTBLUE_STRING :{LTBLUE}{STRING} +STR_WHITE_STRING :{WHITE}{STRING} +STR_ORANGE_STRING1_WHITE :{ORANGE}{STRING}{WHITE} +STR_ORANGE_STRING1_LTBLUE :{ORANGE}{STRING}{LTBLUE} +STR_TINY_BLACK_HEIGHT :{TINY_FONT}{BLACK}{HEIGHT} +STR_TINY_BLACK_VEHICLE :{TINY_FONT}{BLACK}{VEHICLE} +STR_TINY_RIGHT_ARROW :{TINY_FONT}{RIGHT_ARROW} + +STR_BLACK_1 :{BLACK}1 +STR_BLACK_2 :{BLACK}2 +STR_BLACK_3 :{BLACK}3 +STR_BLACK_4 :{BLACK}4 +STR_BLACK_5 :{BLACK}5 +STR_BLACK_6 :{BLACK}6 +STR_BLACK_7 :{BLACK}7 + +STR_TRAIN :{BLACK}{TRAIN} +STR_BUS :{BLACK}{BUS} +STR_LORRY :{BLACK}{LORRY} +STR_PLANE :{BLACK}{PLANE} +STR_SHIP :{BLACK}{SHIP} + +STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY}) From b21e13a2a47849ece97c84d05a9441b357893215 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 30 Apr 2016 14:33:36 +0000 Subject: [PATCH 043/417] (svn r27553) -Update: Project files --- projects/langs_vs100.vcxproj | 6 ++++++ projects/langs_vs100.vcxproj.filters | 3 +++ projects/langs_vs140.vcxproj | 6 ++++++ projects/langs_vs140.vcxproj.filters | 3 +++ projects/langs_vs80.vcproj | 15 +++++++++++++++ projects/langs_vs90.vcproj | 15 +++++++++++++++ 6 files changed, 48 insertions(+) diff --git a/projects/langs_vs100.vcxproj b/projects/langs_vs100.vcxproj index 078a7b374a..fc77e03bec 100644 --- a/projects/langs_vs100.vcxproj +++ b/projects/langs_vs100.vcxproj @@ -317,6 +317,12 @@ ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) ..\bin\lang\slovenian.lng;%(Outputs) + + Generating spanish_MX language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\spanish_MX.lng;%(Outputs) + Generating spanish language file ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" diff --git a/projects/langs_vs100.vcxproj.filters b/projects/langs_vs100.vcxproj.filters index fb16aa64e0..0afc8c969a 100644 --- a/projects/langs_vs100.vcxproj.filters +++ b/projects/langs_vs100.vcxproj.filters @@ -142,6 +142,9 @@ Translations + + Translations + Translations diff --git a/projects/langs_vs140.vcxproj b/projects/langs_vs140.vcxproj index 0907bfa6f5..b866630d00 100644 --- a/projects/langs_vs140.vcxproj +++ b/projects/langs_vs140.vcxproj @@ -317,6 +317,12 @@ ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) ..\bin\lang\slovenian.lng;%(Outputs) + + Generating spanish_MX language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\spanish_MX.lng;%(Outputs) + Generating spanish language file ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" diff --git a/projects/langs_vs140.vcxproj.filters b/projects/langs_vs140.vcxproj.filters index fb16aa64e0..0afc8c969a 100644 --- a/projects/langs_vs140.vcxproj.filters +++ b/projects/langs_vs140.vcxproj.filters @@ -142,6 +142,9 @@ Translations + + Translations + Translations diff --git a/projects/langs_vs80.vcproj b/projects/langs_vs80.vcproj index 1413a80d27..e683d57353 100644 --- a/projects/langs_vs80.vcproj +++ b/projects/langs_vs80.vcproj @@ -738,6 +738,21 @@ /> + + + + + diff --git a/projects/langs_vs90.vcproj b/projects/langs_vs90.vcproj index db6fef1a43..c1f028233e 100644 --- a/projects/langs_vs90.vcproj +++ b/projects/langs_vs90.vcproj @@ -739,6 +739,21 @@ /> + + + + + From 3ae6dab58b81df781be0ee8b2a3c90300bf427a8 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 7 May 2016 17:45:33 +0000 Subject: [PATCH 044/417] (svn r27554) -Update from Eints: korean: 1 change by Gimel3830 --- 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 8934559eb7..71491a4269 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1762,7 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}새로 STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}인공지능/게임 스크립트 설정창을 엽니다. STR_INTRO_TOOLTIP_QUIT :{BLACK}'OpenTTD'를 종료합니다. -STR_INTRO_TRANSLATION :{BLACK}이 버전의 OpenTTD는 {NUM}개의 문장이 한국어로 번역되지 않았습니다. 한국어 번역자에게 번역을 의뢰하십시오.{}텔크 (telk5093@gmail.com) +STR_INTRO_TRANSLATION :{BLACK}이 버전의 OpenTTD는 {NUM}개의 문장이 한국어로 번역되지 않았습니다. OpenTTD가 더욱 발전할 수 있도록 번역에 참여하세요. 자세한 사항은 readme.txt를 참고하세요. # Quit window STR_QUIT_CAPTION :{WHITE}종료 From 3d476cf43282833f92d1c718351f570c12d501f2 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 8 May 2016 17:45:37 +0000 Subject: [PATCH 045/417] (svn r27555) -Update from Eints: croatian: 3 changes by VoyagerOne --- src/lang/croatian.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index cae2273bc0..25843d40b2 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -200,7 +200,7 @@ STR_QUANTITY_GRAIN :{WEIGHT_LONG} STR_QUANTITY_WOOD :{WEIGHT_LONG} drveta STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} željezne rude STR_QUANTITY_STEEL :{WEIGHT_LONG} čelika -STR_QUANTITY_VALUABLES :{COMMA}{NBSP}vreć{P a e a} s vrijednosnicama +STR_QUANTITY_VALUABLES :{COMMA}{NBSP}vreć{P a e a} s dragocjenostima STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} bakrene rude STR_QUANTITY_MAIZE :{WEIGHT_LONG} kukuruza STR_QUANTITY_FRUIT :{WEIGHT_LONG} voća @@ -242,7 +242,7 @@ STR_ABBREV_FRUIT :{TINY_FONT}VĆ STR_ABBREV_DIAMONDS :{TINY_FONT}DM STR_ABBREV_FOOD :{TINY_FONT}HN STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}AU +STR_ABBREV_GOLD :{TINY_FONT}ZL STR_ABBREV_WATER :{TINY_FONT}VO STR_ABBREV_WHEAT :{TINY_FONT}PŠ STR_ABBREV_RUBBER :{TINY_FONT}GM @@ -1712,7 +1712,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simetrično" z STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Način distribucije pošte: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"Simetrično" znači da će se otprilike ista količina pošte slati od stanice A prema stanici B ako od B prema A. "Asimetrično" znači da će se proizvoljne količine pošte slati u oba smjera. "Ručno" znači da se distribucija neće vršiti automatski. STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Način distribucije za OKLOPLJENU klasu tereta: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :OKLOPLJENA klasa tereta sadrži vrijednosnice u umjerenoj klimi, dijamante u subtropskoj klimi ili zlato u subarktičkoj klimi. NewGFR-ovi bi mogli ovo izmijeniti. "Simetrično" znači da će se otprilike ista količina tereta slati od stanice A prema stanici B kao od B prema A. "Asimetrično" znači da će se proizvoljne količine tereta slati u oba smjera. "Ručno" znači da se distribucija tih tereta neće vršiti automatski. Preporučljivo je namjestiti ovu postavku na "asimetrično" ili "ručno" kod subarktičke klime jer banke neće slati zlato natrag prema rudnicima zlata. Za umjerenu i subtropsku klimu možete namjestiti i "simetrično" jer će banke slati neke vrijednosnice natrag prema izvorišnoj banci. +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :OKLOPLJENA klasa tereta sadrži dragocjenosti u umjerenoj klimi, dijamante u subtropskoj klimi ili zlato u subarktičkoj klimi. NewGFR-ovi bi mogli ovo izmijeniti. "Simetrično" znači da će se otprilike ista količina tereta slati od stanice A prema stanici B kao od B prema A. "Asimetrično" znači da će se proizvoljne količine tereta slati u oba smjera. "Ručno" znači da se distribucija tih tereta neće vršiti automatski. Preporučljivo je namjestiti ovu postavku na "asimetrično" ili "ručno" kod subarktičke klime jer banke neće slati zlato natrag prema rudnicima zlata. Za umjerenu i subtropsku klimu možete namjestiti i "simetrično" jer će banke slati neke dragocjenosti natrag prema izvorišnoj banci. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Način distribucije za ostale klase tereta: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"Asimetrično" znači da će se proizvoljna količina tereta slati u bilo kojem smjeru. "Ručno" znači da neće biti nikakve automatske distribucije za te terete. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Točnost distribucije: {STRING} From f0db8a16d58daf951fd82d591965736f77121b00 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 11 May 2016 17:45:36 +0000 Subject: [PATCH 046/417] (svn r27556) -Update from Eints: spanish (mexican): 36 changes by Absay --- src/lang/spanish_MX.txt | 72 ++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 9771aac2c1..c239fad1e7 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -283,7 +283,7 @@ STR_SORT_BY_CAPTION_DATE :{BLACK}Fecha STR_SORT_BY_NAME :Nombre STR_SORT_BY_PRODUCTION :Producción STR_SORT_BY_TYPE :Tipo -STR_SORT_BY_TRANSPORTED :Transportado +STR_SORT_BY_TRANSPORTED :Entregado STR_SORT_BY_NUMBER :Número STR_SORT_BY_PROFIT_LAST_YEAR :Utilidad año pasado STR_SORT_BY_PROFIT_THIS_YEAR :Utilidad este año @@ -1213,7 +1213,7 @@ STR_CONFIG_SETTING_SIGNALSIDE_LEFT :A la izquierda STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :En el lado de conducción STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :A la derecha STR_CONFIG_SETTING_SHOWFINANCES :Mostrar ventana de finanzas al final del año: {STRING} -STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si se activa, la ventana de finanzas aparecerá al final de cada año para realizar una inspección más fácil del estado financiero de la empresa +STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si se activa, la ventana de finanzas aparecerá al final de cada año para permitir realizar una inspección más fácil del estado financiero de la empresa STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Toda nueva orden es 'Sin paradas' por defecto: {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Generalmente, un tren se detendrá en cada estación por la que pase. Si se activa esta opción, pasará sin detenerse a través de todas las estaciones hasta llegar a su destino. Esta opción solamente define el valor predeterminado de las órdenes nuevas. Es posible especificar para cada orden el comportamiento deseado STR_CONFIG_SETTING_STOP_LOCATION :Todos los nuevos trenes paran por defecto en el {STRING} del andén @@ -1221,7 +1221,7 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :En qué parte p STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :principio STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :centro STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :fondo -STR_CONFIG_SETTING_AUTOSCROLL :Recorrer vista cuando se mueve el cursor a los bordes: {STRING} +STR_CONFIG_SETTING_AUTOSCROLL :Recorrer vista cuando se mueva el cursor a los bordes: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Si se activa esta opción, las vistas se recorrerán cuando el ratón esté cerca de los bordes de la ventana STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desactivado STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Vista principal, solo en pantalla completa @@ -1259,7 +1259,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Areopuertos sie STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Los tipos de aeropuertos estarán disponibles todo el tiempo después de haber surgido STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Avisar si un vehículo se ha perdido: {STRING} -STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Mostrar un mensajes indicando aquellos vehículos que no puedan encontrar una ruta a su destino +STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Mostrar mensajes indicando aquellos vehículos que no puedan encontrar una ruta a su destino STR_CONFIG_SETTING_ORDER_REVIEW :Analizar órdenes de vehículos: {STRING} STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Cuando se activa, las órdenes de los vehículos se analizan regularmente y los problemas que se encuentren se informan en una noticia STR_CONFIG_SETTING_ORDER_REVIEW_OFF :No @@ -1344,16 +1344,16 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Desplazamiento STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Forma en la que la vista principal se mueve a una ubicación específica al hacer clic en el minimapa o tras una orden de moverse a un objeto determinado del mapa. Si se activa, la vista se mueve de forma suave. Si se desactiva, la vista se mueve instantáneamente al sitio indicado STR_CONFIG_SETTING_MEASURE_TOOLTIP :Mostrar información de medidas al usar las herramientas de construcción: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Mostrar distancias en número de casillas y las diferencias de altura cuando se realicen labores de construcción -STR_CONFIG_SETTING_LIVERIES :Mostrar combinaciones de color, según tipo de vehículo: {STRING} -STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Controlar el uso de combinaciones de color específicos para vehículos, en contraste a los específicos para empresas +STR_CONFIG_SETTING_LIVERIES :Mostrar diseño de colores según el tipo de vehículo: {STRING} +STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Controlar el uso de diseños de colores específicos para vehículos en lugar de los específicos de cada empresa STR_CONFIG_SETTING_LIVERIES_NONE :Ninguno STR_CONFIG_SETTING_LIVERIES_OWN :Empresa propia STR_CONFIG_SETTING_LIVERIES_ALL :Todas las empresas STR_CONFIG_SETTING_PREFER_TEAMCHAT :Activar chat de equipo con : {STRING} STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :Cambiar el acceso al chat interno de la empresa y al chat público entre y STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :Función de la rueda del ratón: {STRING} -STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Activar el deslizamiento con ratones de rueda bidimensional -STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Enforcar mapa +STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Activar el desplazamiento del mapa con ratones de rueda bidimensional +STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Enfocar mapa STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Desplazarse sobre el mapa STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Nada STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Velocidad de la rueda del ratón sobre el mapa: {STRING} @@ -1372,13 +1372,13 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+Clic STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Ninguno STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplazamiento con botón izquierdo: {STRING} -STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activa el deslizamiento del mapa al arrastrar con el botón izquierdo. Esto es especialmente útil al usar pantallas táctiles +STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activar el desplazamiento del mapa al arrastrar con el botón izquierdo. Esto es especialmente útil al usar pantallas táctiles STR_CONFIG_SETTING_AUTOSAVE :Guardado automático: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Intervalo entre guardados automáticos de la partida STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Usar formato de fecha {STRING} para los nombres de partidas guardadas -STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Asigna un formato de fecha como nombre al guardar una partida +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Asignar un formato de fecha como nombre al guardar una partida STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :largo (31 Dic 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :corto (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) @@ -1398,18 +1398,18 @@ STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Mostrar indicad STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Mostrar tiempo de viaje en ticks en lugar de días: {STRING} STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Mostrar los tiempos de viaje en los itinerarios en impulsos de reloj de sistema (ticks) en lugar de días STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Mostrar salidas y llegadas en itinerarios: {STRING} -STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Mostrar tiempos de llegadas y salidas anticipados en los itinerarios +STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Mostrar tiempos anticipados de llegadas y salidas en los itinerarios STR_CONFIG_SETTING_QUICKGOTO :Creación rápida de órdenes para vehículos: {STRING} STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Elegir automáticamente la opción 'Ir a' al abrir la ventana de órdenes -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Tipo de vía férrea predeterminada al iniciar o cargar un juego: {STRING} -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo de vía férrea predeterminada al iniciar o cargar un juego. 'Primera disponible' elige el tipo más viejo, 'Última disponible' elige el tipo más nuevo, y 'Más usado' elige el tipo de mayor uso al momento +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Tipo predeterminado de vías férreas al iniciar o cargar un juego: {STRING} +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo predeterminado de vías de tren al iniciar o cargar un juego. 'Primero disponible' elige el tipo más viejo, 'Último disponible' elige el tipo más nuevo y 'Más usado' elige el tipo de mayor uso al momento STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Primero disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Último disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Más usado STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Mostrar rutas reservadas sobre las vías férreas: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Dar un color especial a las vías de tren reservadas para ayudar a resolver problemas con trenes que no ingresan en secciones con señales de ruta STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Mantener activas las herramientas de construcción tras su uso: {STRING} -STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantener las herramientas de construcción de puentes, túneles, etc., abiertas después de usarlas +STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantener abiertas las herramientas de construcción de puentes, túneles, etc., después de usarlas STR_CONFIG_SETTING_EXPENSES_LAYOUT :Agrupar gastos en la ventana de finanzas: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Definir el diseño de la ventana de finanzas @@ -1481,25 +1481,25 @@ STR_CONFIG_SETTING_DISABLE_ELRAILS :Desactivar ferr STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Si se activa, no es necesario electrificar las vías férreas para hacer que los trenes eléctricos puedan recorrerlas STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Llegada del primer vehículo a una estación del jugador: {STRING} -STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Mostrar una noticia cuando el primer vehículo llegue a una estación del jugador +STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Mostrar noticia cuando el primer vehículo llegue a una estación del jugador STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Llegada del primer vehículo a una estación de la competencia: {STRING} -STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Mostrar una noticia cuando el primer vehículo llegue a la estación de un competidor +STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Mostrar noticia cuando el primer vehículo llegue a la estación de un competidor STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidentes y desastres: {STRING} -STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Mostrar noticias cuando ocurra un accidente o un desastre +STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Mostrar noticia cuando ocurra un accidente o un desastre STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Información de la empresa: {STRING} -STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Mostrar una noticia cuando una nueva empresa sea creada o cuando alguna empresa esté en peligro de quiebra +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Mostrar noticia cuando una nueva empresa sea creada o cuando alguna empresa esté en peligro de quiebra STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Apertura de industrias: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Mostrar noticia cuando abra una nueva industrias +STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Mostrar noticia cuando abra una nueva industria STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Cierre de industrias: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Mostrar noticias cuando cierre una industria +STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Mostrar noticia cuando cierre una industria STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Cambios en la economía: {STRING} STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Mostrar noticias sobre cambios globales a la economía STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Cambios de producción en industrias atendidas por la empresa: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Mostrar una noticia cuando cambie el nivel de producción de una industria que está atendida por la empres del jugador +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Mostrar noticia cuando cambie el nivel de producción de una industria que esté atendida por la empresa del jugador STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Cambios de producción en las industrias servidas por los competidores: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Mostrar una noticia cuando cambie el nivel de producción de una industria que está atendida por las empresas de la competencia +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Mostrar noticia cuando cambie el nivel de producción de una industria que esté atendida por las empresas de la competencia STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Cambios de producción de otras industrias: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Mostrar una noticia cuando cambie el nivel de producción de una industria que no está atendida por nadie +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Mostrar noticia cuando cambie el nivel de producción de una industria que no esté atendida por nadie STR_CONFIG_SETTING_NEWS_ADVICE :Sugerencias e información de los vehículos de la empresa: {STRING} STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Mostrar mensajes sobre vehículos que requieran atención STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nuevos vehículos: {STRING} @@ -1507,16 +1507,16 @@ STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Mostrar noticia STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Cambios en la recepción de cargamento: {STRING} STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Mostrar mensajes sobre cambios a la recepción de cargamento en estaciones STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subsidios: {STRING} -STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Mostrar noticias sobre eventos relativos a subsidios +STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Mostrar noticias sobre eventos relacionados con subsidios STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Información general: {STRING} -STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Mostrar noticias de eventos generales, tales como la compra de derechos de transporte exclusivos o el pago de reconstrucción de carreteras locales +STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Mostrar noticias sobre eventos generales, tales como la compra de derechos exclusivos de transporte o el pago de la reconstrucción de carreteras locales STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Desactivado STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Resumen STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Completo -STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Noticias a color aparecen en: {STRING} -STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Año en el que los periódicos comenzarán a imprimirse a color. Antes de ese año apacerán en blanco y negro +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Noticias a color aparecen en el año: {STRING} +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Año en el que los periódicos comenzarán a imprimirse a color. Antes de ese año, apacerán en blanco y negro STR_CONFIG_SETTING_STARTING_YEAR :Fecha de inicio: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Activar economía fácil (cambios más pequeños): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Al activarse, habrá cambios de producción en las industrias más frecuentemente y en escala menor. Si se usa un NewGRF con industrias adicionales esta opción generalmente no tiene efecto @@ -1534,7 +1534,7 @@ STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Año a partir d STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Activar interfaz de señales: {STRING} STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Mostrar una ventana para elegir los tipos de señales a instalar. Si no se activa, se instalan las señales y se selecciona un tipo determinado mediante Ctrl+Clic, sin que aparezca ninguna interfaz STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Tipo de señal predeterminada a instalar: {STRING} -STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Tipo de señal predeterminada que se usará la primera vez +STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Tipo de señal predeterminada a utilizar STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Señales de bloqueo STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Señales de ruta STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :Señales de ruta de un sentido @@ -1575,7 +1575,7 @@ STR_CONFIG_SETTING_STATUSBAR_POS :Posición de la STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Posición horizontal de la barra de estado en la parte inferior de la pantalla STR_CONFIG_SETTING_SNAP_RADIUS :Radio de ajuste de ventana: {STRING} STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Distancia máxima entre ventanas antes de que la ventana que se está moviendo sea ajustada automáticamente con las ventanas cercanas -STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} pixel{P 0 "" s} +STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} pixel{P 0 "" es} STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Deshabilitado STR_CONFIG_SETTING_SOFT_LIMIT :Máximo número de ventanas sin anclar: {STRING} STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Número máximo de ventanas sin anclar que pueden estar abiertas antes de que las anteriores se cierren automáticamente para dejar paso a las nuevas @@ -1654,7 +1654,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Métrico (l) STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Unidades de fuerza de tracción: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :Cada vez que se muestre un fuerza de tracción (o esfuerzo de tracción) en la interfaz de usuario, se emplearán las unidades elegidas +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :Cada vez que se muestre una fuerza de tracción (o esfuerzo de tracción) en la interfaz de usuario, se emplearán las unidades elegidas STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperial (lbf) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Métrico (kp) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :SI (kN) @@ -3214,7 +3214,7 @@ STR_COMPANY_VIEW_CAPTION :{WHITE}{COMPANY STR_COMPANY_VIEW_PRESIDENT_MANAGER_TITLE :{WHITE}{PRESIDENT_NAME}{}{GOLD}(Presidente) STR_COMPANY_VIEW_INAUGURATED_TITLE :{GOLD}Inaugurada: {WHITE}{NUM} -STR_COMPANY_VIEW_COLOUR_SCHEME_TITLE :{GOLD}Combinación de olor: +STR_COMPANY_VIEW_COLOUR_SCHEME_TITLE :{GOLD}Diseño de colores: STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Vehículos: STR_COMPANY_VIEW_TRAINS :{WHITE}{COMMA} tren{P "" es} STR_COMPANY_VIEW_ROAD_VEHICLES :{WHITE}{COMMA} vehículo{P "" s} de carretera @@ -3242,7 +3242,7 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Ver info STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nueva cara STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Elegir nueva cara para el presidente -STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Diseño de color +STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Diseño de colores STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Cambiar el diseño de colores corportativos de la empresa STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Nombre de la empresa STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambiar el nombre de la empresa @@ -3276,15 +3276,15 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC # Industry directory STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrias STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ninguna - -STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}){YELLOW} ({COMMA}% transportado) -STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}, {CARGO_LONG}{STRING}){YELLOW} ({COMMA}%, {COMMA}% transportado) +STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}){YELLOW} ({COMMA}% entregado) +STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}, {CARGO_LONG}{STRING}){YELLOW} ({COMMA}%, {COMMA}% entregado) STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Nombre de industria: Clic en un nombre para centrar la vista principal en la industria. Ctrl+Clic abre una ventana de vista en dicha ubicación # Industry view STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producción en el mes anterior: -STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportado) +STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% entregado) STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrar la vista sobre la industria. Ctrl+Clic abre una ventana de vista en dicha ubicación STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivel de producción: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}¡La industria ha anunciado su cierre inminente! @@ -4860,7 +4860,7 @@ STR_FORMAT_BUOY_NAME :Boya {TOWN} STR_FORMAT_BUOY_NAME_SERIAL :Boya {TOWN} #{COMMA} STR_FORMAT_COMPANY_NUM :(empresa {COMMA}) STR_FORMAT_GROUP_NAME :Grupo {COMMA} -STR_FORMAT_INDUSTRY_NAME :{TOWN}, {STRING} +STR_FORMAT_INDUSTRY_NAME :{1:STRING} de {0:TOWN} STR_FORMAT_WAYPOINT_NAME :Puesto guía {TOWN} STR_FORMAT_WAYPOINT_NAME_SERIAL :Puesto guía {TOWN} #{COMMA} From b8921037474563d4231ecd803d04fd578c04976d Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 11 May 2016 18:38:44 +0000 Subject: [PATCH 047/417] (svn r27557) -Fix: bashism that caused different CFLAGS with bash vs dash --- config.lib | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.lib b/config.lib index a8c6e129c0..0259739eb4 100644 --- a/config.lib +++ b/config.lib @@ -1490,7 +1490,7 @@ make_cflags_and_ldflags() { fi if [ $enable_debug -le 2 ]; then - cc_host_is_gcc=`basename "$cc_host" | grep "gcc" &>/dev/null` + cc_host_is_gcc=`basename "$cc_host" | grep "gcc" 2>/dev/null` if [ -n "$cc_host_is_gcc" ]; then # Define only when compiling with GCC. Some GLIBC versions use GNU # extensions in a way that breaks build with at least ICC. @@ -1498,7 +1498,7 @@ make_cflags_and_ldflags() { CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" fi - cc_build_is_gcc=`basename "$cc_build" | grep "gcc" &>/dev/null` + cc_build_is_gcc=`basename "$cc_build" | grep "gcc" 2>/dev/null` if [ -n "$cc_build_is_gcc" ]; then # Just add -O1 to the tools needed for building. CFLAGS_BUILD="$CFLAGS_BUILD -D_FORTIFY_SOURCE=2 -O1" From 6da8fede4327a234cd8f160d63a240b7705cfa56 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 11 May 2016 18:39:18 +0000 Subject: [PATCH 048/417] (svn r27558) -Fix: force sorting to be locale independent, so files are always ordered the same and by that token better diff-able --- Makefile.bundle.in | 2 +- Makefile.src.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.bundle.in b/Makefile.bundle.in index 969b2ebcf0..4366cf10a1 100644 --- a/Makefile.bundle.in +++ b/Makefile.bundle.in @@ -84,7 +84,7 @@ endif $(Q)cp "$(BIN_DIR)/scripts/"* "$(BUNDLE_DIR)/scripts/" ifdef MENU_DIR $(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/" - $(Q)$(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.translation.awk" "$(SRC_DIR)/lang/"*.txt | $(SORT) | $(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.filter.awk" >> "$(BUNDLE_DIR)/media/openttd.desktop" + $(Q)$(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.translation.awk" "$(SRC_DIR)/lang/"*.txt | LC_ALL=C $(SORT) | $(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.filter.awk" >> "$(BUNDLE_DIR)/media/openttd.desktop" $(Q)sed s/=openttd/=$(BINARY_NAME)/g "$(BUNDLE_DIR)/media/openttd.desktop" > "$(ROOT_DIR)/media/openttd.desktop.install" endif ifeq ($(TTD), openttd.exe) diff --git a/Makefile.src.in b/Makefile.src.in index 1d654d283f..0e190a4e62 100644 --- a/Makefile.src.in +++ b/Makefile.src.in @@ -210,7 +210,7 @@ endif { \ print $$0 \ } \ - ' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | $(SORT) > Makefile.dep + ' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | LC_ALL=C $(SORT) > Makefile.dep $(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak From baa11c8b0ff5e287474adee95d763fb9597b9509 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 11 May 2016 18:42:32 +0000 Subject: [PATCH 049/417] (svn r27559) -Update: baseset translations --- bin/baseset/no_music.obm | 1 + bin/baseset/no_sound.obs | 1 + bin/baseset/orig_dos.obg | 1 + bin/baseset/orig_dos.obs | 1 + bin/baseset/orig_dos_de.obg | 1 + bin/baseset/orig_win.obg | 1 + bin/baseset/orig_win.obm | 1 + bin/baseset/orig_win.obs | 1 + 8 files changed, 8 insertions(+) diff --git a/bin/baseset/no_music.obm b/bin/baseset/no_music.obm index ebd331d04e..40c3f76060 100644 --- a/bin/baseset/no_music.obm +++ b/bin/baseset/no_music.obm @@ -21,6 +21,7 @@ description.el_GR = Ένα πάκετο μουσικής χωρίς πραγμα description.en_AU = A music pack without actual music. description.en_US = A music pack without actual music. description.es_ES = Un conjunto de música vacío. +description.es_MX = Paquete de música vacío description.et_EE = Muusikakogu ilma muusikata. description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia. description.fr_FR = Un pack de musiques sans musiques. diff --git a/bin/baseset/no_sound.obs b/bin/baseset/no_sound.obs index d5b0c9f80d..a92c4559c4 100644 --- a/bin/baseset/no_sound.obs +++ b/bin/baseset/no_sound.obs @@ -21,6 +21,7 @@ description.el_GR = Ένα πάκετο ήχων χώρις ήχους. description.en_AU = A sound pack without any sounds. description.en_US = A sound pack without any sounds. description.es_ES = Un conjunto de sonidos vacío. +description.es_MX = Paquete de sonidos vacío description.et_EE = Helikogu ilma helideta. description.eu_ES = Soinurik gabeko soinu pakete bat description.fi_FI = Äänipaketti, jossa ei ole ääniä. diff --git a/bin/baseset/orig_dos.obg b/bin/baseset/orig_dos.obg index 4fa32f6dc8..825ae5229f 100644 --- a/bin/baseset/orig_dos.obg +++ b/bin/baseset/orig_dos.obg @@ -22,6 +22,7 @@ description.el_GR = Αρχικά γραφικά από το Transport Tycoon Del description.en_AU = Original Transport Tycoon Deluxe DOS edition graphics. description.en_US = Original Transport Tycoon Deluxe DOS edition graphics. description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS. +description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS. description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni graafika. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version grafiikat. description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS). diff --git a/bin/baseset/orig_dos.obs b/bin/baseset/orig_dos.obs index df26f15fab..71fa44baf6 100644 --- a/bin/baseset/orig_dos.obs +++ b/bin/baseset/orig_dos.obs @@ -21,6 +21,7 @@ description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe description.en_AU = Original Transport Tycoon Deluxe DOS edition sounds. description.en_US = Original Transport Tycoon Deluxe DOS edition sounds. description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS. +description.es_MX = Sonidos originales de Transport Tycoon Deluxe para DOS. description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni helid. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version äänet. description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS). diff --git a/bin/baseset/orig_dos_de.obg b/bin/baseset/orig_dos_de.obg index d13e12ed60..a35f9752ba 100644 --- a/bin/baseset/orig_dos_de.obg +++ b/bin/baseset/orig_dos_de.obg @@ -22,6 +22,7 @@ description.el_GR = Αρχικά γραφικά από το Transport Tycoon Del description.en_AU = Original Transport Tycoon Deluxe DOS (German) edition graphics. description.en_US = Original Transport Tycoon Deluxe DOS (German) edition graphics. description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS (Alemán). +description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS (en alemán). description.et_EE = Algse Transport Tycoon Deluxe DOSi (Saksa) versiooni graafika. description.fi_FI = Alkuperäiset Saksassa julkaistun Transport Tycoon Deluxen DOS-version grafiikat. description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS allemande). diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index 1d3cb8d655..1f411f5e11 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -22,6 +22,7 @@ description.el_GR = Αρχικά γραφικά από το Transport Tycoon Del description.en_AU = Original Transport Tycoon Deluxe Windows edition graphics. description.en_US = Original Transport Tycoon Deluxe Windows edition graphics. description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión Windows. +description.es_MX = Gráficos originales de Transport Tycoon Deluxe para Windows. description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni graafika. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version grafiikat. description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version Windows). diff --git a/bin/baseset/orig_win.obm b/bin/baseset/orig_win.obm index 63e678131d..0682031547 100644 --- a/bin/baseset/orig_win.obm +++ b/bin/baseset/orig_win.obm @@ -21,6 +21,7 @@ description.el_GR = Αρχική μουσική από το Transport Tycoon Del description.en_AU = Original Transport Tycoon Deluxe Windows edition music. description.en_US = Original Transport Tycoon Deluxe Windows edition music. description.es_ES = Música original de Transport Tycoon Deluxe versión Windows. +description.es_MX = Música original de Transport Tycoon Deluxe para Windows. description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni muusika. description.fi_FI = Alkuperäinen Transport Tycoon Deluxen Windows-version musiikki. description.fr_FR = Musiques originales de Transport Tycoon Deluxe (version Windows). diff --git a/bin/baseset/orig_win.obs b/bin/baseset/orig_win.obs index 748633f8b1..fa2178fd40 100644 --- a/bin/baseset/orig_win.obs +++ b/bin/baseset/orig_win.obs @@ -21,6 +21,7 @@ description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe description.en_AU = Original Transport Tycoon Deluxe Windows edition sounds. description.en_US = Original Transport Tycoon Deluxe Windows edition sounds. description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windows. +description.es_MX = Sonidos originales de Transport Tycoon Deluxe para Windows. description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni helid. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version äänet. description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows). From 91ddd32c20c27ff3997c7dede2340763ed24dfc4 Mon Sep 17 00:00:00 2001 From: matthijs Date: Wed, 11 May 2016 20:48:46 +0000 Subject: [PATCH 050/417] (svn r27560) -Fix: typos in comments and string --- src/misc_gui.cpp | 2 +- src/newgrf.cpp | 2 +- src/story.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 5bb8c7e319..9c6e3f334c 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -603,7 +603,7 @@ TextEffectID ShowFillingPercent(int x, int y, int z, uint8 percent, StringID str /** * Update vehicle loading indicators. * @param te_id TextEffectID to be updated. - * @param string String wich is printed. + * @param string String which is printed. */ void UpdateFillingPercent(TextEffectID te_id, uint8 percent, StringID string) { diff --git a/src/newgrf.cpp b/src/newgrf.cpp index b9c1bf89e3..6624e2bfdf 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -3010,7 +3010,7 @@ static ChangeInfoResult SoundEffectChangeInfo(uint sid, int numinfo, int prop, B } if (sid + numinfo - ORIGINAL_SAMPLE_COUNT > _cur.grffile->num_sounds) { - grfmsg(1, "SoundEffectChangeInfo: Attemting to change undefined sound effect (%u), max (%u). Ignoring.", sid + numinfo, ORIGINAL_SAMPLE_COUNT + _cur.grffile->num_sounds); + grfmsg(1, "SoundEffectChangeInfo: Attempting to change undefined sound effect (%u), max (%u). Ignoring.", sid + numinfo, ORIGINAL_SAMPLE_COUNT + _cur.grffile->num_sounds); return CIR_INVALID_ID; } diff --git a/src/story.cpp b/src/story.cpp index b74842f41a..602dc27248 100644 --- a/src/story.cpp +++ b/src/story.cpp @@ -101,7 +101,7 @@ static void UpdateElement(StoryPageElement &pe, TileIndex tile, uint32 reference * @param p1 various bitstuffed elements * - p1 = (bit 0 - 7) - Company for which this story page belongs to. * @param p2 unused. - * @param text Title of the story page. Null is allowed in wich case a generic page title is provided by OpenTTD. + * @param text Title of the story page. Null is allowed in which case a generic page title is provided by OpenTTD. * @return the cost of this operation or an error */ CommandCost CmdCreateStoryPage(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) From 7e06cdb455c4a5fa3f43d8aab35c3d4332296f3f Mon Sep 17 00:00:00 2001 From: matthijs Date: Wed, 11 May 2016 21:28:39 +0000 Subject: [PATCH 051/417] (svn r27561) -Fix [Squirrel]: Fix typos in error messages --- src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp | 4 ++-- src/3rdparty/squirrel/squirrel/sqdebug.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp b/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp index 67b299bcec..540975fb5c 100644 --- a/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp +++ b/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp @@ -119,10 +119,10 @@ static SQInteger _sqstd_aux_printerror(HSQUIRRELVM v) const SQChar *sErr = 0; if(sq_gettop(v)>=1) { if(SQ_SUCCEEDED(sq_getstring(v,2,&sErr))) { - pf(v,"\nAN ERROR HAS OCCURED [%s]\n",sErr); + pf(v,"\nAN ERROR HAS OCCURRED [%s]\n",sErr); } else{ - pf(v,"\nAN ERROR HAS OCCURED [unknown]\n"); + pf(v,"\nAN ERROR HAS OCCURRED [unknown]\n"); } sqstd_printcallstack(v); } diff --git a/src/3rdparty/squirrel/squirrel/sqdebug.cpp b/src/3rdparty/squirrel/squirrel/sqdebug.cpp index 74272e432a..b163fae52e 100644 --- a/src/3rdparty/squirrel/squirrel/sqdebug.cpp +++ b/src/3rdparty/squirrel/squirrel/sqdebug.cpp @@ -105,7 +105,7 @@ void SQVM::Raise_IdxError(const SQObject &o) void SQVM::Raise_CompareError(const SQObject &o1, const SQObject &o2) { SQObjectPtr oval1 = PrintObjVal(o1), oval2 = PrintObjVal(o2); - Raise_Error("comparsion between '%.50s' and '%.50s'", _stringval(oval1), _stringval(oval2)); + Raise_Error("comparison between '%.50s' and '%.50s'", _stringval(oval1), _stringval(oval2)); } From 49b69a570506822eebd6f7bad3c7b994a2f7cc42 Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 12 May 2016 17:24:06 +0000 Subject: [PATCH 052/417] (svn r27562) -Fix: forgot one (hidden) case to force sorting to be locale independent --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 6b2c9d87b7..5edbca1867 100755 --- a/configure +++ b/configure @@ -149,7 +149,7 @@ AWKCOMMAND=' # Read the source.list and process it # Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations -SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk \"$AWKCOMMAND\" | $PIPE_SORT`" +SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk \"$AWKCOMMAND\" | LC_ALL=C $PIPE_SORT`" OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.c$/ { gsub(\".c$\", \".o\", $0); print $0; }'`" OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.cpp$/ { gsub(\".cpp$\", \".o\", $0); print $0; }'`" From edfe26f2ee6fc193b9bd672c2c2f9fc863c64945 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 12 May 2016 17:45:36 +0000 Subject: [PATCH 053/417] (svn r27563) -Update from Eints: korean: 1 change by Gimel3830 spanish (mexican): 93 changes by Absay --- src/lang/korean.txt | 2 +- src/lang/spanish_MX.txt | 186 ++++++++++++++++++++-------------------- 2 files changed, 94 insertions(+), 94 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 71491a4269..3b0a092787 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3012,7 +3012,7 @@ STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}회사에 대한 이 도시의 평판: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}가능한 행동: -STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}이 도시에 할 수 있는 일 목록 - 상세 정보를 보시려면 클릭하세요 +STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}이 도시에 할 수 있는 일 목록 - 상세 정보를 보시려면 클릭하세요. STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}실행 STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}선택된 항목을 실행에 옮깁니다 diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index c239fad1e7..6ce25a3d8b 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -589,7 +589,7 @@ STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLA STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Mostrar detalles de nivel de desempeño # Graph key window -STR_GRAPH_KEY_CAPTION :{WHITE}Leyenda de claves de gráfica +STR_GRAPH_KEY_CAPTION :{WHITE}Leyenda de gráfica STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Mostrar u ocultar la entrada de la empresa en la gráfica # Company league window @@ -708,7 +708,7 @@ STR_SMALLMAP_TYPE_ROUTEMAP :Flujo de cargam STR_SMALLMAP_TYPE_ROUTES :Rutas STR_SMALLMAP_TYPE_VEGETATION :Vegetación STR_SMALLMAP_TYPE_OWNERS :Propietarios -STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Mostrar curvas de nivel en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Mostrar elevaciones en el mapa STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP :{BLACK}Mostrar vehículos en el mapa STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}Mostrar industrias en el mapa STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Mostrar flujo de cargamento en el mapa @@ -721,8 +721,8 @@ STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Clic en STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Carreteras STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Ferrocarriles -STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS :{TINY_FONT}{BLACK}Estaciones/Aeropuertos/Puertos -STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES :{TINY_FONT}{BLACK}Edificios/Industrias +STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS :{TINY_FONT}{BLACK}Estaciones, aeropuertos y puertos +STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES :{TINY_FONT}{BLACK}Edificios e industrias STR_SMALLMAP_LEGENDA_VEHICLES :{TINY_FONT}{BLACK}Vehículos STR_SMALLMAP_LEGENDA_TRAINS :{TINY_FONT}{BLACK}Trenes STR_SMALLMAP_LEGENDA_ROAD_VEHICLES :{TINY_FONT}{BLACK}Vehículos de carretera @@ -754,12 +754,12 @@ STR_SMALLMAP_INDUSTRY :{TINY_FONT}{STR STR_SMALLMAP_LINKSTATS :{TINY_FONT}{STRING} STR_SMALLMAP_COMPANY :{TINY_FONT}{COMPANY} STR_SMALLMAP_TOWN :{TINY_FONT}{WHITE}{TOWN} -STR_SMALLMAP_DISABLE_ALL :{BLACK}Desactivar todo -STR_SMALLMAP_ENABLE_ALL :{BLACK}Activar todo -STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Mostrar altura +STR_SMALLMAP_DISABLE_ALL :{BLACK}Ocultar todo +STR_SMALLMAP_ENABLE_ALL :{BLACK}Ver todo +STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Mostrar elevación STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}No mostrar industrias en el mapa STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Mostrar todas las industrias en el mapa -STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Mostrar u ocultar mapa de alturas +STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Mostrar u ocultar elevaciones en el mapa STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}No mostrar propiedades de empresas en el mapa STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Mostrar todas las propiedades de empresas en el mapa STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}No mostrar ningún cargamento en el mapa @@ -790,7 +790,7 @@ STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLAC STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}¡Accidente de tren!{}{COMMA} muertos deja explosión después de choque STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}¡Accidente de tráfico!{}Muere conductor en explosión después de choque con el tren -STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}¡Accidente de tráfico!{}{COMMA} muertos ddeja explosión después de choque con el tren +STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}¡Accidente de tráfico!{}{COMMA} muertos deja explosión después de choque con el tren STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}¡Accidente aéreo!{}{COMMA} muertos deja explosión en {STATION} STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}¡Accidente aéreo!{}Avión se queda sin combustible, ¡{COMMA} personas mueren en explosión! @@ -832,7 +832,7 @@ STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIG_FONT}{BLAC STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIG_FONT}{BLACK}¡Nuevos métodos agrícolas en {INDUSTRY} esperan duplicar la producción! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{BIG_FONT}{BLACK}¡La producción de {STRING} en {INDUSTRY} aumenta un {COMMA}%! STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLACK}¡La producción en {INDUSTRY} desciende un 50%! -STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}¡Plaga de insectos causa estragos en {INDUSTRY}!{} La producción desciente un 50% +STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}¡Plaga de insectos causa estragos en {INDUSTRY}!{} La producción desciende un 50% STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIG_FONT}{BLACK}¡La producción de {STRING} en {INDUSTRY} desciende un {COMMA}%! STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} está esperando en el depósito @@ -910,7 +910,7 @@ STR_GAME_OPTIONS_CURRENCY_HUF :Florín húngar STR_GAME_OPTIONS_CURRENCY_ISK :Corona islandesa (ISK) STR_GAME_OPTIONS_CURRENCY_ITL :Lira italiana (ITL) STR_GAME_OPTIONS_CURRENCY_NLG :Florín holandés (NLG) -STR_GAME_OPTIONS_CURRENCY_NOK :Corona noruega(NOK) +STR_GAME_OPTIONS_CURRENCY_NOK :Corona noruega (NOK) STR_GAME_OPTIONS_CURRENCY_PLN :Esloti polaco (PLN) STR_GAME_OPTIONS_CURRENCY_RON :Leu rumano (RON) STR_GAME_OPTIONS_CURRENCY_RUR :Rublo ruso (RUR) @@ -941,7 +941,7 @@ STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH :Inglés STR_GAME_OPTIONS_TOWN_NAME_FRENCH :Francés STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Alemán STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Inglés (adicional) -STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN :Latinoamericano +STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN :América Latina STR_GAME_OPTIONS_TOWN_NAME_SILLY :Tonterías (inglés) STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :Sueco STR_GAME_OPTIONS_TOWN_NAME_DUTCH :Holandés @@ -1129,7 +1129,7 @@ STR_CONFIG_SETTING_ON :Sí STR_CONFIG_SETTING_DISABLED :Deshabilitado STR_CONFIG_SETTING_COMPANIES_OFF :Desactivado -STR_CONFIG_SETTING_COMPANIES_OWN :Empresa propia +STR_CONFIG_SETTING_COMPANIES_OWN :Mi empresa STR_CONFIG_SETTING_COMPANIES_ALL :Todas las empresas STR_CONFIG_SETTING_NONE :Ninguno @@ -1155,7 +1155,7 @@ STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Establecer cuá STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Costos de construcción: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Nivel de costos de construcción y adquisición STR_CONFIG_SETTING_RECESSIONS :Recesiones: {STRING} -STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Si se activa, habrá recesiones cada ciertos años. Durante una recesión, toda la producción decaerá considerablente (se restablecerá al final de la recesión) +STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Si se activa, habrá recesiones cada cierto año. Durante una recesión, toda la producción decaerá considerablemente (se restablecerá al final de la recesión) STR_CONFIG_SETTING_TRAIN_REVERSING :Prohibir a los trenes que cambien de dirección en las estaciones: {STRING} STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, los trenes no podrán girar al lado opuesto en estaciones intermedias, ni siquiera si al girar hay una ruta más corta a su próximo destino STR_CONFIG_SETTING_DISASTERS :Desastres: {STRING} @@ -1163,9 +1163,9 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Desastres que o STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de los ayuntamientos ante restructuraciones hechas en sus zonas: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :En qué medida el ruido y el daño ambiental causado por las empresas afectan su evaluación y futuras acciones de construcción en las mismas zonas -STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máxima del mapa: {STRING} -STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :La altura máxima que las montañas pueden tener en el mapa -STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No se puede establecer la altura máxima del mapa en el valor indicado. Al menos una montaña ya es más alta +STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Elevación máxima del mapa: {STRING} +STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Elevación máxima que las montañas pueden tener en el mapa +STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No se puede establecer la elevación máxima del mapa en el valor indicado. Al menos una montaña ya es más alta STR_CONFIG_SETTING_AUTOSLOPE :Permitir modificar terreno debajo edificios, vías férreas, etc.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Modificar el terreno debajo de edificios y vías de tren sin quitarlos STR_CONFIG_SETTING_CATCHMENT :Permitir cambiar el tamaño del área de recolección a una forma más real: {STRING} @@ -1180,7 +1180,7 @@ STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Cantidad de hum STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :Modelo de aceleración para trenes: {STRING} STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Elegir el modelo de física para emplear en la aceleración de trenes. El modelo 'Original' penaliza las pendientes de forma idéntica para todos los vehículos. El modelo 'Simulado' penaliza pendientes y curvas según las características del tren como longitud, fuerza de tracción, etc. STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Modelo de aceleración para vehículos de carretera: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Elegir el modelo de física para emplear en la aceleración de vehículos de carretera. El modelo 'O'riginal' penaliza las pendientes de forma idéntica para todos los vehículos. El modelo 'Simulado' penaliza pendientes y curvas según las características del vehículo como potencia, fuerza de tracción, etc. +STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Elegir el modelo de simulación física para emplear en la aceleración de vehículos de carretera. El modelo 'Original' penaliza las pendientes de forma idéntica para todos los vehículos. El modelo 'Simulado' penaliza pendientes y curvas según las características del vehículo como potencia, fuerza de tracción, etc. STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :Inclinación de pendientes para trenes: {STRING} STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :Grado de inclinación de una casilla con pendiente para un tren. Los valores altos hacen que sea más difícil subir las colinas STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% @@ -1199,7 +1199,7 @@ STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Altura máxima STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Longitud máxima de túneles: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Longitud máxima permitida al construir túneles STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Método para fundar una industria primaria: {STRING} -STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Método en como se funda una industria primaria. 'Ninguno' indica que no se puede crear ninguna. 'Prospeccón' indica que se puede fundar una nueva industria pero cuya construcción ocurrirá en un lugar aleatorio del mapa con posibilidad de fallar. 'Como las demás' indica que las industrias primarias pueden construirse como otras industrias, en el lugar que se quiera +STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Método con el que se funda una industria primaria. 'Ninguno' indica que no se puede crear ninguna. 'Prospección' indica que se puede fundar una nueva industria pero cuya construcción ocurrirá en un lugar aleatorio del mapa con posibilidad de fallar. 'Como las demás' indica que las industrias primarias pueden construirse como otras industrias, en el lugar que se quiera STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Ninguno STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Como las demás STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Prospección @@ -1255,7 +1255,7 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}No se pu STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Mantenimiento de infraestructura: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Cuando se activa, la infraestructura tiene costo de mantenimiento, el cual aumenta en relación con el tamaño de la red de transporte. Esto afecta en mayor medida a las empresas grandes que a las pequeñas -STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Areopuertos siempre disponibles: {STRING} +STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Aeropuertos siempre disponibles: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Los tipos de aeropuertos estarán disponibles todo el tiempo después de haber surgido STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Avisar si un vehículo se ha perdido: {STRING} @@ -1302,7 +1302,7 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :El número de i STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distancia máxima de refinerías de petróleo con los bordes del mapa: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Las refinerías de petróleo se construyen cerca del borde del mapa, el cual es costa en mapas con borde marítimo STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Nivel de inicio de nieve: {STRING} -STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :En los mapas de clima Subártico, la altura a la cual la nieve comienza. La nieve también afecta a la generación de industrias y a los requisitos de crecimiento de los pueblos +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :En los mapas de clima Subártico, la elevación a la cual la nieve comienza. La nieve también afecta a la generación de industrias y a los requisitos de crecimiento de los pueblos STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Irregularidad del terreno: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Solo TerraGenesis) Cantidad de colinas: los terrenos más planos tienen menos colinas, aunque suelen ser más extensas. Los terrenos más accidentados tienen múltiples colinas, lo cual puede resultar repetitivo STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Muy Suave @@ -1323,7 +1323,7 @@ STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Elegir de qué STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotar mapa de alturas: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :A la izquierda STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :A la derecha -STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :El nivel de la altura del mapa plano tiene: {STRING} +STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :El nivel de la elevación del mapa plano tiene: {STRING} STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una o más casillas del borde norte no están vacías STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o más casillas en uno de los bordes no es agua @@ -1347,7 +1347,7 @@ STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Mostrar distanc STR_CONFIG_SETTING_LIVERIES :Mostrar diseño de colores según el tipo de vehículo: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Controlar el uso de diseños de colores específicos para vehículos en lugar de los específicos de cada empresa STR_CONFIG_SETTING_LIVERIES_NONE :Ninguno -STR_CONFIG_SETTING_LIVERIES_OWN :Empresa propia +STR_CONFIG_SETTING_LIVERIES_OWN :Mi empresa STR_CONFIG_SETTING_LIVERIES_ALL :Todas las empresas STR_CONFIG_SETTING_PREFER_TEAMCHAT :Activar chat de equipo con : {STRING} STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :Cambiar el acceso al chat interno de la empresa y al chat público entre y @@ -1444,7 +1444,7 @@ STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Número máximo STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desactivar trenes para la computadora: {STRING} STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activar esta opción para deshabilitar la construcción de trenes por jugadores no humanos STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Desactivar vehículos de carretera para la computadora: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activar esta opción para deshabilitar la construcción de vehículos de carretra por jugadores no humanos +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activar esta opción para deshabilitar la construcción de vehículos de carretera por jugadores no humanos STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactivar aeroplanos para la computadora: {STRING} STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Activar esta opción deshabilita la construcción de aeronaves por jugadores no humanos STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactivar barcos para la computadora: {STRING} @@ -1584,7 +1584,7 @@ STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :Deshabilitado STR_CONFIG_SETTING_ZOOM_MIN :Máximo acercamiento: {STRING} STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Máximo nivel de acercamiento para las ventanas de vista y la vista principal. Aumentar el nivel de acercamiento aumenta el consumo de memoria del juego STR_CONFIG_SETTING_ZOOM_MAX :Máximo alejamiento: {STRING} -STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Máximo nivel de alejamiento para las ventanas de vista y la vista principal. Los niveles altos podrían provocar que el juego se alente +STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Máximo nivel de alejamiento para las ventanas de vista y la vista principal. Los niveles altos podrían provocar que el juego sea más lento STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal @@ -1606,9 +1606,9 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador i STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamaño medio de las ciudades en relación a los pueblos al comienzo de la partida STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualizar la gráfica de distribución cada {STRING}{NBSP}día{P 0:2 "" s} -STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Periodo de tiempo entre cálculos consecutivos de la gráfica de distribución. Esta opción se refiere a los cálculos para cada uno de los componentes de la gráfica, por lo cual estabecer un valor no quiere decir que la gráfica completa se actualizará tras ese número de días, solo algún componente lo hará. Cuanto menor sea, mayor tiempo de CPU será necesario para calcular la gráfica distribución. Cuanto mayor sea, más tardará la gráfica en adaptarse a nuevas rutas +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Periodo de tiempo entre cálculos consecutivos de la gráfica de distribución. Esta opción se refiere a los cálculos para cada uno de los componentes de la gráfica, por lo cual establecer un valor no quiere decir que la gráfica completa se actualizará tras ese número de días, solo algún componente lo hará. Cuanto menor sea, mayor tiempo de CPU será necesario para calcular la gráfica distribución. Cuanto mayor sea, más tardará la gráfica en adaptarse a nuevas rutas STR_CONFIG_SETTING_LINKGRAPH_TIME :Usar {STRING}{NBSP}día{P 0:2 "" s} para el cálculo de la gráfica de distribución -STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Tiempo requerido en el cálculo de cada uno de los componentes de la gráfica de distribución. Cuanto menor sea este valor, más probable es que el juego se alente. Cuanto mayor sea, más tiempo tardará la distribución en actualizarse cuando se produzcan cambios en las rutas +STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Tiempo requerido en el cálculo de cada uno de los componentes de la gráfica de distribución. Cuanto menor sea este valor, más probable es que el juego sea más lento. Cuanto mayor sea, más tiempo tardará la distribución en actualizarse cuando se produzcan cambios en las rutas STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :Manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :Asimétrica STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :Simétrica @@ -1630,7 +1630,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Nivel de satura STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Entre dos estaciones usualmente hay más de una ruta posible. Se intentarán saturar las rutas más cotas primero, luego las que le siguen, y así sucesivamente. La saturación está determinada por una estimación de capacidad y uso planificado. Una vez que se hayan saturado todas las rutas, si todavía hay demanda se sobrecargarán los caminos empezando por aquellos de mayor capacidad. El algoritmo no siempre estimará la capacidad de forma precisa. Esta opción permite especificar el porcentaje de saturación que debe tener una ruta en el primer análisis antes de pasar a la siguiente ruta. Ponerlo a menos de 100% permite evitar estaciones sobrecargadas en el caso de que se sobreestimen las capacidades STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidades de velocidad: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cada vez que se muestre una velocidad en la interfaz de usuario, se emplerán las unidades elegidas +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cada vez que se muestre una velocidad en la interfaz de usuario, se emplearán las unidades elegidas STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) @@ -1708,13 +1708,13 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Establec STR_CONFIG_ERROR :{WHITE}Error en el archivo de configuración... STR_CONFIG_ERROR_ARRAY :{WHITE}... error en arreglo '{STRING}' STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... valor '{STRING}' no válido para '{STRING}' -STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... carácteres en blanco al final de la opción '{STRING}' +STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... caracteres en blanco al final de la opción '{STRING}' STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... NewGRF '{STRING}' ignorado: GRF ID duplicado con '{STRING}' STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... NewGRF '{STRING}' no válido, ignorado: {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :no encontrado STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :inseguro para uso estático STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :NewGRF de sistema -STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :incompatible con esta versión de OpenTTD +STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :no compatible con esta versión de OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :desconocido STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... el nivel de compresión '{STRING}' no es válido STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... el formato de guardado '{STRING}' no está disponible. Revertiendo a '{STRING}' @@ -1795,9 +1795,9 @@ STR_CHEAT_MONEY :{LTBLUE}Recibir STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jugar como la empresa: {ORANGE}{COMMA} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Excavadora mágica (elimina industrias y objetos inamovibles): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Los túneles se pueden cruzar: {ORANGE}{STRING} -STR_CHEAT_NO_JETCRASH :{LTBLUE}Las aeronaves jets no se estrellan (tanto) en aeropuertos pequeños: {ORANGE}{STRING} -STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Cambiar la altura máxima del mapa: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Cambiar la altura máxima de las montañas en el mapa +STR_CHEAT_NO_JETCRASH :{LTBLUE}Las aeronaves jet no se estrellan (tanto) en aeropuertos pequeños: {ORANGE}{STRING} +STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Cambiar la elevación máxima del mapa: {ORANGE}{NUM} +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Cambiar la elevación máxima de las montañas en el mapa STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Clima Templado STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Clima Subártico STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Clima Subtropical @@ -2158,7 +2158,7 @@ STR_NETWORK_ERROR_CLIENT_SERVER_FULL :servidor lleno STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :estabas enviando demasiados comandos STR_NETWORK_ERROR_CLIENT_TIMEOUT_PASSWORD :no se recibió la contraseña a tiempo STR_NETWORK_ERROR_CLIENT_TIMEOUT_COMPUTER :tiempo agotado en general -STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :la descarga del mapa tardó demsiado +STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :la descarga del mapa tardó demasiado STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :el procesado del mapa tardó demasiado ############ End of leave-in-this-order @@ -2198,12 +2198,12 @@ STR_CONTENT_TYPE_CAPTION :{BLACK}Tipo STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Tipo de contenido STR_CONTENT_NAME_CAPTION :{BLACK}Nombre STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Nombre del contenido -STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Clic en un elemento para ver los detalles{}Clic en las casillas para seleccionar una descarga +STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Clic en un elemento para ver sus detalles{}Clic en la casilla para seleccionarlo como descarga STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Elegir todas STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Marcar para descargar todo el contenido STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Elegir actualizaciones STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Marcar para descargar solo actualizaciones de contenido existente -STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Desmarcar todas +STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Desmarcar todo STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Desmarcar todo el contenido para no ser descargado STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Buscar en sitios web externos STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Buscar contenido no disponible en el servicio de contenido del juego en sitios web externos no asociados con OpenTTD @@ -2214,7 +2214,7 @@ STR_CONTENT_OPEN_URL :{BLACK}Visitar STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Visitar el sitio web de este contenido STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Descargar STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}Comenzar a descargar el contenido elegido -STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}Tamaño total de la descarga: {WHITE}{BYTES} +STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}Tamaño total de descarga: {WHITE}{BYTES} STR_CONTENT_DETAIL_TITLE :{SILVER}INFORMACIÓN DEL CONTENIDO STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}Contenido no elegido para descargar STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}Contenido elegido para descargar @@ -2296,7 +2296,7 @@ STR_STATION_BUILD_COVERAGE_ON :{BLACK}Activado STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP :{BLACK}No mostrar área de recolección en el sitio planeado STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP :{BLACK}Mostrar área de recolección en el sitio planeado STR_STATION_BUILD_ACCEPTS_CARGO :{BLACK}Recibe: {GOLD}{CARGO_LIST} -STR_STATION_BUILD_SUPPLIES_CARGO :{BLACK}Suministra: {GOLD}{CARGO_LIST} +STR_STATION_BUILD_SUPPLIES_CARGO :{BLACK}Provee: {GOLD}{CARGO_LIST} # Join station window STR_JOIN_STATION_CAPTION :{WHITE}Ampliar estación @@ -2314,13 +2314,13 @@ STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Construcción d STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Construir tramo de vías férreas en una orientación. Ctrl quita o coloca vías. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Construir tramo de vías férreas con orientación automática. Ctrl quita o coloca vías. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Construir depósito de trenes (para comprar y dar mantenimiento a trenes). Mayús muestra una estimación del precio -STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Construir puesto guía sobre vía férrea. Ctrl activa la unión de puestos guías. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Construir puesto guía sobre vías férreas. Ctrl activa la unión de puestos guías. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Construir estación de ferrocarril. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Instalar señales de ferrocarril. Ctrl cambia entre señales mecánicas y eléctricas{}Al arrastrar sobre las vías se instalan señales a lo largo de un tramo recto elegido. Ctrl instala señales hasta el siguiente desvío u otra señal{}Ctrl+Clic cambia a la herramienta de selección de señales. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Construir puente de ferrocarril. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Construir túnel de ferrocarril. Mayús muestra una estimación del precio -STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Quitar vías férreas, señales, estaciones y puestos guías. Al mantener pulsado Ctrl se quita también el ferrocarril si se retrian estaciones o puestos guías -STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Convertir o actualizar tipo de vía férrea. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Quitar vías férreas, señales, estaciones y puestos guías. Al mantener pulsado Ctrl se quitan también las vías al retirar estaciones o puestos guías +STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Convertir o actualizar tipos de vías férreas. Mayús muestra una estimación del precio STR_RAIL_NAME_RAILROAD :Ferrocarril STR_RAIL_NAME_ELRAIL :Ferrocarril eléctrico @@ -2359,13 +2359,13 @@ STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Señal d STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Señal de salida (mecánica){}Igual que una señal de bloqueo pero es necesaria para activar la posición correcta de las señales de entrada y combo STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Señal de combo (mecánica){}La señal hace lo mismo que una señal de entrada y salida a la vez, lo que permite construir grandes "árboles" de señales condicionales STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Señal de ruta (mecánica){}Una señal de ruta permite a más de un tren entrar al mismo tiempo en un tramo de vía con señales, en tanto que el tren pueda reservar una ruta hasta un lugar seguro. Puede ser pasada por detrás -STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de un sentido (mecánica){}Igual que una señal de ruta pero no ser pasada por detrás +STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de un sentido (mecánica){}Igual que una señal de ruta pero no puede ser pasada por detrás STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Señal de bloqueo (eléctrica){}Es el tipo de señal más básico que permite a un único tren ocupar al mismo tiempo un tramo de vía entre dos señales STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Señal de entrada (eléctrica){}Verde si existe una o más señales de salida en el siguiente tramo, de lo contrario se mostrará en rojo STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Señal de salida (eléctrica){}Igual que una señal de bloqueo pero es necesaria para activar el color correcto de las señales de entrada y combo STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Señal combo (eléctrica){}La señal hace lo mismo que una señal de entrada y salida a la vez, lo que permite construir grandes "árboles" de señales condicionales STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Señal de ruta (eléctrica){}Una señal de ruta permite a más de un tren entrar al mismo tiempo en un tramo de vía con señales, en tanto que el tren pueda reservar una ruta hasta un lugar seguro. Puede ser pasada por detrás -STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de un sentido (eléctrica){}gual que una señal de ruta pero no ser pasada por detrás +STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de un sentido (eléctrica){}Igual que una señal de ruta pero no puede ser pasada por detrás STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Conversión de señal{}Activar para pulsar sobre una señal existente y convertirla en el tipo y variante elegidos. Ctrl+Clic permite cambiar entre variantes de señales. Mayús+Clic muestra una estimación del precio de conversión STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Cantidad de señales instaladas al arrastrar STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Más @@ -2400,7 +2400,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Construi STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Construir estación de tranvía de pasajeros. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Construir estación de carga de camiones. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}Construir estación de tranvía de carga. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio -STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}Activar y desactivar carreteras de un sentido +STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}Activar o desactivar carreteras de un sentido STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Construir puente de carretera. Mayús muestra una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Construir puente de tranvía. Mayús muestra una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Construir túnel de carretera. Mayús muestra una estimación del precio @@ -2496,7 +2496,7 @@ STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Árboles STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Planta árboles al azar sobre el terreno # Land generation window (SE) -STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Generación de terrenos +STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Generación de terreno STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Colocar zonas rocosas sobre el terreno STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}Definir área desértica.{}Mantener pulsado Ctrl para quitarla STR_TERRAFORM_TOOLTIP_INCREASE_SIZE_OF_LAND_AREA :{BLACK}Aumentar el tamaño del área de terreno a disminuir o elevar @@ -2560,9 +2560,9 @@ STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Casas STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Clic en la industria para ver sus industrias proveedoras y receptoras STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Clic en el cargamento para ver sus industrias proveedoras y receptoras STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Mostrar cadena -STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Mostrar las industrias que suministran y reciben el cargamento +STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Mostrar las industrias que proveen y reciben el cargamento STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Ver en minimapa -STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Elegir y ver en el minimapa las industrias mostradas en el mapa prinicpal +STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Elegir y ver en el minimapa las industrias mostradas en el mapa principal STR_INDUSTRY_CARGOES_SELECT_CARGO :{BLACK}Elegir cargamento STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}Elegir el tipo de cargamento a mostrar STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}Elegir industria @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 El equipo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016, el equipo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar partida @@ -2723,9 +2723,9 @@ STR_MAPGEN_BY :{BLACK}× STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Núm. de pueblos: STR_MAPGEN_DATE :{BLACK}Fecha: STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Núm. de industrias: -STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Altura máxima del mapa: -STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Aumentar la altura máxima de las montañas del mapa una unidad -STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Disminuir la altura máxima de las montañas del mapa una unidad +STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Elevación máxima del mapa: +STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Aumentar la elevación máxima de las montañas del mapa una unidad +STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Disminuir la elevación máxima de las montañas del mapa una unidad STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Nivel de nieve: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Mover el nivel de inicio de nieve hacia arriba STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Mover el nivel de inicio de nieve hacia abajo @@ -2755,7 +2755,7 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nombre d STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamaño: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM}×{NUM} -STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Cambiar la altura máxima del mapa +STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Cambiar la elevación máxima del mapa STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Cambiar el nivel de inicio de nieve STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Cambiar año de inicio @@ -2764,11 +2764,11 @@ STR_SE_MAPGEN_CAPTION :{WHITE}Tipo de STR_SE_MAPGEN_FLAT_WORLD :{WHITE}Terreno plano STR_SE_MAPGEN_FLAT_WORLD_TOOLTIP :{BLACK}Generar un mapa plano STR_SE_MAPGEN_RANDOM_LAND :{WHITE}Terreno aleatorio -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT :{BLACK}Altura terreno plano: -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_DOWN :{BLACK}Reducir la altura del terreno plano -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}Aumenta la altura del terreno plano +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT :{BLACK}Elevación terreno plano: +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_DOWN :{BLACK}Reducir la elevación del terreno plano +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}Aumentar la elevación del terreno plano -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Cambiar la altura del terreno plano +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Cambiar elevación de terreno plano # Map generation progress STR_GENERATION_WORLD :{WHITE}Generando mapa... @@ -2812,7 +2812,7 @@ STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Bajar STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mover el NewGRF elegido una posición abajo en la lista STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualizar STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualizar los archivos NewGRF que lo requieran a la versión más reciente -STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Lista de los archivos NewGRF instalados +STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Lista de archivos NewGRF instalados STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Establecer parámetros STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Mostrar parámetros @@ -2850,7 +2850,7 @@ STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Guardar STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Cambiar parámetros de NewGRF STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Cerrar STR_NEWGRF_PARAMETERS_RESET :{BLACK}Restablecer -STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}Restablecer todos los parámentros a sus valores predeterminados +STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}Restablecer todos los parámetros a sus valores predeterminados STR_NEWGRF_PARAMETERS_DEFAULT_NAME :Parámetro {NUM} STR_NEWGRF_PARAMETERS_SETTING :{STRING}: {ORANGE}{STRING} STR_NEWGRF_PARAMETERS_NUM_PARAM :{LTBLUE}Número de parámetros: {ORANGE}{NUM} @@ -2869,11 +2869,11 @@ STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parámet # Sprite aligner window STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alinear sprite {COMMA} ({STRING}) STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Siguiente sprite -STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir al siguiente sprite (ignorando pseudosprites, sprites recoloreados y sprites de fuente) y pasar del último al primer sprite +STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir al siguiente sprite (ignorando pseudosprites, sprites coloreados y sprites de fuente) y pasar del último al primer sprite STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir a sprite STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Ir al sprite indicado. Si el sprite no es un sprite normal, ir al siguiente sprite normal STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite anterior -STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir al sprite anterior (ignorando pseudosprites, sprites recoloreados y sprites de fuente) y pasar del primer al último sprite +STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir al sprite anterior (ignorando pseudosprites, sprites coloreados y sprites de fuente) y pasar del primer al último sprite STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representación del sprite elegido. Se ignora la alineación al ser dibujado STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover el sprite cambiando los valores X y Y. Ctrl+Clic mueve el sprite ocho unidades de una sola vez STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Restaurar coordenadas relativas @@ -2894,12 +2894,12 @@ STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Ocurrió STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} no funcionará con la con la versión de TTDPatch reportada por OpenTTD STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} es la para la versión {STRING} de TTD STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} está diseñado para usarse con {STRING} -STR_NEWGRF_ERROR_INVALID_PARAMETER :Parámetro no válido para {1:STRING}: párametro {STRING} ({NUM}) +STR_NEWGRF_ERROR_INVALID_PARAMETER :Parámetro no válido para {1:STRING}: parámetro {STRING} ({NUM}) STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING} debe cargarse antes de {STRING} STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING} debe cargarse después de {STRING} STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} requiere OpenTTD versión {STRING} o superior STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :El archivo GRF fue diseñado para ser traducido -STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Demasiados NewGRFs cargados +STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Demasiados NewGRF cargados STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Cargar {1:STRING} como NewGRF estático con {STRING} puede causar desincronizaciones STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Sprite inesperado (sprite {3:NUM}) STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Propiedad de Acción 0 desconocida {4:HEX} (sprite {3:NUM}) @@ -2919,12 +2919,12 @@ STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Se van STR_NEWGRF_DUPLICATE_GRFID :{WHITE}El archivo no puede añadirse: GRF ID duplicado STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Archivo no encontrado (GRF compatible cargado) -STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir archivo: se alcanzó el máximo de NewGRFs permitidos +STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir archivo: se alcanzó el máximo de NewGRF permitidos STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargado para archivos que faltan STR_NEWGRF_DISABLED_WARNING :{WHITE}El o los archivos GRF no encontrados han sido desactivados STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Archivo(s) GRF no encontrados -STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Reanudar la partida puede provocar un error fatal en OpenTTD. No se deben crear reportes para errores fatales posteriores.{}¿Reaunudar la paritda de todos modos? +STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Reanudar la partida puede provocar un error fatal en OpenTTD. No se deben crear reportes para errores fatales posteriores.{}¿Proceder de todos modos? # NewGRF status STR_NEWGRF_LIST_NONE :Ninguno @@ -2940,7 +2940,7 @@ STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Cambió STR_BROKEN_VEHICLE_LENGTH :{WHITE}Tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud no válida. Puede ser debido a problemas con los NewGRF. El juego puede fallar STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' da información incorrecta -STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La información de cargamanto o reequipamiento para '{1:ENGINE}' difiere de la lista de compra después de la construcción. Esto puede causar que la renovación y el reemplazo automático no haga el reequipamiento correcta +STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La información de cargamento o reequipamiento para '{1:ENGINE}' difiere de la lista de compra después de la construcción. Esto puede causar que la renovación y el reemplazo automático no haga el reequipamiento correcta STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ha causado un bucle sin fin en la llamada de producción STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}La llamada {1:HEX} devolvió un resultado desconocido o no válido {2:HEX} @@ -2956,7 +2956,7 @@ STR_INVALID_VEHICLE : Date: Thu, 12 May 2016 19:14:06 +0000 Subject: [PATCH 054/417] (svn r27564) -Update: Ownname of es_MX. --- src/lang/spanish_MX.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 6ce25a3d8b..816d4469c6 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1,5 +1,5 @@ ##name Spanish (Mexican) -##ownname Español mexicano (MX) +##ownname Español (MX) ##isocode es_MX ##plural 0 ##textdir ltr From 724dd443553f813fd116a895ef61abac7540e0f8 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 13 May 2016 17:45:33 +0000 Subject: [PATCH 055/417] (svn r27565) -Update from Eints: spanish (mexican): 13 changes by Absay --- src/lang/spanish_MX.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 816d4469c6..a161be335a 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1178,7 +1178,7 @@ STR_CONFIG_SETTING_TILE_LENGTH :{COMMA} casilla STR_CONFIG_SETTING_SMOKE_AMOUNT :Cantidad de humo o chispas: {STRING} STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Cantidad de humo o chispas que son emitidos por los vehículos STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :Modelo de aceleración para trenes: {STRING} -STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Elegir el modelo de física para emplear en la aceleración de trenes. El modelo 'Original' penaliza las pendientes de forma idéntica para todos los vehículos. El modelo 'Simulado' penaliza pendientes y curvas según las características del tren como longitud, fuerza de tracción, etc. +STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Elegir el modelo de simulación física para emplear en la aceleración de trenes. El modelo 'Original' penaliza las pendientes de forma idéntica para todos los vehículos. El modelo 'Simulado' penaliza pendientes y curvas según las características del tren como longitud, fuerza de tracción, etc. STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Modelo de aceleración para vehículos de carretera: {STRING} STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Elegir el modelo de simulación física para emplear en la aceleración de vehículos de carretera. El modelo 'Original' penaliza las pendientes de forma idéntica para todos los vehículos. El modelo 'Simulado' penaliza pendientes y curvas según las características del vehículo como potencia, fuerza de tracción, etc. STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :Inclinación de pendientes para trenes: {STRING} @@ -1256,7 +1256,7 @@ STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Mantenimiento d STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Cuando se activa, la infraestructura tiene costo de mantenimiento, el cual aumenta en relación con el tamaño de la red de transporte. Esto afecta en mayor medida a las empresas grandes que a las pequeñas STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Aeropuertos siempre disponibles: {STRING} -STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Los tipos de aeropuertos estarán disponibles todo el tiempo después de haber surgido +STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Los tipos de aeropuertos estarán disponibles todo el tiempo tras haber sido introducidos STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Avisar si un vehículo se ha perdido: {STRING} STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Mostrar mensajes indicando aquellos vehículos que no puedan encontrar una ruta a su destino @@ -1298,7 +1298,7 @@ STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Tipo de terreno: {STRING} STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Solo TerraGenesis) Colinas del terreno STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densidad industrial: {STRING} -STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :El número de industrias a generar y el nivel a mantener durante el juego +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Número de industrias a generar y nivel a mantener durante el juego STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distancia máxima de refinerías de petróleo con los bordes del mapa: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Las refinerías de petróleo se construyen cerca del borde del mapa, el cual es costa en mapas con borde marítimo STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Nivel de inicio de nieve: {STRING} @@ -1328,7 +1328,7 @@ STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una o m STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o más casillas en uno de los bordes no es agua STR_CONFIG_SETTING_STATION_SPREAD :Máxima ampliación de estaciones: {STRING} -STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Máxima área que pueden ocupar las partes de una estación. Los valores muy altos pueden alentar el juego +STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Máxima área que pueden ocupar las partes de una estación. Los valores muy altos pueden hacer que el juego sea lento STR_CONFIG_SETTING_SERVICEATHELIPAD :Realizar automáticamente el mantenimiento de helicópteros en los helipuertos: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Dar mantenimiento a los helicópteros después de cada aterrizaje, aun sin haber hangar en el aeropuerto STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Unir la barra de transformación de terreno con la barra de construcción: {STRING} @@ -4853,23 +4853,23 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helicóptero Po # Formatting of some strings STR_FORMAT_DATE_TINY :{0:STRING}/{1:STRING}/{2:NUM} STR_FORMAT_DATE_SHORT :{STRING} {NUM} -STR_FORMAT_DATE_LONG :{0:STRING} de {1:STRING} de {2:NUM} +STR_FORMAT_DATE_LONG :{0:STRING} {1:STRING} {2:NUM} STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING} STR_FORMAT_BUOY_NAME :Boya {TOWN} STR_FORMAT_BUOY_NAME_SERIAL :Boya {TOWN} #{COMMA} STR_FORMAT_COMPANY_NUM :(Empresa {COMMA}) STR_FORMAT_GROUP_NAME :Grupo {COMMA} -STR_FORMAT_INDUSTRY_NAME :{1:STRING} de {0:TOWN} +STR_FORMAT_INDUSTRY_NAME :{1:STRING}, {0:TOWN} STR_FORMAT_WAYPOINT_NAME :Puesto guía {TOWN} -STR_FORMAT_WAYPOINT_NAME_SERIAL :Puesto guía {TOWN} #{COMMA} +STR_FORMAT_WAYPOINT_NAME_SERIAL :Puesto guía #{1:COMMA}, {0:TOWN} -STR_FORMAT_DEPOT_NAME_TRAIN :Depósito de trenes de {TOWN} -STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :Depósito de trenes #{1:COMMA} de {0:TOWN} -STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Depósito de vehículos de carretera de {TOWN} -STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :Depósito de vehículos de carretera #{1:COMMA} de {0:TOWN} -STR_FORMAT_DEPOT_NAME_SHIP :Astillero de {TOWN} -STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :Astillero #{1:COMMA} de {0:TOWN} +STR_FORMAT_DEPOT_NAME_TRAIN :Depósito de trenes, {TOWN} +STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :Depósito de trenes #{1:COMMA}, {0:TOWN} +STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Depósito de vehículos de carretera, {TOWN} +STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :Depósito de vehículos de carretera #{1:COMMA}, {0:TOWN} +STR_FORMAT_DEPOT_NAME_SHIP :Astillero, {TOWN} +STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :Astillero #{1:COMMA}, {0:TOWN} STR_FORMAT_DEPOT_NAME_AIRCRAFT :Hangar de {STATION} STR_UNKNOWN_STATION :estación desconocida From 101a63c3f50e50d7c7c9f2c6c69354187e493f01 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 14 May 2016 17:45:37 +0000 Subject: [PATCH 056/417] (svn r27566) -Update from Eints: spanish (mexican): 6 changes by Absay --- src/lang/spanish_MX.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index a161be335a..65b0f0cfd0 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -982,7 +982,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Elegir l STR_GAME_OPTIONS_RESOLUTION_OTHER :Otra STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz -STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elige el tamaño de los elementos de la interfaz +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elegir el tamaño de los elementos de la interfaz STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble @@ -2588,7 +2588,7 @@ STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}Tipo de STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}Nombre del aeropuerto: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nombre de casilla del aeropuerto: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} -STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargamento que recibe: {LTBLUE} +STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargamento recibido: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {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} @@ -2723,7 +2723,7 @@ STR_MAPGEN_BY :{BLACK}× STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Núm. de pueblos: STR_MAPGEN_DATE :{BLACK}Fecha: STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Núm. de industrias: -STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Elevación máxima del mapa: +STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Elevación máx.: STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Aumentar la elevación máxima de las montañas del mapa una unidad STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Disminuir la elevación máxima de las montañas del mapa una unidad STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Nivel de nieve: @@ -3205,7 +3205,7 @@ STR_FINANCES_MAX_LOAN :{WHITE}Préstam STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Pedir préstamo de {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Incrementar préstamo. Ctrl+Clic solicita todo el préstamo posible -STR_FINANCES_REPAY_BUTTON :{BLACK}Pagar préstamo {CURRENCY_LONG} +STR_FINANCES_REPAY_BUTTON :{BLACK}Pagar préstamo de {CURRENCY_LONG} STR_FINANCES_REPAY_TOOLTIP :{BLACK}Pagar parte del préstamo. Ctrl+Clic paga todo el préstamo posible STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}Infraestructura @@ -3244,9 +3244,9 @@ STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nueva ca STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Elegir nueva cara para el presidente STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Diseño de colores STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Cambiar el diseño de colores corporativos de la empresa -STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Nombre de la empresa +STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Nombre empresa STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambiar el nombre de la empresa -STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nombre del presidente +STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nombre presidente STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Cambiar el nombre del presidente STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Comprar un 25% de las acciones From e71afa0c10b2f613cc2c1d8ace814dcfc8891823 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 17 May 2016 17:45:37 +0000 Subject: [PATCH 057/417] (svn r27567) -Update from Eints: finnish: 1 change by jpx_ --- src/lang/finnish.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index f10062151b..34fb2b4b08 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2874,7 +2874,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Mene val STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Edelinen sprite STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Jatka edelliseen tavalliseen spriteen ja hyppää yli kaikki pseudo-/uudelleenväritetyt/fontti- spritet ja mene loppuun kun päästään ensimmäiseen STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Valitun spriten näyttö. Sijaintia ei huomioida spriteä piirrettäessä -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Liikuta spriteä ympäriinsä, muuttaen X- ja Y-sijainteja +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Liikuta spriteä ympäriinsä, muuttaen X- ja Y-sijainteja. Ctrl+Klik siirtää spriteä kahdeksan yksikköä kerralla STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Nollaa suhteelliset STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Nollaa suhteelliset erotukset STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X-erotus: {NUM}, Y-erotus: {NUM} (Absoluuttinen) From dd2f369e9da07bf0f983c28eaee2c88ec72b223e Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 18 May 2016 17:45:35 +0000 Subject: [PATCH 058/417] (svn r27568) -Update from Eints: dutch: 1 change by habell --- src/lang/dutch.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 50470a2e5f..759250d394 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -2874,7 +2874,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Ga naar STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Vorige afbeelding STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ga naar vorige normale afbeelding, sla alle pseudo/herkleur/lettertype afbeeldingen over en ga naar het einde bij het begin STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Voorbeeld van de huidige afbeelding. De uitlijning wordt genegeerd bij het weergeven van de afbeelding -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Afbeelding verplaatsen, dit verandert X en Y offsets +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Afbeelding verplaatsen, dit verandert X en Y offsets. Ctr+klik om de afbeelding 8 eenheden per keer te verplaatsen. STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Herstel relatief STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Herstel de huidige relative offsets STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absoluut) From f5c5783fac7d897658176a5954f245afaf9e9e66 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 20 May 2016 17:45:35 +0000 Subject: [PATCH 059/417] (svn r27569) -Update from Eints: spanish (mexican): 3 changes by Absay --- src/lang/spanish_MX.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 65b0f0cfd0..becbc0c8f9 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -127,7 +127,7 @@ STR_QUANTITY_TOFFEE :{WEIGHT_LONG} d STR_QUANTITY_BATTERIES :{COMMA} pila{P "" s} STR_QUANTITY_PLASTIC :{VOLUME_LONG} de plásticos STR_QUANTITY_FIZZY_DRINKS :{COMMA} refresco{P "" s} -STR_QUANTITY_N_A :Ninguna +STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : @@ -2814,7 +2814,7 @@ STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualiz STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualizar los archivos NewGRF que lo requieran a la versión más reciente STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Lista de archivos NewGRF instalados -STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Establecer parámetros +STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Parámetros STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Mostrar parámetros STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Cambiar paleta STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Cambia la paleta del NewGRF elegido.{}Esto es necesario cuando los gráficos de un NewGRF se ven de color rosa durante el juego @@ -3774,7 +3774,7 @@ STR_ORDER_DROP_REFIT_AUTO_ANY :Cargamento disp STR_ORDER_SERVICE :{BLACK}Mantenimiento STR_ORDER_DROP_GO_ALWAYS_DEPOT :Ir siempre -STR_ORDER_DROP_SERVICE_DEPOT :Mantenimiento si es necesario +STR_ORDER_DROP_SERVICE_DEPOT :Mantto. si es necesario STR_ORDER_DROP_HALT_DEPOT :Detenerse STR_ORDER_SERVICE_TOOLTIP :{BLACK}Ignorar esta orden a menos que el mantenimiento sea necesario From 998a6c1302a1430a0f667dfce7e01ba6a7e4b6a2 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 10:04:41 +0000 Subject: [PATCH 060/417] (svn r27570) -Fix [FS#6449]: Various incorrect but uncritical size computations in the content client. --- src/network/network_content.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index 174dbdafe6..1a186826a9 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -57,7 +57,7 @@ bool ClientNetworkContentSocketHandler::Receive_SERVER_INFO(Packet *p) ci->filesize = p->Recv_uint32(); p->Recv_string(ci->name, lengthof(ci->name)); - p->Recv_string(ci->version, lengthof(ci->name)); + p->Recv_string(ci->version, lengthof(ci->version)); p->Recv_string(ci->url, lengthof(ci->url)); p->Recv_string(ci->description, lengthof(ci->description), SVS_REPLACE_WITH_QUESTION_MARK | SVS_ALLOW_NEWLINE); @@ -220,10 +220,9 @@ void ClientNetworkContentSocketHandler::RequestContentList(uint count, const Con while (count > 0) { /* We can "only" send a limited number of IDs in a single packet. * A packet begins with the packet size and a byte for the type. - * Then this packet adds a byte for the content type and a uint16 - * for the count in this packet. The rest of the packet can be - * used for the IDs. */ - uint p_count = min(count, (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(byte) - sizeof(uint16)) / sizeof(uint32)); + * Then this packet adds a uint16 for the count in this packet. + * The rest of the packet can be used for the IDs. */ + uint p_count = min(count, (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(uint16)) / sizeof(uint32)); Packet *p = new Packet(PACKET_CONTENT_CLIENT_INFO_ID); p->Send_uint16(p_count); @@ -249,9 +248,9 @@ void ClientNetworkContentSocketHandler::RequestContentList(ContentVector *cv, bo this->Connect(); - /* 20 is sizeof(uint32) + sizeof(md5sum (byte[16])) */ assert(cv->Length() < 255); - assert(cv->Length() < (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(uint8)) / (send_md5sum ? 20 : sizeof(uint32))); + assert(cv->Length() < (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(uint8)) / + (sizeof(uint8) + sizeof(uint32) + (send_md5sum ? sizeof(ContentInfo::md5sum) : 0))); Packet *p = new Packet(send_md5sum ? PACKET_CONTENT_CLIENT_INFO_EXTID_MD5 : PACKET_CONTENT_CLIENT_INFO_EXTID); p->Send_uint8(cv->Length()); From 14c1a7ad0b3b5525594f28a6d468761b9bc09103 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 10:07:48 +0000 Subject: [PATCH 061/417] (svn r27571) -Codechange: Consistent naming for command callbacks which play a sound effect. --- src/command_func.h | 8 ++++---- src/dock_gui.cpp | 6 +++--- src/main_gui.cpp | 2 +- src/network/network_command.cpp | 8 ++++---- src/rail_gui.cpp | 20 ++++++++++---------- src/road_gui.cpp | 8 ++++---- src/terraform_gui.cpp | 4 ++-- 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/command_func.h b/src/command_func.h index c4cc51e3da..3369475675 100644 --- a/src/command_func.h +++ b/src/command_func.h @@ -81,7 +81,7 @@ CommandCallback CcBuildBridge; /* dock_gui.cpp */ CommandCallback CcBuildDocks; -CommandCallback CcBuildCanal; +CommandCallback CcPlaySound_SPLAT_WATER; /* depot_gui.cpp */ CommandCallback CcCloneVehicle; @@ -97,19 +97,19 @@ CommandCallback CcAddVehicleNewGroup; CommandCallback CcBuildIndustry; /* main_gui.cpp */ -CommandCallback CcPlaySound10; +CommandCallback CcPlaySound_EXPLOSION; CommandCallback CcPlaceSign; CommandCallback CcTerraform; CommandCallback CcGiveMoney; /* rail_gui.cpp */ -CommandCallback CcPlaySound1E; +CommandCallback CcPlaySound_SPLAT_RAIL; CommandCallback CcRailDepot; CommandCallback CcStation; CommandCallback CcBuildRailTunnel; /* road_gui.cpp */ -CommandCallback CcPlaySound1D; +CommandCallback CcPlaySound_SPLAT_OTHER; CommandCallback CcBuildRoadTunnel; CommandCallback CcRoadDepot; CommandCallback CcRoadStop; diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index f6699daeff..c209206685 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -48,7 +48,7 @@ void CcBuildDocks(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p if (!_settings_client.gui.persistent_buildingtools) ResetObjectToPlace(); } -void CcBuildCanal(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) +void CcPlaySound_SPLAT_WATER(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) { if (result.Succeeded() && _settings_client.sound.confirm) SndPlayTileFx(SND_02_SPLAT_WATER, tile); } @@ -235,10 +235,10 @@ struct BuildDocksToolbarWindow : Window { GUIPlaceProcDragXY(select_proc, start_tile, end_tile); break; case DDSP_CREATE_WATER: - DoCommandP(end_tile, start_tile, (_game_mode == GM_EDITOR && _ctrl_pressed) ? WATER_CLASS_SEA : WATER_CLASS_CANAL, CMD_BUILD_CANAL | CMD_MSG(STR_ERROR_CAN_T_BUILD_CANALS), CcBuildCanal); + DoCommandP(end_tile, start_tile, (_game_mode == GM_EDITOR && _ctrl_pressed) ? WATER_CLASS_SEA : WATER_CLASS_CANAL, CMD_BUILD_CANAL | CMD_MSG(STR_ERROR_CAN_T_BUILD_CANALS), CcPlaySound_SPLAT_WATER); break; case DDSP_CREATE_RIVER: - DoCommandP(end_tile, start_tile, WATER_CLASS_RIVER, CMD_BUILD_CANAL | CMD_MSG(STR_ERROR_CAN_T_PLACE_RIVERS), CcBuildCanal); + DoCommandP(end_tile, start_tile, WATER_CLASS_RIVER, CMD_BUILD_CANAL | CMD_MSG(STR_ERROR_CAN_T_PLACE_RIVERS), CcPlaySound_SPLAT_WATER); break; default: break; diff --git a/src/main_gui.cpp b/src/main_gui.cpp index cdef1e6a6e..b13920a648 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -118,7 +118,7 @@ bool HandlePlacePushButton(Window *w, int widget, CursorID cursor, HighLightStyl } -void CcPlaySound10(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) +void CcPlaySound_EXPLOSION(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) { if (result.Succeeded() && _settings_client.sound.confirm) SndPlayTileFx(SND_12_EXPLOSION, tile); } diff --git a/src/network/network_command.cpp b/src/network/network_command.cpp index 6e5458fd86..bc08bc5f14 100644 --- a/src/network/network_command.cpp +++ b/src/network/network_command.cpp @@ -27,7 +27,7 @@ static CommandCallback * const _callback_table[] = { /* 0x01 */ CcBuildPrimaryVehicle, /* 0x02 */ CcBuildAirport, /* 0x03 */ CcBuildBridge, - /* 0x04 */ CcBuildCanal, + /* 0x04 */ CcPlaySound_SPLAT_WATER, /* 0x05 */ CcBuildDocks, /* 0x06 */ CcFoundTown, /* 0x07 */ CcBuildRoadTunnel, @@ -36,9 +36,9 @@ static CommandCallback * const _callback_table[] = { /* 0x0A */ CcRoadDepot, /* 0x0B */ CcRailDepot, /* 0x0C */ CcPlaceSign, - /* 0x0D */ CcPlaySound10, - /* 0x0E */ CcPlaySound1D, - /* 0x0F */ CcPlaySound1E, + /* 0x0D */ CcPlaySound_EXPLOSION, + /* 0x0E */ CcPlaySound_SPLAT_OTHER, + /* 0x0F */ CcPlaySound_SPLAT_RAIL, /* 0x10 */ CcStation, /* 0x11 */ CcTerraform, /* 0x12 */ CcAI, diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 3a903fbe7f..64a1126d81 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -86,7 +86,7 @@ static bool IsStationAvailable(const StationSpec *statspec) return Convert8bitBooleanCallback(statspec->grf_prop.grffile, CBID_STATION_AVAILABILITY, cb_res); } -void CcPlaySound1E(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) +void CcPlaySound_SPLAT_RAIL(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) { if (result.Succeeded() && _settings_client.sound.confirm) SndPlayTileFx(SND_20_SPLAT_RAIL, tile); } @@ -97,7 +97,7 @@ static void GenericPlaceRail(TileIndex tile, int cmd) _remove_button_clicked ? CMD_REMOVE_SINGLE_RAIL | CMD_MSG(STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK) : CMD_BUILD_SINGLE_RAIL | CMD_MSG(STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK), - CcPlaySound1E); + CcPlaySound_SPLAT_RAIL); } /** @@ -223,7 +223,7 @@ static void GenericPlaceSignals(TileIndex tile) Track track = FindFirstTrack(trackbits); if (_remove_button_clicked) { - DoCommandP(tile, track, 0, CMD_REMOVE_SIGNALS | CMD_MSG(STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM), CcPlaySound1E); + DoCommandP(tile, track, 0, CMD_REMOVE_SIGNALS | CMD_MSG(STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM), CcPlaySound_SPLAT_RAIL); } else { const Window *w = FindWindowById(WC_BUILD_SIGNAL, 0); @@ -250,7 +250,7 @@ static void GenericPlaceSignals(TileIndex tile) DoCommandP(tile, p1, 0, CMD_BUILD_SIGNALS | CMD_MSG((w != NULL && _convert_signal_button) ? STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE : STR_ERROR_CAN_T_BUILD_SIGNALS_HERE), - CcPlaySound1E); + CcPlaySound_SPLAT_RAIL); } } @@ -355,7 +355,7 @@ static void DoRailroadTrack(int mode) _remove_button_clicked ? CMD_REMOVE_RAILROAD_TRACK | CMD_MSG(STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK) : CMD_BUILD_RAILROAD_TRACK | CMD_MSG(STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK), - CcPlaySound1E); + CcPlaySound_SPLAT_RAIL); } static void HandleAutodirPlacement() @@ -410,7 +410,7 @@ static void HandleAutoSignalPlacement() _remove_button_clicked ? CMD_REMOVE_SIGNAL_TRACK | CMD_MSG(STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM) : CMD_BUILD_SIGNAL_TRACK | CMD_MSG(STR_ERROR_CAN_T_BUILD_SIGNALS_HERE), - CcPlaySound1E); + CcPlaySound_SPLAT_RAIL); } @@ -710,7 +710,7 @@ struct BuildRailToolbarWindow : Window { break; case DDSP_CONVERT_RAIL: - DoCommandP(end_tile, start_tile, _cur_railtype | (_ctrl_pressed ? 0x10 : 0), CMD_CONVERT_RAIL | CMD_MSG(STR_ERROR_CAN_T_CONVERT_RAIL), CcPlaySound1E); + DoCommandP(end_tile, start_tile, _cur_railtype | (_ctrl_pressed ? 0x10 : 0), CMD_CONVERT_RAIL | CMD_MSG(STR_ERROR_CAN_T_CONVERT_RAIL), CcPlaySound_SPLAT_RAIL); break; case DDSP_REMOVE_STATION: @@ -718,20 +718,20 @@ struct BuildRailToolbarWindow : Window { if (this->IsWidgetLowered(WID_RAT_BUILD_STATION)) { /* Station */ if (_remove_button_clicked) { - DoCommandP(end_tile, start_tile, _ctrl_pressed ? 0 : 1, CMD_REMOVE_FROM_RAIL_STATION | CMD_MSG(STR_ERROR_CAN_T_REMOVE_PART_OF_STATION), CcPlaySound1E); + DoCommandP(end_tile, start_tile, _ctrl_pressed ? 0 : 1, CMD_REMOVE_FROM_RAIL_STATION | CMD_MSG(STR_ERROR_CAN_T_REMOVE_PART_OF_STATION), CcPlaySound_SPLAT_RAIL); } else { HandleStationPlacement(start_tile, end_tile); } } else { /* Waypoint */ if (_remove_button_clicked) { - DoCommandP(end_tile, start_tile, _ctrl_pressed ? 0 : 1, CMD_REMOVE_FROM_RAIL_WAYPOINT | CMD_MSG(STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT), CcPlaySound1E); + DoCommandP(end_tile, start_tile, _ctrl_pressed ? 0 : 1, CMD_REMOVE_FROM_RAIL_WAYPOINT | CMD_MSG(STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT), CcPlaySound_SPLAT_RAIL); } else { TileArea ta(start_tile, end_tile); uint32 p1 = _cur_railtype | (select_method == VPM_FIX_X ? AXIS_X : AXIS_Y) << 4 | ta.w << 8 | ta.h << 16 | _ctrl_pressed << 24; uint32 p2 = STAT_CLASS_WAYP | _cur_waypoint_type << 8 | INVALID_STATION << 16; - CommandContainer cmdcont = { ta.tile, p1, p2, CMD_BUILD_RAIL_WAYPOINT | CMD_MSG(STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT), CcPlaySound1E, "" }; + CommandContainer cmdcont = { ta.tile, p1, p2, CMD_BUILD_RAIL_WAYPOINT | CMD_MSG(STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT), CcPlaySound_SPLAT_RAIL, "" }; ShowSelectWaypointIfNeeded(cmdcont, ta); } } diff --git a/src/road_gui.cpp b/src/road_gui.cpp index 92c660e8a3..03dd12bbf0 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -64,7 +64,7 @@ static RoadType _cur_roadtype; static DiagDirection _road_depot_orientation; static DiagDirection _road_station_picker_orientation; -void CcPlaySound1D(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) +void CcPlaySound_SPLAT_OTHER(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) { if (result.Succeeded() && _settings_client.sound.confirm) SndPlayTileFx(SND_1F_SPLAT_OTHER, tile); } @@ -629,7 +629,7 @@ struct BuildRoadToolbarWindow : Window { DoCommandP(start_tile, end_tile, _place_road_flag | (_cur_roadtype << 3) | (_one_way_button_clicked << 5), _remove_button_clicked ? CMD_REMOVE_LONG_ROAD | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_road) : - CMD_BUILD_LONG_ROAD | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_road), CcPlaySound1D); + CMD_BUILD_LONG_ROAD | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_road), CcPlaySound_SPLAT_OTHER); break; case DDSP_BUILD_BUSSTOP: @@ -642,13 +642,13 @@ struct BuildRoadToolbarWindow : Window { case DDSP_REMOVE_BUSSTOP: { TileArea ta(start_tile, end_tile); - DoCommandP(ta.tile, ta.w | ta.h << 8, (_ctrl_pressed << 1) | ROADSTOP_BUS, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[ROADSTOP_BUS]), CcPlaySound1D); + DoCommandP(ta.tile, ta.w | ta.h << 8, (_ctrl_pressed << 1) | ROADSTOP_BUS, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[ROADSTOP_BUS]), CcPlaySound_SPLAT_OTHER); break; } case DDSP_REMOVE_TRUCKSTOP: { TileArea ta(start_tile, end_tile); - DoCommandP(ta.tile, ta.w | ta.h << 8, (_ctrl_pressed << 1) | ROADSTOP_TRUCK, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[ROADSTOP_TRUCK]), CcPlaySound1D); + DoCommandP(ta.tile, ta.w | ta.h << 8, (_ctrl_pressed << 1) | ROADSTOP_TRUCK, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[ROADSTOP_TRUCK]), CcPlaySound_SPLAT_OTHER); break; } } diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index 7a319d66fc..6274de8cdd 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -114,7 +114,7 @@ bool GUIPlaceProcDragXY(ViewportDragDropSelectionProcess proc, TileIndex start_t switch (proc) { case DDSP_DEMOLISH_AREA: - DoCommandP(end_tile, start_tile, _ctrl_pressed ? 1 : 0, CMD_CLEAR_AREA | CMD_MSG(STR_ERROR_CAN_T_CLEAR_THIS_AREA), CcPlaySound10); + DoCommandP(end_tile, start_tile, _ctrl_pressed ? 1 : 0, CMD_CLEAR_AREA | CMD_MSG(STR_ERROR_CAN_T_CLEAR_THIS_AREA), CcPlaySound_EXPLOSION); break; case DDSP_RAISE_AND_LEVEL_AREA: DoCommandP(end_tile, start_tile, LM_RAISE << 1 | (_ctrl_pressed ? 1 : 0), CMD_LEVEL_LAND | CMD_MSG(STR_ERROR_CAN_T_RAISE_LAND_HERE), CcTerraform); @@ -237,7 +237,7 @@ struct TerraformToolbarWindow : Window { break; case WID_TT_BUY_LAND: // Buy land button - DoCommandP(tile, OBJECT_OWNED_LAND, 0, CMD_BUILD_OBJECT | CMD_MSG(STR_ERROR_CAN_T_PURCHASE_THIS_LAND), CcPlaySound1E); + DoCommandP(tile, OBJECT_OWNED_LAND, 0, CMD_BUILD_OBJECT | CMD_MSG(STR_ERROR_CAN_T_PURCHASE_THIS_LAND), CcPlaySound_SPLAT_RAIL); break; case WID_TT_PLACE_SIGN: // Place sign button From 2de4652d098aa1408460d7538dae7b013d786709 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 10:10:17 +0000 Subject: [PATCH 062/417] (svn r27572) -Fix [FS#6442]: Convenience savegame bump to distinguish 1.6 savegames from 1.5 savegames. --- src/saveload/saveload.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index b1a21844f3..724bc649bf 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -261,9 +261,10 @@ * 191 26646 * 192 26700 * 193 26802 - * 194 26881 1.5.x, 1.6.x + * 194 26881 1.5.x, 1.6.0 + * 195 27572 1.6.x */ -extern const uint16 SAVEGAME_VERSION = 194; ///< Current savegame version of OpenTTD. +extern const uint16 SAVEGAME_VERSION = 195; ///< Current savegame version of OpenTTD. SavegameType _savegame_type; ///< type of savegame we are loading From 6fafa3d93ac294596e6a9f77337b725be0bf1537 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 10:15:35 +0000 Subject: [PATCH 063/417] (svn r27573) -Fix [FS#6467]: Compilation failure with gcc 6.1 due to headers included after safeguards.h (JGR) --- src/crashlog.cpp | 65 ++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/src/crashlog.cpp b/src/crashlog.cpp index 7ddc2131f9..4000cfb03e 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -36,6 +36,38 @@ #include +#ifdef WITH_ALLEGRO +# include +#endif /* WITH_ALLEGRO */ +#ifdef WITH_FONTCONFIG +# include +#endif /* WITH_FONTCONFIG */ +#ifdef WITH_PNG + /* pngconf.h, included by png.h doesn't like something in the + * freetype headers. As such it's not alphabetically sorted. */ +# include +#endif /* WITH_PNG */ +#ifdef WITH_FREETYPE +# include +# include FT_FREETYPE_H +#endif /* WITH_FREETYPE */ +#if defined(WITH_ICU_LAYOUT) || defined(WITH_ICU_SORT) +# include +#endif /* WITH_ICU_SORT || WITH_ICU_LAYOUT */ +#ifdef WITH_LZMA +# include +#endif +#ifdef WITH_LZO +#include +#endif +#ifdef WITH_SDL +# include "sdl.h" +# include +#endif /* WITH_SDL */ +#ifdef WITH_ZLIB +# include +#endif + #include "safeguards.h" /* static */ const char *CrashLog::message = NULL; @@ -180,39 +212,6 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const return buffer; } -/* Include these here so it's close to where it's actually used. */ -#ifdef WITH_ALLEGRO -# include -#endif /* WITH_ALLEGRO */ -#ifdef WITH_FONTCONFIG -# include -#endif /* WITH_FONTCONFIG */ -#ifdef WITH_PNG - /* pngconf.h, included by png.h doesn't like something in the - * freetype headers. As such it's not alphabetically sorted. */ -# include -#endif /* WITH_PNG */ -#ifdef WITH_FREETYPE -# include -# include FT_FREETYPE_H -#endif /* WITH_FREETYPE */ -#if defined(WITH_ICU_LAYOUT) || defined(WITH_ICU_SORT) -# include -#endif /* WITH_ICU_SORT || WITH_ICU_LAYOUT */ -#ifdef WITH_LZMA -# include -#endif -#ifdef WITH_LZO -#include -#endif -#ifdef WITH_SDL -# include "sdl.h" -# include -#endif /* WITH_SDL */ -#ifdef WITH_ZLIB -# include -#endif - /** * Writes information (versions) of the used libraries. * @param buffer The begin where to write at. From 1124c15ccdcea5b997c92d24c486844fd2599564 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 10:23:22 +0000 Subject: [PATCH 064/417] (svn r27574) -Fix [FS#6432]: The house id as returned by house variable 66 was incorrect when querying neighboured tiles. (adf88) --- src/newgrf_house.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp index 6c9c614af9..2bc85f9acb 100644 --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -399,7 +399,8 @@ static uint32 GetDistanceFromNearbyHouse(uint8 parameter, TileIndex tile, HouseI case 0x66: { TileIndex testtile = GetNearbyTile(parameter, this->tile); if (!IsTileType(testtile, MP_HOUSE)) return 0xFFFFFFFF; - HouseSpec *hs = HouseSpec::Get(GetHouseType(testtile)); + HouseID nearby_house_id = GetHouseType(testtile); + HouseSpec *hs = HouseSpec::Get(nearby_house_id); /* Information about the grf local classid if the house has a class */ uint houseclass = 0; if (hs->class_id != HOUSE_NO_CLASS) { @@ -408,8 +409,8 @@ static uint32 GetDistanceFromNearbyHouse(uint8 parameter, TileIndex tile, HouseI } /* old house type or grf-local houseid */ uint local_houseid = 0; - if (this->house_id < NEW_HOUSE_OFFSET) { - local_houseid = this->house_id; + if (nearby_house_id < NEW_HOUSE_OFFSET) { + local_houseid = nearby_house_id; } else { local_houseid = (hs->grf_prop.grffile == this->ro.grffile ? 1 : 2) << 8; local_houseid |= hs->grf_prop.local_id; From 7108b0aa3b8dd18511ac6cf98a88b8b824fd683e Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 10:28:57 +0000 Subject: [PATCH 065/417] (svn r27575) -Fix [FS#6404]: Memory leak when disabling palette animation. (JGR) --- src/blitter/32bpp_anim.cpp | 5 +++++ src/blitter/32bpp_anim.hpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/blitter/32bpp_anim.cpp b/src/blitter/32bpp_anim.cpp index a3083e40b3..deedaf34b5 100644 --- a/src/blitter/32bpp_anim.cpp +++ b/src/blitter/32bpp_anim.cpp @@ -20,6 +20,11 @@ /** Instantiation of the 32bpp with animation blitter factory. */ static FBlitter_32bppAnim iFBlitter_32bppAnim; +Blitter_32bppAnim::~Blitter_32bppAnim() +{ + free(this->anim_buf); +} + template inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom) { diff --git a/src/blitter/32bpp_anim.hpp b/src/blitter/32bpp_anim.hpp index e707c4437d..a0a022e49f 100644 --- a/src/blitter/32bpp_anim.hpp +++ b/src/blitter/32bpp_anim.hpp @@ -29,6 +29,8 @@ public: anim_buf_height(0) {} + ~Blitter_32bppAnim(); + /* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom); /* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal); /* virtual */ void SetPixel(void *video, int x, int y, uint8 colour); From 9aa9d7e898aeee75f340fd71c5ea8dd2d09d7a95 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 10:45:46 +0000 Subject: [PATCH 066/417] (svn r27576) -Fix (r27570): Compilation failure with all compilers but mine. --- 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 1a186826a9..e998aaeaf1 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -250,7 +250,7 @@ void ClientNetworkContentSocketHandler::RequestContentList(ContentVector *cv, bo assert(cv->Length() < 255); assert(cv->Length() < (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(uint8)) / - (sizeof(uint8) + sizeof(uint32) + (send_md5sum ? sizeof(ContentInfo::md5sum) : 0))); + (sizeof(uint8) + sizeof(uint32) + (send_md5sum ? /*sizeof(ContentInfo::md5sum)*/16 : 0))); Packet *p = new Packet(send_md5sum ? PACKET_CONTENT_CLIENT_INFO_EXTID_MD5 : PACKET_CONTENT_CLIENT_INFO_EXTID); p->Send_uint8(cv->Length()); From b1272ee71429f1df1fc4584b0b1581e57184fbdb Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 10:52:02 +0000 Subject: [PATCH 067/417] (svn r27577) -Fix [FS#6386]: Dock and roadstop picker, client list and town authority window did not auto-resize according to their content when they were positioned at the bottom of the screen. (Eearslya) --- src/dock_gui.cpp | 2 +- src/network/network_gui.cpp | 2 +- src/road_gui.cpp | 2 +- src/town_gui.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index c209206685..79eaa89b14 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -433,7 +433,7 @@ public: * Never make the window smaller to avoid oscillating if the size change affects the acceptance. * (This is the case, if making the window bigger moves the mouse into the window.) */ if (top > bottom) { - ResizeWindow(this, 0, top - bottom); + ResizeWindow(this, 0, top - bottom, false); } } diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 795d28e139..7c04ad4e02 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -1892,7 +1892,7 @@ struct NetworkClientListWindow : Window { int diff = (num + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM) - (this->GetWidget(WID_CL_PANEL)->current_y); /* If height is changed */ if (diff != 0) { - ResizeWindow(this, 0, diff); + ResizeWindow(this, 0, diff, false); return false; } return true; diff --git a/src/road_gui.cpp b/src/road_gui.cpp index 03dd12bbf0..62c76bf90a 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -1002,7 +1002,7 @@ struct BuildRoadStationWindow : public PickerWindowBase { * Never make the window smaller to avoid oscillating if the size change affects the acceptance. * (This is the case, if making the window bigger moves the mouse into the window.) */ if (top > bottom) { - ResizeWindow(this, 0, top - bottom); + ResizeWindow(this, 0, top - bottom, false); } } diff --git a/src/town_gui.cpp b/src/town_gui.cpp index 222549ff73..142966b694 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -177,7 +177,7 @@ public: y = y + WD_FRAMERECT_BOTTOM - nwid->pos_y; // Compute needed size of the widget. if (y > nwid->current_y) { /* If the company list is too big to fit, mark ourself dirty and draw again. */ - ResizeWindow(this, 0, y - nwid->current_y); + ResizeWindow(this, 0, y - nwid->current_y, false); } } From 6981fee459975ee24744346a4337d8d216ee598c Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 11:04:34 +0000 Subject: [PATCH 068/417] (svn r27578) -Fix [FS#6454]: Vehicles could not be hidden from the purchase list when they were in exclusive preview. --- src/engine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine.cpp b/src/engine.cpp index f8fc0ee6aa..9f9abcde0e 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -879,7 +879,7 @@ CommandCost CmdSetVehicleVisibility(TileIndex tile, DoCommandFlag flags, uint32 { Engine *e = Engine::GetIfValid(GB(p2, 0, 31)); if (e == NULL || _current_company >= MAX_COMPANIES) return CMD_ERROR; - if ((e->flags & ENGINE_AVAILABLE) == 0 || !HasBit(e->company_avail, _current_company)) return CMD_ERROR; + if (!IsEngineBuildable(e->index, e->type, _current_company)) return CMD_ERROR; if ((flags & DC_EXEC) != 0) { SB(e->company_hidden, _current_company, 1, GB(p2, 31, 1)); From 51e274a52364aa47a27961208d48e1523055ff77 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 11:30:25 +0000 Subject: [PATCH 069/417] (svn r27579) -Change [FS#6402]: Performance improvement for dedicated servers by skipping drawing calls earlier in the process. (JGR) --- src/vehicle_base.h | 4 ++++ src/window.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/vehicle_base.h b/src/vehicle_base.h index 59584da788..f923c2d791 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -23,6 +23,7 @@ #include "transport_type.h" #include "group_type.h" #include "base_consist.h" +#include "network/network.h" #include #include @@ -1072,6 +1073,9 @@ struct SpecializedVehicle : public Vehicle { */ inline void UpdateViewport(bool force_update, bool update_delta) { + /* Skip updating sprites on dedicated servers without screen */ + if (_network_dedicated) return; + /* Explicitly choose method to call to prevent vtable dereference - * it gives ~3% runtime improvements in games with many vehicles */ if (update_delta) ((T *)this)->T::UpdateDeltaXY(this->direction); diff --git a/src/window.cpp b/src/window.cpp index 1fce1f3a8d..bc92416b62 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -3031,6 +3031,10 @@ void UpdateWindows() w->ProcessHighlightedInvalidations(); } + /* Skip the actual drawing on dedicated servers without screen. + * But still empty the invalidation queues above. */ + if (_network_dedicated) return; + static int we4_timer = 0; int t = we4_timer + 1; From c9f68ede5956303cb5459e112ca2386480c17abf Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 11:45:03 +0000 Subject: [PATCH 070/417] (svn r27580) -Fix [FS#6395]: Set date of last service on construction also for wagons and articulated parts. --- src/articulated_vehicles.cpp | 1 + src/train_cmd.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/articulated_vehicles.cpp b/src/articulated_vehicles.cpp index 193c5ac4a8..8c372e7eae 100644 --- a/src/articulated_vehicles.cpp +++ b/src/articulated_vehicles.cpp @@ -433,6 +433,7 @@ void AddArticulatedParts(Vehicle *first) v->x_pos = first->x_pos; v->y_pos = first->y_pos; v->z_pos = first->z_pos; + v->date_of_last_service = first->date_of_last_service; v->build_year = first->build_year; v->vehstatus = first->vehstatus & ~VS_STOPPED; diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 6f2feeaab7..dca456d976 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -636,6 +636,7 @@ static CommandCost CmdBuildRailWagon(TileIndex tile, DoCommandFlag flags, const v->railtype = rvi->railtype; + v->date_of_last_service = _date; v->build_year = _cur_year; v->cur_image = SPR_IMG_QUERY; v->random_bits = VehicleRandomBits(); @@ -703,6 +704,7 @@ static void AddRearEngineToMultiheadedTrain(Train *v) u->refit_cap = v->refit_cap; u->railtype = v->railtype; u->engine_type = v->engine_type; + u->date_of_last_service = v->date_of_last_service; u->build_year = v->build_year; u->cur_image = SPR_IMG_QUERY; u->random_bits = VehicleRandomBits(); From 65ff8ef539cd391e1a25770a580f81ed7d8424e8 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 May 2016 12:00:36 +0000 Subject: [PATCH 071/417] (svn r27581) -Fix [FS#6461]: Button size computation in script configuration window. (adf88) --- src/ai/ai_gui.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 8944e8bc4f..a0720e2ea5 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -28,6 +28,7 @@ #include "../widgets/dropdown_type.h" #include "../widgets/dropdown_func.h" #include "../hotkeys.h" +#include "../core/geometry_func.hpp" #include "ai.hpp" #include "ai_gui.hpp" @@ -766,6 +767,22 @@ struct AIConfigWindow : public Window { this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; size->height = 8 * this->line_height; break; + + case WID_AIC_CHANGE: { + SetDParam(0, STR_AI_CONFIG_CHANGE_GAMESCRIPT); + Dimension dim = GetStringBoundingBox(STR_AI_CONFIG_CHANGE); + + SetDParam(0, STR_AI_CONFIG_CHANGE_NONE); + dim = maxdim(dim, GetStringBoundingBox(STR_AI_CONFIG_CHANGE)); + + SetDParam(0, STR_AI_CONFIG_CHANGE_AI); + dim = maxdim(dim, GetStringBoundingBox(STR_AI_CONFIG_CHANGE)); + + dim.width += padding.width; + dim.height += padding.height; + *size = maxdim(*size, dim); + break; + } } } From 39d588fa6000f4141cc22fc55bd3d1747ffff92f Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 22 May 2016 17:45:36 +0000 Subject: [PATCH 072/417] (svn r27582) -Update from Eints: spanish (mexican): 18 changes by Absay --- src/lang/spanish_MX.txt | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index becbc0c8f9..76b5ea4c15 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1097,11 +1097,11 @@ STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Plegar t STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(no hay explicación disponible) STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Valor predeterminado: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE :{LTBLUE}Tipo de opción: {ORANGE}{STRING} -STR_CONFIG_SETTING_TYPE_CLIENT :Opción de cliente (no se almacena en partidas guardadas, afecta a todas las partidas) -STR_CONFIG_SETTING_TYPE_GAME_MENU :Opción de partida (se almacena en las partidas guardadas, afecta solamente a nuevas partidas) -STR_CONFIG_SETTING_TYPE_GAME_INGAME :Opción de partida (almacenada en la partida guardada, afecta solamente a la partida actual) -STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Opción de empresa (se almacena en las partidas guardadas, afecta solamente a las nuevas partidas) -STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Opción de empresa (almacenada en la partida guardada, afecta solamente a la empresa actual) +STR_CONFIG_SETTING_TYPE_CLIENT :Opción de cliente (no se almacena en partidas guardadas, afecta todas las partidas) +STR_CONFIG_SETTING_TYPE_GAME_MENU :Opción de partida (se almacena en las partidas guardadas, afecta solamente partidas nuevas) +STR_CONFIG_SETTING_TYPE_GAME_INGAME :Opción de partida (almacenada en la partida guardada, afecta solamente la partida actual) +STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Opción de empresa (se almacena en las partidas guardadas, afecta solamente las partidas nuevas) +STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Opción de empresa (almacenada en la partida guardada, afecta solamente la empresa actual) STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categoría: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tipo: @@ -1114,11 +1114,11 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Opciones con un STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Restringir la lista a ciertos tipos de opciones STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Todos los tipos de opciones -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Opciones de cliente (no se almacena en partidas guardadas, afecta a todas las partidas) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Opciones de juego (se almacena en las partidas guardadas, afecta solamente a partidas nuevas) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Opciones de juego (se almacena en las partidas guardadas, afecta solamente a la partida actual) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente a partidas nuevas) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente a la empresa actual) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Opciones de cliente (no se almacena en partidas guardadas, afecta todas las partidas) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Opciones de juego (se almacena en las partidas guardadas, afecta solamente partidas nuevas) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Opciones de juego (se almacena en las partidas guardadas, afecta solamente la partida actual) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente partidas nuevas) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente la empresa actual) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Tipo {BLACK}a {WHITE}Todos los tipos de opción STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} {BLACK}y {SILVER}Tipo {BLACK}a {WHITE}Todos los tipos de opción @@ -1161,7 +1161,7 @@ STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, l STR_CONFIG_SETTING_DISASTERS :Desastres: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Desastres que ocasionalmente pueden bloquear o destruir vehículos o infraestructura STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de los ayuntamientos ante restructuraciones hechas en sus zonas: {STRING} -STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :En qué medida el ruido y el daño ambiental causado por las empresas afectan su evaluación y futuras acciones de construcción en las mismas zonas +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Medida en que el ruido y el daño ambiental causado por las empresas afectan su evaluación y futuras acciones de construcción en las mismas zonas STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Elevación máxima del mapa: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Elevación máxima que las montañas pueden tener en el mapa @@ -1230,7 +1230,7 @@ STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Todas las vista STR_CONFIG_SETTING_BRIBE :Permitir sobornos al ayuntamiento: {STRING} STR_CONFIG_SETTING_BRIBE_HELPTEXT :Las empresas pueden tratar de sobornar a los ayuntamientos. Si el soborno es descubierto por un inspector, la empresa no podrá realizar actividades en la localidad durante seis meses STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Permitir adquirir los derechos de transporte exclusivos: {STRING} -STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una empresa adquiere los derechos de transporte exclusivos en un pueblo, las estaciones de la competencia (pasajeros o cargamento) no recibirán nada para transportar durante un año +STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una empresa adquiere los derechos de transporte exclusivos en un pueblo, las estaciones de la competencia (de pasajeros o carga) no recibirán nada que entregar durante un año STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Permitir la construcción de nuevos edificios: {STRING} STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Las empresas aportan dinero a los ayuntamientos para que construyan nuevas casas y edificios STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permitir el pago de la reconstrucción de las carreteras locales: {STRING} @@ -1290,7 +1290,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grosor de las l STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grosor de las líneas en las gráficas. Una línea fina es más precisa, una línea más gruesa es más fácil de distinguir STR_CONFIG_SETTING_LANDSCAPE :Terreno: {STRING} -STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Los terrenos definen mapas con diferentes tipos de cargamentos y requisitos de crecimiento para los pueblos. Es posible modificarlos empleando NewGRF y scripts de juego +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Los terrenos definen mapas con diferentes tipos de carga y requisitos de crecimiento para los pueblos. Es posible modificarlos empleando NewGRF y scripts de juego STR_CONFIG_SETTING_LAND_GENERATOR :Generador de terreno: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :El generador 'Original' depende de los gráficos base y crea formas de terreno fijas. 'TerraGenesis' es un generador basado en Ruido Perlin que permite un mayor control de configuración STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original @@ -1522,8 +1522,8 @@ STR_CONFIG_SETTING_SMOOTH_ECONOMY :Activar econom STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Al activarse, habrá cambios de producción en las industrias más frecuentemente y en escala menor. Si se usa un NewGRF con industrias adicionales esta opción generalmente no tiene efecto STR_CONFIG_SETTING_ALLOW_SHARES :Permitir comprar acciones de otras empresas: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Al activarse, se pueden comprar y vender acciones de otras empresas. Las acciones de una empresa solamente estarán disponibles cuando la empresa cumpla una edad determinada -STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaje de la utilidad total a pagar por transferencias de cargamento: {STRING} -STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de utilidad cedida a los transportes intermedios en sistemas de transferencias de cargamento, dando un mayor control sobre la utilidad de cada vehículo +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaje de la utilidad total a pagar por transferencias de carga: {STRING} +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de utilidad cedida a los transportes intermedios en sistemas de transferencia de carga, dando un mayor control sobre la utilidad de cada vehículo STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Al arrastrar, colocar señales cada: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Distancia de separación entre señales hasta topar con algún obstáculo (otra señal, un desvío, etc.) al instalarlas mediante arrastre con el ratón STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} casilla{P 0 "" s} @@ -1564,7 +1564,7 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Permitido STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Permitido, diseño urbano personalizado STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Crecimiento de árboles durante la partida: {STRING} -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controlar la aparición aleatoria de árboles durante la partida. Esto puede afectar a industrias que dependen del crecimiento de árboles, como los aserraderos +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controlar la aparición aleatoria de árboles durante la partida. Esto puede afectar industrias que dependen del crecimiento de árboles, como los aserraderos STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :Ninguno {RED}(inutiliza aserraderos) STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :Solo en selva STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :Cualquier parte @@ -1623,7 +1623,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :'Asimétrica' s STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Precisión de la distribución: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Si el valor es alto, se requerirá mayor tiempo para calcular la gráfica de distribución (si se lleva demasiado tiempo, se notará desfase en el juego). Si es muy bajo, la distribución será imprecisa, pudiendo hacer que el cargamento no vaya al lugar indicado STR_CONFIG_SETTING_DEMAND_DISTANCE :Efecto de la distancia en la demanda: {STRING} -STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Con un valor diferente a 0, la distancia entre la estación de origen de cierto cargamento y una posible estación de destino afectará a la cantidad de cargamento que se envíe entre ambas. Cuanto más lejos estén entre sí, menos cargamento se enviará. Cuanto mayor sea el valor de esta opción, menos cargamento se enviará a estaciones distantes en favor de estaciones cercanas +STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Con un valor diferente a 0, la distancia entre la estación de origen de cierta carga y una posible estación de destino afectará la cantidad de cargamento que se envíe entre ambas. Cuanto más lejos estén entre sí, menos cargamento se enviará. Cuanto mayor sea el valor de esta opción, menos cargamento se enviará a estaciones distantes en favor de estaciones cercanas STR_CONFIG_SETTING_DEMAND_SIZE :Cantidad de cargamento a devolver en modo simétrico: {STRING} STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Establecer un valor menor de 100% hará que la distribución simétrica de cargamento sea más asimétrica. Se enviará menos cargamento de regreso forzosamente si una cantidad determinada es enviada a una estación. Si se fija a 0%, la distribución simétrica será como una distribución asimétrica STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Nivel de saturación de rutas cortas antes de cambiar a rutas de mayor capacidad: {STRING} @@ -1685,7 +1685,7 @@ STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Ambient STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoridades STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Pueblos STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias -STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribución de cargamento +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribución de carga STR_CONFIG_SETTING_AI :{ORANGE}Competidores STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadores no humanos From c5ae45c764b374d91ad7f05dbe65f8167ec81804 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 29 May 2016 12:21:40 +0000 Subject: [PATCH 073/417] (svn r27583) -Fix [FS#6415]: Do not decrease the column width of depot windows when vehicles with high unitnumbers leave. (Airbus) --- src/depot_gui.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 4aff4700b3..24a14b8334 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -663,7 +663,8 @@ struct DepotWindow : Window { DepotSortList(&this->vehicle_list); uint new_unitnumber_digits = GetUnitNumberDigits(this->vehicle_list); - if (this->unitnumber_digits != new_unitnumber_digits) { + /* Only increase the size; do not decrease to prevent constant changes */ + if (this->unitnumber_digits < new_unitnumber_digits) { this->unitnumber_digits = new_unitnumber_digits; this->ReInit(); } From a66e0ff1f45c1371c881205f0878e9e3110b3518 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 29 May 2016 13:33:20 +0000 Subject: [PATCH 074/417] (svn r27584) -Codechange: Add some assertions about Vehicle::cargo_payment. --- src/economy.cpp | 1 + src/vehicle.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/economy.cpp b/src/economy.cpp index d78d2cccec..121fc67332 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1651,6 +1651,7 @@ static void LoadUnloadVehicle(Vehicle *front) uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, load_amount) : cargo_count; bool remaining = false; // Are there cargo entities in this vehicle that can still be unloaded here? + assert(payment != NULL); payment->SetCargo(v->cargo_type); if (!HasBit(ge->status, GoodsEntry::GES_ACCEPTANCE) && v->cargo.ActionCount(VehicleCargoList::MTA_DELIVER) > 0) { diff --git a/src/vehicle.cpp b/src/vehicle.cpp index a482520f25..da2cfeb807 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -216,7 +216,7 @@ uint Vehicle::Crash(bool flooded) SetWindowDirty(WC_VEHICLE_DEPOT, this->tile); delete this->cargo_payment; - this->cargo_payment = NULL; + assert(this->cargo_payment == NULL); // cleared by ~CargoPayment return RandomRange(pass + 1); // Randomise deceased passengers. } @@ -746,6 +746,7 @@ void Vehicle::PreDestructor() HideFillingPercent(&this->fill_percent_te_id); this->CancelReservation(INVALID_STATION, st); delete this->cargo_payment; + assert(this->cargo_payment == NULL); // cleared by ~CargoPayment } if (this->IsEngineCountable()) { @@ -2085,6 +2086,7 @@ void Vehicle::LeaveStation() assert(this->current_order.IsType(OT_LOADING)); delete this->cargo_payment; + assert(this->cargo_payment == NULL); // cleared by ~CargoPayment /* Only update the timetable if the vehicle was supposed to stop here. */ if (this->current_order.GetNonStopType() != ONSF_STOP_EVERYWHERE) UpdateVehicleTimetable(this, false); From 0b2f8c13a26c9772fcd215b8e22132eb1c0d9e82 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 29 May 2016 13:35:17 +0000 Subject: [PATCH 075/417] (svn r27585) -Fix [FS#6437]: Enforce a non-zero load amount for all vehicles, so that vehicles can process their cargo reservations. --- src/economy.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/economy.cpp b/src/economy.cpp index 121fc67332..cdfa059e86 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1317,7 +1317,8 @@ static uint GetLoadAmount(Vehicle *v) /* Scale load amount the same as capacity */ if (HasBit(e->info.misc_flags, EF_NO_DEFAULT_CARGO_MULTIPLIER) && !air_mail) load_amount = CeilDiv(load_amount * CargoSpec::Get(v->cargo_type)->multiplier, 0x100); - return load_amount; + /* Zero load amount breaks a lot of things. */ + return max(1u, load_amount); } /** From 05a91106b864cdcbbdcd7387c7a39058041572a6 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 29 May 2016 14:14:52 +0000 Subject: [PATCH 076/417] (svn r27586) -Fix [FS#6410]: Automatic servicing of road vehicles compared path finder costs with tile distances, thus vehicles went to depots which were factor 100 too far away. (juanjo) --- src/pathfinder/yapf/yapf_road.cpp | 40 ++++++++++++++++--------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/pathfinder/yapf/yapf_road.cpp b/src/pathfinder/yapf/yapf_road.cpp index 4c26d7b095..380b641da7 100644 --- a/src/pathfinder/yapf/yapf_road.cpp +++ b/src/pathfinder/yapf/yapf_road.cpp @@ -430,29 +430,34 @@ public: return true; } - static bool stFindNearestDepot(const RoadVehicle *v, TileIndex tile, Trackdir td, int max_distance, TileIndex *depot_tile) + static FindDepotData stFindNearestDepot(const RoadVehicle *v, TileIndex tile, Trackdir td, int max_distance) { Tpf pf; - return pf.FindNearestDepot(v, tile, td, max_distance, depot_tile); + return pf.FindNearestDepot(v, tile, td, max_distance); } - inline bool FindNearestDepot(const RoadVehicle *v, TileIndex tile, Trackdir td, int max_distance, TileIndex *depot_tile) + /** + * Find the best depot for a road vehicle. + * @param v Vehicle + * @param tile Tile of the vehicle. + * @param td Trackdir of the vehicle. + * @param max_distance max length (penalty) for paths. + * @todo max_distance not used by YAPF for road vehicles. + * It can be removed or copy the SetMaxCost() strategy + * applied in YAPF for rail. The best depot can be at + * a distance greater than max_distance. + */ + inline FindDepotData FindNearestDepot(const RoadVehicle *v, TileIndex tile, Trackdir td, int max_distance) { - /* set origin and destination nodes */ + /* Set origin. */ Yapf().SetOrigin(tile, TrackdirToTrackdirBits(td)); - /* find the best path */ - bool bFound = Yapf().FindPath(v); - if (!bFound) return false; + /* Find the best path and return if no depot is found. */ + if (!Yapf().FindPath(v)) return FindDepotData(); - /* some path found - * get found depot tile */ + /* Return the cost of the best path and its depot. */ Node *n = Yapf().GetBestNode(); - - if (max_distance > 0 && n->m_cost > max_distance * YAPF_TILE_LENGTH) return false; - - *depot_tile = n->m_segment_last_tile; - return true; + return FindDepotData(n->m_segment_last_tile, n->m_cost); } }; @@ -504,7 +509,7 @@ FindDepotData YapfRoadVehicleFindNearestDepot(const RoadVehicle *v, int max_dist } /* default is YAPF type 2 */ - typedef bool (*PfnFindNearestDepot)(const RoadVehicle*, TileIndex, Trackdir, int, TileIndex*); + typedef FindDepotData (*PfnFindNearestDepot)(const RoadVehicle*, TileIndex, Trackdir, int); PfnFindNearestDepot pfnFindNearestDepot = &CYapfRoadAnyDepot2::stFindNearestDepot; /* check if non-default YAPF type should be used */ @@ -512,8 +517,5 @@ FindDepotData YapfRoadVehicleFindNearestDepot(const RoadVehicle *v, int max_dist pfnFindNearestDepot = &CYapfRoadAnyDepot1::stFindNearestDepot; // Trackdir, allow 90-deg } - FindDepotData fdd; - bool ret = pfnFindNearestDepot(v, tile, trackdir, max_distance, &fdd.tile); - fdd.best_length = ret ? max_distance / 2 : UINT_MAX; // some fake distance or NOT_FOUND - return fdd; + return pfnFindNearestDepot(v, tile, trackdir, max_distance); } From 842aaf7cdd9cba079ccff28aa1cf70da28c0042e Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 30 May 2016 21:03:11 +0000 Subject: [PATCH 077/417] (svn r27594) -Fix [FS#6473]: [Script] Kill scripts, when a non-suspendable valuator call takes way too long. --- src/script/api/script_list.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/script/api/script_list.cpp b/src/script/api/script_list.cpp index bdbc1209bd..d0c72b5bb1 100644 --- a/src/script/api/script_list.cpp +++ b/src/script/api/script_list.cpp @@ -11,6 +11,7 @@ #include "../../stdafx.h" #include "script_list.hpp" +#include "script_controller.hpp" #include "../../debug.h" #include "../../script/squirrel.hpp" @@ -905,6 +906,16 @@ SQInteger ScriptList::Valuate(HSQUIRRELVM vm) } } + /* Kill the script when the valuator call takes way too long. + * Triggered by nesting valuators, which then take billions of iterations. */ + if (ScriptController::GetOpsTillSuspend() < -1000000) { + /* See below for explanation. The extra pop is the return value. */ + sq_pop(vm, nparam + 4); + + ScriptObject::SetAllowDoCommand(backup_allow); + return sq_throwerror(vm, "excessive CPU usage in valuator function"); + } + /* Was something changed? */ if (previous_modification_count != this->modifications) { /* See below for explanation. The extra pop is the return value. */ From 5ac736ec00c770b37948ef581a66c571802b3ee7 Mon Sep 17 00:00:00 2001 From: smatz Date: Tue, 31 May 2016 19:33:33 +0000 Subject: [PATCH 078/417] (svn r27595) -Fix: prevent GCC 6 over-optimization --- config.lib | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config.lib b/config.lib index 0259739eb4..021f95cb21 100644 --- a/config.lib +++ b/config.lib @@ -1401,6 +1401,12 @@ make_compiler_cflags() { flags="$flags -Wno-free-nonheap-object" fi + if [ $cc_version -ge 60 ]; then + # -flifetime-dse=2 (default since GCC 6) doesn't play + # well with our custom pool item allocator + cxxflags="$cxxflags -flifetime-dse=1" + fi + if [ "$enable_lto" != "0" ]; then # GCC 4.5 outputs '%{flto}', GCC 4.6 outputs '%{flto*}' has_lto=`$1 -dumpspecs | grep '\%{flto'` From 9a7618aeb6e8c2d199b3bd1ce4b9f2cbdd155db4 Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 9 Jun 2016 19:04:53 +0000 Subject: [PATCH 079/417] (svn r27598) -Fix: Company 0 could accept engine previews before they were offered. --- src/engine.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/engine.cpp b/src/engine.cpp index 9f9abcde0e..56fab3e65f 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -85,6 +85,7 @@ Engine::Engine(VehicleType type, EngineID base) this->type = type; this->grf_prop.local_id = base; this->list_position = base; + this->preview_company = INVALID_COMPANY; /* Check if this base engine is within the original engine data range */ if (base >= _engine_counts[type]) { @@ -902,7 +903,7 @@ CommandCost CmdSetVehicleVisibility(TileIndex tile, DoCommandFlag flags, uint32 CommandCost CmdWantEnginePreview(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) { Engine *e = Engine::GetIfValid(p1); - if (e == NULL || e->preview_company != _current_company) return CMD_ERROR; + if (e == NULL || !(e->flags & ENGINE_EXCLUSIVE_PREVIEW) || e->preview_company != _current_company) return CMD_ERROR; if (flags & DC_EXEC) AcceptEnginePreview(p1, _current_company); From 1234b7d0f827d74bed2577c790e2c8df4c8904df Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 12 Jun 2016 17:45:36 +0000 Subject: [PATCH 080/417] (svn r27599) -Update from Eints: persian: 2 changes by rkarimabadi --- src/lang/unfinished/persian.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 1d36e8a47a..6e5335f7d1 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -970,6 +970,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}وضوح STR_GAME_OPTIONS_RESOLUTION_OTHER :دیگر +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :دو برابر STR_GAME_OPTIONS_BASE_GRF :{BLACK}بسته گرافیک پایه STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}بسته گرافیک پایه را انتخاب کنید @@ -3071,6 +3072,7 @@ STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK} ستو STR_REPLACE_HELP_STOP_BUTTON :{BLACK}برای توقف جایگزین کردن برای نوع انتخاب شده در سمت چپ کلیک کنید +STR_REPLACE_ELRAIL_VEHICLES :وسایل نقلیه ریلی برقی # Vehicle view From a073b276ba5a8e27b9100f76885fbbae9af37159 Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 13 Jun 2016 17:34:18 +0000 Subject: [PATCH 081/417] (svn r27600) -Fix: [NewGRF] shift-and-add-divide/modulo varadjusts use signed division/modulo. --- src/newgrf_spritegroup.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/newgrf_spritegroup.cpp b/src/newgrf_spritegroup.cpp index 624b4d5474..c6fcd0a9e5 100644 --- a/src/newgrf_spritegroup.cpp +++ b/src/newgrf_spritegroup.cpp @@ -204,8 +204,8 @@ static U EvalAdjustT(const DeterministicSpriteGroupAdjust *adjust, ScopeResolver if (adjust->type != DSGA_TYPE_NONE) value += (S)adjust->add_val; switch (adjust->type) { - case DSGA_TYPE_DIV: value /= (S)adjust->divmod_val; break; - case DSGA_TYPE_MOD: value %= (U)adjust->divmod_val; break; + case DSGA_TYPE_DIV: value = (S)value / (S)adjust->divmod_val; break; + case DSGA_TYPE_MOD: value = (S)value % (S)adjust->divmod_val; break; case DSGA_TYPE_NONE: break; } From 3d54c33180b0babe6817e9b0a6b35eb66b71a6eb Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 13 Jun 2016 17:45:37 +0000 Subject: [PATCH 082/417] (svn r27601) -Update from Eints: spanish (mexican): 4 changes by Absay --- src/lang/spanish_MX.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 76b5ea4c15..5b265ce8b5 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -301,7 +301,7 @@ STR_SORT_BY_WAITING_TOTAL :Cargamento tota STR_SORT_BY_WAITING_AVAILABLE :Cargamento disponible en espera STR_SORT_BY_RATING_MAX :Valoración más alta de cargamento STR_SORT_BY_RATING_MIN :Valoración más baja de cargamento -STR_SORT_BY_ENGINE_ID :Id. de locomotora (orden clásico) +STR_SORT_BY_ENGINE_ID :EngineID (classic sort)Id. locomotora (orden clásico) STR_SORT_BY_COST :Costo STR_SORT_BY_POWER :Potencia STR_SORT_BY_TRACTIVE_EFFORT :Fuerza de tracción @@ -893,7 +893,7 @@ STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Selecci ############ start of currency region STR_GAME_OPTIONS_CURRENCY_GBP :Libra británica (GBP) -STR_GAME_OPTIONS_CURRENCY_USD :Dólar americano (USD) +STR_GAME_OPTIONS_CURRENCY_USD :Dólar estadounidense (USD) STR_GAME_OPTIONS_CURRENCY_EUR :Euro (EUR) STR_GAME_OPTIONS_CURRENCY_JPY :Yen japonés (¥) STR_GAME_OPTIONS_CURRENCY_ATS :Chelín austríaco (ATS) @@ -1008,7 +1008,7 @@ STR_ERROR_FULLSCREEN_FAILED :{WHITE}El modo # Custom currency window STR_CURRENCY_WINDOW :{WHITE}Moneda personalizada -STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Tasa de cambio: {ORANGE}{CURRENCY_LONG} = £ {COMMA} +STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Tasa de cambio: {ORANGE} {CURRENCY_LONG} = £ {COMMA} STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Reducir el valor de la moneda por una libra (£) STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Incrementar el valor de la moneda por una libra (£) STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP :{BLACK}Ajustar el valor de cambio de la moneda por una Libra (£) @@ -1027,7 +1027,7 @@ STR_CURRENCY_SET_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Establec STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Cambiar a euro antes STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Cambiar a euro después -STR_CURRENCY_PREVIEW :{LTBLUE}Vista previa: {ORANGE}{CURRENCY_LONG} +STR_CURRENCY_PREVIEW :{LTBLUE}Vista previa: {ORANGE} {CURRENCY_LONG} STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 libras (£) en la moneda STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Cambiar parámetro de moneda personalizada From 5973140ac293bd2b9abfb4dc7228ac09b9393ead Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 17 Jun 2016 18:56:19 +0000 Subject: [PATCH 083/417] (svn r27602) -Fix [FS#6481]: Compilation with --disable-network. (Deranged) --- src/strings.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/strings.cpp b/src/strings.cpp index d2ce762b70..8cd071d0ba 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -35,7 +35,9 @@ #include "window_func.h" #include "debug.h" #include "game/game_text.hpp" -#include "network/network_content_gui.h" +#ifdef ENABLE_NETWORK +# include "network/network_content_gui.h" +#endif /* ENABLE_NETWORK */ #include #include "table/strings.h" @@ -1815,7 +1817,9 @@ bool ReadLanguagePack(const LanguageMetadata *lang) SortIndustryTypes(); BuildIndustriesLegend(); SortNetworkLanguages(); +#ifdef ENABLE_NETWORK BuildContentTypeStringList(); +#endif /* ENABLE_NETWORK */ InvalidateWindowClassesData(WC_BUILD_VEHICLE); // Build vehicle window. InvalidateWindowClassesData(WC_TRAINS_LIST); // Train group window. InvalidateWindowClassesData(WC_ROADVEH_LIST); // Road vehicle group window. From 60d05aa27ded65dbb359988ed397b43279d8e8bd Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 19 Jun 2016 17:45:36 +0000 Subject: [PATCH 084/417] (svn r27603) -Update from Eints: spanish: 12 changes by SilverSurferZzZ --- src/lang/spanish.txt | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 89be4e44c7..574b6a408e 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -111,7 +111,7 @@ STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} d STR_QUANTITY_MAIZE :{WEIGHT_LONG} de maíz STR_QUANTITY_FRUIT :{WEIGHT_LONG} de fruta STR_QUANTITY_DIAMONDS :{COMMA}{NBSP}bolsa{P "" s} de diamantes -STR_QUANTITY_FOOD :{WEIGHT_LONG} de alimento +STR_QUANTITY_FOOD :{WEIGHT_LONG} de alimentos STR_QUANTITY_PAPER :{WEIGHT_LONG} de papel STR_QUANTITY_GOLD :{COMMA}{NBSP}bolsa{P "" s} de oro STR_QUANTITY_WATER :{VOLUME_LONG} de agua @@ -3961,9 +3961,9 @@ STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Nombre del script STR_AI_DEBUG_SETTINGS :{BLACK}Configuración STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Cambiar la configuración del script -STR_AI_DEBUG_RELOAD :{BLACK}Recarga la IA +STR_AI_DEBUG_RELOAD :{BLACK}Recargar IA STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Elimina la IA, recarga el código y reinicia la IA -STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Activar/desactivar la pausa automática cuando un mensaje de log de la IA coincide con la cadena de parada +STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Activa/desactiva la pausa automática cuando un mensaje de log de la IA coincide con la cadena de parada STR_AI_DEBUG_BREAK_ON_LABEL :{BLACK}Pausar con: STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}Pausar cuando el script registre esta cadena STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}Cuando un mensaje de log de una IA coincide con esta cadena, el juego se pausa @@ -3980,7 +3980,7 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Uno de l STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La ventana de depuración de scripts solo está disponible para el servidor # AI configuration window -STR_AI_CONFIG_CAPTION :{WHITE}Configuración de Scripts +STR_AI_CONFIG_CAPTION :{WHITE}Configuración de Scripts de Juego / IA STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Script de Juego que será cargada en la próxima partida STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}IAs que serán cargadas en la próxima partida STR_AI_CONFIG_HUMAN_PLAYER :Jugador Humano @@ -4630,7 +4630,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WOOD_TRUCK :Vagón de Mader STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_IRON_ORE_HOPPER :Vagoneta de Mineral de Hierro STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_STEEL_TRUCK :Vagón de Acero STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_ARMORED_VAN :Vagón Blindado -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FOOD_VAN :Vagón de Alimento +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FOOD_VAN :Vagón de Alimentos STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PAPER_TRUCK :Vagón de Papel STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :Vagoneta de Mineral de Cobre STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WATER_TANKER :Cisterna de Agua @@ -4660,7 +4660,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WOOD_TRUCK :Vagón de Mader STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_IRON_ORE_HOPPER :Vagoneta de Mineral de Hierro STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_STEEL_TRUCK :Vagón de Acero STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_ARMORED_VAN :Vagón Blindado -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FOOD_VAN :Vagón de Alimento +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FOOD_VAN :Vagón de Alimentos STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PAPER_TRUCK :Vagón de Papel STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :Vagoneta de Mineral de Cobre STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WATER_TANKER :Cisterna de Agua @@ -4692,7 +4692,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WOOD_TRUCK :Vagón de Mader STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_IRON_ORE_HOPPER :Vagoneta de Mineral de Hierro STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_STEEL_TRUCK :Vagón de Acero STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_ARMORED_VAN :Vagón Blindado -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FOOD_VAN :Vagón de Alimento +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FOOD_VAN :Vagón de Alimentos STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PAPER_TRUCK :Vagón de Papel STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :Vagoneta de Mineral de Cobre STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WATER_TANKER :Cisterna de Agua @@ -4734,8 +4734,8 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_GOODS_TRUCK :Camión de Merc STR_VEHICLE_NAME_ROAD_VEHICLE_CRAIGHEAD_GOODS_TRUCK :Camión de Mercancías Craighead STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_GOODS_TRUCK :Camión de Mercancías Goss STR_VEHICLE_NAME_ROAD_VEHICLE_HEREFORD_GRAIN_TRUCK :Camión Granero Hereford -STR_VEHICLE_NAME_ROAD_VEHICLE_THOMAS_GRAIN_TRUCK :Camión Granero Thomas -STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_GRAIN_TRUCK :Camión Granero Goss +STR_VEHICLE_NAME_ROAD_VEHICLE_THOMAS_GRAIN_TRUCK :Camión de Grano Thomas +STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_GRAIN_TRUCK :Camión de Grano Goss STR_VEHICLE_NAME_ROAD_VEHICLE_WITCOMBE_WOOD_TRUCK :Camión Maderero Witcombe STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_WOOD_TRUCK :Camión Maderero Foster STR_VEHICLE_NAME_ROAD_VEHICLE_MORELAND_WOOD_TRUCK :Camión Maderero Moreland @@ -4748,9 +4748,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_KELLING_STEEL_TRUCK :Camión de Acer STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_ARMORED_TRUCK :Furgón Blindado Balogh STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_ARMORED_TRUCK :Furgón Blindado Uhl STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_ARMORED_TRUCK :Furgón Blindado Foster -STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_FOOD_VAN :Furgón de Comida Foster -STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_FOOD_VAN :Furgón de Comida Perry -STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_FOOD_VAN :Furgón de Comida Chippy +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_FOOD_VAN :Furgón de Alimentos Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_FOOD_VAN :Furgón de Alimentos Perry +STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_FOOD_VAN :Furgón de Alimentos Chippy STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_PAPER_TRUCK :Camión de Papel Uhl STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_PAPER_TRUCK :Camión de Papel Balogh STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_PAPER_TRUCK :Camión de Papel MPS From 932951982f13e5f45d6d3d9790195b002bfc4a2b Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 24 Jun 2016 17:45:37 +0000 Subject: [PATCH 085/417] (svn r27604) -Update from Eints: spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 574b6a408e..a6b960627a 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3321,7 +3321,7 @@ STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLA STR_VEHICLE_LIST_AVAILABLE_TRAINS :Trenes disponibles STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Vehículos de carretera disponibles STR_VEHICLE_LIST_AVAILABLE_SHIPS :Barcos disponibles -STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Aviones disponibles +STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Aeronaves disponibles STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}Ver la lista de modelos disponibles para este tipo de vehículo STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Administrar lista @@ -4478,7 +4478,7 @@ STR_BASEMUSIC_NONE_DESCRIPTION :Un conjunto de # Town building names STR_TOWN_BUILDING_NAME_TALL_OFFICE_BLOCK_1 :Bloque alto de oficinas STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_1 :Bloque de oficinas -STR_TOWN_BUILDING_NAME_SMALL_BLOCK_OF_FLATS_1 :Bloque de viviendas pequeño +STR_TOWN_BUILDING_NAME_SMALL_BLOCK_OF_FLATS_1 :Bloque de apartamentos pequeño STR_TOWN_BUILDING_NAME_CHURCH_1 :Iglesia STR_TOWN_BUILDING_NAME_LARGE_OFFICE_BLOCK_1 :Gran bloque de oficinas STR_TOWN_BUILDING_NAME_TOWN_HOUSES_1 :Casas del municipio @@ -4733,7 +4733,7 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_LIVESTOCK_VAN :Camión de Gana STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_GOODS_TRUCK :Camión de Mercancías Balogh STR_VEHICLE_NAME_ROAD_VEHICLE_CRAIGHEAD_GOODS_TRUCK :Camión de Mercancías Craighead STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_GOODS_TRUCK :Camión de Mercancías Goss -STR_VEHICLE_NAME_ROAD_VEHICLE_HEREFORD_GRAIN_TRUCK :Camión Granero Hereford +STR_VEHICLE_NAME_ROAD_VEHICLE_HEREFORD_GRAIN_TRUCK :Camión de Grano Hereford STR_VEHICLE_NAME_ROAD_VEHICLE_THOMAS_GRAIN_TRUCK :Camión de Grano Thomas STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_GRAIN_TRUCK :Camión de Grano Goss STR_VEHICLE_NAME_ROAD_VEHICLE_WITCOMBE_WOOD_TRUCK :Camión Maderero Witcombe From dd5e3d9f33033d2140e767db24f7490cc2b01f89 Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 27 Jun 2016 17:52:30 +0000 Subject: [PATCH 086/417] (svn r27605) -Fix: GCC 6 warning about misleading indentation --- src/3rdparty/squirrel/squirrel/sqapi.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/3rdparty/squirrel/squirrel/sqapi.cpp b/src/3rdparty/squirrel/squirrel/sqapi.cpp index f02fee29f6..0d769bf1f7 100644 --- a/src/3rdparty/squirrel/squirrel/sqapi.cpp +++ b/src/3rdparty/squirrel/squirrel/sqapi.cpp @@ -798,7 +798,8 @@ SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx) switch(type) { case OT_TABLE: if(type(mt) == OT_TABLE) { - if(!_table(self)->SetDelegate(_table(mt))) return sq_throwerror(v, "delagate cycle"); v->Pop();} + if(!_table(self)->SetDelegate(_table(mt))) return sq_throwerror(v, "delagate cycle"); + v->Pop();} else if(type(mt)==OT_NULL) { _table(self)->SetDelegate(NULL); v->Pop(); } else return sq_aux_invalidtype(v,type); From fe0d3761f745288cead74da1cbd221773bf8c1cc Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 27 Jun 2016 17:54:05 +0000 Subject: [PATCH 087/417] (svn r27606) -Change/fix: GCC6 defaults to C++14, but our configure limits it to C++0x just because we want to use features from C++0x (which are also in C++14), so use the C++ standard that's the GCC6 default --- config.lib | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.lib b/config.lib index 021f95cb21..2ef67123e6 100644 --- a/config.lib +++ b/config.lib @@ -1380,7 +1380,7 @@ make_compiler_cflags() { flags="$flags -Wnon-virtual-dtor" fi - if [ $cc_version -ge 43 ]; then + if [ $cc_version -ge 43 ] && [ $cc_version -lt 60 ]; then # Use gnu++0x mode so static_assert() is available. # Don't use c++0x, it breaks mingw (with gcc 4.4.0). cxxflags="$cxxflags -std=gnu++0x" @@ -1404,7 +1404,7 @@ make_compiler_cflags() { if [ $cc_version -ge 60 ]; then # -flifetime-dse=2 (default since GCC 6) doesn't play # well with our custom pool item allocator - cxxflags="$cxxflags -flifetime-dse=1" + cxxflags="$cxxflags -flifetime-dse=1 -std=gnu++14" fi if [ "$enable_lto" != "0" ]; then From 8f2461cdfbdcfd1d3ff818b5dd427f1f66baa860 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 2 Jul 2016 17:45:35 +0000 Subject: [PATCH 088/417] (svn r27610) -Update from Eints: korean: 1 change by telk5093 --- 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 3b0a092787..4c298f77ee 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -911,7 +911,7 @@ STR_GAME_OPTIONS_CURRENCY_ISK :아이슬란드 STR_GAME_OPTIONS_CURRENCY_ITL :이탈리아 리라 (ITL) STR_GAME_OPTIONS_CURRENCY_NLG :네덜란드 길더 (NLG) STR_GAME_OPTIONS_CURRENCY_NOK :노르웨이 크로네 (NOK) -STR_GAME_OPTIONS_CURRENCY_PLN :폴란드 즐로티 (PLN) +STR_GAME_OPTIONS_CURRENCY_PLN :폴란드 즈워티 (PLN) STR_GAME_OPTIONS_CURRENCY_RON :루마니아 레우 (RON) STR_GAME_OPTIONS_CURRENCY_RUR :러시아 루블 (RUR) STR_GAME_OPTIONS_CURRENCY_SIT :슬로바키아 톨라 (SIT) From 8d5566651b191075e59d44ef3e7e03b2905aa830 Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sun, 10 Jul 2016 11:53:43 +0000 Subject: [PATCH 089/417] (svn r27611) -Codechange: Cache the calculated value of CapacityAnnotation --- src/linkgraph/mcf.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/linkgraph/mcf.cpp b/src/linkgraph/mcf.cpp index 6fed7adead..10296575c0 100644 --- a/src/linkgraph/mcf.cpp +++ b/src/linkgraph/mcf.cpp @@ -32,6 +32,11 @@ public: */ inline uint GetAnnotation() const { return this->distance; } + /** + * Update the cached annotation value + */ + inline void UpdateAnnotation() { } + /** * Comparator for std containers. */ @@ -47,6 +52,8 @@ public: * can only decrease or stay the same if you add more edges. */ class CapacityAnnotation : public Path { + int cached_annotation; + public: /** @@ -62,7 +69,15 @@ public: * Return the actual value of the annotation, in this case the capacity. * @return Capacity. */ - inline int GetAnnotation() const { return this->GetCapacityRatio(); } + inline int GetAnnotation() const { return this->cached_annotation; } + + /** + * Update the cached annotation value + */ + inline void UpdateAnnotation() + { + this->cached_annotation = this->GetCapacityRatio(); + } /** * Comparator for std containers. @@ -246,6 +261,7 @@ void MultiCommodityFlow::Dijkstra(NodeID source_node, PathVector &paths) paths.resize(size, NULL); for (NodeID node = 0; node < size; ++node) { Tannotation *anno = new Tannotation(node, node == source_node); + anno->UpdateAnnotation(); annos.insert(anno); paths[node] = anno; } @@ -270,6 +286,7 @@ void MultiCommodityFlow::Dijkstra(NodeID source_node, PathVector &paths) if (dest->IsBetter(source, capacity, capacity - edge.Flow(), distance)) { annos.erase(dest); dest->Fork(source, capacity, capacity - edge.Flow(), distance); + dest->UpdateAnnotation(); annos.insert(dest); } } From 6b2eed0a707f2623ae479d27d38ca3a628163ffd Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sun, 10 Jul 2016 11:57:16 +0000 Subject: [PATCH 090/417] (svn r27612) -Codechange: Replace three uses of std::list with std::queue/vector. (JGR) --- src/linkgraph/demands.cpp | 18 +++++++++--------- src/linkgraph/linkgraph_gui.h | 4 ++-- src/linkgraph/refresh.h | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/linkgraph/demands.cpp b/src/linkgraph/demands.cpp index 767bec2c9f..f4afbabf0a 100644 --- a/src/linkgraph/demands.cpp +++ b/src/linkgraph/demands.cpp @@ -2,11 +2,11 @@ #include "../stdafx.h" #include "demands.h" -#include +#include #include "../safeguards.h" -typedef std::list NodeList; +typedef std::queue NodeList; /** * Scale various things according to symmetric/asymmetric distribution. @@ -172,11 +172,11 @@ void DemandCalculator::CalcDemand(LinkGraphJob &job, Tscaler scaler) for (NodeID node = 0; node < job.Size(); node++) { scaler.AddNode(job[node]); if (job[node].Supply() > 0) { - supplies.push_back(node); + supplies.push(node); num_supplies++; } if (job[node].Demand() > 0) { - demands.push_back(node); + demands.push(node); num_demands++; } } @@ -191,17 +191,17 @@ void DemandCalculator::CalcDemand(LinkGraphJob &job, Tscaler scaler) while (!supplies.empty() && !demands.empty()) { NodeID from_id = supplies.front(); - supplies.pop_front(); + supplies.pop(); for (uint i = 0; i < num_demands; ++i) { assert(!demands.empty()); NodeID to_id = demands.front(); - demands.pop_front(); + demands.pop(); if (from_id == to_id) { /* Only one node with supply and demand left */ if (demands.empty() && supplies.empty()) return; - demands.push_back(to_id); + demands.push(to_id); continue; } @@ -236,7 +236,7 @@ void DemandCalculator::CalcDemand(LinkGraphJob &job, Tscaler scaler) scaler.SetDemands(job, from_id, to_id, demand_forw); if (scaler.HasDemandLeft(job[to_id])) { - demands.push_back(to_id); + demands.push(to_id); } else { num_demands--; } @@ -245,7 +245,7 @@ void DemandCalculator::CalcDemand(LinkGraphJob &job, Tscaler scaler) } if (job[from_id].UndeliveredSupply() != 0) { - supplies.push_back(from_id); + supplies.push(from_id); } else { num_supplies--; } diff --git a/src/linkgraph/linkgraph_gui.h b/src/linkgraph/linkgraph_gui.h index fcf81817f7..1e306a44d4 100644 --- a/src/linkgraph/linkgraph_gui.h +++ b/src/linkgraph/linkgraph_gui.h @@ -17,7 +17,7 @@ #include "../widget_type.h" #include "linkgraph_base.h" #include -#include +#include /** * Properties of a link between two stations. @@ -39,7 +39,7 @@ class LinkGraphOverlay { public: typedef std::map StationLinkMap; typedef std::map LinkMap; - typedef std::list > StationSupplyList; + typedef std::vector > StationSupplyList; static const uint8 LINK_COLOURS[]; diff --git a/src/linkgraph/refresh.h b/src/linkgraph/refresh.h index 496729df7f..6687b8a3bf 100644 --- a/src/linkgraph/refresh.h +++ b/src/linkgraph/refresh.h @@ -14,7 +14,7 @@ #include "../cargo_type.h" #include "../vehicle_base.h" -#include +#include #include #include @@ -79,7 +79,7 @@ protected: bool operator<(const Hop &other) const; }; - typedef std::list RefitList; + typedef std::vector RefitList; typedef std::map CapacitiesMap; typedef std::set HopSet; From a81b7a24a69ac0a01fd50b92c708951e2b8995d7 Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sun, 10 Jul 2016 12:03:23 +0000 Subject: [PATCH 091/417] (svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR) --- src/linkgraph/mcf.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/linkgraph/mcf.cpp b/src/linkgraph/mcf.cpp index 10296575c0..ecdf792afe 100644 --- a/src/linkgraph/mcf.cpp +++ b/src/linkgraph/mcf.cpp @@ -136,7 +136,7 @@ private: LinkGraphJob &job; ///< Link graph job we're working with. /** Lookup table for getting NodeIDs from StationIDs. */ - std::map station_to_node; + std::vector station_to_node; /** Current iterator in the shares map. */ FlowStat::SharesMap::const_iterator it; @@ -152,7 +152,11 @@ public: FlowEdgeIterator(LinkGraphJob &job) : job(job) { for (NodeID i = 0; i < job.Size(); ++i) { - this->station_to_node[job[i].Station()] = i; + StationID st = job[i].Station(); + if (st >= this->station_to_node.size()) { + this->station_to_node.resize(st + 1); + } + this->station_to_node[st] = i; } } From ff96590312150a067f29dc59cf88ac652c4ea9a8 Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sun, 10 Jul 2016 12:17:00 +0000 Subject: [PATCH 092/417] (svn r27614) -Codechange: Use a fixed array instead of a map for link refresher cargo capacities. (JGR) --- src/linkgraph/refresh.cpp | 19 ++++++++++++------- src/linkgraph/refresh.h | 3 +-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/linkgraph/refresh.cpp b/src/linkgraph/refresh.cpp index 02f27f40c1..501f063520 100644 --- a/src/linkgraph/refresh.cpp +++ b/src/linkgraph/refresh.cpp @@ -72,10 +72,15 @@ LinkRefresher::LinkRefresher(Vehicle *vehicle, HopSet *seen_hops, bool allow_mer vehicle(vehicle), seen_hops(seen_hops), cargo(CT_INVALID), allow_merge(allow_merge), is_full_loading(is_full_loading) { + memset(this->capacities, 0, sizeof(this->capacities)); + /* Assemble list of capacities and set last loading stations to 0. */ for (Vehicle *v = this->vehicle; v != NULL; v = v->Next()) { this->refit_capacities.push_back(RefitDesc(v->cargo_type, v->cargo_cap, v->refit_cap)); - if (v->refit_cap > 0) this->capacities[v->cargo_type] += v->refit_cap; + if (v->refit_cap > 0) { + assert(v->cargo_type < NUM_CARGO); + this->capacities[v->cargo_type] += v->refit_cap; + } } } @@ -200,11 +205,11 @@ void LinkRefresher::RefreshStats(const Order *cur, const Order *next) StationID next_station = next->GetDestination(); Station *st = Station::GetIfValid(cur->GetDestination()); if (st != NULL && next_station != INVALID_STATION && next_station != st->index) { - for (CapacitiesMap::const_iterator i = this->capacities.begin(); i != this->capacities.end(); ++i) { + for (CargoID c = 0; c < NUM_CARGO; c++) { /* Refresh the link and give it a minimum capacity. */ - if (i->second == 0) continue; - CargoID c = i->first; + uint cargo_quantity = this->capacities[c]; + if (cargo_quantity == 0) continue; /* If not allowed to merge link graphs, make sure the stations are * already in the same link graph. */ @@ -225,7 +230,7 @@ void LinkRefresher::RefreshStats(const Order *cur, const Order *next) st->index == vehicle->last_station_visited && this->vehicle->orders.list->GetTotalDuration() > (Ticks)this->vehicle->current_order_time) { - uint effective_capacity = i->second * this->vehicle->load_unload_ticks; + uint effective_capacity = cargo_quantity * this->vehicle->load_unload_ticks; if (effective_capacity > (uint)this->vehicle->orders.list->GetTotalDuration()) { IncreaseStats(st, c, next_station, effective_capacity / this->vehicle->orders.list->GetTotalDuration(), 0, @@ -233,10 +238,10 @@ void LinkRefresher::RefreshStats(const Order *cur, const Order *next) } else if (RandomRange(this->vehicle->orders.list->GetTotalDuration()) < effective_capacity) { IncreaseStats(st, c, next_station, 1, 0, EUM_INCREASE | restricted_mode); } else { - IncreaseStats(st, c, next_station, i->second, 0, EUM_REFRESH | restricted_mode); + IncreaseStats(st, c, next_station, cargo_quantity, 0, EUM_REFRESH | restricted_mode); } } else { - IncreaseStats(st, c, next_station, i->second, 0, EUM_REFRESH | restricted_mode); + IncreaseStats(st, c, next_station, cargo_quantity, 0, EUM_REFRESH | restricted_mode); } } } diff --git a/src/linkgraph/refresh.h b/src/linkgraph/refresh.h index 6687b8a3bf..42067ebcf9 100644 --- a/src/linkgraph/refresh.h +++ b/src/linkgraph/refresh.h @@ -80,11 +80,10 @@ protected: }; typedef std::vector RefitList; - typedef std::map CapacitiesMap; typedef std::set HopSet; Vehicle *vehicle; ///< Vehicle for which the links should be refreshed. - CapacitiesMap capacities; ///< Current added capacities per cargo ID in the consist. + uint capacities[NUM_CARGO]; ///< Current added capacities per cargo ID in the consist. RefitList refit_capacities; ///< Current state of capacity remaining from previous refits versus overall capacity per vehicle in the consist. HopSet *seen_hops; ///< Hops already seen. If the same hop is seen twice we stop the algorithm. This is shared between all Refreshers of the same run. CargoID cargo; ///< Cargo given in last refit order. From 18bbe0233776ccf7689d0b204e62cccee242d10d Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 12 Jul 2016 17:45:35 +0000 Subject: [PATCH 093/417] (svn r27615) -Update from Eints: spanish: 7 changes by SilverSurferZzZ --- src/lang/spanish.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index a6b960627a..4c0a290fc3 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -229,10 +229,10 @@ STR_LIST_FILTER_TITLE :{BLACK}Patrón STR_LIST_FILTER_OSKTITLE :{BLACK}Escriba un patrón de filtrado STR_LIST_FILTER_TOOLTIP :{BLACK}Introduzca una palabra clave para filtrar la lista -STR_TOOLTIP_GROUP_ORDER :{BLACK}Seleccionar orden de agrupamiento -STR_TOOLTIP_SORT_ORDER :{BLACK}Seleccione ordenación (descendiente/ascendiente) -STR_TOOLTIP_SORT_CRITERIA :{BLACK}Seleccione criterio de orden -STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Seleccione criterio de filtrado +STR_TOOLTIP_GROUP_ORDER :{BLACK}Selecciona orden de agrupamiento +STR_TOOLTIP_SORT_ORDER :{BLACK}Selecciona orden de clasificación (descendiente/ascendiente) +STR_TOOLTIP_SORT_CRITERIA :{BLACK}Selecciona orden de clasificación +STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Selecciona criterio de filtrado STR_BUTTON_SORT_BY :{BLACK}Ordenar por STR_BUTTON_LOCATION :{BLACK}Sitio STR_BUTTON_RENAME :{BLACK}Renombrar @@ -978,7 +978,7 @@ STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Pantalla STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marca esta opción para jugar OpenTTD a pantalla completa STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolución de pantalla -STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Seleccione la resolución de pantalla a usar +STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolución de pantalla a usar STR_GAME_OPTIONS_RESOLUTION_OTHER :Otras STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz @@ -3102,7 +3102,7 @@ STR_STATION_LIST_STATION :{YELLOW}{STATIO STR_STATION_LIST_WAYPOINT :{YELLOW}{WAYPOINT} STR_STATION_LIST_NONE :{YELLOW}- Ninguna - STR_STATION_LIST_SELECT_ALL_FACILITIES :{BLACK}Seleccionar todos los tipos de estación -STR_STATION_LIST_SELECT_ALL_TYPES :{BLACK}Seleccionar todos los tipos de carga (incluidas las que no están en espera) +STR_STATION_LIST_SELECT_ALL_TYPES :{BLACK}Selecciona todos los tipos de carga (incluidas las que no están en espera) STR_STATION_LIST_NO_WAITING_CARGO :{BLACK}Ningún tipo de carga está esperando # Station view window @@ -3768,7 +3768,7 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambiar STR_ORDER_REFIT :{BLACK}Reformar STR_ORDER_REFIT_TOOLTIP :{BLACK}Selecciona el tipo de carga a reformar en esta orden. Ctrl+Click para eliminar la orden de reforma STR_ORDER_REFIT_AUTO :{BLACK}Reforma en la estación -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Seleccionar el tipo de carga a la que reformar en esta orden. Ctrl+Click elimina la orden de reforma. La reforma solamente puede llevarse a cabo si el vehículo lo permite +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Selecciona el tipo de carga a reformar en esta orden. Ctrl+Click elimina la orden de reforma. La reforma solamente puede llevarse a cabo si el vehículo lo permite STR_ORDER_DROP_REFIT_AUTO :Carga fijada STR_ORDER_DROP_REFIT_AUTO_ANY :Carga disponible From f7a7f141d3086c288746436eab98b89938b17519 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 17 Jul 2016 11:10:21 +0000 Subject: [PATCH 094/417] (svn r27616) -Codechange [FS#6487]: [Build] Change the GCC version detection so that it works with two-digit and truncated versions. --- config.lib | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/config.lib b/config.lib index 2ef67123e6..02a1573ccc 100644 --- a/config.lib +++ b/config.lib @@ -1330,9 +1330,11 @@ make_compiler_cflags() { ldflags="$ldflags -rdynamic" else # Enable some things only for certain GCC versions - cc_version=`$1 -dumpversion | cut -c 1,3` + # cc_version = major_version * 100 + minor_version + # For example: "3.3" -> 303, "4.9.2" -> 409, "6" -> 600, "23.5" -> 2305 + cc_version=`$1 -dumpversion | $awk -F . '{printf "%d%02d", $1, $2}'` - if [ $cc_version -lt 33 ]; then + if [ $cc_version -lt 303 ]; then log 1 "configure: error: gcc older than 3.3 can't compile OpenTTD because of its poor template support" exit 1 fi @@ -1345,20 +1347,20 @@ make_compiler_cflags() { if [ $enable_assert -eq 0 ]; then # Do not warn about unused variables when building without asserts flags="$flags -Wno-unused-variable" - if [ $cc_version -ge 46 ]; then + if [ $cc_version -ge 406 ]; then # GCC 4.6 gives more warnings, disable them too flags="$flags -Wno-unused-but-set-variable" flags="$flags -Wno-unused-but-set-parameter" fi fi - if [ $cc_version -ge 34 ]; then + if [ $cc_version -ge 304 ]; then # Warn when a variable is used to initialise itself: # int a = a; flags="$flags -Winit-self" fi - if [ $cc_version -ge 40 ]; then + if [ $cc_version -ge 400 ]; then # GCC 4.0+ complains about that we break strict-aliasing. # On most places we don't see how to fix it, and it doesn't # break anything. So disable strict-aliasing to make the @@ -1369,7 +1371,7 @@ make_compiler_cflags() { flags="$flags -Wcast-qual" fi - if [ $cc_version -ge 42 ]; then + if [ $cc_version -ge 402 ]; then # GCC 4.2+ automatically assumes that signed overflows do # not occur in signed arithmetics, whereas we are not # sure that they will not happen. It furthermore complains @@ -1380,19 +1382,19 @@ make_compiler_cflags() { flags="$flags -Wnon-virtual-dtor" fi - if [ $cc_version -ge 43 ] && [ $cc_version -lt 60 ]; then + if [ $cc_version -ge 403 ] && [ $cc_version -lt 600 ]; then # Use gnu++0x mode so static_assert() is available. # Don't use c++0x, it breaks mingw (with gcc 4.4.0). cxxflags="$cxxflags -std=gnu++0x" fi - if [ $cc_version -eq 45 ]; then + if [ $cc_version -eq 405 ]; then # Prevent optimisation supposing enums are in a range specified by the standard # For details, see http://gcc.gnu.org/PR43680 flags="$flags -fno-tree-vrp" fi - if [ $cc_version -ge 47 ]; then + if [ $cc_version -ge 407 ]; then # Disable -Wnarrowing which gives many warnings, such as: # warning: narrowing conversion of '...' from 'unsigned int' to 'int' inside { } [-Wnarrowing] # They are valid according to the C++ standard, but useless. @@ -1401,7 +1403,7 @@ make_compiler_cflags() { flags="$flags -Wno-free-nonheap-object" fi - if [ $cc_version -ge 60 ]; then + if [ $cc_version -ge 600 ]; then # -flifetime-dse=2 (default since GCC 6) doesn't play # well with our custom pool item allocator cxxflags="$cxxflags -flifetime-dse=1 -std=gnu++14" @@ -1412,7 +1414,7 @@ make_compiler_cflags() { has_lto=`$1 -dumpspecs | grep '\%{flto'` if [ -n "$has_lto" ]; then # Use LTO only if we see LTO exists and is requested - if [ $cc_version -lt 46 ]; then + if [ $cc_version -lt 406 ]; then flags="$flags -flto" else flags="$flags -flto=jobserver" @@ -1511,7 +1513,7 @@ make_cflags_and_ldflags() { fi fi - if [ "$os" = "OSX" ] && [ $cc_version -eq 40 ]; then + if [ "$os" = "OSX" ] && [ $cc_version -eq 400 ]; then # Apple's GCC 4.0 has a compiler bug for x86_64 with (higher) optimization, # wrongly optimizing ^= in loops. This disables the failing optimisation. CFLAGS="$CFLAGS -fno-expensive-optimizations" @@ -1535,7 +1537,7 @@ make_cflags_and_ldflags() { LDFLAGS="$LDFLAGS -mwin32" fi if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then - if [ $cc_version -lt 46 ]; then + if [ $cc_version -lt 406 ]; then flags="$flags -mno-cygwin" LDFLAGS="$LDFLAGS -mno-cygwin" fi @@ -1548,10 +1550,10 @@ make_cflags_and_ldflags() { LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32 -limm32" - if [ $cc_version -ge 44 ]; then + if [ $cc_version -ge 40 ]; then LDFLAGS_BUILD="$LDFLAGS_BUILD -static-libgcc -static-libstdc++" fi - if [ $cc_version -ge 47 ]; then + if [ $cc_version -ge 407 ]; then CFLAGS="$CFLAGS -mno-ms-bitfields" fi fi From c6ac52e71a28b9fd3eb701139e011f6f981f42e3 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 17 Jul 2016 17:45:36 +0000 Subject: [PATCH 095/417] (svn r27617) -Update from Eints: latvian: 6 changes by Parastais --- src/lang/latvian.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 9e0b5c12ea..ded8f97353 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -760,6 +760,7 @@ STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Pārslē STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Nerādīt neviena uzņēmuma īpašumus uz kartes STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Rādīt visu uzņēmumu īpašumus uz kartes STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Nerādīt kravas uz kartes +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Rādīt visas kravas uz kartes # Status bar messages STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Rādīt pēdējo ziņojumu vai avīzes rakstu @@ -4242,7 +4243,7 @@ STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Vispirms STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}Nevar sākties un beigties tajā paša vietā STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}Tilta gali nav vienā līmenī STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Tilts ir pārāk zems šim zemes apvidum -STR_ERROR_BRIDGE_TOO_HIGH_FOR_TERRAIN :{WHITE}Tilts ir pārāk augsts priekš šī vilciena. +STR_ERROR_BRIDGE_TOO_HIGH_FOR_TERRAIN :{WHITE}Tilts ir pārāk augsts šim zemes apvidum. STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Sākumam un beigām jābūt uz vienas līnijas STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... abiem tilta galiem jābūt uz zemes STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... tilts ir pārāk garš @@ -4372,6 +4373,10 @@ STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Nevar dz STR_DESKTOP_SHORTCUT_COMMENT :Uz 'Transport Tycoon Deluxe' balstīta simulācijas spēle # Translatable descriptions in media/baseset/*.ob* files +STR_BASEGRAPHICS_DOS_DESCRIPTION :Oriģinālā Transport Tycoon Deluxe DOS izdevuma grafika. +STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :Oriģinālā Transport Tycoon Deluxe DOS (vācu) izdevuma grafika. +STR_BASEGRAPHICS_WIN_DESCRIPTION :Oriģinālā Transport Tycoon Deluxe Windows izdevuma grafika. +STR_BASESOUNDS_NONE_DESCRIPTION :Skaņu kopa bez skaņas. STR_BASEMUSIC_WIN_DESCRIPTION :Oriģinālā Transport Tycoon Deluxe Windows izdevuma mūzika. STR_BASEMUSIC_NONE_DESCRIPTION :Mūzikas kopa bez mūzikas From aa140bb928b8321e27066d535f4ef3ba4062c801 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 18 Jul 2016 17:45:36 +0000 Subject: [PATCH 096/417] (svn r27618) -Update from Eints: latvian: 19 changes by Parastais --- src/lang/latvian.txt | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index ded8f97353..24ccf94d9e 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -562,8 +562,8 @@ STR_MONTH_DEC :Decembris ############ range for months ends # Graph window -STR_GRAPH_KEY_BUTTON :{BLACK}Leģenda -STR_GRAPH_KEY_TOOLTIP :{BLACK}Diagrammās rādīt leģendas +STR_GRAPH_KEY_BUTTON :{BLACK}Apzīmējumu atslēga +STR_GRAPH_KEY_TOOLTIP :{BLACK}Diagrammās rādīt apzīmējumu atslēgas STR_GRAPH_X_LABEL_MONTH :{TINY_FONT}{STRING}{} {STRING} STR_GRAPH_X_LABEL_MONTH_YEAR :{TINY_FONT}{STRING}{} {STRING}{}{NUM} STR_GRAPH_Y_LABEL :{TINY_FONT}{STRING} @@ -577,7 +577,7 @@ STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Uzņēmu STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Kravas apmaksas cenas STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Dienas pārvadājumos -STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Izmaksas par 10 vienību (vai 10,000 litru) kravas pārvadāšanu par 20mit lauciņiem +STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Izmaksas par 10 vienību (vai 10,000 litru) kravas pārvadāšanu par 20 lauciņiem STR_GRAPH_CARGO_ENABLE_ALL :{TINY_FONT}{BLACK}Iespējot visu STR_GRAPH_CARGO_DISABLE_ALL :{TINY_FONT}{BLACK}Atspējot visu STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL :{BLACK}Rādīt visas kravas samaksu salīdzināšanas diagrammā @@ -588,8 +588,8 @@ STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLA STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Rādīt detalizētus uzņēmējdarbības vērtējumus # Graph key window -STR_GRAPH_KEY_CAPTION :{WHITE}Leģendas uzņēmumu diagrammās -STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Klikšķināt šeit, lai izslēgtu/ieslēgtu uzņēmuma iekļaušanu diagrammā +STR_GRAPH_KEY_CAPTION :{WHITE}Apzīmējumu atslēgas uzņēmumu diagrammās +STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Klikšķināt šeit, lai ieslēgtu/izslēgtu uzņēmuma attēlošanu diagrammā # Company league window STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Uzņēmumu rangu saraksts @@ -703,6 +703,7 @@ STR_SMALLMAP_CAPTION :{WHITE}Karte - STR_SMALLMAP_TYPE_CONTOURS :kontūras STR_SMALLMAP_TYPE_VEHICLES :transportlīdzekļi STR_SMALLMAP_TYPE_INDUSTRIES :ražotnes +STR_SMALLMAP_TYPE_ROUTEMAP :kravas plūsma STR_SMALLMAP_TYPE_ROUTES :maršruti STR_SMALLMAP_TYPE_VEGETATION :augu valsts STR_SMALLMAP_TYPE_OWNERS :īpašnieki @@ -1339,6 +1340,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Izslēgta STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Kreisā klikšķa ritināšana: {STRING} STR_CONFIG_SETTING_AUTOSAVE :Automātiskā saglabāšana: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Izvēlēties spēles automātiskās saglabāšanas starplaikus STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Lietot {STRING} datuma formātu saglabāto spēļu nosaukumos STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Datuma formāts spēļu saglabājuma failu nosaukumos @@ -2216,9 +2218,15 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Pārslē STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Caurspīdības vietā objektus padarīt neredzamus # Linkgraph legend window -STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Atzīmēt kompānijas kuras uzrādīt +STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Kravas plūsmas apzīmējumi +STR_LINKGRAPH_LEGEND_ALL :{BLACK}Visi +STR_LINKGRAPH_LEGEND_NONE :{BLACK}Neviens +STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Izvēlēties attēlojamos uzņēmumus # Linkgraph legend window and linkgraph legend in smallmap +STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}nelietots +STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}piesātināts +STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLACK}pārslogots # Base for station construction window(s) STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}Pārklājuma iezīmēšana @@ -3009,6 +3017,7 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikšķināt uz servisa, lai iecentrētu skatu uz rūpnīcu/pilsētu. Ctrl+klikšķis atvērs jaunu skatu lauku uz pilsētu/rūpnīcu # Story book window +STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Stāstu grāmata STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Globālā stāstu grāmata STR_STORY_BOOK_TITLE :{YELLOW}{STRING} STR_STORY_BOOK_GENERIC_PAGE_ITEM :{NUM} lapa @@ -3816,7 +3825,7 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Saraksts STR_TIMETABLE_NO_TRAVEL :Bez braukšanas STR_TIMETABLE_NOT_TIMETABLEABLE :Ceļot (automātiski; pēc nākamā manuālā rīkojuma saraksta) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Braukšana (nav pēc saraksta) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Braukšana (nav sarakstā) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Braukt ar ne vairāk kā {2:VELOCITY} (nav sarakstā) STR_TIMETABLE_TRAVEL_FOR :Braukt līdz {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Braukt uz {STRING} ar ne vairāk kā {VELOCITY} @@ -4270,7 +4279,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... tā STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Nevar izveidot grupu... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Nevar izdzēst šo grupu... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Nevar pārdēvēt grupu... -STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}No šīs grupas nevar noņemt visus transportlīdzekļus... +STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Nevar noņemt no šīs grupas visus transportlīdzekļus... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Nevar pievienot transportlīdzekļus šai grupai... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Nevar pievienot koplietojamos transportlīdzekļus šai grupai... @@ -4286,8 +4295,8 @@ STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}Nevar pi STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}Nevar pielāgot lidaparātu... STR_ERROR_CAN_T_RENAME_TRAIN :{WHITE}Nevar nosaukt vilcienu... -STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Autotransporta līdzekli nevar nosaukt... -STR_ERROR_CAN_T_RENAME_SHIP :{WHITE}Nevar pārdēvēt kuģi... +STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Nevar nosaukt autotransporta līdzekli... +STR_ERROR_CAN_T_RENAME_SHIP :{WHITE}Nevar nosaukt kuģi... STR_ERROR_CAN_T_RENAME_AIRCRAFT :{WHITE}Nevar nosaukt lidaparātu... STR_ERROR_CAN_T_STOP_START_TRAIN :{WHITE}Nevar apturēt/palaist vilcienu... From 2c403c8a805bc9cc4c32ab3c8b4d0e672b89c1fe Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 22 Jul 2016 21:25:37 +0000 Subject: [PATCH 097/417] (svn r27619) -Update: Baseset translations --- bin/baseset/no_sound.obs | 1 + bin/baseset/orig_dos.obg | 1 + bin/baseset/orig_dos_de.obg | 1 + bin/baseset/orig_win.obg | 1 + 4 files changed, 4 insertions(+) diff --git a/bin/baseset/no_sound.obs b/bin/baseset/no_sound.obs index a92c4559c4..8bd8d30fe0 100644 --- a/bin/baseset/no_sound.obs +++ b/bin/baseset/no_sound.obs @@ -40,6 +40,7 @@ description.ko_KR = 아무런 효과음도 없는 효과음 팩입니다. description.la_VA = Sarcina sonorum sine ullis sonis. description.lb_LU = E Soundpack ouni iergendee Sound. description.lt_LT = Garsų pakas be jokių garsų. +description.lv_LV = Skaņu kopa bez skaņas. description.nb_NO = En lydpakke uten noen lyder. description.nl_NL = Een geluidset zonder geluid. description.nn_NO = Ei lydpakke utan nokon lydar. diff --git a/bin/baseset/orig_dos.obg b/bin/baseset/orig_dos.obg index 825ae5229f..3eb8c0ff97 100644 --- a/bin/baseset/orig_dos.obg +++ b/bin/baseset/orig_dos.obg @@ -40,6 +40,7 @@ description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에 description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS. description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Grafik. description.lt_LT = Originali Transport Tycoon Deluxe DOS leidimo grafika. +description.lv_LV = Oriģinālā Transport Tycoon Deluxe DOS izdevuma grafika. description.ms_MY = Grafik asal Transport Tycoon Deluxe DOS edition. description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS. description.nl_NL = Originele graphics van de Transport Tycoon Deluxe DOS-versie. diff --git a/bin/baseset/orig_dos_de.obg b/bin/baseset/orig_dos_de.obg index a35f9752ba..b081e4bc2f 100644 --- a/bin/baseset/orig_dos_de.obg +++ b/bin/baseset/orig_dos_de.obg @@ -40,6 +40,7 @@ description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에 description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS (Germanica). description.lb_LU = Original Transport Tycoon Deluxe DOS (Däitsch) Editioun Grafik. description.lt_LT = Originali Transport Tycoon Deluxe DOS (Vokiečių) leidimo grafika. +description.lv_LV = Oriģinālā Transport Tycoon Deluxe DOS (vācu) izdevuma grafika. description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS (tysk). description.nl_NL = Originele graphics van de Duitse Transport Tycoon Deluxe DOS-versie. description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS (tysk). diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index 1f411f5e11..65a97c4770 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -40,6 +40,7 @@ description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에 description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe Windows. description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Grafik. description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo grafika. +description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma grafika. description.ms_MY = Grafik asal Transport Tycoon Deluxe edisi Windows. description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for Windows. description.nl_NL = Originele graphics van de Transport Tycoon Deluxe Windows-versie. From bd6799a9f840aa5c8a0d5dd258aa3fc4390f914d Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 22 Jul 2016 21:29:04 +0000 Subject: [PATCH 098/417] (svn r27620) -Codechange: Inline GetEffectiveTileType (adf88) --- src/smallmap_gui.cpp | 49 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 571d8d765d..3d14a3d542 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -413,26 +413,10 @@ static const byte _tiletype_importance[] = { }; -static inline TileType GetEffectiveTileType(TileIndex tile) -{ - TileType t = GetTileType(tile); - - if (t == MP_TUNNELBRIDGE) { - TransportType tt = GetTunnelBridgeTransportType(tile); - - switch (tt) { - case TRANSPORT_RAIL: t = MP_RAILWAY; break; - case TRANSPORT_ROAD: t = MP_ROAD; break; - default: t = MP_WATER; break; - } - } - return t; -} - /** * Return the colour a tile would be displayed with in the small map in mode "Contour". * @param tile The tile of which we would like to get the colour. - * @param t Effective tile type of the tile (see #GetEffectiveTileType). + * @param t Effective tile type of the tile (see #GetTileColours). * @return The colour of tile in the small map in mode "Contour" */ static inline uint32 GetSmallMapContoursPixels(TileIndex tile, TileType t) @@ -445,7 +429,7 @@ static inline uint32 GetSmallMapContoursPixels(TileIndex tile, TileType t) * Return the colour a tile would be displayed with in the small map in mode "Vehicles". * * @param tile The tile of which we would like to get the colour. - * @param t Effective tile type of the tile (see #GetEffectiveTileType). + * @param t Effective tile type of the tile (see #GetTileColours). * @return The colour of tile in the small map in mode "Vehicles" */ static inline uint32 GetSmallMapVehiclesPixels(TileIndex tile, TileType t) @@ -458,7 +442,7 @@ static inline uint32 GetSmallMapVehiclesPixels(TileIndex tile, TileType t) * Return the colour a tile would be displayed with in the small map in mode "Industries". * * @param tile The tile of which we would like to get the colour. - * @param t Effective tile type of the tile (see #GetEffectiveTileType). + * @param t Effective tile type of the tile (see #GetTileColours). * @return The colour of tile in the small map in mode "Industries" */ static inline uint32 GetSmallMapIndustriesPixels(TileIndex tile, TileType t) @@ -483,7 +467,7 @@ static inline uint32 GetSmallMapIndustriesPixels(TileIndex tile, TileType t) * Return the colour a tile would be displayed with in the small map in mode "Routes". * * @param tile The tile of which we would like to get the colour. - * @param t Effective tile type of the tile (see #GetEffectiveTileType). + * @param t Effective tile type of the tile (see #GetTileColours). * @return The colour of tile in the small map in mode "Routes" */ static inline uint32 GetSmallMapRoutesPixels(TileIndex tile, TileType t) @@ -516,7 +500,7 @@ static inline uint32 GetSmallMapRoutesPixels(TileIndex tile, TileType t) * Return the colour a tile would be displayed with in the small map in mode "link stats". * * @param tile The tile of which we would like to get the colour. - * @param t Effective tile type of the tile (see #GetEffectiveTileType). + * @param t Effective tile type of the tile (see #GetTileColours). * @return The colour of tile in the small map in mode "link stats" */ static inline uint32 GetSmallMapLinkStatsPixels(TileIndex tile, TileType t) @@ -539,7 +523,7 @@ static const uint32 _vegetation_clear_bits[] = { * Return the colour a tile would be displayed with in the smallmap in mode "Vegetation". * * @param tile The tile of which we would like to get the colour. - * @param t Effective tile type of the tile (see #GetEffectiveTileType). + * @param t Effective tile type of the tile (see #GetTileColours). * @return The colour of tile in the smallmap in mode "Vegetation" */ static inline uint32 GetSmallMapVegetationPixels(TileIndex tile, TileType t) @@ -566,7 +550,7 @@ static inline uint32 GetSmallMapVegetationPixels(TileIndex tile, TileType t) * Return the colour a tile would be displayed with in the small map in mode "Owner". * * @param tile The tile of which we would like to get the colour. - * @param t Effective tile type of the tile (see #GetEffectiveTileType). + * @param t Effective tile type of the tile (see #GetTileColours). * @return The colour of tile in the small map in mode "Owner" */ static inline uint32 GetSmallMapOwnerPixels(TileIndex tile, TileType t) @@ -754,7 +738,24 @@ inline uint32 SmallMapWindow::GetTileColours(const TileArea &ta) const TileType et = MP_VOID; // Effective tile type at that position. TILE_AREA_LOOP(ti, ta) { - TileType ttype = GetEffectiveTileType(ti); + TileType ttype = GetTileType(tile); + + switch (ttype) { + case MP_TUNNELBRIDGE: { + TransportType tt = GetTunnelBridgeTransportType(tile); + + switch (tt) { + case TRANSPORT_RAIL: ttype = MP_RAILWAY; break; + case TRANSPORT_ROAD: ttype = MP_ROAD; break; + default: ttype = MP_WATER; break; + } + break; + } + + default: + break; + } + if (_tiletype_importance[ttype] > importance) { importance = _tiletype_importance[ttype]; tile = ti; From 46aeed381757ae825f43898cac3cbb27dc2ac8d3 Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 22 Jul 2016 21:38:49 +0000 Subject: [PATCH 099/417] (svn r27621) -Fix (r27620): Committed too early. --- src/smallmap_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 3d14a3d542..8b5d1e8892 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -738,11 +738,11 @@ inline uint32 SmallMapWindow::GetTileColours(const TileArea &ta) const TileType et = MP_VOID; // Effective tile type at that position. TILE_AREA_LOOP(ti, ta) { - TileType ttype = GetTileType(tile); + TileType ttype = GetTileType(ti); switch (ttype) { case MP_TUNNELBRIDGE: { - TransportType tt = GetTunnelBridgeTransportType(tile); + TransportType tt = GetTunnelBridgeTransportType(ti); switch (tt) { case TRANSPORT_RAIL: ttype = MP_RAILWAY; break; From cc18df4cb77d74f7f0f1eddb928dfb2b622407ff Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 22 Jul 2016 21:44:54 +0000 Subject: [PATCH 100/417] (svn r27622) -Change: In industry map view, give visible industry types the highest tile priority, and hidden industry types a lower one. This way filtered and highlighted industries are not hidden by overlapping tiles in zoomed-out smallmap. (adf88) --- src/smallmap_gui.cpp | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 8b5d1e8892..f4bcdece18 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -447,18 +447,6 @@ static inline uint32 GetSmallMapVehiclesPixels(TileIndex tile, TileType t) */ static inline uint32 GetSmallMapIndustriesPixels(TileIndex tile, TileType t) { - if (t == MP_INDUSTRY) { - /* If industry is allowed to be seen, use its colour on the map */ - IndustryType type = Industry::GetByTile(tile)->type; - if (_legend_from_industries[_industry_to_list_pos[type]].show_on_map && - (_smallmap_industry_highlight_state || type != _smallmap_industry_highlight)) { - return (type == _smallmap_industry_highlight ? PC_WHITE : GetIndustrySpec(Industry::GetByTile(tile)->type)->map_colour) * 0x01010101; - } else { - /* Otherwise, return the colour which will make it disappear */ - t = (IsTileOnWater(tile) ? MP_WATER : MP_CLEAR); - } - } - const SmallMapColourScheme *cs = &_heightmap_schemes[_settings_client.gui.smallmap_land_colour]; return ApplyMask(_smallmap_show_heightmap ? cs->height_colours[TileHeight(tile)] : cs->default_colour, &_smallmap_vehicles_andor[t]); } @@ -752,6 +740,24 @@ inline uint32 SmallMapWindow::GetTileColours(const TileArea &ta) const break; } + case MP_INDUSTRY: + /* Special handling of industries while in "Industries" smallmap view. */ + if (this->map_type == SMT_INDUSTRY) { + /* If industry is allowed to be seen, use its colour on the map. + * This has the highest priority above any value in _tiletype_importance. */ + IndustryType type = Industry::GetByTile(ti)->type; + if (_legend_from_industries[_industry_to_list_pos[type]].show_on_map) { + if (type == _smallmap_industry_highlight) { + if (_smallmap_industry_highlight_state) return MKCOLOUR_XXXX(PC_WHITE); + } else { + return GetIndustrySpec(type)->map_colour * 0x01010101; + } + } + /* Otherwise make it disappear */ + ttype = IsTileOnWater(ti) ? MP_WATER : MP_CLEAR; + } + break; + default: break; } From a2a69c1480d8e718c826a420c845a011798019be Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 24 Jul 2016 09:13:51 +0000 Subject: [PATCH 101/417] (svn r27623) -Fix (r27616) [FS#6492]: Missed two version checks, and messed one up. --- config.lib | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.lib b/config.lib index 02a1573ccc..ab9bb82b61 100644 --- a/config.lib +++ b/config.lib @@ -1550,7 +1550,7 @@ make_cflags_and_ldflags() { LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32 -limm32" - if [ $cc_version -ge 40 ]; then + if [ $cc_version -ge 404 ]; then LDFLAGS_BUILD="$LDFLAGS_BUILD -static-libgcc -static-libstdc++" fi if [ $cc_version -ge 407 ]; then @@ -1604,7 +1604,7 @@ make_cflags_and_ldflags() { LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS" fi - if [ "$enable_universal" = "0" ] && [ $cc_version -gt 40 ]; then + if [ "$enable_universal" = "0" ] && [ $cc_version -gt 400 ]; then # Only set the min version when not doing an universal build. # Universal builds set the version elsewhere. if [ "$cpu_type" = "64" ]; then @@ -1782,7 +1782,7 @@ make_cflags_and_ldflags() { # GCC 4.0+ doesn't like the DirectX includes (gives tons of # warnings on it we won't be able to fix). For now just # suppress those warnings. - if [ $cc_version -ge 40 ]; then + if [ $cc_version -ge 400 ]; then CFLAGS="$CFLAGS -Wno-non-virtual-dtor" fi fi From 9d5ed2c4695aa498628a6fbb39e449d79fd4fb31 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 7 Aug 2016 17:45:36 +0000 Subject: [PATCH 102/417] (svn r27624) -Update from Eints: spanish (mexican): 24 changes by Absay --- src/lang/spanish_MX.txt | 48 ++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 5b265ce8b5..aed6cf20f5 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -379,7 +379,7 @@ STR_SETTINGS_MENU_NEWGRF_SETTINGS :Configuración STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :Opciones de transparencia STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED :Mostrar nombres de pueblos STR_SETTINGS_MENU_STATION_NAMES_DISPLAYED :Mostrar nombres de estaciones -STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED :Mostrar puestos guías +STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED :Mostrar puntos guías STR_SETTINGS_MENU_SIGNS_DISPLAYED :Mostrar carteles propios STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS :Mostrar carteles y nombres del competidor STR_SETTINGS_MENU_FULL_ANIMATION :Animación completa @@ -1148,7 +1148,7 @@ STR_CONFIG_SETTING_RUNNING_COSTS :Costos de opera STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Nivel de los costos de mantenimiento y operación de vehículos e infraestructura STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Velocidad de construcción: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Restringir la velocidad de las acciones de construcción de jugadores no humanos -STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Descomposturas de vehículos: {STRING} +STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Averías de vehículos: {STRING} STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controlar cada cuánto los vehículos con poco mantenimiento sufren fallas STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Multiplicador de subsidio: {STRING} STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Establecer cuánto se paga por subsidios conectados @@ -1473,8 +1473,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalo de ma STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Intervalo de mantenimiento predeterminado para nuevas aeronaves, en caso de no definirse otro explícitamente STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalo de mantenimiento predeterminado para barcos: {STRING} STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Intervalo de mantenimiento predeterminado para nuevos barcos, en caso de no definirse otro explícitamente -STR_CONFIG_SETTING_NOSERVICE :Desactivar mantenimiento si las descomposturas están desactivadas: {STRING} -STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Al activarse, los vehículos no recibirán mantenimiento si no pueden descomponerse +STR_CONFIG_SETTING_NOSERVICE :Desactivar mantenimiento si las averías están desactivadas: {STRING} +STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Al activarse, los vehículos no recibirán mantenimiento si no pueden averiarse STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Activar límites de velocidad para vagones: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Al activarse, se tienen en cuenta los límites de velocidad de los vagones para decidir la máxima velocidad de un tren STR_CONFIG_SETTING_DISABLE_ELRAILS :Desactivar ferrocarriles eléctricos: {STRING} @@ -2271,7 +2271,7 @@ STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Activar STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}Activar o desactivar transparencia para árboles. Ctrl+Clic para excluir de tecla rápida 'X' STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}Activar o desactivar transparencia para casas. Ctrl+Clic para excluir de tecla rápida 'X' STR_TRANSPARENT_INDUSTRIES_TOOLTIP :{BLACK}Activar o desactivar transparencia para industrias. Ctrl+Clic para excluir de tecla rápida 'X' -STR_TRANSPARENT_BUILDINGS_TOOLTIP :{BLACK}Activar o desactivar transparencia para edificios como estaciones, depósitos o puestos guías. Ctrl+Clic para excluir de tecla rápida 'X' +STR_TRANSPARENT_BUILDINGS_TOOLTIP :{BLACK}Activar o desactivar transparencia para edificios como estaciones, depósitos o puntos guías. Ctrl+Clic para excluir de tecla rápida 'X' STR_TRANSPARENT_BRIDGES_TOOLTIP :{BLACK}Activar o desactivar transparencia para puentes. Ctrl+Clic para excluir de tecla rápida 'X' STR_TRANSPARENT_STRUCTURES_TOOLTIP :{BLACK}Activar o desactivar transparencia para estructuras como faros o antenas. Ctrl+Clic para excluir de tecla rápida 'X' STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}Activar o desactivar transparencia para catenaria. Ctrl+Clic para excluir de tecla rápida 'X' @@ -2302,7 +2302,7 @@ STR_STATION_BUILD_SUPPLIES_CARGO :{BLACK}Provee: STR_JOIN_STATION_CAPTION :{WHITE}Ampliar estación STR_JOIN_STATION_CREATE_SPLITTED_STATION :{YELLOW}Construir aparte -STR_JOIN_WAYPOINT_CAPTION :{WHITE}Unir puestos guías +STR_JOIN_WAYPOINT_CAPTION :{WHITE}Unir puntos guías STR_JOIN_WAYPOINT_CREATE_SPLITTED_WAYPOINT :{YELLOW}Construir aparte # Rail construction toolbar @@ -2332,8 +2332,8 @@ STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}Orientac STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}Elegir la orientación del depósito de trenes # Rail waypoint construction window -STR_WAYPOINT_CAPTION :{WHITE}Puesto guía -STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Elegir el tipo de puesto guía +STR_WAYPOINT_CAPTION :{WHITE}Punto guía +STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Elegir el tipo de punto guía # Rail station construction window STR_STATION_BUILD_RAIL_CAPTION :{WHITE}Selección de estación @@ -2350,7 +2350,7 @@ STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Mostrar STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Construir el tipo de estación elegida STR_STATION_CLASS_DFLT :Estación predeterminada -STR_STATION_CLASS_WAYP :Puestos guías +STR_STATION_CLASS_WAYP :Puntos guías # Signal window STR_BUILD_SIGNAL_CAPTION :{WHITE}Selección de señales @@ -2431,7 +2431,7 @@ STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}Construi STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}Construir esclusa. Mayús muestra una estimación del precio STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}Construir astillero (para comprar y dar mantenimiento a barcos). Mayús muestra una estimación del precio STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Construir muelles. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio -STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Colocar boya para utilizar como puesto guía marítimo. Mayús muestra una estimación del precio +STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Colocar boya para utilizar como punto guía marítimo. Mayús muestra una estimación del precio STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Construir acueducto. Mayús muestra una estimación del precio STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Definir cuerpo de agua.{}Crea un canal, a menos que se pulse Ctrl en un área al nivel del mar, en cuyo caso se inundarán los alrededores STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Colocar ríos @@ -2647,7 +2647,7 @@ STR_LAI_STATION_DESCRIPTION_TRUCK_LOADING_AREA :Estación de ca STR_LAI_STATION_DESCRIPTION_BUS_STATION :Parada de autobús STR_LAI_STATION_DESCRIPTION_SHIP_DOCK :Muelle STR_LAI_STATION_DESCRIPTION_BUOY :Boya -STR_LAI_STATION_DESCRIPTION_WAYPOINT :puesto guía +STR_LAI_STATION_DESCRIPTION_WAYPOINT :Punto guía STR_LAI_WATER_DESCRIPTION_WATER :Agua STR_LAI_WATER_DESCRIPTION_CANAL :Canal @@ -3172,12 +3172,12 @@ STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}No permi # Waypoint/buoy view window STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT} -STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centrar vista en ubicación del puesto guía. Ctrl+Clic abre una ventana de vista en dicha ubicación -STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Cambiar nombre de puesto guía +STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centrar vista en ubicación del punto guía. Ctrl+Clic abre una ventana de vista en dicha ubicación +STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Cambiar nombre de punto guía STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centrar la vista en la ubicación de la boya. Ctrl+Clic abre una ventana de vista en dicha ubicación STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Cambiar nombre de boya -STR_EDIT_WAYPOINT_NAME :{WHITE}Cambiar nombre de puesto guía +STR_EDIT_WAYPOINT_NAME :{WHITE}Cambiar nombre de punto guía # Finances window STR_FINANCES_CAPTION :{WHITE}Finanzas de {COMPANY} {BLACK}{COMPANY_NUM} @@ -3620,7 +3620,7 @@ STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Activida STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Cargando/Descargando STR_VEHICLE_STATUS_LEAVING :{LTBLUE}Partiendo STR_VEHICLE_STATUS_CRASHED :{RED}¡Accidentado! -STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Descompuesto +STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Averiado STR_VEHICLE_STATUS_STOPPED :{RED}Detenido STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL :{RED}Deteniéndose, {VELOCITY} STR_VEHICLE_STATUS_TRAIN_NO_POWER :{RED}Sin potencia @@ -3659,7 +3659,7 @@ STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {L STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. máx.: {LTBLUE}{FORCE} STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Utilidad este año: {LTBLUE}{CURRENCY_LONG} (año pasado: {CURRENCY_LONG}) -STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Fiabilidad: {LTBLUE}{COMMA}% {BLACK}Descomposturas desde el último mantenimiento: {LTBLUE}{COMMA} +STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Fiabilidad: {LTBLUE}{COMMA}% {BLACK}Averías desde el último mantenimiento: {LTBLUE}{COMMA} STR_VEHICLE_INFO_BUILT_VALUE :{LTBLUE}{ENGINE} {BLACK}Construido: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY_LONG} STR_VEHICLE_INFO_NO_CAPACITY :{BLACK}Capacidad: {LTBLUE}Ninguna{STRING} @@ -3816,7 +3816,7 @@ STR_ORDER_GO_TO_NEAREST_DEPOT :Ir al depósito STR_ORDER_GO_TO_NEAREST_HANGAR :Ir al hangar más cercano STR_ORDER_CONDITIONAL :Salto de orden condicional STR_ORDER_SHARE :Compartir órdenes -STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden marcada o añadirla al final de la lista. Ctrl+Clic sobre una estación para establecer la orden a 'Cargar máx. cualquier carga', sobre un puesto guía para 'Sin paradas' y sobre un depósito para 'Mantenimiento' (esta última desactivará el mantenimiento automático). Ctrl+Clic sobre otro vehículo para hacer que ambos compartan siempre las mismas órdenes. Clic sobre un vehículo para copiar sus órdenes (sin compartirlas). +STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden marcada o añadirla al final de la lista. Ctrl+Clic sobre una estación para establecer la orden a 'Cargar máx. cualquier carga', sobre un punto guía para 'Sin paradas' y sobre un depósito para 'Mantenimiento' (esta última desactivará el mantenimiento automático). Ctrl+Clic sobre otro vehículo para hacer que ambos compartan siempre las mismas órdenes. Clic sobre un vehículo para copiar sus órdenes (sin compartirlas). STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Ver todos los vehículos que comparten el mismo itinerario @@ -4241,15 +4241,15 @@ STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Primero STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Primero se debe demoler el aeropuerto # Waypoint related errors -STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Se amplía más de un puesto guía existente -STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Demasiado cerca de otro puesto guía +STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Se amplía más de un punto guía existente +STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Demasiado cerca de otro punto guía -STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}No se puede construir el puesto guía aquí... +STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}No se puede construir el punto guía aquí... STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}No se puede colocar la boya aquí... -STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}No se puede cambiar nombre del puesto guía... +STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}No se puede cambiar nombre del punto guía... -STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}No se puede quitar el puesto guía de aquí... -STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}Primero se debe retirar el puesto guía +STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}No se puede quitar el punto guía de aquí... +STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}Primero se debe retirar el punto guía STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... una boya obstaculiza STR_ERROR_BUOY_IS_IN_USE :{WHITE}... ¡boya en uso por otra empresa! @@ -4861,7 +4861,7 @@ STR_FORMAT_BUOY_NAME_SERIAL :Boya {TOWN} #{C STR_FORMAT_COMPANY_NUM :(Empresa {COMMA}) STR_FORMAT_GROUP_NAME :Grupo {COMMA} STR_FORMAT_INDUSTRY_NAME :{1:STRING}, {0:TOWN} -STR_FORMAT_WAYPOINT_NAME :Puesto guía {TOWN} +STR_FORMAT_WAYPOINT_NAME :Punto guía, {TOWN} STR_FORMAT_WAYPOINT_NAME_SERIAL :Puesto guía #{1:COMMA}, {0:TOWN} STR_FORMAT_DEPOT_NAME_TRAIN :Depósito de trenes, {TOWN} From 2257d782b04729efde9e36828aed42aa4b1bf8fc Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 15 Aug 2016 18:30:50 +0000 Subject: [PATCH 103/417] (svn r27625) -Doc: CursorVars --- src/gfx_type.h | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/gfx_type.h b/src/gfx_type.h index d25abff218..7078876199 100644 --- a/src/gfx_type.h +++ b/src/gfx_type.h @@ -115,29 +115,34 @@ struct AnimCursor { /** Collection of variables for cursor-display and -animation */ struct CursorVars { - Point pos, size, offs, delta; ///< position, size, offset from top-left, and movement - Point draw_pos, draw_size; ///< position and size bounding-box for drawing - int short_vehicle_offset; ///< offset of the X for short vehicles - CursorID sprite; ///< current image of cursor - PaletteID pal; - - int wheel; ///< mouse wheel movement + /* Logical mouse position */ + Point pos; ///< logical mouse position + Point delta; ///< relative mouse movement in this tick + int wheel; ///< mouse wheel movement + bool fix_at; ///< mouse is moving, but cursor is not (used for scrolling) /* We need two different vars to keep track of how far the scrollwheel moved. * OSX uses this for scrolling around the map. */ int v_wheel; int h_wheel; + /* Mouse appearance */ + CursorID sprite; ///< current image of cursor + PaletteID pal; + Point size, offs; ///< sprite properties + Point draw_pos, draw_size; ///< position and size bounding-box for drawing + const AnimCursor *animate_list; ///< in case of animated cursor, list of frames const AnimCursor *animate_cur; ///< in case of animated cursor, current frame uint animate_timeout; ///< in case of animated cursor, number of ticks to show the current cursor - bool visible; ///< cursor is visible - bool dirty; ///< the rect occupied by the mouse is dirty (redraw) - bool fix_at; ///< mouse is moving, but cursor is not (used for scrolling) - bool in_window; ///< mouse inside this window, determines drawing logic + bool visible; ///< cursor is visible + bool dirty; ///< the rect occupied by the mouse is dirty (redraw) + bool in_window; ///< mouse inside this window, determines drawing logic - bool vehchain; ///< vehicle chain is dragged + /* Drag data */ + int short_vehicle_offset; ///< offset of the X for short vehicles + bool vehchain; ///< vehicle chain is dragged bool UpdateCursorPosition(int x, int y, bool queued_warp); From 93d5995bedfc4ade1410b17c339b98894b0e738d Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 15 Aug 2016 18:32:25 +0000 Subject: [PATCH 104/417] (svn r27626) -Codechange: Do not use the cursor sprite as PlaceObject status in the main toolbar. --- src/toolbar_gui.cpp | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index 45d751dc56..40c75ad710 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -79,6 +79,9 @@ enum CallBackFunction { CBF_PLACE_LANDINFO, }; +static CallBackFunction _last_started_action = CBF_NONE; ///< Last started user action. + + /** * Drop down list entry for showing a checked/unchecked toggle item. */ @@ -247,7 +250,7 @@ static ToolbarMode _toolbar_mode; static CallBackFunction SelectSignTool() { - if (_cursor.sprite == SPR_CURSOR_SIGN) { + if (_last_started_action == CBF_PLACE_SIGN) { ResetObjectToPlace(); return CBF_NONE; } else { @@ -1031,7 +1034,7 @@ static CallBackFunction MenuClickNewspaper(int index) static CallBackFunction PlaceLandBlockInfo() { - if (_cursor.sprite == SPR_CURSOR_QUERY) { + if (_last_started_action == CBF_PLACE_LANDINFO) { ResetObjectToPlace(); return CBF_NONE; } else { @@ -1656,13 +1659,11 @@ enum MainToolbarHotkeys { /** Main toolbar. */ struct MainToolbarWindow : Window { - CallBackFunction last_started_action; ///< Last started user action. - MainToolbarWindow(WindowDesc *desc) : Window(desc) { this->InitNested(0); - this->last_started_action = CBF_NONE; + _last_started_action = CBF_NONE; CLRBITS(this->flags, WF_WHITE_BORDER); this->SetWidgetDisabledState(WID_TN_PAUSE, _networking && !_network_server); // if not server, disable pause button this->SetWidgetDisabledState(WID_TN_FAST_FORWARD, _networking); // if networking, disable fast-forward button @@ -1701,7 +1702,7 @@ struct MainToolbarWindow : Window { virtual void OnDropdownSelect(int widget, int index) { CallBackFunction cbf = _menu_clicked_procs[widget](index); - if (cbf != CBF_NONE) this->last_started_action = cbf; + if (cbf != CBF_NONE) _last_started_action = cbf; } virtual EventState OnHotkey(int hotkey) @@ -1754,7 +1755,7 @@ struct MainToolbarWindow : Window { virtual void OnPlaceObject(Point pt, TileIndex tile) { - switch (this->last_started_action) { + switch (_last_started_action) { case CBF_PLACE_SIGN: PlaceProc_Sign(tile); break; @@ -1767,6 +1768,11 @@ struct MainToolbarWindow : Window { } } + virtual void OnPlaceObjectAbort() + { + _last_started_action = CBF_NONE; + } + virtual void OnTick() { if (this->IsWidgetLowered(WID_TN_PAUSE) != !!_pause_mode) { @@ -1978,13 +1984,11 @@ enum MainToolbarEditorHotkeys { }; struct ScenarioEditorToolbarWindow : Window { - CallBackFunction last_started_action; ///< Last started user action. - ScenarioEditorToolbarWindow(WindowDesc *desc) : Window(desc) { this->InitNested(0); - this->last_started_action = CBF_NONE; + _last_started_action = CBF_NONE; CLRBITS(this->flags, WF_WHITE_BORDER); PositionMainToolbar(this); DoZoomInOutWindow(ZOOM_NONE, this); @@ -2043,7 +2047,7 @@ struct ScenarioEditorToolbarWindow : Window { { if (_game_mode == GM_MENU) return; CallBackFunction cbf = _scen_toolbar_button_procs[widget](this); - if (cbf != CBF_NONE) this->last_started_action = cbf; + if (cbf != CBF_NONE) _last_started_action = cbf; } virtual void OnDropdownSelect(int widget, int index) @@ -2052,7 +2056,7 @@ struct ScenarioEditorToolbarWindow : Window { * editor toolbar, so we need to adjust for it. */ if (widget == WID_TE_SMALL_MAP) widget = WID_TN_SMALL_MAP; CallBackFunction cbf = _menu_clicked_procs[widget](index); - if (cbf != CBF_NONE) this->last_started_action = cbf; + if (cbf != CBF_NONE) _last_started_action = cbf; if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP); } @@ -2084,13 +2088,13 @@ struct ScenarioEditorToolbarWindow : Window { case MTEHK_EXTRA_VIEWPORT: ShowExtraViewPortWindowForTileUnderCursor(); break; default: return ES_NOT_HANDLED; } - if (cbf != CBF_NONE) this->last_started_action = cbf; + if (cbf != CBF_NONE) _last_started_action = cbf; return ES_HANDLED; } virtual void OnPlaceObject(Point pt, TileIndex tile) { - switch (this->last_started_action) { + switch (_last_started_action) { case CBF_PLACE_SIGN: PlaceProc_Sign(tile); break; @@ -2103,6 +2107,11 @@ struct ScenarioEditorToolbarWindow : Window { } } + virtual void OnPlaceObjectAbort() + { + _last_started_action = CBF_NONE; + } + virtual void OnTimeout() { this->SetWidgetsLoweredState(false, WID_TE_DATE_BACKWARD, WID_TE_DATE_FORWARD, WIDGET_LIST_END); From 2337d169e8a01b10c0e87011427d4359fcc23581 Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 15 Aug 2016 18:32:48 +0000 Subject: [PATCH 105/417] (svn r27627) -Codechange: Deduplicate some cursor magic into SetMouseCursorBusy. --- src/genworld.cpp | 2 +- src/genworld_gui.cpp | 2 +- src/gfx.cpp | 13 +++++++++++++ src/gfx_func.h | 1 + src/saveload/saveload.cpp | 4 ++-- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/genworld.cpp b/src/genworld.cpp index 88e1b84a51..2b2dfb5fd7 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -77,7 +77,7 @@ static void CleanupGeneration() { _generating_world = false; - if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE); + SetMouseCursorBusy(false); /* Show all vital windows again, because we have hidden them */ if (_gw.threaded && _game_mode != GM_MENU) ShowVitalWindows(); SetModalProgress(false); diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index ad64ae802f..741fd75d1c 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -1190,7 +1190,7 @@ struct GenerateProgressWindow : public Window { { switch (widget) { case WID_GP_ABORT: - if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE); + SetMouseCursorBusy(false); ShowQuery( STR_GENERATION_ABORT_CAPTION, STR_GENERATION_ABORT_MESSAGE, diff --git a/src/gfx.cpp b/src/gfx.cpp index f3a98461d6..909f6729e1 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1572,6 +1572,19 @@ void CursorTick() } } +/** + * Set or unset the ZZZ cursor. + * @param busy Whether to show the ZZZ cursor. + */ +void SetMouseCursorBusy(bool busy) +{ + if (busy) { + if (_cursor.sprite == SPR_CURSOR_MOUSE) SetMouseCursor(SPR_CURSOR_ZZZ, PAL_NONE); + } else { + if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE); + } +} + /** * Assign a single non-animated sprite to the cursor. * @param sprite Sprite to draw for the cursor. diff --git a/src/gfx_func.h b/src/gfx_func.h index 6576dee4fb..973e15f2bb 100644 --- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -145,6 +145,7 @@ bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int heigh /* window.cpp */ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom); +void SetMouseCursorBusy(bool busy); void SetMouseCursor(CursorID cursor, PaletteID pal); void SetAnimatedMouseCursor(const AnimCursor *table); void CursorTick(); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 724bc649bf..3d6f3c4949 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2460,7 +2460,7 @@ static void SaveFileStart() { _sl.ff_state = _fast_forward; _fast_forward = 0; - if (_cursor.sprite == SPR_CURSOR_MOUSE) SetMouseCursor(SPR_CURSOR_ZZZ, PAL_NONE); + SetMouseCursorBusy(true); InvalidateWindowData(WC_STATUS_BAR, 0, SBI_SAVELOAD_START); _sl.saveinprogress = true; @@ -2470,7 +2470,7 @@ static void SaveFileStart() static void SaveFileDone() { if (_game_mode != GM_MENU) _fast_forward = _sl.ff_state; - if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE); + SetMouseCursorBusy(false); InvalidateWindowData(WC_STATUS_BAR, 0, SBI_SAVELOAD_FINISH); _sl.saveinprogress = false; From 0e3e4eeb53eb87ae706c9bea86b7c24dc336be64 Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 15 Aug 2016 18:33:08 +0000 Subject: [PATCH 106/417] (svn r27628) -Codechange: Prepare for drawing cursors consisting of multiple sprites. --- src/depot_gui.cpp | 3 +- src/gfx.cpp | 107 ++++++++++++++++++++++++++++------------------ src/gfx_type.h | 9 ++-- src/misc_gui.cpp | 4 +- src/window.cpp | 1 - 5 files changed, 74 insertions(+), 50 deletions(-) diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 24a14b8334..76bb8df506 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -512,8 +512,9 @@ struct DepotWindow : Window { this->sel = v->index; this->SetDirty(); - _cursor.short_vehicle_offset = v->IsGroundVehicle() ? (16 - v->GetGroundVehicleCache()->cached_veh_length * 2) * (rtl ? -1 : 1) : 0; + _cursor.sprite_pos[0].x = v->IsGroundVehicle() ? (16 - v->GetGroundVehicleCache()->cached_veh_length * 2) * (rtl ? -1 : 1) : 0; _cursor.vehchain = _ctrl_pressed; + UpdateCursorSize(); } break; } diff --git a/src/gfx.cpp b/src/gfx.cpp index 909f6729e1..7195051577 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1223,10 +1223,6 @@ void DrawMouseCursor() if (_screen.dst_ptr == NULL) return; Blitter *blitter = BlitterFactory::GetCurrentBlitter(); - int x; - int y; - int w; - int h; /* Redraw mouse cursor but only when it's inside the window */ if (!_cursor.in_window) return; @@ -1237,36 +1233,44 @@ void DrawMouseCursor() UndrawMouseCursor(); } - w = _cursor.size.x; - x = _cursor.pos.x + _cursor.offs.x + _cursor.short_vehicle_offset; - if (x < 0) { - w += x; - x = 0; + /* Determine visible area */ + int left = _cursor.pos.x + _cursor.total_offs.x; + int width = _cursor.total_size.x; + if (left < 0) { + width += left; + left = 0; } - if (w > _screen.width - x) w = _screen.width - x; - if (w <= 0) return; - _cursor.draw_pos.x = x; - _cursor.draw_size.x = w; - - h = _cursor.size.y; - y = _cursor.pos.y + _cursor.offs.y; - if (y < 0) { - h += y; - y = 0; + if (left + width > _screen.width) { + width = _screen.width - left; } - if (h > _screen.height - y) h = _screen.height - y; - if (h <= 0) return; - _cursor.draw_pos.y = y; - _cursor.draw_size.y = h; + if (width <= 0) return; - uint8 *buffer = _cursor_backup.Allocate(blitter->BufferSize(w, h)); + int top = _cursor.pos.y + _cursor.total_offs.y; + int height = _cursor.total_size.y; + if (top < 0) { + height += top; + top = 0; + } + if (top + height > _screen.height) { + height = _screen.height - top; + } + if (height <= 0) return; + + _cursor.draw_pos.x = left; + _cursor.draw_pos.y = top; + _cursor.draw_size.x = width; + _cursor.draw_size.y = height; + + uint8 *buffer = _cursor_backup.Allocate(blitter->BufferSize(_cursor.draw_size.x, _cursor.draw_size.y)); /* Make backup of stuff below cursor */ blitter->CopyToBuffer(blitter->MoveTo(_screen.dst_ptr, _cursor.draw_pos.x, _cursor.draw_pos.y), buffer, _cursor.draw_size.x, _cursor.draw_size.y); /* Draw cursor on screen */ _cur_dpi = &_screen; - DrawSprite(_cursor.sprite, _cursor.pal, _cursor.pos.x + _cursor.short_vehicle_offset, _cursor.pos.y); + for (uint i = 0; i < _cursor.sprite_count; ++i) { + DrawSprite(_cursor.sprite_seq[i].sprite, _cursor.sprite_seq[i].pal, _cursor.pos.x + _cursor.sprite_pos[i].x, _cursor.pos.y + _cursor.sprite_pos[i].y); + } VideoDriver::GetInstance()->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y); @@ -1525,15 +1529,33 @@ bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int heigh */ void UpdateCursorSize() { - CursorVars *cv = &_cursor; - const Sprite *p = GetSprite(GB(cv->sprite, 0, SPRITE_WIDTH), ST_NORMAL); + /* Ignore setting any cursor before the sprites are loaded. */ + if (GetMaxSpriteID() == 0) return; - cv->size.y = UnScaleGUI(p->height); - cv->size.x = UnScaleGUI(p->width); - cv->offs.x = UnScaleGUI(p->x_offs); - cv->offs.y = UnScaleGUI(p->y_offs); + assert_compile(lengthof(_cursor.sprite_seq) == lengthof(_cursor.sprite_pos)); + assert(_cursor.sprite_count <= lengthof(_cursor.sprite_seq)); + for (uint i = 0; i < _cursor.sprite_count; ++i) { + const Sprite *p = GetSprite(GB(_cursor.sprite_seq[i].sprite, 0, SPRITE_WIDTH), ST_NORMAL); + Point offs, size; + offs.x = UnScaleGUI(p->x_offs) + _cursor.sprite_pos[i].x; + offs.y = UnScaleGUI(p->y_offs) + _cursor.sprite_pos[i].y; + size.x = UnScaleGUI(p->width); + size.y = UnScaleGUI(p->height); - cv->dirty = true; + if (i == 0) { + _cursor.total_offs = offs; + _cursor.total_size = size; + } else { + int right = max(_cursor.total_offs.x + _cursor.total_size.x, offs.x + size.x); + int bottom = max(_cursor.total_offs.y + _cursor.total_size.y, offs.y + size.y); + if (offs.x < _cursor.total_offs.x) _cursor.total_offs.x = offs.x; + if (offs.y < _cursor.total_offs.y) _cursor.total_offs.y = offs.y; + _cursor.total_size.x = right - _cursor.total_offs.x; + _cursor.total_size.y = bottom - _cursor.total_offs.y; + } + } + + _cursor.dirty = true; } /** @@ -1543,14 +1565,15 @@ void UpdateCursorSize() */ static void SetCursorSprite(CursorID cursor, PaletteID pal) { - CursorVars *cv = &_cursor; - if (cv->sprite == cursor) return; + if (_cursor.sprite_count == 1 && _cursor.sprite_seq[0].sprite == cursor && _cursor.sprite_seq[0].pal == pal) return; + + _cursor.sprite_count = 1; + _cursor.sprite_seq[0].sprite = cursor; + _cursor.sprite_seq[0].pal = pal; + _cursor.sprite_pos[0].x = 0; + _cursor.sprite_pos[0].y = 0; - cv->sprite = cursor; - cv->pal = pal; UpdateCursorSize(); - - cv->short_vehicle_offset = 0; } static void SwitchAnimatedCursor() @@ -1559,7 +1582,7 @@ static void SwitchAnimatedCursor() if (cur == NULL || cur->sprite == AnimCursor::LAST) cur = _cursor.animate_list; - SetCursorSprite(cur->sprite, _cursor.pal); + SetCursorSprite(cur->sprite, _cursor.sprite_seq[0].pal); _cursor.animate_timeout = cur->display_time; _cursor.animate_cur = cur + 1; @@ -1579,9 +1602,9 @@ void CursorTick() void SetMouseCursorBusy(bool busy) { if (busy) { - if (_cursor.sprite == SPR_CURSOR_MOUSE) SetMouseCursor(SPR_CURSOR_ZZZ, PAL_NONE); + if (_cursor.sprite_seq[0].sprite == SPR_CURSOR_MOUSE) SetMouseCursor(SPR_CURSOR_ZZZ, PAL_NONE); } else { - if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE); + if (_cursor.sprite_seq[0].sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE); } } @@ -1608,7 +1631,7 @@ void SetAnimatedMouseCursor(const AnimCursor *table) { _cursor.animate_list = table; _cursor.animate_cur = NULL; - _cursor.pal = PAL_NONE; + _cursor.sprite_seq[0].pal = PAL_NONE; SwitchAnimatedCursor(); } diff --git a/src/gfx_type.h b/src/gfx_type.h index 7078876199..ca9bf9fcef 100644 --- a/src/gfx_type.h +++ b/src/gfx_type.h @@ -127,9 +127,11 @@ struct CursorVars { int h_wheel; /* Mouse appearance */ - CursorID sprite; ///< current image of cursor - PaletteID pal; - Point size, offs; ///< sprite properties + PalSpriteID sprite_seq[16]; ///< current image of cursor + Point sprite_pos[16]; ///< relative position of individual sprites + uint sprite_count; ///< number of sprites to draw + Point total_offs, total_size; ///< union of sprite properties + Point draw_pos, draw_size; ///< position and size bounding-box for drawing const AnimCursor *animate_list; ///< in case of animated cursor, list of frames @@ -141,7 +143,6 @@ struct CursorVars { bool in_window; ///< mouse inside this window, determines drawing logic /* Drag data */ - int short_vehicle_offset; ///< offset of the X for short vehicles bool vehchain; ///< vehicle chain is dragged bool UpdateCursorPosition(int x, int y, bool queued_warp); diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 9c6e3f334c..b751407e22 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -672,8 +672,8 @@ struct TooltipsWindow : public Window /* Correctly position the tooltip position, watch out for window and cursor size * Clamp value to below main toolbar and above statusbar. If tooltip would * go below window, flip it so it is shown above the cursor */ - pt.y = Clamp(_cursor.pos.y + _cursor.size.y + _cursor.offs.y + 5, scr_top, scr_bot); - if (pt.y + sm_height > scr_bot) pt.y = min(_cursor.pos.y + _cursor.offs.y - 5, scr_bot) - sm_height; + pt.y = Clamp(_cursor.pos.y + _cursor.total_size.y + _cursor.total_offs.y + 5, scr_top, scr_bot); + if (pt.y + sm_height > scr_bot) pt.y = min(_cursor.pos.y + _cursor.total_offs.y - 5, scr_bot) - sm_height; pt.x = sm_width >= _screen.width ? 0 : Clamp(_cursor.pos.x - (sm_width >> 1), 0, _screen.width - sm_width); return pt; diff --git a/src/window.cpp b/src/window.cpp index bc92416b62..24683d0a6a 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -2825,7 +2825,6 @@ static void MouseLoop(MouseClick click, int mousewheel) switch (click) { case MC_DOUBLE_LEFT: case MC_LEFT: - DEBUG(misc, 2, "Cursor: 0x%X (%d)", _cursor.sprite, _cursor.sprite); if (!HandleViewportClicked(vp, x, y) && !(w->flags & WF_DISABLE_VP_SCROLL) && _settings_client.gui.left_mouse_btn_scrolling) { From 0214caaac26f246280b4634b79d50e04a1406dab Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 15 Aug 2016 18:33:29 +0000 Subject: [PATCH 107/417] (svn r27629) -Fix: When dragging multiple vehicles in the depot, make the destination gap as long as the chain instead of just considering the first vehicle. --- src/train_gui.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/train_gui.cpp b/src/train_gui.cpp index d9da097017..219d016ec0 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -56,15 +56,16 @@ void CcBuildWagon(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p * @param px The current x position to draw from. * @param max_width The maximum space available to draw. * @param selection Selected vehicle that is dragged. + * @param chain Whether a whole chain is dragged. * @return The width of the highlight mark. */ -static int HighlightDragPosition(int px, int max_width, VehicleID selection) +static int HighlightDragPosition(int px, int max_width, VehicleID selection, bool chain) { bool rtl = _current_text_dir == TD_RTL; assert(selection != INVALID_VEHICLE); int dragged_width = WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; - for (Train *t = Train::Get(selection); t != NULL; t = t->HasArticulatedPart() ? t->GetNextArticulatedPart() : NULL) { + for (Train *t = Train::Get(selection); t != NULL; t = chain ? t->Next() : (t->HasArticulatedPart() ? t->GetNextArticulatedPart() : NULL)) { dragged_width += t->GetDisplayImageWidth(NULL); } @@ -114,7 +115,7 @@ void DrawTrainImage(const Train *v, int left, int right, int y, VehicleID select for (; v != NULL && (rtl ? px > 0 : px < max_width); v = v->Next()) { if (dragging && !drag_at_end_of_train && drag_dest == v->index) { /* Highlight the drag-and-drop destination inside the train. */ - int drag_hlight_width = HighlightDragPosition(px, max_width, selection); + int drag_hlight_width = HighlightDragPosition(px, max_width, selection, _cursor.vehchain); px += rtl ? -drag_hlight_width : drag_hlight_width; } @@ -146,7 +147,7 @@ void DrawTrainImage(const Train *v, int left, int right, int y, VehicleID select if (dragging && drag_at_end_of_train) { /* Highlight the drag-and-drop destination at the end of the train. */ - HighlightDragPosition(px, max_width, selection); + HighlightDragPosition(px, max_width, selection, _cursor.vehchain); } if (highlight_l != highlight_r) { From caa9bffb5601f4c08babe2ae4f2bbfc0c578f43e Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 15 Aug 2016 18:33:52 +0000 Subject: [PATCH 108/417] (svn r27630) -Codechange: Deduplicate code to attach vehicle to cursor. --- src/depot_gui.cpp | 10 +++------- src/group_gui.cpp | 4 ++-- src/vehicle_gui.cpp | 17 +++++++++++++++++ src/vehicle_gui.h | 1 + 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 76bb8df506..47eefc65e9 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -505,16 +505,12 @@ struct DepotWindow : Window { this->sel = INVALID_VEHICLE; TrainDepotMoveVehicle(v, sel, gdvp.head); } else if (v != NULL) { - bool rtl = _current_text_dir == TD_RTL; - int image = v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DEPOT); - SetObjectToPlaceWnd(image, GetVehiclePalette(v), HT_DRAG, this); + SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this); + SetMouseCursorVehicle(v, EIT_IN_DEPOT); + _cursor.vehchain = _ctrl_pressed; this->sel = v->index; this->SetDirty(); - - _cursor.sprite_pos[0].x = v->IsGroundVehicle() ? (16 - v->GetGroundVehicleCache()->cached_veh_length * 2) * (rtl ? -1 : 1) : 0; - _cursor.vehchain = _ctrl_pressed; - UpdateCursorSize(); } break; } diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 81fb1202e4..361ab53e56 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -627,8 +627,8 @@ public: this->vehicle_sel = v->index; - int image = v->GetImage(_current_text_dir == TD_RTL ? DIR_E : DIR_W, EIT_IN_LIST); - SetObjectToPlaceWnd(image, GetVehiclePalette(v), HT_DRAG, this); + SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this); + SetMouseCursorVehicle(v, EIT_IN_LIST); _cursor.vehchain = true; this->SetDirty(); diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 1f03319ed0..03f9ef2254 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2861,3 +2861,20 @@ int GetVehicleWidth(Vehicle *v, EngineImageType image_type) return vehicle_width; } + +/** + * Set the mouse cursor to look like a vehicle. + * @param v Vehicle + * @param image_type Type of vehicle image to use. + */ +void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type) +{ + bool rtl = _current_text_dir == TD_RTL; + + _cursor.sprite_count = 1; + _cursor.sprite_seq[0].sprite = v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DEPOT); + _cursor.sprite_seq[0].pal = GetVehiclePalette(v); + _cursor.sprite_pos[0].x = v->IsGroundVehicle() ? (16 - v->GetGroundVehicleCache()->cached_veh_length * 2) * (rtl ? -1 : 1) : 0; + + UpdateCursorSize(); +} diff --git a/src/vehicle_gui.h b/src/vehicle_gui.h index 83e098dcd9..da98bf0333 100644 --- a/src/vehicle_gui.h +++ b/src/vehicle_gui.h @@ -100,5 +100,6 @@ void StartStopVehicle(const Vehicle *v, bool texteffect); Vehicle *CheckClickOnVehicle(const struct ViewPort *vp, int x, int y); void DrawVehicleImage(const Vehicle *v, int left, int right, int y, VehicleID selection, EngineImageType image_type, int skip); +void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type); #endif /* VEHICLE_GUI_H */ From 0829753fd003bfd2bf10feb6d479535b8a3c2855 Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 15 Aug 2016 18:34:09 +0000 Subject: [PATCH 109/417] (svn r27631) -Codechange: Split GetSingleVehicleWidth from GetVehicleWidth. --- src/vehicle_gui.cpp | 38 ++++++++++++++++++++++---------------- src/vehicle_gui.h | 3 ++- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 03f9ef2254..74ae30c44f 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2829,37 +2829,43 @@ void CcBuildPrimaryVehicle(const CommandCost &result, TileIndex tile, uint32 p1, } /** - * Get the width of a vehicle (including all parts of the consist) in pixels. + * Get the width of a vehicle (part) in pixels. * @param v Vehicle to get the width for. * @return Width of the vehicle. */ -int GetVehicleWidth(Vehicle *v, EngineImageType image_type) +int GetSingleVehicleWidth(const Vehicle *v, EngineImageType image_type) { - int vehicle_width = 0; - switch (v->type) { case VEH_TRAIN: - for (const Train *u = Train::From(v); u != NULL; u = u->Next()) { - vehicle_width += u->GetDisplayImageWidth(); - } - break; + return Train::From(v)->GetDisplayImageWidth(); case VEH_ROAD: - for (const RoadVehicle *u = RoadVehicle::From(v); u != NULL; u = u->Next()) { - vehicle_width += u->GetDisplayImageWidth(); - } - break; + return RoadVehicle::From(v)->GetDisplayImageWidth(); default: bool rtl = _current_text_dir == TD_RTL; SpriteID sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type); const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); - vehicle_width = UnScaleGUI(real_sprite->width); - - break; + return UnScaleGUI(real_sprite->width); } +} - return vehicle_width; +/** + * Get the width of a vehicle (including all parts of the consist) in pixels. + * @param v Vehicle to get the width for. + * @return Width of the vehicle. + */ +int GetVehicleWidth(const Vehicle *v, EngineImageType image_type) +{ + if (v->type == VEH_TRAIN || v->type == VEH_ROAD) { + int vehicle_width = 0; + for (const Vehicle *u = v; u != NULL; u = u->Next()) { + vehicle_width += GetSingleVehicleWidth(u, image_type); + } + return vehicle_width; + } else { + return GetSingleVehicleWidth(v, image_type); + } } /** diff --git a/src/vehicle_gui.h b/src/vehicle_gui.h index da98bf0333..92975425df 100644 --- a/src/vehicle_gui.h +++ b/src/vehicle_gui.h @@ -64,7 +64,8 @@ static inline uint GetVehicleHeight(VehicleType type) return (type == VEH_TRAIN || type == VEH_ROAD) ? 14 : 24; } -int GetVehicleWidth(Vehicle *v, EngineImageType image_type); +int GetSingleVehicleWidth(const Vehicle *v, EngineImageType image_type); +int GetVehicleWidth(const Vehicle *v, EngineImageType image_type); /** Dimensions of a cell in the purchase/depot windows. */ struct VehicleCellSize { From f46996243b86c2f8b1c2a7c52ea61a77b997e4a8 Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 15 Aug 2016 18:34:31 +0000 Subject: [PATCH 110/417] (svn r27632) -Feature: When dragging vehicles in group or depot GUI, draw the complete articulated vehicle. --- src/vehicle_gui.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 74ae30c44f..a5ff3f3530 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2877,10 +2877,26 @@ void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type) { bool rtl = _current_text_dir == TD_RTL; - _cursor.sprite_count = 1; - _cursor.sprite_seq[0].sprite = v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DEPOT); - _cursor.sprite_seq[0].pal = GetVehiclePalette(v); - _cursor.sprite_pos[0].x = v->IsGroundVehicle() ? (16 - v->GetGroundVehicleCache()->cached_veh_length * 2) * (rtl ? -1 : 1) : 0; + _cursor.sprite_count = 0; + int total_width = 0; + for (; v != NULL; v = v->HasArticulatedPart() ? v->GetNextArticulatedPart() : NULL) { + if (_cursor.sprite_count == lengthof(_cursor.sprite_seq)) break; + if (total_width >= 2 * (int)VEHICLEINFO_FULL_VEHICLE_WIDTH) break; + + _cursor.sprite_seq[_cursor.sprite_count].sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type); + _cursor.sprite_seq[_cursor.sprite_count].pal = GetVehiclePalette(v); + _cursor.sprite_pos[_cursor.sprite_count].x = rtl ? -total_width : total_width; + _cursor.sprite_pos[_cursor.sprite_count].y = 0; + + total_width += GetSingleVehicleWidth(v, image_type); + _cursor.sprite_count++; + } + + int offs = ((int)VEHICLEINFO_FULL_VEHICLE_WIDTH - total_width) / 2; + if (rtl) offs = -offs; + for (uint i = 0; i < _cursor.sprite_count; ++i) { + _cursor.sprite_pos[i].x += offs; + } UpdateCursorSize(); } From 55c7c21c5d6f6b72408cb67ed7e663216226105f Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:44:42 +0000 Subject: [PATCH 111/417] (svn r27633) -Codechange: Extract _saveload_mode use from BuildFileList --- src/console_cmds.cpp | 4 ++-- src/fios.h | 2 +- src/fios_gui.cpp | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 8d9e04113d..8df5b15cde 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -324,7 +324,7 @@ DEF_CONSOLE_CMD(ConSaveConfig) static const FiosItem *GetFiosItem(const char *file) { _saveload_mode = SLD_LOAD_GAME; - BuildFileList(); + BuildFileList(_saveload_mode); for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) { if (strcmp(file, item->name) == 0) return item; @@ -415,7 +415,7 @@ DEF_CONSOLE_CMD(ConListFiles) return true; } - BuildFileList(); + BuildFileList(_saveload_mode); for (uint i = 0; i < _fios_items.Length(); i++) { IConsolePrintF(CC_DEFAULT, "%d) %s", i, _fios_items[i].title); diff --git a/src/fios.h b/src/fios.h index b26fe00925..b9bf390bb8 100644 --- a/src/fios.h +++ b/src/fios.h @@ -179,7 +179,7 @@ int CDECL CompareFiosItems(const FiosItem *a, const FiosItem *b); extern const TextColour _fios_colours[]; -void BuildFileList(); +void BuildFileList(SaveLoadDialogMode mode); void SetFiosType(const byte fiostype); #endif /* FIOS_H */ diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 9316deb658..401cb82545 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -193,20 +193,20 @@ const TextColour _fios_colours[] = { TC_ORANGE, TC_LIGHT_BROWN, TC_ORANGE, TC_ORANGE, TC_YELLOW }; -void BuildFileList() +void BuildFileList(SaveLoadDialogMode mode) { _fios_path_changed = true; FiosFreeSavegameList(); - switch (_saveload_mode) { + switch (mode) { case SLD_LOAD_SCENARIO: case SLD_SAVE_SCENARIO: - FiosGetScenarioList(_saveload_mode); break; + FiosGetScenarioList(mode); break; case SLD_SAVE_HEIGHTMAP: case SLD_LOAD_HEIGHTMAP: - FiosGetHeightmapList(_saveload_mode); break; + FiosGetHeightmapList(mode); break; - default: FiosGetSavegameList(_saveload_mode); break; + default: FiosGetSavegameList(mode); break; } /* Invalidate saveload window */ @@ -683,7 +683,7 @@ public: this->selected = NULL; _load_check_data.Clear(); if (!gui_scope) break; - BuildFileList(); + BuildFileList(_saveload_mode); /* FALL THROUGH */ case 1: /* Selection changes */ From df2221ba7eb72a2dfd3b1babe8b97fe99e2aad7d Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:45:11 +0000 Subject: [PATCH 112/417] (svn r27634) -Codechange: Improve name of the SmallFiosItem struct. --- src/fios.cpp | 2 +- src/fios.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fios.cpp b/src/fios.cpp index 00ed5a484c..6ba913c09c 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -32,7 +32,7 @@ SmallVector _fios_items; static char *_fios_path; static const char *_fios_path_last; -SmallFiosItem _file_to_saveload; +FileToSaveLoad _file_to_saveload; ///< File to save or load in the openttd loop. SortingBits _savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING; /* OS-specific functions are taken from their respective files (win32/unix/os2 .c) */ diff --git a/src/fios.h b/src/fios.h index b9bf390bb8..f25d5a7e2b 100644 --- a/src/fios.h +++ b/src/fios.h @@ -138,7 +138,7 @@ struct FiosItem { }; /** Deals with the type of the savegame, independent of extension */ -struct SmallFiosItem { +struct FileToSaveLoad { int mode; ///< savegame/scenario type (old, new) FileType filetype; ///< what type of file are we dealing with char name[MAX_PATH]; ///< name @@ -155,7 +155,7 @@ DECLARE_ENUM_AS_BIT_SET(SortingBits) /* Variables to display file lists */ extern SmallVector _fios_items; -extern SmallFiosItem _file_to_saveload; +extern FileToSaveLoad _file_to_saveload; extern SaveLoadDialogMode _saveload_mode; extern SortingBits _savegame_sort_order; From a35e970ab034d1f96b3f438eabd750c25a3451d0 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:45:40 +0000 Subject: [PATCH 113/417] (svn r27635) -Codechange: Move FileType and FileToSaveLoad structure definitions. --- src/fios.cpp | 1 - src/fios.h | 17 ----------------- src/genworld_gui.cpp | 1 + src/landscape.cpp | 1 + src/saveload/saveload.cpp | 1 + src/saveload/saveload.h | 18 ++++++++++++++++++ 6 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/fios.cpp b/src/fios.cpp index 6ba913c09c..631c88bf62 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -32,7 +32,6 @@ SmallVector _fios_items; static char *_fios_path; static const char *_fios_path_last; -FileToSaveLoad _file_to_saveload; ///< File to save or load in the openttd loop. SortingBits _savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING; /* OS-specific functions are taken from their respective files (win32/unix/os2 .c) */ diff --git a/src/fios.h b/src/fios.h index f25d5a7e2b..6ef7783b62 100644 --- a/src/fios.h +++ b/src/fios.h @@ -107,14 +107,6 @@ enum SaveLoadDialogMode { SLD_SAVE_HEIGHTMAP, ///< Save a heightmap. }; -/** The different types of files that the system knows about. */ -enum FileType { - FT_NONE, ///< nothing to do - FT_SAVEGAME, ///< old or new savegame - FT_SCENARIO, ///< old or new scenario - FT_HEIGHTMAP, ///< heightmap file -}; - enum FiosType { FIOS_TYPE_DRIVE, FIOS_TYPE_PARENT, @@ -137,14 +129,6 @@ struct FiosItem { char name[MAX_PATH]; }; -/** Deals with the type of the savegame, independent of extension */ -struct FileToSaveLoad { - int mode; ///< savegame/scenario type (old, new) - FileType filetype; ///< what type of file are we dealing with - char name[MAX_PATH]; ///< name - char title[255]; ///< internal name of the game -}; - enum SortingBits { SORT_ASCENDING = 0, SORT_DESCENDING = 1, @@ -155,7 +139,6 @@ DECLARE_ENUM_AS_BIT_SET(SortingBits) /* Variables to display file lists */ extern SmallVector _fios_items; -extern FileToSaveLoad _file_to_saveload; extern SaveLoadDialogMode _saveload_mode; extern SortingBits _savegame_sort_order; diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 741fd75d1c..61e114311b 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -26,6 +26,7 @@ #include "town.h" #include "core/geometry_func.hpp" #include "core/random_func.hpp" +#include "saveload/saveload.h" #include "progress.h" #include "error.h" diff --git a/src/landscape.cpp b/src/landscape.cpp index d1c73fd42b..d2b1b98cd5 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -31,6 +31,7 @@ #include "object_base.h" #include "company_func.h" #include "pathfinder/npf/aystar.h" +#include "saveload/saveload.h" #include #include diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 3d6f3c4949..03c0cb8c84 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -267,6 +267,7 @@ extern const uint16 SAVEGAME_VERSION = 195; ///< Current savegame version of OpenTTD. SavegameType _savegame_type; ///< type of savegame we are loading +FileToSaveLoad _file_to_saveload; ///< File to save or load in the openttd loop. uint32 _ttdp_version; ///< version of TTDP savegame (if applicable) uint16 _sl_version; ///< the major savegame version identifier diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 72c51fa69d..c4472237c2 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -33,6 +33,22 @@ enum SaveOrLoadMode { SL_LOAD_CHECK = 5, ///< Load for game preview. }; +/** The different types of files that the system knows about. */ +enum FileType { + FT_NONE, ///< nothing to do + FT_SAVEGAME, ///< old or new savegame + FT_SCENARIO, ///< old or new scenario + FT_HEIGHTMAP, ///< heightmap file +}; + +/** Deals with the type of the savegame, independent of extension */ +struct FileToSaveLoad { + SaveOrLoadMode mode; ///< savegame/scenario type (old, new) + FileType filetype; ///< what type of file are we dealing with + char name[MAX_PATH]; ///< name + char title[255]; ///< internal name of the game +}; + /** Types of save games. */ enum SavegameType { SGT_TTD, ///< TTD savegame (can be detected incorrectly) @@ -43,6 +59,8 @@ enum SavegameType { SGT_INVALID = 0xFF, ///< broken savegame (used internally) }; +extern FileToSaveLoad _file_to_saveload; + void GenerateDefaultSaveName(char *buf, const char *last); void SetSaveLoadError(uint16 str); const char *GetSaveLoadErrorString(); From 757bc0a97bef39196a5278656850680e4f67cc4b Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:46:07 +0000 Subject: [PATCH 114/417] (svn r27636) -Codechange: Rename FileType to AbstractFileType. --- src/fileio_type.h | 8 ++++++++ src/fios_gui.cpp | 2 +- src/saveload/saveload.h | 16 ++++------------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/fileio_type.h b/src/fileio_type.h index 87cb2d1a82..fc50484f20 100644 --- a/src/fileio_type.h +++ b/src/fileio_type.h @@ -14,6 +14,14 @@ #include "core/enum_type.hpp" +/** The different abstract types of files that the system knows about. */ +enum AbstractFileType { + FT_NONE, ///< nothing to do + FT_SAVEGAME, ///< old or new savegame + FT_SCENARIO, ///< old or new scenario + FT_HEIGHTMAP, ///< heightmap file +}; + /** * The different kinds of subdirectories OpenTTD uses */ diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 401cb82545..31f0b3d51e 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -738,7 +738,7 @@ static WindowDesc _save_dialog_desc( * These values are used to convert the file/operations mode into a corresponding file type. * So each entry, as expressed by the related comment, is based on the enum */ -static const FileType _file_modetotype[] = { +static const AbstractFileType _file_modetotype[] = { FT_SAVEGAME, // used for SLD_LOAD_GAME FT_SCENARIO, // used for SLD_LOAD_SCENARIO FT_SAVEGAME, // used for SLD_SAVE_GAME diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index c4472237c2..450fe58fe0 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -33,20 +33,12 @@ enum SaveOrLoadMode { SL_LOAD_CHECK = 5, ///< Load for game preview. }; -/** The different types of files that the system knows about. */ -enum FileType { - FT_NONE, ///< nothing to do - FT_SAVEGAME, ///< old or new savegame - FT_SCENARIO, ///< old or new scenario - FT_HEIGHTMAP, ///< heightmap file -}; - /** Deals with the type of the savegame, independent of extension */ struct FileToSaveLoad { - SaveOrLoadMode mode; ///< savegame/scenario type (old, new) - FileType filetype; ///< what type of file are we dealing with - char name[MAX_PATH]; ///< name - char title[255]; ///< internal name of the game + SaveOrLoadMode mode; ///< savegame/scenario type (old, new) + AbstractFileType filetype; ///< what type of file are we dealing with + char name[MAX_PATH]; ///< name + char title[255]; ///< internal name of the game }; /** Types of save games. */ From b5eb50da7b0e702eb74176deea6fa46d120cd718 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:46:29 +0000 Subject: [PATCH 115/417] (svn r27637) -Codechange: Don't use _saveload_mode for scenario loading detection. --- src/saveload/signs_sl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/saveload/signs_sl.cpp b/src/saveload/signs_sl.cpp index d5bacd509c..077d34501d 100644 --- a/src/saveload/signs_sl.cpp +++ b/src/saveload/signs_sl.cpp @@ -60,7 +60,7 @@ static void Load_SIGN() } /* Signs placed in scenario editor shall now be OWNER_DEITY */ - if (IsSavegameVersionBefore(171) && si->owner == OWNER_NONE && _saveload_mode == SLD_LOAD_SCENARIO) { + if (IsSavegameVersionBefore(171) && si->owner == OWNER_NONE && _file_to_saveload.filetype == FT_SCENARIO) { si->owner = OWNER_DEITY; } } From e78627f2f10b2b742ae990d5d007309b5c70f3af Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:47:07 +0000 Subject: [PATCH 116/417] (svn r27638) -Codechange: Move FiosType enum, move and rename SetFiosType function. --- src/console_cmds.cpp | 2 +- src/fileio_type.h | 15 +++++++++++++++ src/fios.h | 15 --------------- src/fios_gui.cpp | 33 ++------------------------------- src/openttd.cpp | 2 +- src/saveload/saveload.cpp | 33 +++++++++++++++++++++++++++++++++ src/saveload/saveload.h | 2 ++ 7 files changed, 54 insertions(+), 48 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 8df5b15cde..67f3f60988 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -366,7 +366,7 @@ DEF_CONSOLE_CMD(ConLoad) switch (item->type) { case FIOS_TYPE_FILE: case FIOS_TYPE_OLDFILE: { _switch_mode = SM_LOAD_GAME; - SetFiosType(item->type); + _file_to_saveload.SetMode(item->type); strecpy(_file_to_saveload.name, FiosBrowseTo(item), lastof(_file_to_saveload.name)); strecpy(_file_to_saveload.title, item->title, lastof(_file_to_saveload.title)); diff --git a/src/fileio_type.h b/src/fileio_type.h index fc50484f20..390b28f24d 100644 --- a/src/fileio_type.h +++ b/src/fileio_type.h @@ -22,6 +22,21 @@ enum AbstractFileType { FT_HEIGHTMAP, ///< heightmap file }; +/** Elements of a file system that are recognized. */ +enum FiosType { + FIOS_TYPE_DRIVE, + FIOS_TYPE_PARENT, + FIOS_TYPE_DIR, + FIOS_TYPE_FILE, + FIOS_TYPE_OLDFILE, + FIOS_TYPE_SCENARIO, + FIOS_TYPE_OLD_SCENARIO, + FIOS_TYPE_DIRECT, + FIOS_TYPE_PNG, + FIOS_TYPE_BMP, + FIOS_TYPE_INVALID = 255, +}; + /** * The different kinds of subdirectories OpenTTD uses */ diff --git a/src/fios.h b/src/fios.h index 6ef7783b62..4ccd1f192b 100644 --- a/src/fios.h +++ b/src/fios.h @@ -107,20 +107,6 @@ enum SaveLoadDialogMode { SLD_SAVE_HEIGHTMAP, ///< Save a heightmap. }; -enum FiosType { - FIOS_TYPE_DRIVE, - FIOS_TYPE_PARENT, - FIOS_TYPE_DIR, - FIOS_TYPE_FILE, - FIOS_TYPE_OLDFILE, - FIOS_TYPE_SCENARIO, - FIOS_TYPE_OLD_SCENARIO, - FIOS_TYPE_DIRECT, - FIOS_TYPE_PNG, - FIOS_TYPE_BMP, - FIOS_TYPE_INVALID = 255, -}; - /** Deals with finding savegames */ struct FiosItem { FiosType type; @@ -163,6 +149,5 @@ int CDECL CompareFiosItems(const FiosItem *a, const FiosItem *b); extern const TextColour _fios_colours[]; void BuildFileList(SaveLoadDialogMode mode); -void SetFiosType(const byte fiostype); #endif /* FIOS_H */ diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 31f0b3d51e..50a6711c6b 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -527,7 +527,7 @@ public: case WID_SL_LOAD_BUTTON: if (this->selected != NULL && !_load_check_data.HasErrors()) { const char *name = FiosBrowseTo(this->selected); - SetFiosType(this->selected->type); + _file_to_saveload.SetMode(this->selected->type); strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name)); strecpy(_file_to_saveload.title, this->selected->title, lastof(_file_to_saveload.title)); @@ -588,7 +588,7 @@ public: if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) { this->OnClick(pt, WID_SL_LOAD_BUTTON, 1); } else if (_saveload_mode == SLD_LOAD_HEIGHTMAP) { - SetFiosType(file->type); + _file_to_saveload.SetMode(file->type); strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name)); strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title)); @@ -772,32 +772,3 @@ void ShowSaveLoadDialog(SaveLoadDialogMode mode) new SaveLoadWindow(sld, mode); } - -void SetFiosType(const byte fiostype) -{ - switch (fiostype) { - case FIOS_TYPE_FILE: - case FIOS_TYPE_SCENARIO: - _file_to_saveload.mode = SL_LOAD; - break; - - case FIOS_TYPE_OLDFILE: - case FIOS_TYPE_OLD_SCENARIO: - _file_to_saveload.mode = SL_OLD_LOAD; - break; - -#ifdef WITH_PNG - case FIOS_TYPE_PNG: - _file_to_saveload.mode = SL_PNG; - break; -#endif /* WITH_PNG */ - - case FIOS_TYPE_BMP: - _file_to_saveload.mode = SL_BMP; - break; - - default: - _file_to_saveload.mode = SL_INVALID; - break; - } -} diff --git a/src/openttd.cpp b/src/openttd.cpp index c149ebbd4d..b5f654df67 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -626,7 +626,7 @@ int openttd_main(int argc, char *argv[]) const char *t = strrchr(_file_to_saveload.name, '.'); if (t != NULL) { FiosType ft = FiosGetSavegameListCallback(SLD_LOAD_GAME, _file_to_saveload.name, t, NULL, NULL); - if (ft != FIOS_TYPE_INVALID) SetFiosType(ft); + if (ft != FIOS_TYPE_INVALID) _file_to_saveload.SetMode(ft); } break; diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 03c0cb8c84..007b22f012 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2892,6 +2892,39 @@ void GenerateDefaultSaveName(char *buf, const char *last) SanitizeFilename(buf); } +/** + * Set the mode of the file to save or load based on the type of file entry at the file system. + * @param ft Type of file entry of the file system. + */ +void FileToSaveLoad::SetMode(FiosType ft) +{ + switch (ft) { + case FIOS_TYPE_FILE: + case FIOS_TYPE_SCENARIO: + this->mode = SL_LOAD; + break; + + case FIOS_TYPE_OLDFILE: + case FIOS_TYPE_OLD_SCENARIO: + this->mode = SL_OLD_LOAD; + break; + +#ifdef WITH_PNG + case FIOS_TYPE_PNG: + this->mode = SL_PNG; + break; +#endif /* WITH_PNG */ + + case FIOS_TYPE_BMP: + this->mode = SL_BMP; + break; + + default: + this->mode = SL_INVALID; + break; + } +} + #if 0 /** * Function to get the type of the savegame by looking at the file header. diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 450fe58fe0..43b9d5d3ce 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -39,6 +39,8 @@ struct FileToSaveLoad { AbstractFileType filetype; ///< what type of file are we dealing with char name[MAX_PATH]; ///< name char title[255]; ///< internal name of the game + + void SetMode(FiosType ft); }; /** Types of save games. */ From b6c29ae4eb8fb307c30677705431bdec307ff53b Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:47:39 +0000 Subject: [PATCH 117/417] (svn r27639) -Codechange: Also always set the abstract FileToSaveLoad::filetype when setting a mode. --- src/fileio_type.h | 2 ++ src/saveload/saveload.cpp | 27 ++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/fileio_type.h b/src/fileio_type.h index 390b28f24d..3aee5a0e76 100644 --- a/src/fileio_type.h +++ b/src/fileio_type.h @@ -20,6 +20,8 @@ enum AbstractFileType { FT_SAVEGAME, ///< old or new savegame FT_SCENARIO, ///< old or new scenario FT_HEIGHTMAP, ///< heightmap file + + FT_INVALID = 7, ///< Invalid or unknown file type. }; /** Elements of a file system that are recognized. */ diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 007b22f012..a0d15938a4 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2893,7 +2893,7 @@ void GenerateDefaultSaveName(char *buf, const char *last) } /** - * Set the mode of the file to save or load based on the type of file entry at the file system. + * Set the mode and file type of the file to save or load based on the type of file entry at the file system. * @param ft Type of file entry of the file system. */ void FileToSaveLoad::SetMode(FiosType ft) @@ -2923,6 +2923,31 @@ void FileToSaveLoad::SetMode(FiosType ft) this->mode = SL_INVALID; break; } + + switch (ft) { + case FIOS_TYPE_OLDFILE: + case FIOS_TYPE_FILE: + this->filetype = FT_SAVEGAME; + break; + + case FIOS_TYPE_OLD_SCENARIO: + case FIOS_TYPE_SCENARIO: + this->filetype = FT_SCENARIO; + break; + +#ifdef WITH_PNG + case FIOS_TYPE_PNG: + /* FALL THROUGH */ +#endif /* WITH_PNG */ + + case FIOS_TYPE_BMP: + this->filetype = FT_HEIGHTMAP; + break; + + default: + this->filetype = FT_INVALID; + break; + } } #if 0 From c530f89761476d683893fcc5c1513089a754d773 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:48:28 +0000 Subject: [PATCH 118/417] (svn r27640) -Codechange: Remove another use of _saveload_mode in the loading code. --- src/openttd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index b5f654df67..594b6fa37e 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1097,7 +1097,7 @@ void SwitchToMode(SwitchMode new_mode) SetDParamStr(0, GetSaveLoadErrorString()); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_ERROR); } else { - if (_saveload_mode == SLD_LOAD_SCENARIO) { + if (_file_to_saveload.filetype == FT_SCENARIO) { /* Reset engine pool to simplify changing engine NewGRFs in scenario editor. */ EngineOverrideManager::ResetToCurrentNewGRFConfig(); } From a38cdeccc041acc005e075f4d1a861b33ffd5f83 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:50:22 +0000 Subject: [PATCH 119/417] (svn r27641) -Codechange: Fold the _fios_items file list vector into its own class. --- src/console_cmds.cpp | 10 ++--- src/core/smallvec_type.hpp | 2 + src/fios.cpp | 10 ++--- src/fios.h | 91 +++++++++++++++++++++++++++++++++++++- src/fios_gui.cpp | 4 +- 5 files changed, 102 insertions(+), 15 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 67f3f60988..7db151d77a 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -378,7 +378,7 @@ DEF_CONSOLE_CMD(ConLoad) IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file); } - FiosFreeSavegameList(); + _fios_items.Clear(); return true; } @@ -402,7 +402,7 @@ DEF_CONSOLE_CMD(ConRemove) IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file); } - FiosFreeSavegameList(); + _fios_items.Clear(); return true; } @@ -421,7 +421,7 @@ DEF_CONSOLE_CMD(ConListFiles) IConsolePrintF(CC_DEFAULT, "%d) %s", i, _fios_items[i].title); } - FiosFreeSavegameList(); + _fios_items.Clear(); return true; } @@ -448,7 +448,7 @@ DEF_CONSOLE_CMD(ConChangeDirectory) IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file); } - FiosFreeSavegameList(); + _fios_items.Clear(); return true; } @@ -463,7 +463,7 @@ DEF_CONSOLE_CMD(ConPrintWorkingDirectory) /* XXX - Workaround for broken file handling */ FiosGetSavegameList(SLD_LOAD_GAME); - FiosFreeSavegameList(); + _fios_items.Clear(); FiosGetDescText(&path, NULL); IConsolePrint(CC_DEFAULT, path); diff --git a/src/core/smallvec_type.hpp b/src/core/smallvec_type.hpp index 62de176a54..8676265d26 100644 --- a/src/core/smallvec_type.hpp +++ b/src/core/smallvec_type.hpp @@ -256,6 +256,8 @@ public: /** * Get the number of items in the list. + * + * @return The number of items in the list. */ inline uint Length() const { diff --git a/src/fios.cpp b/src/fios.cpp index 631c88bf62..e929596f92 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -29,7 +29,7 @@ #include "safeguards.h" /* Variables to display file lists */ -SmallVector _fios_items; +FileList _fios_items; static char *_fios_path; static const char *_fios_path_last; SortingBits _savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING; @@ -64,11 +64,9 @@ int CDECL CompareFiosItems(const FiosItem *da, const FiosItem *db) return r; } -/** Free the list of savegames. */ -void FiosFreeSavegameList() +FileList::~FileList() { - _fios_items.Clear(); - _fios_items.Compact(); + this->Clear(); } /** @@ -336,7 +334,7 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc { SortingBits order = _savegame_sort_order; _savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING; - QSortT(_fios_items.Begin(), _fios_items.Length(), CompareFiosItems); + QSortT(_fios_items.files.Begin(), _fios_items.files.Length(), CompareFiosItems); _savegame_sort_order = order; } diff --git a/src/fios.h b/src/fios.h index 4ccd1f192b..0a6d3f95d0 100644 --- a/src/fios.h +++ b/src/fios.h @@ -115,6 +115,94 @@ struct FiosItem { char name[MAX_PATH]; }; +/** List of file information. */ +class FileList { +public: + ~FileList(); + + /** + * Construct a new entry in the file list. + * @return Pointer to the new items to be initialized. + */ + inline FiosItem *Append() + { + return this->files.Append(); + } + + /** + * Get the number of files in the list. + * @return The number of files stored in the list. + */ + inline uint Length() const + { + return this->files.Length(); + } + + /** + * Get a pointer to the first file information. + * @return Address of the first file information. + */ + inline const FiosItem *Begin() const + { + return this->files.Begin(); + } + + /** + * Get a pointer behind the last file information. + * @return Address behind the last file information. + */ + inline const FiosItem *End() const + { + return this->files.End(); + } + + /** + * Get a pointer to the indicated file information. File information must exist. + * @return Address of the indicated existing file information. + */ + inline const FiosItem *Get(uint index) const + { + return this->files.Get(index); + } + + /** + * Get a pointer to the indicated file information. File information must exist. + * @return Address of the indicated existing file information. + */ + inline FiosItem *Get(uint index) + { + return this->files.Get(index); + } + + inline const FiosItem &operator[](uint index) const + { + return this->files[index]; + } + + /** + * Get a reference to the indicated file information. File information must exist. + * @return The requested file information. + */ + inline FiosItem &operator[](uint index) + { + return this->files[index]; + } + + /** Remove all items from the list. */ + inline void Clear() + { + this->files.Clear(); + } + + /** Compact the list down to the smallest block size boundary. */ + inline void Compact() + { + this->files.Compact(); + } + + SmallVector files; ///< The list of files. +}; + enum SortingBits { SORT_ASCENDING = 0, SORT_DESCENDING = 1, @@ -124,7 +212,7 @@ enum SortingBits { DECLARE_ENUM_AS_BIT_SET(SortingBits) /* Variables to display file lists */ -extern SmallVector _fios_items; +extern FileList _fios_items; extern SaveLoadDialogMode _saveload_mode; extern SortingBits _savegame_sort_order; @@ -134,7 +222,6 @@ void FiosGetSavegameList(SaveLoadDialogMode mode); void FiosGetScenarioList(SaveLoadDialogMode mode); void FiosGetHeightmapList(SaveLoadDialogMode mode); -void FiosFreeSavegameList(); const char *FiosBrowseTo(const FiosItem *item); StringID FiosGetDescText(const char **path, uint64 *total_free); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 50a6711c6b..b01954c557 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -196,7 +196,7 @@ const TextColour _fios_colours[] = { void BuildFileList(SaveLoadDialogMode mode) { _fios_path_changed = true; - FiosFreeSavegameList(); + _fios_items.Clear(); switch (mode) { case SLD_LOAD_SCENARIO: @@ -327,7 +327,7 @@ public: if (!_networking && _game_mode != GM_EDITOR && _game_mode != GM_MENU) { DoCommandP(0, PM_PAUSED_SAVELOAD, 0, CMD_PAUSE); } - FiosFreeSavegameList(); + _fios_items.Clear(); } virtual void DrawWidget(const Rect &r, int widget) const From 93baf192a089e839684beaeee41abe3779aa9c0c Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:54:03 +0000 Subject: [PATCH 120/417] (svn r27642) -Codechange: FiosGet* file query functions take a destination file list. --- src/console_cmds.cpp | 2 +- src/fios.cpp | 47 +++++++++++++++++++++++++------------------- src/fios.h | 6 +++--- src/fios_gui.cpp | 6 +++--- 4 files changed, 34 insertions(+), 27 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 7db151d77a..ae6e5458e1 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -462,7 +462,7 @@ DEF_CONSOLE_CMD(ConPrintWorkingDirectory) } /* XXX - Workaround for broken file handling */ - FiosGetSavegameList(SLD_LOAD_GAME); + FiosGetSavegameList(SLD_LOAD_GAME, _fios_items); _fios_items.Clear(); FiosGetDescText(&path, NULL); diff --git a/src/fios.cpp b/src/fios.cpp index e929596f92..529890810c 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -220,15 +220,16 @@ typedef FiosType fios_getlist_callback_proc(SaveLoadDialogMode mode, const char class FiosFileScanner : public FileScanner { SaveLoadDialogMode mode; ///< The mode we want to search for fios_getlist_callback_proc *callback_proc; ///< Callback to check whether the file may be added + FileList &file_list; ///< Destination of the found files. public: /** * Create the scanner * @param mode The mode we are in. Some modes don't allow 'parent'. * @param callback_proc The function that is called where you need to do the filtering. + * @param file_list Destination of the found files. */ - FiosFileScanner(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc) : - mode(mode), - callback_proc(callback_proc) + FiosFileScanner(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc, FileList &file_list) : + mode(mode), callback_proc(callback_proc), file_list(file_list) {} /* virtual */ bool AddFile(const char *filename, size_t basepath_length, const char *tar_filename); @@ -251,11 +252,11 @@ bool FiosFileScanner::AddFile(const char *filename, size_t basepath_length, cons FiosType type = this->callback_proc(this->mode, filename, ext, fios_title, lastof(fios_title)); if (type == FIOS_TYPE_INVALID) return false; - for (const FiosItem *fios = _fios_items.Begin(); fios != _fios_items.End(); fios++) { + for (const FiosItem *fios = file_list.Begin(); fios != file_list.End(); fios++) { if (strcmp(fios->name, filename) == 0) return false; } - FiosItem *fios = _fios_items.Append(); + FiosItem *fios = file_list.Append(); #ifdef WIN32 struct _stat sb; if (_tstat(OTTD2FS(filename), &sb) == 0) { @@ -289,8 +290,9 @@ bool FiosFileScanner::AddFile(const char *filename, size_t basepath_length, cons * @param mode The mode we are in. Some modes don't allow 'parent'. * @param callback_proc The function that is called where you need to do the filtering. * @param subdir The directory from where to start (global) searching. + * @param file_list Destination of the found files. */ -static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc, Subdirectory subdir) +static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc, Subdirectory subdir, FileList &file_list) { struct stat sb; struct dirent *dirent; @@ -299,11 +301,11 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc int sort_start; char d_name[sizeof(fios->name)]; - _fios_items.Clear(); + file_list.Clear(); /* A parent directory link exists if we are not in the root directory */ if (!FiosIsRoot(_fios_path)) { - fios = _fios_items.Append(); + fios = file_list.Append(); fios->type = FIOS_TYPE_PARENT; fios->mtime = 0; strecpy(fios->name, "..", lastof(fios->name)); @@ -319,7 +321,7 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc if (FiosIsValidFile(_fios_path, dirent, &sb) && S_ISDIR(sb.st_mode) && (!FiosIsHiddenFile(dirent) || strncasecmp(d_name, PERSONAL_DIR, strlen(d_name)) == 0) && strcmp(d_name, ".") != 0 && strcmp(d_name, "..") != 0) { - fios = _fios_items.Append(); + fios = file_list.Append(); fios->type = FIOS_TYPE_DIR; fios->mtime = 0; strecpy(fios->name, d_name, lastof(fios->name)); @@ -334,27 +336,27 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc { SortingBits order = _savegame_sort_order; _savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING; - QSortT(_fios_items.files.Begin(), _fios_items.files.Length(), CompareFiosItems); + QSortT(file_list.files.Begin(), file_list.files.Length(), CompareFiosItems); _savegame_sort_order = order; } /* This is where to start sorting for the filenames */ - sort_start = _fios_items.Length(); + sort_start = file_list.Length(); /* Show files */ - FiosFileScanner scanner(mode, callback_proc); + FiosFileScanner scanner(mode, callback_proc, file_list); if (subdir == NO_DIRECTORY) { scanner.Scan(NULL, _fios_path, false); } else { scanner.Scan(NULL, subdir, true, true); } - QSortT(_fios_items.Get(sort_start), _fios_items.Length() - sort_start, CompareFiosItems); + QSortT(file_list.Get(sort_start), file_list.Length() - sort_start, CompareFiosItems); /* Show drives */ FiosGetDrives(); - _fios_items.Compact(); + file_list.Compact(); } /** @@ -422,9 +424,10 @@ FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, /** * Get a list of savegames. * @param mode Save/load mode. + * @param file_list Destination of the found files. * @see FiosGetFileList */ -void FiosGetSavegameList(SaveLoadDialogMode mode) +void FiosGetSavegameList(SaveLoadDialogMode mode, FileList &file_list) { static char *fios_save_path = NULL; static char *fios_save_path_last = NULL; @@ -438,7 +441,7 @@ void FiosGetSavegameList(SaveLoadDialogMode mode) _fios_path = fios_save_path; _fios_path_last = fios_save_path_last; - FiosGetFileList(mode, &FiosGetSavegameListCallback, NO_DIRECTORY); + FiosGetFileList(mode, &FiosGetSavegameListCallback, NO_DIRECTORY, file_list); } /** @@ -476,9 +479,10 @@ static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char /** * Get a list of scenarios. * @param mode Save/load mode. + * @param file_list Destination of the found files. * @see FiosGetFileList */ -void FiosGetScenarioList(SaveLoadDialogMode mode) +void FiosGetScenarioList(SaveLoadDialogMode mode, FileList &file_list) { static char *fios_scn_path = NULL; static char *fios_scn_path_last = NULL; @@ -496,7 +500,8 @@ void FiosGetScenarioList(SaveLoadDialogMode mode) char base_path[MAX_PATH]; FioGetDirectory(base_path, lastof(base_path), SCENARIO_DIR); - FiosGetFileList(mode, &FiosGetScenarioListCallback, (mode == SLD_LOAD_SCENARIO && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY); + Subdirectory subdir = (mode == SLD_LOAD_SCENARIO && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY; + FiosGetFileList(mode, &FiosGetScenarioListCallback, subdir, file_list); } static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last) @@ -546,8 +551,9 @@ static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char /** * Get a list of heightmaps. * @param mode Save/load mode. + * @param file_list Destination of the found files. */ -void FiosGetHeightmapList(SaveLoadDialogMode mode) +void FiosGetHeightmapList(SaveLoadDialogMode mode, FileList &file_list) { static char *fios_hmap_path = NULL; static char *fios_hmap_path_last = NULL; @@ -564,7 +570,8 @@ void FiosGetHeightmapList(SaveLoadDialogMode mode) char base_path[MAX_PATH]; FioGetDirectory(base_path, lastof(base_path), HEIGHTMAP_DIR); - FiosGetFileList(mode, &FiosGetHeightmapListCallback, strcmp(base_path, _fios_path) == 0 ? HEIGHTMAP_DIR : NO_DIRECTORY); + Subdirectory subdir = strcmp(base_path, _fios_path) == 0 ? HEIGHTMAP_DIR : NO_DIRECTORY; + FiosGetFileList(mode, &FiosGetHeightmapListCallback, subdir, file_list); } /** diff --git a/src/fios.h b/src/fios.h index 0a6d3f95d0..888e3c2362 100644 --- a/src/fios.h +++ b/src/fios.h @@ -218,9 +218,9 @@ extern SortingBits _savegame_sort_order; void ShowSaveLoadDialog(SaveLoadDialogMode mode); -void FiosGetSavegameList(SaveLoadDialogMode mode); -void FiosGetScenarioList(SaveLoadDialogMode mode); -void FiosGetHeightmapList(SaveLoadDialogMode mode); +void FiosGetSavegameList(SaveLoadDialogMode mode, FileList &file_list); +void FiosGetScenarioList(SaveLoadDialogMode mode, FileList &file_list); +void FiosGetHeightmapList(SaveLoadDialogMode mode, FileList &file_list); const char *FiosBrowseTo(const FiosItem *item); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index b01954c557..fdd38da6ca 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -201,12 +201,12 @@ void BuildFileList(SaveLoadDialogMode mode) switch (mode) { case SLD_LOAD_SCENARIO: case SLD_SAVE_SCENARIO: - FiosGetScenarioList(mode); break; + FiosGetScenarioList(mode, _fios_items); break; case SLD_SAVE_HEIGHTMAP: case SLD_LOAD_HEIGHTMAP: - FiosGetHeightmapList(mode); break; + FiosGetHeightmapList(mode, _fios_items); break; - default: FiosGetSavegameList(mode); break; + default: FiosGetSavegameList(mode, _fios_items); break; } /* Invalidate saveload window */ From f618c0d0a581b4d3893d73ddc48d3d621198ec4b Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:54:30 +0000 Subject: [PATCH 121/417] (svn r27643) -Codechange: FiosGetDrives function also takes a destination file list. --- src/fios.cpp | 4 ++-- src/os/os2/os2.cpp | 4 ++-- src/os/unix/unix.cpp | 3 ++- src/os/windows/win32.cpp | 6 +++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/fios.cpp b/src/fios.cpp index 529890810c..271f270762 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -38,7 +38,7 @@ SortingBits _savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING; extern bool FiosIsRoot(const char *path); extern bool FiosIsValidFile(const char *path, const struct dirent *ent, struct stat *sb); extern bool FiosIsHiddenFile(const struct dirent *ent); -extern void FiosGetDrives(); +extern void FiosGetDrives(FileList &file_list); extern bool FiosGetDiskFreeSpace(const char *path, uint64 *tot); /* get the name of an oldstyle savegame */ @@ -354,7 +354,7 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc QSortT(file_list.Get(sort_start), file_list.Length() - sort_start, CompareFiosItems); /* Show drives */ - FiosGetDrives(); + FiosGetDrives(file_list); file_list.Compact(); } diff --git a/src/os/os2/os2.cpp b/src/os/os2/os2.cpp index 386cc4dbb7..7b34f528a6 100644 --- a/src/os/os2/os2.cpp +++ b/src/os/os2/os2.cpp @@ -45,7 +45,7 @@ bool FiosIsRoot(const char *file) return file[3] == '\0'; } -void FiosGetDrives() +void FiosGetDrives(FileList &file_list) { uint disk, disk2, save, total; @@ -75,7 +75,7 @@ void FiosGetDrives() #endif if (disk == disk2) { - FiosItem *fios = _fios_items.Append(); + FiosItem *fios = file_list.Append(); fios->type = FIOS_TYPE_DRIVE; fios->mtime = 0; #ifndef __INNOTEK_LIBC__ diff --git a/src/os/unix/unix.cpp b/src/os/unix/unix.cpp index 24dedb2ee1..d7c2304ce5 100644 --- a/src/os/unix/unix.cpp +++ b/src/os/unix/unix.cpp @@ -16,6 +16,7 @@ #include "../../core/random_func.hpp" #include "../../debug.h" #include "../../string_func.h" +#include "../../fios.h" #include @@ -77,7 +78,7 @@ bool FiosIsRoot(const char *path) #endif } -void FiosGetDrives() +void FiosGetDrives(FileList &file_list) { return; } diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp index 041468a139..344d243143 100644 --- a/src/os/windows/win32.cpp +++ b/src/os/windows/win32.cpp @@ -208,11 +208,11 @@ bool FiosIsRoot(const char *file) return file[3] == '\0'; // C:\... } -void FiosGetDrives() +void FiosGetDrives(FileList &file_list) { #if defined(WINCE) /* WinCE only knows one drive: / */ - FiosItem *fios = _fios_items.Append(); + FiosItem *fios = file_list.Append(); fios->type = FIOS_TYPE_DRIVE; fios->mtime = 0; seprintf(fios->name, lastof(fios->name), PATHSEP ""); @@ -223,7 +223,7 @@ void FiosGetDrives() GetLogicalDriveStrings(lengthof(drives), drives); for (s = drives; *s != '\0';) { - FiosItem *fios = _fios_items.Append(); + FiosItem *fios = file_list.Append(); fios->type = FIOS_TYPE_DRIVE; fios->mtime = 0; seprintf(fios->name, lastof(fios->name), "%c:", s[0] & 0xFF); From 8a9e9f838bf18d419f26f1a2b47a37c4a6485751 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:54:52 +0000 Subject: [PATCH 122/417] (svn r27644) -Codechange: Split GetFiosItem into BuildFileList and FindItem, and move both to FileList. --- src/console_cmds.cpp | 48 ++++++---------------------------------- src/fios.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++ src/fios.h | 5 +++-- src/fios_gui.cpp | 25 ++++----------------- 4 files changed, 66 insertions(+), 64 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index ae6e5458e1..28c540dacc 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -315,42 +315,6 @@ DEF_CONSOLE_CMD(ConSaveConfig) return true; } -/** - * Get savegame file informations. - * @param file The savegame filename to return information about. Can be the actual name - * or a numbered entry into the filename list. - * @return FiosItem The information on the file. - */ -static const FiosItem *GetFiosItem(const char *file) -{ - _saveload_mode = SLD_LOAD_GAME; - BuildFileList(_saveload_mode); - - for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) { - if (strcmp(file, item->name) == 0) return item; - if (strcmp(file, item->title) == 0) return item; - } - - /* If no name matches, try to parse it as number */ - char *endptr; - int i = strtol(file, &endptr, 10); - if (file == endptr || *endptr != '\0') i = -1; - - if (IsInsideMM(i, 0, _fios_items.Length())) return _fios_items.Get(i); - - /* As a last effort assume it is an OpenTTD savegame and - * that the ".sav" part was not given. */ - char long_file[MAX_PATH]; - seprintf(long_file, lastof(long_file), "%s.sav", file); - for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) { - if (strcmp(long_file, item->name) == 0) return item; - if (strcmp(long_file, item->title) == 0) return item; - } - - return NULL; -} - - DEF_CONSOLE_CMD(ConLoad) { if (argc == 0) { @@ -361,7 +325,8 @@ DEF_CONSOLE_CMD(ConLoad) if (argc != 2) return false; const char *file = argv[1]; - const FiosItem *item = GetFiosItem(file); + _fios_items.BuildFileList(SLD_LOAD_GAME); + const FiosItem *item = _fios_items.FindItem(file); if (item != NULL) { switch (item->type) { case FIOS_TYPE_FILE: case FIOS_TYPE_OLDFILE: { @@ -393,7 +358,8 @@ DEF_CONSOLE_CMD(ConRemove) if (argc != 2) return false; const char *file = argv[1]; - const FiosItem *item = GetFiosItem(file); + _fios_items.BuildFileList(SLD_LOAD_GAME); + const FiosItem *item = _fios_items.FindItem(file); if (item != NULL) { if (!FiosDelete(item->name)) { IConsolePrintF(CC_ERROR, "%s: Failed to delete file", file); @@ -415,8 +381,7 @@ DEF_CONSOLE_CMD(ConListFiles) return true; } - BuildFileList(_saveload_mode); - + _fios_items.BuildFileList(_saveload_mode); for (uint i = 0; i < _fios_items.Length(); i++) { IConsolePrintF(CC_DEFAULT, "%d) %s", i, _fios_items[i].title); } @@ -436,7 +401,8 @@ DEF_CONSOLE_CMD(ConChangeDirectory) if (argc != 2) return false; const char *file = argv[1]; - const FiosItem *item = GetFiosItem(file); + _fios_items.BuildFileList(SLD_LOAD_GAME); + const FiosItem *item = _fios_items.FindItem(file); if (item != NULL) { switch (item->type) { case FIOS_TYPE_DIR: case FIOS_TYPE_DRIVE: case FIOS_TYPE_PARENT: diff --git a/src/fios.cpp b/src/fios.cpp index 271f270762..c670ee3391 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -69,6 +69,58 @@ FileList::~FileList() this->Clear(); } +/** + * Construct a file list containing file appropriate for the specified \a mode. + * @param mode Kind of files required in the list. + */ +void FileList::BuildFileList(SaveLoadDialogMode mode) +{ + this->Clear(); + + switch (mode) { + case SLD_LOAD_SCENARIO: + case SLD_SAVE_SCENARIO: + FiosGetScenarioList(mode, *this); break; + case SLD_SAVE_HEIGHTMAP: + case SLD_LOAD_HEIGHTMAP: + FiosGetHeightmapList(mode, *this); break; + + default: FiosGetSavegameList(mode, *this); break; + } +} + +/** + * Find file information of a file by its name from the file list. + * @param file The filename to return information about. Can be the actual name + * or a numbered entry into the filename list. + * @return The information on the file, or \c NULL if the file is not available. + */ +const FiosItem *FileList::FindItem(const char *file) +{ + for (const FiosItem *item = this->Begin(); item != this->End(); item++) { + if (strcmp(file, item->name) == 0) return item; + if (strcmp(file, item->title) == 0) return item; + } + + /* If no name matches, try to parse it as number */ + char *endptr; + int i = strtol(file, &endptr, 10); + if (file == endptr || *endptr != '\0') i = -1; + + if (IsInsideMM(i, 0, this->Length())) return this->Get(i); + + /* As a last effort assume it is an OpenTTD savegame and + * that the ".sav" part was not given. */ + char long_file[MAX_PATH]; + seprintf(long_file, lastof(long_file), "%s.sav", file); + for (const FiosItem *item = this->Begin(); item != this->End(); item++) { + if (strcmp(long_file, item->name) == 0) return item; + if (strcmp(long_file, item->title) == 0) return item; + } + + return NULL; +} + /** * Get descriptive texts. Returns the path and free space * left on the device diff --git a/src/fios.h b/src/fios.h index 888e3c2362..c1da5720f0 100644 --- a/src/fios.h +++ b/src/fios.h @@ -200,6 +200,9 @@ public: this->files.Compact(); } + void BuildFileList(SaveLoadDialogMode mode); + const FiosItem *FindItem(const char *file); + SmallVector files; ///< The list of files. }; @@ -235,6 +238,4 @@ int CDECL CompareFiosItems(const FiosItem *a, const FiosItem *b); extern const TextColour _fios_colours[]; -void BuildFileList(SaveLoadDialogMode mode); - #endif /* FIOS_H */ diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index fdd38da6ca..179a397efb 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -193,26 +193,6 @@ const TextColour _fios_colours[] = { TC_ORANGE, TC_LIGHT_BROWN, TC_ORANGE, TC_ORANGE, TC_YELLOW }; -void BuildFileList(SaveLoadDialogMode mode) -{ - _fios_path_changed = true; - _fios_items.Clear(); - - switch (mode) { - case SLD_LOAD_SCENARIO: - case SLD_SAVE_SCENARIO: - FiosGetScenarioList(mode, _fios_items); break; - case SLD_SAVE_HEIGHTMAP: - case SLD_LOAD_HEIGHTMAP: - FiosGetHeightmapList(mode, _fios_items); break; - - default: FiosGetSavegameList(mode, _fios_items); break; - } - - /* Invalidate saveload window */ - InvalidateWindowData(WC_SAVELOAD, 0, 2, true); -} - static void MakeSortedSaveGameList() { uint sort_start = 0; @@ -683,7 +663,10 @@ public: this->selected = NULL; _load_check_data.Clear(); if (!gui_scope) break; - BuildFileList(_saveload_mode); + + _fios_path_changed = true; + _fios_items.BuildFileList(_saveload_mode); + InvalidateWindowData(WC_SAVELOAD, 0, 2, true); /* FALL THROUGH */ case 1: /* Selection changes */ From 76cd96e709018157434db350d0cee88801a8c107 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:55:21 +0000 Subject: [PATCH 123/417] (svn r27645) -Add: Give console commands their own file list storage. --- src/console_cmds.cpp | 60 +++++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 28c540dacc..7d2a99bf8e 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -45,6 +45,38 @@ /* scriptfile handling */ static bool _script_running; ///< Script is running (used to abort execution when #ConReturn is encountered). +/** File list storage for the console, for caching the last 'ls' command. */ +class ConsoleFileList : public FileList { +public: + ConsoleFileList() : FileList() + { + this->file_list_valid = false; + } + + /** Declare the file storage cache as being invalid, also clears all stored files. */ + void InvalidateFileList() + { + this->Clear(); + this->file_list_valid = false; + } + + /** + * (Re-)validate the file storage cache. Only makes a change if the storage was invalid, or if \a force_reload. + * @param Always reload the file storage cache. + */ + void ValidateFileList(bool force_reload = false) + { + if (force_reload || !this->file_list_valid) { + this->BuildFileList(SLD_LOAD_GAME); + this->file_list_valid = true; + } + } + + bool file_list_valid; ///< If set, the file list is valid. +}; + +static ConsoleFileList _console_file_list; ///< File storage cache for the console. + /* console command defines */ #define DEF_CONSOLE_CMD(function) static bool function(byte argc, char *argv[]) #define DEF_CONSOLE_HOOK(function) static ConsoleHookResult function(bool echo) @@ -325,8 +357,8 @@ DEF_CONSOLE_CMD(ConLoad) if (argc != 2) return false; const char *file = argv[1]; - _fios_items.BuildFileList(SLD_LOAD_GAME); - const FiosItem *item = _fios_items.FindItem(file); + _console_file_list.ValidateFileList(); + const FiosItem *item = _console_file_list.FindItem(file); if (item != NULL) { switch (item->type) { case FIOS_TYPE_FILE: case FIOS_TYPE_OLDFILE: { @@ -343,7 +375,6 @@ DEF_CONSOLE_CMD(ConLoad) IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file); } - _fios_items.Clear(); return true; } @@ -358,8 +389,8 @@ DEF_CONSOLE_CMD(ConRemove) if (argc != 2) return false; const char *file = argv[1]; - _fios_items.BuildFileList(SLD_LOAD_GAME); - const FiosItem *item = _fios_items.FindItem(file); + _console_file_list.ValidateFileList(); + const FiosItem *item = _console_file_list.FindItem(file); if (item != NULL) { if (!FiosDelete(item->name)) { IConsolePrintF(CC_ERROR, "%s: Failed to delete file", file); @@ -368,7 +399,7 @@ DEF_CONSOLE_CMD(ConRemove) IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file); } - _fios_items.Clear(); + _console_file_list.InvalidateFileList(); return true; } @@ -381,12 +412,11 @@ DEF_CONSOLE_CMD(ConListFiles) return true; } - _fios_items.BuildFileList(_saveload_mode); - for (uint i = 0; i < _fios_items.Length(); i++) { - IConsolePrintF(CC_DEFAULT, "%d) %s", i, _fios_items[i].title); + _console_file_list.ValidateFileList(true); + for (uint i = 0; i < _console_file_list.Length(); i++) { + IConsolePrintF(CC_DEFAULT, "%d) %s", i, _console_file_list[i].title); } - _fios_items.Clear(); return true; } @@ -401,8 +431,8 @@ DEF_CONSOLE_CMD(ConChangeDirectory) if (argc != 2) return false; const char *file = argv[1]; - _fios_items.BuildFileList(SLD_LOAD_GAME); - const FiosItem *item = _fios_items.FindItem(file); + _console_file_list.ValidateFileList(true); + const FiosItem *item = _console_file_list.FindItem(file); if (item != NULL) { switch (item->type) { case FIOS_TYPE_DIR: case FIOS_TYPE_DRIVE: case FIOS_TYPE_PARENT: @@ -414,7 +444,7 @@ DEF_CONSOLE_CMD(ConChangeDirectory) IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file); } - _fios_items.Clear(); + _console_file_list.InvalidateFileList(); return true; } @@ -428,8 +458,8 @@ DEF_CONSOLE_CMD(ConPrintWorkingDirectory) } /* XXX - Workaround for broken file handling */ - FiosGetSavegameList(SLD_LOAD_GAME, _fios_items); - _fios_items.Clear(); + _console_file_list.ValidateFileList(true); + _console_file_list.InvalidateFileList(); FiosGetDescText(&path, NULL); IConsolePrint(CC_DEFAULT, path); From ac72a6b1ede84941966f06de81fe00549bd9e97f Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:55:54 +0000 Subject: [PATCH 124/417] (svn r27646) -Codechange: Move _fios_items variable into the SaveLoadWindow class. --- src/fios.cpp | 1 - src/fios.h | 1 - src/fios_gui.cpp | 38 +++++++++++++++++++------------------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/fios.cpp b/src/fios.cpp index c670ee3391..af89ef0491 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -29,7 +29,6 @@ #include "safeguards.h" /* Variables to display file lists */ -FileList _fios_items; static char *_fios_path; static const char *_fios_path_last; SortingBits _savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING; diff --git a/src/fios.h b/src/fios.h index c1da5720f0..37d562ca1a 100644 --- a/src/fios.h +++ b/src/fios.h @@ -215,7 +215,6 @@ enum SortingBits { DECLARE_ENUM_AS_BIT_SET(SortingBits) /* Variables to display file lists */ -extern FileList _fios_items; extern SaveLoadDialogMode _saveload_mode; extern SortingBits _savegame_sort_order; diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 179a397efb..c9d612f4c2 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -193,7 +193,11 @@ const TextColour _fios_colours[] = { TC_ORANGE, TC_LIGHT_BROWN, TC_ORANGE, TC_ORANGE, TC_YELLOW }; -static void MakeSortedSaveGameList() +/** + * Sort the collected list save games prior to displaying it in the save/load gui. + * @param [inout] file_list List of save game files found in the directory. + */ +static void SortSaveGameList(FileList &file_list) { uint sort_start = 0; uint sort_end = 0; @@ -202,7 +206,7 @@ static void MakeSortedSaveGameList() * Drives (A:\ (windows only) are always under the files (FIOS_TYPE_DRIVE) * Only sort savegames/scenarios, not directories */ - for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) { + for (const FiosItem *item = file_list.Begin(); item != file_list.End(); item++) { switch (item->type) { case FIOS_TYPE_DIR: sort_start++; break; case FIOS_TYPE_PARENT: sort_start++; break; @@ -211,15 +215,16 @@ static void MakeSortedSaveGameList() } } - uint s_amount = _fios_items.Length() - sort_start - sort_end; - QSortT(_fios_items.Get(sort_start), s_amount, CompareFiosItems); + uint s_amount = file_list.Length() - sort_start - sort_end; + QSortT(file_list.Get(sort_start), s_amount, CompareFiosItems); } struct SaveLoadWindow : public Window { private: QueryString filename_editbox; ///< Filename editbox. + FileList fios_items; ///< Save game list. FiosItem o_dir; - const FiosItem *selected; + const FiosItem *selected; ///< Selected game in #fios_items, or \c NULL. Scrollbar *vscroll; public: @@ -307,7 +312,6 @@ public: if (!_networking && _game_mode != GM_EDITOR && _game_mode != GM_MENU) { DoCommandP(0, PM_PAUSED_SAVELOAD, 0, CMD_PAUSE); } - _fios_items.Clear(); } virtual void DrawWidget(const Rect &r, int widget) const @@ -340,8 +344,8 @@ public: GfxFillRect(r.left + 1, r.top + 1, r.right, r.bottom, PC_BLACK); uint y = r.top + WD_FRAMERECT_TOP; - for (uint pos = this->vscroll->GetPosition(); pos < _fios_items.Length(); pos++) { - const FiosItem *item = _fios_items.Get(pos); + for (uint pos = this->vscroll->GetPosition(); pos < this->fios_items.Length(); pos++) { + const FiosItem *item = this->fios_items.Get(pos); if (item == this->selected) { GfxFillRect(r.left + 1, y, r.right, y + this->resize.step_height, PC_DARK_BLUE); @@ -475,10 +479,10 @@ public: { if (_savegame_sort_dirty) { _savegame_sort_dirty = false; - MakeSortedSaveGameList(); + SortSaveGameList(this->fios_items); } - this->vscroll->SetCount(_fios_items.Length()); + this->vscroll->SetCount(this->fios_items.Length()); this->DrawWidgets(); } @@ -543,7 +547,7 @@ public: int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_SL_DRIVES_DIRECTORIES_LIST, WD_FRAMERECT_TOP); if (y == INT_MAX) return; - const FiosItem *file = _fios_items.Get(y); + const FiosItem *file = this->fios_items.Get(y); const char *name = FiosBrowseTo(file); if (name != NULL) { @@ -665,8 +669,10 @@ public: if (!gui_scope) break; _fios_path_changed = true; - _fios_items.BuildFileList(_saveload_mode); - InvalidateWindowData(WC_SAVELOAD, 0, 2, true); + this->fios_items.BuildFileList(_saveload_mode); + this->vscroll->SetCount(this->fios_items.Length()); + this->selected = NULL; + _load_check_data.Clear(); /* FALL THROUGH */ case 1: /* Selection changes */ @@ -683,12 +689,6 @@ public: !_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility == GLC_ALL_GOOD); } break; - case 2: - /* _fios_items changed */ - this->vscroll->SetCount(_fios_items.Length()); - this->selected = NULL; - _load_check_data.Clear(); - break; } } }; From ec2b2fad58d36954a18722497875d3991e60f8a0 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:56:23 +0000 Subject: [PATCH 125/417] (svn r27647) -Codechange: Introduce file operations, and use it to replace most of SaveLoadDialogMode --- src/console_cmds.cpp | 2 +- src/fileio_type.h | 6 +++ src/fios.cpp | 95 ++++++++++++++++++++++++-------------------- src/fios.h | 10 ++--- src/fios_gui.cpp | 14 ++++++- src/openttd.cpp | 4 +- 6 files changed, 80 insertions(+), 51 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 7d2a99bf8e..6284287c04 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -67,7 +67,7 @@ public: void ValidateFileList(bool force_reload = false) { if (force_reload || !this->file_list_valid) { - this->BuildFileList(SLD_LOAD_GAME); + this->BuildFileList(FT_SAVEGAME, FOP_LOAD); this->file_list_valid = true; } } diff --git a/src/fileio_type.h b/src/fileio_type.h index 3aee5a0e76..20df8cd05d 100644 --- a/src/fileio_type.h +++ b/src/fileio_type.h @@ -24,6 +24,12 @@ enum AbstractFileType { FT_INVALID = 7, ///< Invalid or unknown file type. }; +/** Operation performed on the file. */ +enum FileOperation { + FOP_LOAD, ///< File is being loaded. + FOP_SAVE, ///< File is being saved. +}; + /** Elements of a file system that are recognized. */ enum FiosType { FIOS_TYPE_DRIVE, diff --git a/src/fios.cpp b/src/fios.cpp index af89ef0491..987542acc9 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -69,22 +69,33 @@ FileList::~FileList() } /** - * Construct a file list containing file appropriate for the specified \a mode. - * @param mode Kind of files required in the list. + * Construct a file list with the given kind of files, for the stated purpose. + * @param abstract_filetype Kind of files to collect. + * @param fop Purpose of the collection, either #FOP_LOAD or #FOP_SAVE. */ -void FileList::BuildFileList(SaveLoadDialogMode mode) +void FileList::BuildFileList(AbstractFileType abstract_filetype, FileOperation fop) { this->Clear(); - switch (mode) { - case SLD_LOAD_SCENARIO: - case SLD_SAVE_SCENARIO: - FiosGetScenarioList(mode, *this); break; - case SLD_SAVE_HEIGHTMAP: - case SLD_LOAD_HEIGHTMAP: - FiosGetHeightmapList(mode, *this); break; + assert(fop == FOP_LOAD || FOP_SAVE); + switch (abstract_filetype) { + case FT_NONE: + break; - default: FiosGetSavegameList(mode, *this); break; + case FT_SAVEGAME: + FiosGetSavegameList(fop, *this); + break; + + case FT_SCENARIO: + FiosGetScenarioList(fop, *this); + break; + + case FT_HEIGHTMAP: + FiosGetHeightmapList(fop, *this); + break; + + default: + NOT_REACHED(); } } @@ -263,24 +274,24 @@ bool FiosDelete(const char *name) return unlink(filename) == 0; } -typedef FiosType fios_getlist_callback_proc(SaveLoadDialogMode mode, const char *filename, const char *ext, char *title, const char *last); +typedef FiosType fios_getlist_callback_proc(FileOperation fop, const char *filename, const char *ext, char *title, const char *last); /** * Scanner to scan for a particular type of FIOS file. */ class FiosFileScanner : public FileScanner { - SaveLoadDialogMode mode; ///< The mode we want to search for + FileOperation fop; ///< The kind of file we are looking for. fios_getlist_callback_proc *callback_proc; ///< Callback to check whether the file may be added FileList &file_list; ///< Destination of the found files. public: /** * Create the scanner - * @param mode The mode we are in. Some modes don't allow 'parent'. - * @param callback_proc The function that is called where you need to do the filtering. - * @param file_list Destination of the found files. + * @param fop Purpose of collecting the list. + * @param callback_proc The function that is called where you need to do the filtering. + * @param file_list Destination of the found files. */ - FiosFileScanner(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc, FileList &file_list) : - mode(mode), callback_proc(callback_proc), file_list(file_list) + FiosFileScanner(FileOperation fop, fios_getlist_callback_proc *callback_proc, FileList &file_list) : + fop(fop), callback_proc(callback_proc), file_list(file_list) {} /* virtual */ bool AddFile(const char *filename, size_t basepath_length, const char *tar_filename); @@ -300,7 +311,7 @@ bool FiosFileScanner::AddFile(const char *filename, size_t basepath_length, cons char fios_title[64]; fios_title[0] = '\0'; // reset the title; - FiosType type = this->callback_proc(this->mode, filename, ext, fios_title, lastof(fios_title)); + FiosType type = this->callback_proc(this->fop, filename, ext, fios_title, lastof(fios_title)); if (type == FIOS_TYPE_INVALID) return false; for (const FiosItem *fios = file_list.Begin(); fios != file_list.End(); fios++) { @@ -338,12 +349,12 @@ bool FiosFileScanner::AddFile(const char *filename, size_t basepath_length, cons /** * Fill the list of the files in a directory, according to some arbitrary rule. - * @param mode The mode we are in. Some modes don't allow 'parent'. - * @param callback_proc The function that is called where you need to do the filtering. - * @param subdir The directory from where to start (global) searching. - * @param file_list Destination of the found files. + * @param fop Purpose of collecting the list. + * @param callback_proc The function that is called where you need to do the filtering. + * @param subdir The directory from where to start (global) searching. + * @param file_list Destination of the found files. */ -static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc, Subdirectory subdir, FileList &file_list) +static void FiosGetFileList(FileOperation fop, fios_getlist_callback_proc *callback_proc, Subdirectory subdir, FileList &file_list) { struct stat sb; struct dirent *dirent; @@ -395,7 +406,7 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc sort_start = file_list.Length(); /* Show files */ - FiosFileScanner scanner(mode, callback_proc, file_list); + FiosFileScanner scanner(fop, callback_proc, file_list); if (subdir == NO_DIRECTORY) { scanner.Scan(NULL, _fios_path, false); } else { @@ -436,7 +447,7 @@ static void GetFileTitle(const char *file, char *title, const char *last, Subdir /** * Callback for FiosGetFileList. It tells if a file is a savegame or not. - * @param mode Save/load mode. + * @param fop Purpose of collecting the list. * @param file Name of the file to check. * @param ext A pointer to the extension identifier inside file * @param title Buffer if a callback wants to lookup the title of the file; NULL to skip the lookup @@ -445,7 +456,7 @@ static void GetFileTitle(const char *file, char *title, const char *last, Subdir * @see FiosGetFileList * @see FiosGetSavegameList */ -FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last) +FiosType FiosGetSavegameListCallback(FileOperation fop, const char *file, const char *ext, char *title, const char *last) { /* Show savegame files * .SAV OpenTTD saved game @@ -461,7 +472,7 @@ FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, return FIOS_TYPE_FILE; } - if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) { + if (fop == FOP_LOAD) { if (strcasecmp(ext, ".ss1") == 0 || strcasecmp(ext, ".sv1") == 0 || strcasecmp(ext, ".sv2") == 0) { if (title != NULL) GetOldSaveGameName(file, title, last); @@ -474,11 +485,11 @@ FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, /** * Get a list of savegames. - * @param mode Save/load mode. + * @param fop Purpose of collecting the list. * @param file_list Destination of the found files. * @see FiosGetFileList */ -void FiosGetSavegameList(SaveLoadDialogMode mode, FileList &file_list) +void FiosGetSavegameList(FileOperation fop, FileList &file_list) { static char *fios_save_path = NULL; static char *fios_save_path_last = NULL; @@ -492,12 +503,12 @@ void FiosGetSavegameList(SaveLoadDialogMode mode, FileList &file_list) _fios_path = fios_save_path; _fios_path_last = fios_save_path_last; - FiosGetFileList(mode, &FiosGetSavegameListCallback, NO_DIRECTORY, file_list); + FiosGetFileList(fop, &FiosGetSavegameListCallback, NO_DIRECTORY, file_list); } /** * Callback for FiosGetFileList. It tells if a file is a scenario or not. - * @param mode Save/load mode. + * @param fop Purpose of collecting the list. * @param file Name of the file to check. * @param ext A pointer to the extension identifier inside file * @param title Buffer if a callback wants to lookup the title of the file @@ -506,7 +517,7 @@ void FiosGetSavegameList(SaveLoadDialogMode mode, FileList &file_list) * @see FiosGetFileList * @see FiosGetScenarioList */ -static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last) +static FiosType FiosGetScenarioListCallback(FileOperation fop, const char *file, const char *ext, char *title, const char *last) { /* Show scenario files * .SCN OpenTTD style scenario file @@ -517,7 +528,7 @@ static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char return FIOS_TYPE_SCENARIO; } - if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) { + if (fop == FOP_LOAD) { if (strcasecmp(ext, ".sv0") == 0 || strcasecmp(ext, ".ss0") == 0 ) { GetOldSaveGameName(file, title, last); return FIOS_TYPE_OLD_SCENARIO; @@ -529,11 +540,11 @@ static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char /** * Get a list of scenarios. - * @param mode Save/load mode. + * @param fop Purpose of collecting the list. * @param file_list Destination of the found files. * @see FiosGetFileList */ -void FiosGetScenarioList(SaveLoadDialogMode mode, FileList &file_list) +void FiosGetScenarioList(FileOperation fop, FileList &file_list) { static char *fios_scn_path = NULL; static char *fios_scn_path_last = NULL; @@ -551,11 +562,11 @@ void FiosGetScenarioList(SaveLoadDialogMode mode, FileList &file_list) char base_path[MAX_PATH]; FioGetDirectory(base_path, lastof(base_path), SCENARIO_DIR); - Subdirectory subdir = (mode == SLD_LOAD_SCENARIO && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY; - FiosGetFileList(mode, &FiosGetScenarioListCallback, subdir, file_list); + Subdirectory subdir = (fop == FOP_LOAD && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY; + FiosGetFileList(fop, &FiosGetScenarioListCallback, subdir, file_list); } -static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last) +static FiosType FiosGetHeightmapListCallback(FileOperation fop, const char *file, const char *ext, char *title, const char *last) { /* Show heightmap files * .PNG PNG Based heightmap files @@ -601,10 +612,10 @@ static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char /** * Get a list of heightmaps. - * @param mode Save/load mode. + * @param fop Purpose of collecting the list. * @param file_list Destination of the found files. */ -void FiosGetHeightmapList(SaveLoadDialogMode mode, FileList &file_list) +void FiosGetHeightmapList(FileOperation fop, FileList &file_list) { static char *fios_hmap_path = NULL; static char *fios_hmap_path_last = NULL; @@ -622,7 +633,7 @@ void FiosGetHeightmapList(SaveLoadDialogMode mode, FileList &file_list) FioGetDirectory(base_path, lastof(base_path), HEIGHTMAP_DIR); Subdirectory subdir = strcmp(base_path, _fios_path) == 0 ? HEIGHTMAP_DIR : NO_DIRECTORY; - FiosGetFileList(mode, &FiosGetHeightmapListCallback, subdir, file_list); + FiosGetFileList(fop, &FiosGetHeightmapListCallback, subdir, file_list); } /** diff --git a/src/fios.h b/src/fios.h index 37d562ca1a..1c61492af4 100644 --- a/src/fios.h +++ b/src/fios.h @@ -200,7 +200,7 @@ public: this->files.Compact(); } - void BuildFileList(SaveLoadDialogMode mode); + void BuildFileList(AbstractFileType abstract_filetype, FileOperation fop); const FiosItem *FindItem(const char *file); SmallVector files; ///< The list of files. @@ -220,9 +220,9 @@ extern SortingBits _savegame_sort_order; void ShowSaveLoadDialog(SaveLoadDialogMode mode); -void FiosGetSavegameList(SaveLoadDialogMode mode, FileList &file_list); -void FiosGetScenarioList(SaveLoadDialogMode mode, FileList &file_list); -void FiosGetHeightmapList(SaveLoadDialogMode mode, FileList &file_list); +void FiosGetSavegameList(FileOperation fop, FileList &file_list); +void FiosGetScenarioList(FileOperation fop, FileList &file_list); +void FiosGetHeightmapList(FileOperation fop, FileList &file_list); const char *FiosBrowseTo(const FiosItem *item); @@ -231,7 +231,7 @@ bool FiosDelete(const char *name); void FiosMakeHeightmapName(char *buf, const char *name, const char *last); void FiosMakeSavegameName(char *buf, const char *name, const char *last); -FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last); +FiosType FiosGetSavegameListCallback(FileOperation fop, const char *file, const char *ext, char *title, const char *last); int CDECL CompareFiosItems(const FiosItem *a, const FiosItem *b); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index c9d612f4c2..e217ab6e11 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -669,7 +669,19 @@ public: if (!gui_scope) break; _fios_path_changed = true; - this->fios_items.BuildFileList(_saveload_mode); + + AbstractFileType abstract_filetype; + FileOperation fop; + switch (_saveload_mode) { + case SLD_LOAD_GAME: abstract_filetype = FT_SAVEGAME; fop = FOP_LOAD; break; + case SLD_LOAD_SCENARIO: abstract_filetype = FT_SCENARIO; fop = FOP_LOAD; break; + case SLD_SAVE_GAME: abstract_filetype = FT_SAVEGAME; fop = FOP_SAVE; break; + case SLD_SAVE_SCENARIO: abstract_filetype = FT_SCENARIO; fop = FOP_SAVE; break; + case SLD_LOAD_HEIGHTMAP: abstract_filetype = FT_HEIGHTMAP; fop = FOP_LOAD; break; + case SLD_SAVE_HEIGHTMAP: abstract_filetype = FT_HEIGHTMAP; fop = FOP_SAVE; break; + default: NOT_REACHED(); + } + this->fios_items.BuildFileList(abstract_filetype, fop); this->vscroll->SetCount(this->fios_items.Length()); this->selected = NULL; _load_check_data.Clear(); diff --git a/src/openttd.cpp b/src/openttd.cpp index 594b6fa37e..bd8ac42532 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -625,7 +625,7 @@ int openttd_main(int argc, char *argv[]) /* if the file doesn't exist or it is not a valid savegame, let the saveload code show an error */ const char *t = strrchr(_file_to_saveload.name, '.'); if (t != NULL) { - FiosType ft = FiosGetSavegameListCallback(SLD_LOAD_GAME, _file_to_saveload.name, t, NULL, NULL); + FiosType ft = FiosGetSavegameListCallback(FOP_LOAD, _file_to_saveload.name, t, NULL, NULL); if (ft != FIOS_TYPE_INVALID) _file_to_saveload.SetMode(ft); } @@ -647,7 +647,7 @@ int openttd_main(int argc, char *argv[]) char title[80]; title[0] = '\0'; - FiosGetSavegameListCallback(SLD_LOAD_GAME, mgo.opt, strrchr(mgo.opt, '.'), title, lastof(title)); + FiosGetSavegameListCallback(FOP_LOAD, mgo.opt, strrchr(mgo.opt, '.'), title, lastof(title)); _load_check_data.Clear(); SaveOrLoadResult res = SaveOrLoad(mgo.opt, SL_LOAD_CHECK, SAVE_DIR, false); From 3b848277736ace422da3a743d3c1374466abc7e3 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:56:56 +0000 Subject: [PATCH 126/417] (svn r27648) -Codechange: Remove remaining _saveload_mode usage. --- src/fios.h | 13 +-- src/fios_gui.cpp | 212 ++++++++++++++++++------------------ src/intro_gui.cpp | 6 +- src/network/network_gui.cpp | 6 +- src/toolbar_gui.cpp | 14 +-- 5 files changed, 123 insertions(+), 128 deletions(-) diff --git a/src/fios.h b/src/fios.h index 1c61492af4..86bcf3e3a0 100644 --- a/src/fios.h +++ b/src/fios.h @@ -97,16 +97,6 @@ enum FileSlots { MAX_FILE_SLOTS = 64 }; -/** Mode of the file dialogue window. */ -enum SaveLoadDialogMode { - SLD_LOAD_GAME, ///< Load a game. - SLD_LOAD_SCENARIO, ///< Load a scenario. - SLD_SAVE_GAME, ///< Save a game. - SLD_SAVE_SCENARIO, ///< Save a scenario. - SLD_LOAD_HEIGHTMAP, ///< Load a heightmap. - SLD_SAVE_HEIGHTMAP, ///< Save a heightmap. -}; - /** Deals with finding savegames */ struct FiosItem { FiosType type; @@ -215,10 +205,9 @@ enum SortingBits { DECLARE_ENUM_AS_BIT_SET(SortingBits) /* Variables to display file lists */ -extern SaveLoadDialogMode _saveload_mode; extern SortingBits _savegame_sort_order; -void ShowSaveLoadDialog(SaveLoadDialogMode mode); +void ShowSaveLoadDialog(AbstractFileType abstract_filetype, FileOperation fop); void FiosGetSavegameList(FileOperation fop, FileList &file_list); void FiosGetScenarioList(FileOperation fop, FileList &file_list); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index e217ab6e11..e902941d65 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -36,7 +36,6 @@ #include "safeguards.h" -SaveLoadDialogMode _saveload_mode; LoadCheckData _load_check_data; ///< Data loaded from save during SL_LOAD_CHECK. static bool _fios_path_changed; @@ -222,6 +221,8 @@ static void SortSaveGameList(FileList &file_list) struct SaveLoadWindow : public Window { private: QueryString filename_editbox; ///< Filename editbox. + AbstractFileType abstract_filetype; /// Type of file to select. + FileOperation fop; ///< File operation to perform. FileList fios_items; ///< Save game list. FiosItem o_dir; const FiosItem *selected; ///< Selected game in #fios_items, or \c NULL. @@ -235,35 +236,56 @@ public: this->filename_editbox.text.UpdateSize(); } - SaveLoadWindow(WindowDesc *desc, SaveLoadDialogMode mode) : Window(desc), filename_editbox(64) + SaveLoadWindow(WindowDesc *desc, AbstractFileType abstract_filetype, FileOperation fop) + : Window(desc), filename_editbox(64), abstract_filetype(abstract_filetype), fop(fop) { - static const StringID saveload_captions[] = { - STR_SAVELOAD_LOAD_CAPTION, - STR_SAVELOAD_LOAD_SCENARIO, - STR_SAVELOAD_SAVE_CAPTION, - STR_SAVELOAD_SAVE_SCENARIO, - STR_SAVELOAD_LOAD_HEIGHTMAP, - STR_SAVELOAD_SAVE_HEIGHTMAP, - }; - assert((uint)mode < lengthof(saveload_captions)); + assert(this->fop == FOP_SAVE || this->fop == FOP_LOAD); - /* Use an array to define what will be the current file type being handled - * by current file mode */ - switch (mode) { - case SLD_SAVE_GAME: this->GenerateFileName(); break; - case SLD_SAVE_HEIGHTMAP: - case SLD_SAVE_SCENARIO: this->filename_editbox.text.Assign("UNNAMED"); break; - default: break; + /* For saving, construct an initial file name. */ + if (this->fop == FOP_SAVE) { + switch (this->abstract_filetype) { + case FT_SAVEGAME: + this->GenerateFileName(); + break; + + case FT_SCENARIO: + case FT_HEIGHTMAP: + this->filename_editbox.text.Assign("UNNAMED"); + break; + + default: + NOT_REACHED(); + } } - this->querystrings[WID_SL_SAVE_OSK_TITLE] = &this->filename_editbox; this->filename_editbox.ok_button = WID_SL_SAVE_GAME; this->CreateNestedTree(true); - if (mode == SLD_LOAD_GAME) this->GetWidget(WID_SL_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL); - this->GetWidget(WID_SL_CAPTION)->widget_data = saveload_captions[mode]; - this->vscroll = this->GetScrollbar(WID_SL_SCROLLBAR); + if (this->fop == FOP_LOAD && this->abstract_filetype == FT_SAVEGAME) { + this->GetWidget(WID_SL_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL); + } + /* Select caption string of the window. */ + StringID caption_string; + switch (this->abstract_filetype) { + case FT_SAVEGAME: + caption_string = (this->fop == FOP_SAVE) ? STR_SAVELOAD_SAVE_CAPTION : STR_SAVELOAD_LOAD_CAPTION; + break; + + case FT_SCENARIO: + caption_string = (this->fop == FOP_SAVE) ? STR_SAVELOAD_SAVE_SCENARIO : STR_SAVELOAD_LOAD_SCENARIO; + break; + + case FT_HEIGHTMAP: + caption_string = (this->fop == FOP_SAVE) ? STR_SAVELOAD_SAVE_HEIGHTMAP : STR_SAVELOAD_LOAD_HEIGHTMAP; + break; + + default: + NOT_REACHED(); + } + this->GetWidget(WID_SL_CAPTION)->widget_data = caption_string; + + this->vscroll = this->GetScrollbar(WID_SL_SCROLLBAR); this->FinishInitNested(0); this->LowerWidget(WID_SL_DRIVES_DIRECTORIES_LIST); @@ -279,20 +301,18 @@ public: ResetObjectToPlace(); + /* Select the initial directory. */ o_dir.type = FIOS_TYPE_DIRECT; - switch (_saveload_mode) { - case SLD_SAVE_GAME: - case SLD_LOAD_GAME: + switch (this->abstract_filetype) { + case FT_SAVEGAME: FioGetDirectory(o_dir.name, lastof(o_dir.name), SAVE_DIR); break; - case SLD_SAVE_SCENARIO: - case SLD_LOAD_SCENARIO: + case FT_SCENARIO: FioGetDirectory(o_dir.name, lastof(o_dir.name), SCENARIO_DIR); break; - case SLD_SAVE_HEIGHTMAP: - case SLD_LOAD_HEIGHTMAP: + case FT_HEIGHTMAP: FioGetDirectory(o_dir.name, lastof(o_dir.name), HEIGHTMAP_DIR); break; @@ -301,9 +321,7 @@ public: } /* Focus the edit box by default in the save windows */ - if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO || _saveload_mode == SLD_SAVE_HEIGHTMAP) { - this->SetFocusedWidget(WID_SL_SAVE_OSK_TITLE); - } + if (this->fop == FOP_SAVE) this->SetFocusedWidget(WID_SL_SAVE_OSK_TITLE); } virtual ~SaveLoadWindow() @@ -405,7 +423,7 @@ public: if (y > y_max) break; /* Hide current date for scenarios */ - if (_saveload_mode != SLD_LOAD_SCENARIO && _saveload_mode != SLD_SAVE_SCENARIO) { + if (this->abstract_filetype != FT_SCENARIO) { /* Current date */ SetDParam(0, _load_check_data.current_date); DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_CURRENT_DATE); @@ -413,7 +431,7 @@ public: } /* Hide the NewGRF stuff when saving. We also hide the button. */ - if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) { + if (this->fop == FOP_LOAD && (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO)) { y += WD_PAR_VSEP_NORMAL; if (y > y_max) break; @@ -426,7 +444,7 @@ public: if (y > y_max) break; /* Hide the company stuff for scenarios */ - if (_saveload_mode != SLD_LOAD_SCENARIO && _saveload_mode != SLD_SAVE_SCENARIO) { + if (this->abstract_filetype != FT_SCENARIO) { y += FONT_HEIGHT_NORMAL; if (y > y_max) break; @@ -516,9 +534,10 @@ public: strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name)); strecpy(_file_to_saveload.title, this->selected->title, lastof(_file_to_saveload.title)); - if (_saveload_mode == SLD_LOAD_HEIGHTMAP) { + if (this->abstract_filetype == FT_HEIGHTMAP) { delete this; ShowHeightmapLoad(); + } else if (!_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility != GLC_NOT_FOUND || _settings_client.gui.UserIsAllowedToChangeNewGRFs()) { _switch_mode = (_game_mode == GM_EDITOR) ? SM_LOAD_SCENARIO : SM_LOAD_GAME; ClearErrorMessages(); @@ -562,22 +581,25 @@ public: this->InvalidateData(1); } - if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO || _saveload_mode == SLD_SAVE_HEIGHTMAP) { + if (this->fop == FOP_SAVE) { /* Copy clicked name to editbox */ this->filename_editbox.text.Assign(file->title); this->SetWidgetDirty(WID_SL_SAVE_OSK_TITLE); } } else if (!_load_check_data.HasErrors()) { this->selected = file; - if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) { - this->OnClick(pt, WID_SL_LOAD_BUTTON, 1); - } else if (_saveload_mode == SLD_LOAD_HEIGHTMAP) { - _file_to_saveload.SetMode(file->type); - strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name)); - strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title)); + if (this->fop == FOP_LOAD) { + if (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO) { + this->OnClick(pt, WID_SL_LOAD_BUTTON, 1); + } else { + assert(this->abstract_filetype == FT_HEIGHTMAP); + _file_to_saveload.SetMode(file->type); + strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name)); + strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title)); - delete this; - ShowHeightmapLoad(); + delete this; + ShowHeightmapLoad(); + } } } } else { @@ -592,10 +614,11 @@ public: ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, WL_ERROR); } else { #if defined(ENABLE_NETWORK) - switch (_saveload_mode) { + assert(this->fop == FOP_LOAD); + switch (this->abstract_filetype) { default: NOT_REACHED(); - case SLD_LOAD_SCENARIO: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_SCENARIO); break; - case SLD_LOAD_HEIGHTMAP: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_HEIGHTMAP); break; + case FT_SCENARIO: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_SCENARIO); break; + case FT_HEIGHTMAP: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_HEIGHTMAP); break; } #endif } @@ -623,9 +646,8 @@ public: virtual void OnTimeout() { - /* This test protects against using widgets 11 and 12 which are only available - * in those saveload modes. */ - if (!(_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO || _saveload_mode == SLD_SAVE_HEIGHTMAP)) return; + /* Widgets WID_SL_DELETE_SELECTION and WID_SL_SAVE_GAME only exist when saving to a file. */ + if (this->fop != FOP_SAVE) return; if (this->IsWidgetLowered(WID_SL_DELETE_SELECTION)) { // Delete button clicked if (!FiosDelete(this->filename_editbox.text.buf)) { @@ -633,10 +655,10 @@ public: } else { this->InvalidateData(); /* Reset file name to current date on successful delete */ - if (_saveload_mode == SLD_SAVE_GAME) GenerateFileName(); + if (this->abstract_filetype == FT_SAVEGAME) GenerateFileName(); } } else if (this->IsWidgetLowered(WID_SL_SAVE_GAME)) { // Save button clicked - if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) { + if (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO) { _switch_mode = SM_SAVE_GAME; FiosMakeSavegameName(_file_to_saveload.name, this->filename_editbox.text.buf, lastof(_file_to_saveload.name)); } else { @@ -669,19 +691,7 @@ public: if (!gui_scope) break; _fios_path_changed = true; - - AbstractFileType abstract_filetype; - FileOperation fop; - switch (_saveload_mode) { - case SLD_LOAD_GAME: abstract_filetype = FT_SAVEGAME; fop = FOP_LOAD; break; - case SLD_LOAD_SCENARIO: abstract_filetype = FT_SCENARIO; fop = FOP_LOAD; break; - case SLD_SAVE_GAME: abstract_filetype = FT_SAVEGAME; fop = FOP_SAVE; break; - case SLD_SAVE_SCENARIO: abstract_filetype = FT_SCENARIO; fop = FOP_SAVE; break; - case SLD_LOAD_HEIGHTMAP: abstract_filetype = FT_HEIGHTMAP; fop = FOP_LOAD; break; - case SLD_SAVE_HEIGHTMAP: abstract_filetype = FT_HEIGHTMAP; fop = FOP_SAVE; break; - default: NOT_REACHED(); - } - this->fios_items.BuildFileList(abstract_filetype, fop); + this->fios_items.BuildFileList(this->abstract_filetype, this->fop); this->vscroll->SetCount(this->fios_items.Length()); this->selected = NULL; _load_check_data.Clear(); @@ -689,16 +699,29 @@ public: case 1: /* Selection changes */ if (!gui_scope) break; - if (_saveload_mode == SLD_LOAD_HEIGHTMAP) { - this->SetWidgetDisabledState(WID_SL_LOAD_BUTTON, this->selected == NULL || _load_check_data.HasErrors()); - } - if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) { - this->SetWidgetDisabledState(WID_SL_LOAD_BUTTON, - this->selected == NULL || _load_check_data.HasErrors() || !(!_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility != GLC_NOT_FOUND || _settings_client.gui.UserIsAllowedToChangeNewGRFs())); - this->SetWidgetDisabledState(WID_SL_NEWGRF_INFO, - !_load_check_data.HasNewGrfs()); - this->SetWidgetDisabledState(WID_SL_MISSING_NEWGRFS, - !_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility == GLC_ALL_GOOD); + + if (this->fop != FOP_LOAD) break; + + switch (this->abstract_filetype) { + case FT_HEIGHTMAP: + this->SetWidgetDisabledState(WID_SL_LOAD_BUTTON, this->selected == NULL || _load_check_data.HasErrors()); + break; + + case FT_SAVEGAME: + case FT_SCENARIO: { + bool disabled = this->selected == NULL || _load_check_data.HasErrors(); + if (!_settings_client.gui.UserIsAllowedToChangeNewGRFs()) { + disabled |= _load_check_data.HasNewGrfs() && _load_check_data.grf_compatibility == GLC_NOT_FOUND; + } + this->SetWidgetDisabledState(WID_SL_LOAD_BUTTON, disabled); + this->SetWidgetDisabledState(WID_SL_NEWGRF_INFO, !_load_check_data.HasNewGrfs()); + this->SetWidgetDisabledState(WID_SL_MISSING_NEWGRFS, + !_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility == GLC_ALL_GOOD); + break; + } + + default: + NOT_REACHED(); } break; } @@ -729,41 +752,24 @@ static WindowDesc _save_dialog_desc( _nested_save_dialog_widgets, lengthof(_nested_save_dialog_widgets) ); -/** - * These values are used to convert the file/operations mode into a corresponding file type. - * So each entry, as expressed by the related comment, is based on the enum - */ -static const AbstractFileType _file_modetotype[] = { - FT_SAVEGAME, // used for SLD_LOAD_GAME - FT_SCENARIO, // used for SLD_LOAD_SCENARIO - FT_SAVEGAME, // used for SLD_SAVE_GAME - FT_SCENARIO, // used for SLD_SAVE_SCENARIO - FT_HEIGHTMAP, // used for SLD_LOAD_HEIGHTMAP - FT_HEIGHTMAP, // used for SLD_SAVE_HEIGHTMAP -}; - /** * Launch save/load dialog in the given mode. - * @param mode Save/load mode. + * @param abstract_filetype Kind of file to handle. + * @param fop File operation to perform (load or save). */ -void ShowSaveLoadDialog(SaveLoadDialogMode mode) +void ShowSaveLoadDialog(AbstractFileType abstract_filetype, FileOperation fop) { DeleteWindowById(WC_SAVELOAD, 0); WindowDesc *sld; - switch (mode) { - case SLD_SAVE_GAME: - case SLD_SAVE_SCENARIO: - case SLD_SAVE_HEIGHTMAP: - sld = &_save_dialog_desc; break; - case SLD_LOAD_HEIGHTMAP: - sld = &_load_heightmap_dialog_desc; break; - default: - sld = &_load_dialog_desc; break; + if (fop == FOP_SAVE) { + sld = &_save_dialog_desc; + } else { + /* Dialogue for loading a file. */ + sld = (abstract_filetype == FT_HEIGHTMAP) ? &_load_heightmap_dialog_desc : &_load_dialog_desc; } - _saveload_mode = mode; - _file_to_saveload.filetype = _file_modetotype[mode]; + _file_to_saveload.filetype = abstract_filetype; - new SaveLoadWindow(sld, mode); + new SaveLoadWindow(sld, abstract_filetype, fop); } diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp index de8b379392..b6ac73cb74 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -111,9 +111,9 @@ struct SelectGameWindow : public Window { } break; - case WID_SGI_LOAD_GAME: ShowSaveLoadDialog(SLD_LOAD_GAME); break; - case WID_SGI_PLAY_SCENARIO: ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break; - case WID_SGI_PLAY_HEIGHTMAP: ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); break; + case WID_SGI_LOAD_GAME: ShowSaveLoadDialog(FT_SAVEGAME, FOP_LOAD); break; + case WID_SGI_PLAY_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, FOP_LOAD); break; + case WID_SGI_PLAY_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,FOP_LOAD); break; case WID_SGI_EDIT_SCENARIO: StartScenarioEditor(); break; case WID_SGI_PLAY_NETWORK: diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 7c04ad4e02..c3aef5b0fd 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -1187,17 +1187,17 @@ struct NetworkStartServerWindow : public Window { case WID_NSS_LOAD_GAME: _is_network_server = true; - ShowSaveLoadDialog(SLD_LOAD_GAME); + ShowSaveLoadDialog(FT_SAVEGAME, FOP_LOAD); break; case WID_NSS_PLAY_SCENARIO: _is_network_server = true; - ShowSaveLoadDialog(SLD_LOAD_SCENARIO); + ShowSaveLoadDialog(FT_SCENARIO, FOP_LOAD); break; case WID_NSS_PLAY_HEIGHTMAP: _is_network_server = true; - ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); + ShowSaveLoadDialog(FT_HEIGHTMAP,FOP_LOAD); break; } } diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index 40c75ad710..55b49fd748 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -427,17 +427,17 @@ static CallBackFunction MenuClickSaveLoad(int index = 0) { if (_game_mode == GM_EDITOR) { switch (index) { - case SLEME_SAVE_SCENARIO: ShowSaveLoadDialog(SLD_SAVE_SCENARIO); break; - case SLEME_LOAD_SCENARIO: ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break; - case SLEME_SAVE_HEIGHTMAP: ShowSaveLoadDialog(SLD_SAVE_HEIGHTMAP); break; - case SLEME_LOAD_HEIGHTMAP: ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); break; + case SLEME_SAVE_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, FOP_SAVE); break; + case SLEME_LOAD_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, FOP_LOAD); break; + case SLEME_SAVE_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,FOP_SAVE); break; + case SLEME_LOAD_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,FOP_LOAD); break; case SLEME_EXIT_TOINTRO: AskExitToGameMenu(); break; case SLEME_EXIT_GAME: HandleExitGameRequest(); break; } } else { switch (index) { - case SLNME_SAVE_GAME: ShowSaveLoadDialog(SLD_SAVE_GAME); break; - case SLNME_LOAD_GAME: ShowSaveLoadDialog(SLD_LOAD_GAME); break; + case SLNME_SAVE_GAME: ShowSaveLoadDialog(FT_SAVEGAME, FOP_SAVE); break; + case SLNME_LOAD_GAME: ShowSaveLoadDialog(FT_SAVEGAME, FOP_LOAD); break; case SLNME_EXIT_TOINTRO: AskExitToGameMenu(); break; case SLNME_EXIT_GAME: HandleExitGameRequest(); break; } @@ -1712,7 +1712,7 @@ struct MainToolbarWindow : Window { case MTHK_FASTFORWARD: ToolbarFastForwardClick(this); break; case MTHK_SETTINGS: ShowGameOptions(); break; case MTHK_SAVEGAME: MenuClickSaveLoad(); break; - case MTHK_LOADGAME: ShowSaveLoadDialog(SLD_LOAD_GAME); break; + case MTHK_LOADGAME: ShowSaveLoadDialog(FT_SAVEGAME, FOP_LOAD); break; case MTHK_SMALLMAP: ShowSmallMap(); break; case MTHK_TOWNDIRECTORY: ShowTownDirectory(); break; case MTHK_SUBSIDIES: ShowSubsidiesList(); break; From c3bed437ee7ce0a41236951a569883486f4d2fe2 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:57:20 +0000 Subject: [PATCH 127/417] (svn r27649) -Codechange: Introduce detailed file type enum, rebuild FiosType with it. --- src/console_cmds.cpp | 16 ++++---- src/fileio_type.h | 80 +++++++++++++++++++++++++++++++++------ src/fios.h | 2 - src/fios_gui.cpp | 20 +++++++--- src/saveload/saveload.cpp | 26 +------------ 5 files changed, 91 insertions(+), 53 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 6284287c04..a486ea2822 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -360,16 +360,14 @@ DEF_CONSOLE_CMD(ConLoad) _console_file_list.ValidateFileList(); const FiosItem *item = _console_file_list.FindItem(file); if (item != NULL) { - switch (item->type) { - case FIOS_TYPE_FILE: case FIOS_TYPE_OLDFILE: { - _switch_mode = SM_LOAD_GAME; - _file_to_saveload.SetMode(item->type); + if (GetAbstractFileType(item->type) == FT_SAVEGAME) { + _switch_mode = SM_LOAD_GAME; + _file_to_saveload.SetMode(item->type); - strecpy(_file_to_saveload.name, FiosBrowseTo(item), lastof(_file_to_saveload.name)); - strecpy(_file_to_saveload.title, item->title, lastof(_file_to_saveload.title)); - break; - } - default: IConsolePrintF(CC_ERROR, "%s: Not a savegame.", file); + strecpy(_file_to_saveload.name, FiosBrowseTo(item), lastof(_file_to_saveload.name)); + strecpy(_file_to_saveload.title, item->title, lastof(_file_to_saveload.title)); + } else { + IConsolePrintF(CC_ERROR, "%s: Not a savegame.", file); } } else { IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file); diff --git a/src/fileio_type.h b/src/fileio_type.h index 20df8cd05d..4fae7b3920 100644 --- a/src/fileio_type.h +++ b/src/fileio_type.h @@ -22,6 +22,27 @@ enum AbstractFileType { FT_HEIGHTMAP, ///< heightmap file FT_INVALID = 7, ///< Invalid or unknown file type. + FT_NUMBITS = 3, ///< Number of bits required for storing a #AbstractFileType value. + FT_MASK = (1 << FT_NUMBITS) - 1, ///< Bitmask for extracting an abstract file type. +}; + +/** Kinds of files in each #AbstractFileType. */ +enum DetailedFileType { + /* Save game and scenario files. */ + DFT_OLD_GAME_FILE, ///< Old save game or scenario file. + DFT_GAME_FILE, ///< Save game or scenario file. + + /* Heightmap files. */ + DFT_HEIGHTMAP_BMP, ///< BMP file. + DFT_HEIGHTMAP_PNG, ///< PNG file. + + /* fios 'files' */ + DFT_FIOS_DRIVE, ///< A drive (letter) entry. + DFT_FIOS_PARENT, ///< A parent directory entry. + DFT_FIOS_DIR, ///< A directory entry. + DFT_FIOS_DIRECT, ///< Direct filename. + + DFT_INVALID = 255, ///< Unknown or invalid file. }; /** Operation performed on the file. */ @@ -30,21 +51,56 @@ enum FileOperation { FOP_SAVE, ///< File is being saved. }; -/** Elements of a file system that are recognized. */ +/** + * Construct an enum value for #FiosType as a combination of an abstract and a detailed file type. + * @param abstract Abstract file type (one of #AbstractFileType). + * @param detailed Detailed file type (one of #DetailedFileType). + */ +#define MAKE_FIOS_TYPE(abstract, detailed) ((abstract) | ((detailed) << FT_NUMBITS)) + +/** + * Elements of a file system that are recognized. + * Values are a combination of #AbstractFileType and #DetailedFileType. + * @see GetAbstractFileType GetDetailedFileType + */ enum FiosType { - FIOS_TYPE_DRIVE, - FIOS_TYPE_PARENT, - FIOS_TYPE_DIR, - FIOS_TYPE_FILE, - FIOS_TYPE_OLDFILE, - FIOS_TYPE_SCENARIO, - FIOS_TYPE_OLD_SCENARIO, - FIOS_TYPE_DIRECT, - FIOS_TYPE_PNG, - FIOS_TYPE_BMP, - FIOS_TYPE_INVALID = 255, + FIOS_TYPE_DRIVE = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DRIVE), + FIOS_TYPE_PARENT = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_PARENT), + FIOS_TYPE_DIR = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DIR), + FIOS_TYPE_DIRECT = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DIRECT), + + FIOS_TYPE_FILE = MAKE_FIOS_TYPE(FT_SAVEGAME, DFT_GAME_FILE), + FIOS_TYPE_OLDFILE = MAKE_FIOS_TYPE(FT_SAVEGAME, DFT_OLD_GAME_FILE), + FIOS_TYPE_SCENARIO = MAKE_FIOS_TYPE(FT_SCENARIO, DFT_GAME_FILE), + FIOS_TYPE_OLD_SCENARIO = MAKE_FIOS_TYPE(FT_SCENARIO, DFT_OLD_GAME_FILE), + FIOS_TYPE_PNG = MAKE_FIOS_TYPE(FT_HEIGHTMAP, DFT_HEIGHTMAP_PNG), + FIOS_TYPE_BMP = MAKE_FIOS_TYPE(FT_HEIGHTMAP, DFT_HEIGHTMAP_BMP), + + FIOS_TYPE_INVALID = MAKE_FIOS_TYPE(FT_INVALID, DFT_INVALID), }; +#undef MAKE_FIOS_TYPE + +/** + * Extract the abstract file type from a #FiosType. + * @param fios_type Type to query. + * @return The Abstract file type of the \a fios_type. + */ +inline AbstractFileType GetAbstractFileType(FiosType fios_type) +{ + return static_cast(fios_type & FT_MASK); +} + +/** + * Extract the detailed file type from a #FiosType. + * @param fios_type Type to query. + * @return The Detailed file type of the \a fios_type. + */ +inline DetailedFileType GetDetailedFileType(FiosType fios_type) +{ + return static_cast(fios_type >> FT_NUMBITS); +} + /** * The different kinds of subdirectories OpenTTD uses */ diff --git a/src/fios.h b/src/fios.h index 86bcf3e3a0..80654812b2 100644 --- a/src/fios.h +++ b/src/fios.h @@ -224,6 +224,4 @@ FiosType FiosGetSavegameListCallback(FileOperation fop, const char *file, const int CDECL CompareFiosItems(const FiosItem *a, const FiosItem *b); -extern const TextColour _fios_colours[]; - #endif /* FIOS_H */ diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index e902941d65..a4e495b491 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -186,12 +186,19 @@ static const NWidgetPart _nested_save_dialog_widgets[] = { EndContainer(), }; -/** Colours for fios types, indexed by #FiosType. */ -const TextColour _fios_colours[] = { - TC_LIGHT_BLUE, TC_DARK_GREEN, TC_DARK_GREEN, TC_ORANGE, TC_LIGHT_BROWN, - TC_ORANGE, TC_LIGHT_BROWN, TC_ORANGE, TC_ORANGE, TC_YELLOW +/** Text colours of #DetailedFileType fios entries in the window. */ +static const TextColour _fios_colours[] = { + TC_LIGHT_BROWN, // DFT_OLD_GAME_FILE + TC_ORANGE, // DFT_GAME_FILE + TC_YELLOW, // DFT_HEIGHTMAP_BMP + TC_ORANGE, // DFT_HEIGHTMAP_PNG + TC_LIGHT_BLUE, // DFT_FIOS_DRIVE + TC_DARK_GREEN, // DFT_FIOS_PARENT + TC_DARK_GREEN, // DFT_FIOS_DIR + TC_ORANGE, // DFT_FIOS_DIRECT }; + /** * Sort the collected list save games prior to displaying it in the save/load gui. * @param [inout] file_list List of save game files found in the directory. @@ -368,7 +375,7 @@ public: if (item == this->selected) { GfxFillRect(r.left + 1, y, r.right, y + this->resize.step_height, PC_DARK_BLUE); } - DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[item->type]); + DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[GetDetailedFileType(item->type)]); y += this->resize.step_height; if (y >= this->vscroll->GetCapacity() * this->resize.step_height + r.top + WD_FRAMERECT_TOP) break; } @@ -575,7 +582,8 @@ public: this->selected = file; _load_check_data.Clear(); - if (file->type == FIOS_TYPE_FILE || file->type == FIOS_TYPE_SCENARIO) { + if (GetDetailedFileType(file->type) == DFT_GAME_FILE) { + /* Other detailed file types cannot be checked before. */ SaveOrLoad(name, SL_LOAD_CHECK, NO_DIRECTORY, false); } diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index a0d15938a4..b5fdda27a1 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2924,30 +2924,8 @@ void FileToSaveLoad::SetMode(FiosType ft) break; } - switch (ft) { - case FIOS_TYPE_OLDFILE: - case FIOS_TYPE_FILE: - this->filetype = FT_SAVEGAME; - break; - - case FIOS_TYPE_OLD_SCENARIO: - case FIOS_TYPE_SCENARIO: - this->filetype = FT_SCENARIO; - break; - -#ifdef WITH_PNG - case FIOS_TYPE_PNG: - /* FALL THROUGH */ -#endif /* WITH_PNG */ - - case FIOS_TYPE_BMP: - this->filetype = FT_HEIGHTMAP; - break; - - default: - this->filetype = FT_INVALID; - break; - } + this->filetype = GetAbstractFileType(ft); + if (this->filetype == FT_NONE) this->filetype = FT_INVALID; } #if 0 From a959c0c9653c484d4925dbeda6ab50bc082d01fe Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:57:43 +0000 Subject: [PATCH 128/417] (svn r27650) -Codechange: Replace SaveOrLoadMode by FileOperation and DetailedFileType. --- src/console_cmds.cpp | 2 +- src/crashlog.cpp | 2 +- src/fileio_type.h | 7 ++- src/fios_gui.cpp | 4 +- src/genworld.cpp | 2 +- src/genworld_gui.cpp | 2 +- src/heightmap.cpp | 35 ++++++++----- src/heightmap.h | 6 ++- src/landscape.cpp | 2 +- src/network/network_client.cpp | 4 +- src/openttd.cpp | 28 ++++++----- src/saveload/afterload.cpp | 2 +- src/saveload/saveload.cpp | 90 ++++++++++++++++++---------------- src/saveload/saveload.h | 23 +++------ src/saveload/signs_sl.cpp | 2 +- src/video/dedicated_v.cpp | 4 +- 16 files changed, 114 insertions(+), 101 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index a486ea2822..c26f17f29e 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -318,7 +318,7 @@ DEF_CONSOLE_CMD(ConSave) char *filename = str_fmt("%s.sav", argv[1]); IConsolePrint(CC_DEFAULT, "Saving map..."); - if (SaveOrLoad(filename, SL_SAVE, SAVE_DIR) != SL_OK) { + if (SaveOrLoad(filename, FOP_SAVE, DFT_GAME_FILE, SAVE_DIR) != SL_OK) { IConsolePrint(CC_ERROR, "Saving map failed"); } else { IConsolePrintF(CC_DEFAULT, "Map successfully saved to %s", filename); diff --git a/src/crashlog.cpp b/src/crashlog.cpp index 4000cfb03e..83beb94ff8 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -388,7 +388,7 @@ bool CrashLog::WriteSavegame(char *filename, const char *filename_last) const seprintf(filename, filename_last, "%scrash.sav", _personal_dir); /* Don't do a threaded saveload. */ - return SaveOrLoad(filename, SL_SAVE, NO_DIRECTORY, false) == SL_OK; + return SaveOrLoad(filename, FOP_SAVE, DFT_GAME_FILE, NO_DIRECTORY, false) == SL_OK; } catch (...) { return false; } diff --git a/src/fileio_type.h b/src/fileio_type.h index 4fae7b3920..0c4602bbaf 100644 --- a/src/fileio_type.h +++ b/src/fileio_type.h @@ -47,8 +47,11 @@ enum DetailedFileType { /** Operation performed on the file. */ enum FileOperation { - FOP_LOAD, ///< File is being loaded. - FOP_SAVE, ///< File is being saved. + FOP_CHECK, ///< Load file for checking and/or preview. + FOP_LOAD, ///< File is being loaded. + FOP_SAVE, ///< File is being saved. + + FOP_INVALID, ///< Unknown file operation. }; /** diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index a4e495b491..0c09f96ab0 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -584,7 +584,7 @@ public: if (GetDetailedFileType(file->type) == DFT_GAME_FILE) { /* Other detailed file types cannot be checked before. */ - SaveOrLoad(name, SL_LOAD_CHECK, NO_DIRECTORY, false); + SaveOrLoad(name, FOP_CHECK, DFT_GAME_FILE, NO_DIRECTORY, false); } this->InvalidateData(1); @@ -777,7 +777,7 @@ void ShowSaveLoadDialog(AbstractFileType abstract_filetype, FileOperation fop) sld = (abstract_filetype == FT_HEIGHTMAP) ? &_load_heightmap_dialog_desc : &_load_dialog_desc; } - _file_to_saveload.filetype = abstract_filetype; + _file_to_saveload.abstract_ftype = abstract_filetype; new SaveLoadWindow(sld, abstract_filetype, fop); } diff --git a/src/genworld.cpp b/src/genworld.cpp index 2b2dfb5fd7..95e28fcdf0 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -204,7 +204,7 @@ static void _GenerateWorld(void *) if (_debug_desync_level > 0) { char name[MAX_PATH]; seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); - SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR, false); + SaveOrLoad(name, FOP_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false); } } catch (...) { BasePersistentStorageArray::SwitchMode(PSM_LEAVE_GAMELOOP, true); diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 61e114311b..359709e361 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -833,7 +833,7 @@ static void _ShowGenerateLandscape(GenerateLandscapeWindowMode mode) if (mode == GLWM_HEIGHTMAP) { /* If the function returns negative, it means there was a problem loading the heightmap */ - if (!GetHeightmapDimensions(_file_to_saveload.name, &x, &y)) return; + if (!GetHeightmapDimensions(_file_to_saveload.detail_ftype, _file_to_saveload.name, &x, &y)) return; } WindowDesc *desc = (mode == GLWM_HEIGHTMAP) ? &_heightmap_load_desc : &_generate_landscape_desc; diff --git a/src/heightmap.cpp b/src/heightmap.cpp index ec31257287..630dc69d7e 100644 --- a/src/heightmap.cpp +++ b/src/heightmap.cpp @@ -102,7 +102,7 @@ static void ReadHeightmapPNGImageData(byte *map, png_structp png_ptr, png_infop * If map == NULL only the size of the PNG is read, otherwise a map * with grayscale pixels is allocated and assigned to *map. */ -static bool ReadHeightmapPNG(char *filename, uint *x, uint *y, byte **map) +static bool ReadHeightmapPNG(const char *filename, uint *x, uint *y, byte **map) { FILE *fp; png_structp png_ptr = NULL; @@ -232,7 +232,7 @@ static void ReadHeightmapBMPImageData(byte *map, BmpInfo *info, BmpData *data) * If map == NULL only the size of the BMP is read, otherwise a map * with grayscale pixels is allocated and assigned to *map. */ -static bool ReadHeightmapBMP(char *filename, uint *x, uint *y, byte **map) +static bool ReadHeightmapBMP(const char *filename, uint *x, uint *y, byte **map) { FILE *f; BmpInfo info; @@ -444,45 +444,56 @@ void FixSlopes() } /** - * Reads the heightmap with the correct file reader + * Reads the heightmap with the correct file reader. + * @param dft Type of image file. + * @param filename Name of the file to load. + * @param [out] x Length of the image. + * @param [out] y Height of the image. + * @param [inout] map If not \c NULL, destination to store the loaded block of image data. + * @return Whether loading was successful. */ -static bool ReadHeightMap(char *filename, uint *x, uint *y, byte **map) +static bool ReadHeightMap(DetailedFileType dft, const char *filename, uint *x, uint *y, byte **map) { - switch (_file_to_saveload.mode) { - default: NOT_REACHED(); + switch (dft) { + default: + NOT_REACHED(); + #ifdef WITH_PNG - case SL_PNG: + case DFT_HEIGHTMAP_PNG: return ReadHeightmapPNG(filename, x, y, map); #endif /* WITH_PNG */ - case SL_BMP: + + case DFT_HEIGHTMAP_BMP: return ReadHeightmapBMP(filename, x, y, map); } } /** * Get the dimensions of a heightmap. + * @param dft Type of image file. * @param filename to query * @param x dimension x * @param y dimension y * @return Returns false if loading of the image failed. */ -bool GetHeightmapDimensions(char *filename, uint *x, uint *y) +bool GetHeightmapDimensions(DetailedFileType dft, const char *filename, uint *x, uint *y) { - return ReadHeightMap(filename, x, y, NULL); + return ReadHeightMap(dft, filename, x, y, NULL); } /** * Load a heightmap from file and change the map in his current dimensions * to a landscape representing the heightmap. * It converts pixels to height. The brighter, the higher. + * @param dft Type of image file. * @param filename of the heightmap file to be imported */ -void LoadHeightmap(char *filename) +void LoadHeightmap(DetailedFileType dft, const char *filename) { uint x, y; byte *map = NULL; - if (!ReadHeightMap(filename, &x, &y, &map)) { + if (!ReadHeightMap(dft, filename, &x, &y, &map)) { free(map); return; } diff --git a/src/heightmap.h b/src/heightmap.h index 08ae200ece..67349df483 100644 --- a/src/heightmap.h +++ b/src/heightmap.h @@ -12,6 +12,8 @@ #ifndef HEIGHTMAP_H #define HEIGHTMAP_H +#include "fileio_type.h" + /** * Order of these enums has to be the same as in lang/english.txt * Otherwise you will get inconsistent behaviour. @@ -21,8 +23,8 @@ enum HeightmapRotation { HM_CLOCKWISE, ///< Rotate the map clockwise 45 degrees }; -bool GetHeightmapDimensions(char *filename, uint *x, uint *y); -void LoadHeightmap(char *filename); +bool GetHeightmapDimensions(DetailedFileType dft, const char *filename, uint *x, uint *y); +void LoadHeightmap(DetailedFileType dft, const char *filename); void FlatEmptyWorld(byte tile_height); void FixSlopes(); diff --git a/src/landscape.cpp b/src/landscape.cpp index d2b1b98cd5..185e84a80b 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -1222,7 +1222,7 @@ void GenerateLandscape(byte mode) if (mode == GWM_HEIGHTMAP) { SetGeneratingWorldProgress(GWP_LANDSCAPE, steps + GLS_HEIGHTMAP); - LoadHeightmap(_file_to_saveload.name); + LoadHeightmap(_file_to_saveload.detail_ftype, _file_to_saveload.name); IncreaseGeneratingWorldProgress(GWP_LANDSCAPE); } else if (_settings_game.game_creation.land_generator == LG_TERRAGENESIS) { SetGeneratingWorldProgress(GWP_LANDSCAPE, steps + GLS_TERRAGENESIS); diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index d4d294146e..a33e5c6814 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -520,7 +520,7 @@ bool ClientNetworkGameSocketHandler::IsConnected() * DEF_CLIENT_RECEIVE_COMMAND has parameter: Packet *p ************/ -extern bool SafeLoad(const char *filename, int mode, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL); +extern bool SafeLoad(const char *filename, FileOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL); NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_FULL(Packet *p) { @@ -836,7 +836,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_MAP_DONE(Packet /* The map is done downloading, load it */ ClearErrorMessages(); - bool load_success = SafeLoad(NULL, SL_LOAD, GM_NORMAL, NO_DIRECTORY, lf); + bool load_success = SafeLoad(NULL, FOP_LOAD, DFT_GAME_FILE, GM_NORMAL, NO_DIRECTORY, lf); /* Long savegame loads shouldn't affect the lag calculation! */ this->last_packet = _realtime_tick; diff --git a/src/openttd.cpp b/src/openttd.cpp index bd8ac42532..4464e80168 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -328,7 +328,7 @@ static void LoadIntroGame(bool load_newgrfs = true) SetupColoursAndInitialWindow(); /* Load the default opening screen savegame */ - if (SaveOrLoad("opntitle.dat", SL_LOAD, BASESET_DIR) != SL_OK) { + if (SaveOrLoad("opntitle.dat", FOP_LOAD, DFT_GAME_FILE, BASESET_DIR) != SL_OK) { GenerateWorld(GWM_EMPTY, 64, 64); // if failed loading, make empty world. WaitTillGeneratedWorld(); SetLocalCompany(COMPANY_SPECTATOR); @@ -619,8 +619,9 @@ int openttd_main(int argc, char *argv[]) case 'g': if (mgo.opt != NULL) { strecpy(_file_to_saveload.name, mgo.opt, lastof(_file_to_saveload.name)); - _switch_mode = (_switch_mode == SM_EDITOR || _switch_mode == SM_LOAD_SCENARIO ? SM_LOAD_SCENARIO : SM_LOAD_GAME); - _file_to_saveload.mode = SL_LOAD; + bool is_scenario = _switch_mode == SM_EDITOR || _switch_mode == SM_LOAD_SCENARIO; + _switch_mode = is_scenario ? SM_LOAD_SCENARIO : SM_LOAD_GAME; + _file_to_saveload.SetMode(FOP_LOAD, is_scenario ? FT_SCENARIO : FT_SAVEGAME, DFT_GAME_FILE); /* if the file doesn't exist or it is not a valid savegame, let the saveload code show an error */ const char *t = strrchr(_file_to_saveload.name, '.'); @@ -650,7 +651,7 @@ int openttd_main(int argc, char *argv[]) FiosGetSavegameListCallback(FOP_LOAD, mgo.opt, strrchr(mgo.opt, '.'), title, lastof(title)); _load_check_data.Clear(); - SaveOrLoadResult res = SaveOrLoad(mgo.opt, SL_LOAD_CHECK, SAVE_DIR, false); + SaveOrLoadResult res = SaveOrLoad(mgo.opt, FOP_CHECK, DFT_GAME_FILE, SAVE_DIR, false); if (res != SL_OK || _load_check_data.HasErrors()) { fprintf(stderr, "Failed to open savegame\n"); if (_load_check_data.HasErrors()) { @@ -997,14 +998,15 @@ static void MakeNewEditorWorld() * @param subdir default directory to look for filename, set to 0 if not needed * @param lf Load filter to use, if NULL: use filename + subdir. */ -bool SafeLoad(const char *filename, int mode, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL) +bool SafeLoad(const char *filename, FileOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL) { - assert(mode == SL_LOAD || (lf == NULL && mode == SL_OLD_LOAD)); + assert(fop == FOP_LOAD); + assert(dft == DFT_GAME_FILE || (lf == NULL && dft == DFT_OLD_GAME_FILE)); GameMode ogm = _game_mode; _game_mode = newgm; - switch (lf == NULL ? SaveOrLoad(filename, mode, subdir) : LoadWithFilter(lf)) { + switch (lf == NULL ? SaveOrLoad(filename, fop, dft, subdir) : LoadWithFilter(lf)) { case SL_OK: return true; case SL_REINIT: @@ -1093,11 +1095,11 @@ void SwitchToMode(SwitchMode new_mode) ResetGRFConfig(true); ResetWindowSystem(); - if (!SafeLoad(_file_to_saveload.name, _file_to_saveload.mode, GM_NORMAL, NO_DIRECTORY)) { + if (!SafeLoad(_file_to_saveload.name, _file_to_saveload.file_op, _file_to_saveload.detail_ftype, GM_NORMAL, NO_DIRECTORY)) { SetDParamStr(0, GetSaveLoadErrorString()); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_ERROR); } else { - if (_file_to_saveload.filetype == FT_SCENARIO) { + if (_file_to_saveload.abstract_ftype == FT_SCENARIO) { /* Reset engine pool to simplify changing engine NewGRFs in scenario editor. */ EngineOverrideManager::ResetToCurrentNewGRFConfig(); } @@ -1134,7 +1136,7 @@ void SwitchToMode(SwitchMode new_mode) break; case SM_LOAD_SCENARIO: { // Load scenario from scenario editor - if (SafeLoad(_file_to_saveload.name, _file_to_saveload.mode, GM_EDITOR, NO_DIRECTORY)) { + if (SafeLoad(_file_to_saveload.name, _file_to_saveload.file_op, _file_to_saveload.detail_ftype, GM_EDITOR, NO_DIRECTORY)) { SetLocalCompany(OWNER_NONE); _settings_newgame.game_creation.starting_year = _cur_year; /* Cancel the saveload pausing */ @@ -1156,7 +1158,7 @@ void SwitchToMode(SwitchMode new_mode) case SM_SAVE_GAME: // Save game. /* Make network saved games on pause compatible to singleplayer */ - if (SaveOrLoad(_file_to_saveload.name, SL_SAVE, NO_DIRECTORY) != SL_OK) { + if (SaveOrLoad(_file_to_saveload.name, FOP_SAVE, DFT_GAME_FILE, NO_DIRECTORY) != SL_OK) { SetDParamStr(0, GetSaveLoadErrorString()); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_ERROR); } else { @@ -1367,7 +1369,7 @@ void StateGameLoop() /* Save the desync savegame if needed. */ char name[MAX_PATH]; seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); - SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR, false); + SaveOrLoad(name, FOP_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false); } CheckCaches(); @@ -1424,7 +1426,7 @@ static void DoAutosave() } DEBUG(sl, 2, "Autosaving to '%s'", buf); - if (SaveOrLoad(buf, SL_SAVE, AUTOSAVE_DIR) != SL_OK) { + if (SaveOrLoad(buf, FOP_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR) != SL_OK) { ShowErrorMessage(STR_ERROR_AUTOSAVE_FAILED, INVALID_STRING_ID, WL_ERROR); } } diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 9690481154..de3f7ccff9 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -248,7 +248,7 @@ static void InitializeWindowsAndCaches() /* For each company, verify (while loading a scenario) that the inauguration date is the current year and set it * accordingly if it is not the case. No need to set it on companies that are not been used already, * thus the MIN_YEAR (which is really nothing more than Zero, initialized value) test */ - if (_file_to_saveload.filetype == FT_SCENARIO && c->inaugurated_year != MIN_YEAR) { + if (_file_to_saveload.abstract_ftype == FT_SCENARIO && c->inaugurated_year != MIN_YEAR) { c->inaugurated_year = _cur_year; } } diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index b5fdda27a1..4dd8a4c7b6 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2778,10 +2778,10 @@ SaveOrLoadResult LoadWithFilter(LoadFilter *reader) * @param threaded True when threaded saving is allowed * @return Return the result of the action. #SL_OK, #SL_ERROR, or #SL_REINIT ("unload" the game) */ -SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb, bool threaded) +SaveOrLoadResult SaveOrLoad(const char *filename, FileOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded) { /* An instance of saving is already active, so don't go saving again */ - if (_sl.saveinprogress && mode == SL_SAVE && threaded) { + if (_sl.saveinprogress && fop == FOP_SAVE && dft == DFT_GAME_FILE && threaded) { /* if not an autosave, but a user action, show error message */ if (!_do_autosave) ShowErrorMessage(STR_ERROR_SAVE_STILL_IN_PROGRESS, INVALID_STRING_ID, WL_ERROR); return SL_OK; @@ -2790,7 +2790,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb, boo try { /* Load a TTDLX or TTDPatch game */ - if (mode == SL_OLD_LOAD) { + if (fop == FOP_LOAD && dft == DFT_OLD_GAME_FILE) { InitializeGame(256, 256, true, true); // set a mapsize of 256x256 for TTDPatch games or it might get confused /* TTD/TTO savegames have no NewGRFs, TTDP savegame have them @@ -2811,25 +2811,35 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb, boo return SL_OK; } - switch (mode) { - case SL_LOAD_CHECK: _sl.action = SLA_LOAD_CHECK; break; - case SL_LOAD: _sl.action = SLA_LOAD; break; - case SL_SAVE: _sl.action = SLA_SAVE; break; + assert(dft == DFT_GAME_FILE); + switch (dft) { + case FOP_CHECK: + _sl.action = SLA_LOAD_CHECK; + break; + + case FOP_LOAD: + _sl.action = SLA_LOAD; + break; + + case FOP_SAVE: + _sl.action = SLA_SAVE; + break; + default: NOT_REACHED(); } - FILE *fh = (mode == SL_SAVE) ? FioFOpenFile(filename, "wb", sb) : FioFOpenFile(filename, "rb", sb); + FILE *fh = (fop == FOP_SAVE) ? FioFOpenFile(filename, "wb", sb) : FioFOpenFile(filename, "rb", sb); /* Make it a little easier to load savegames from the console */ - if (fh == NULL && mode != SL_SAVE) fh = FioFOpenFile(filename, "rb", SAVE_DIR); - if (fh == NULL && mode != SL_SAVE) fh = FioFOpenFile(filename, "rb", BASE_DIR); - if (fh == NULL && mode != SL_SAVE) fh = FioFOpenFile(filename, "rb", SCENARIO_DIR); + if (fh == NULL && fop != FOP_SAVE) fh = FioFOpenFile(filename, "rb", SAVE_DIR); + if (fh == NULL && fop != FOP_SAVE) fh = FioFOpenFile(filename, "rb", BASE_DIR); + if (fh == NULL && fop != FOP_SAVE) fh = FioFOpenFile(filename, "rb", SCENARIO_DIR); if (fh == NULL) { - SlError(mode == SL_SAVE ? STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE : STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE); + SlError(fop == FOP_SAVE ? STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE : STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE); } - if (mode == SL_SAVE) { // SAVE game + if (fop == FOP_SAVE) { // SAVE game DEBUG(desync, 1, "save: %08x; %02x; %s", _date, _date_fract, filename); if (_network_server || !_settings_client.gui.threaded_saves) threaded = false; @@ -2837,24 +2847,25 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb, boo } /* LOAD game */ - assert(mode == SL_LOAD || mode == SL_LOAD_CHECK); + assert(fop == FOP_LOAD || fop == FOP_CHECK); DEBUG(desync, 1, "load: %s", filename); - return DoLoad(new FileReader(fh), mode == SL_LOAD_CHECK); + return DoLoad(new FileReader(fh), fop == FOP_CHECK); } catch (...) { + /* This code may be executed both for old and new save games. */ ClearSaveLoadState(); /* Skip the "colour" character */ - if (mode != SL_LOAD_CHECK) DEBUG(sl, 0, "%s", GetSaveLoadErrorString() + 3); + if (fop != FOP_CHECK) DEBUG(sl, 0, "%s", GetSaveLoadErrorString() + 3); /* A saver/loader exception!! reinitialize all variables to prevent crash! */ - return (mode == SL_LOAD || mode == SL_OLD_LOAD) ? SL_REINIT : SL_ERROR; + return (fop == FOP_LOAD) ? SL_REINIT : SL_ERROR; } } /** Do a save when exiting the game (_settings_client.gui.autosave_on_exit) */ void DoExitSave() { - SaveOrLoad("exit.sav", SL_SAVE, AUTOSAVE_DIR); + SaveOrLoad("exit.sav", FOP_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR); } /** @@ -2898,34 +2909,27 @@ void GenerateDefaultSaveName(char *buf, const char *last) */ void FileToSaveLoad::SetMode(FiosType ft) { - switch (ft) { - case FIOS_TYPE_FILE: - case FIOS_TYPE_SCENARIO: - this->mode = SL_LOAD; - break; + this->SetMode(FOP_LOAD, GetAbstractFileType(ft), GetDetailedFileType(ft)); +} - case FIOS_TYPE_OLDFILE: - case FIOS_TYPE_OLD_SCENARIO: - this->mode = SL_OLD_LOAD; - break; - -#ifdef WITH_PNG - case FIOS_TYPE_PNG: - this->mode = SL_PNG; - break; -#endif /* WITH_PNG */ - - case FIOS_TYPE_BMP: - this->mode = SL_BMP; - break; - - default: - this->mode = SL_INVALID; - break; +/** + * Set the mode and file type of the file to save or load. + * @param fop File operation being performed. + * @param aft Abstract file type. + * @param dft Detailed file type. + */ +void FileToSaveLoad::SetMode(FileOperation fop, AbstractFileType aft, DetailedFileType dft) +{ + if (aft == FT_INVALID || aft == FT_NONE) { + this->file_op = FOP_INVALID; + this->detail_ftype = DFT_INVALID; + this->abstract_ftype = FT_INVALID; + return; } - this->filetype = GetAbstractFileType(ft); - if (this->filetype == FT_NONE) this->filetype = FT_INVALID; + this->file_op = fop; + this->detail_ftype = dft; + this->abstract_ftype = aft; } #if 0 diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 43b9d5d3ce..7b0ae8f487 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -22,25 +22,16 @@ enum SaveOrLoadResult { SL_REINIT = 2, ///< error that was caught in the middle of updating game state, need to clear it. (can only happen during load) }; -/** Save or load mode. @see SaveOrLoad */ -enum SaveOrLoadMode { - SL_INVALID = -1, ///< Invalid mode. - SL_LOAD = 0, ///< Load game. - SL_SAVE = 1, ///< Save game. - SL_OLD_LOAD = 2, ///< Load old game. - SL_PNG = 3, ///< Load PNG file (height map). - SL_BMP = 4, ///< Load BMP file (height map). - SL_LOAD_CHECK = 5, ///< Load for game preview. -}; - /** Deals with the type of the savegame, independent of extension */ struct FileToSaveLoad { - SaveOrLoadMode mode; ///< savegame/scenario type (old, new) - AbstractFileType filetype; ///< what type of file are we dealing with - char name[MAX_PATH]; ///< name - char title[255]; ///< internal name of the game + FileOperation file_op; ///< File operation to perform. + DetailedFileType detail_ftype; ///< Concrete file type (PNG, BMP, old save, etc). + AbstractFileType abstract_ftype; ///< Abstract type of file (scenario, heightmap, etc). + char name[MAX_PATH]; ///< Name of the file. + char title[255]; ///< Internal name of the game. void SetMode(FiosType ft); + void SetMode(FileOperation fop, AbstractFileType aft, DetailedFileType dft); }; /** Types of save games. */ @@ -58,7 +49,7 @@ extern FileToSaveLoad _file_to_saveload; void GenerateDefaultSaveName(char *buf, const char *last); void SetSaveLoadError(uint16 str); const char *GetSaveLoadErrorString(); -SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb, bool threaded = true); +SaveOrLoadResult SaveOrLoad(const char *filename, FileOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded = true); void WaitTillSaved(); void ProcessAsyncSaveFinish(); void DoExitSave(); diff --git a/src/saveload/signs_sl.cpp b/src/saveload/signs_sl.cpp index 077d34501d..132ac181e4 100644 --- a/src/saveload/signs_sl.cpp +++ b/src/saveload/signs_sl.cpp @@ -60,7 +60,7 @@ static void Load_SIGN() } /* Signs placed in scenario editor shall now be OWNER_DEITY */ - if (IsSavegameVersionBefore(171) && si->owner == OWNER_NONE && _file_to_saveload.filetype == FT_SCENARIO) { + if (IsSavegameVersionBefore(171) && si->owner == OWNER_NONE && _file_to_saveload.abstract_ftype == FT_SCENARIO) { si->owner = OWNER_DEITY; } } diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index bfe853e9a0..95d40cd000 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -142,7 +142,7 @@ static void *_dedicated_video_mem; /* Whether a fork has been done. */ bool _dedicated_forks; -extern bool SafeLoad(const char *filename, int mode, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL); +extern bool SafeLoad(const char *filename, FileOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL); static FVideoDriver_Dedicated iFVideoDriver_Dedicated; @@ -286,7 +286,7 @@ void VideoDriver_Dedicated::MainLoop() _switch_mode = SM_NONE; /* First we need to test if the savegame can be loaded, else we will end up playing the * intro game... */ - if (!SafeLoad(_file_to_saveload.name, _file_to_saveload.mode, GM_NORMAL, BASE_DIR)) { + if (!SafeLoad(_file_to_saveload.name, _file_to_saveload.file_op, _file_to_saveload.detail_ftype, GM_NORMAL, BASE_DIR)) { /* Loading failed, pop out.. */ DEBUG(net, 0, "Loading requested map failed, aborting"); _networking = false; From e735bbebcecc33f55b75f0c7fc543ad023901db3 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:58:04 +0000 Subject: [PATCH 129/417] (svn r27651) -Codechange: Introduce methods for setting the name and title of _file_to_saveload. --- src/console_cmds.cpp | 5 ++--- src/fios_gui.cpp | 9 ++++----- src/openttd.cpp | 2 +- src/saveload/saveload.cpp | 18 ++++++++++++++++++ src/saveload/saveload.h | 2 ++ 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index c26f17f29e..863929b94c 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -363,9 +363,8 @@ DEF_CONSOLE_CMD(ConLoad) if (GetAbstractFileType(item->type) == FT_SAVEGAME) { _switch_mode = SM_LOAD_GAME; _file_to_saveload.SetMode(item->type); - - strecpy(_file_to_saveload.name, FiosBrowseTo(item), lastof(_file_to_saveload.name)); - strecpy(_file_to_saveload.title, item->title, lastof(_file_to_saveload.title)); + _file_to_saveload.SetName(FiosBrowseTo(item)); + _file_to_saveload.SetTitle(item->title); } else { IConsolePrintF(CC_ERROR, "%s: Not a savegame.", file); } diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 0c09f96ab0..a0f0f1b296 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -537,9 +537,8 @@ public: if (this->selected != NULL && !_load_check_data.HasErrors()) { const char *name = FiosBrowseTo(this->selected); _file_to_saveload.SetMode(this->selected->type); - - strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name)); - strecpy(_file_to_saveload.title, this->selected->title, lastof(_file_to_saveload.title)); + _file_to_saveload.SetName(name); + _file_to_saveload.SetTitle(this->selected->title); if (this->abstract_filetype == FT_HEIGHTMAP) { delete this; @@ -602,8 +601,8 @@ public: } else { assert(this->abstract_filetype == FT_HEIGHTMAP); _file_to_saveload.SetMode(file->type); - strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name)); - strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title)); + _file_to_saveload.SetName(name); + _file_to_saveload.SetTitle(file->title); delete this; ShowHeightmapLoad(); diff --git a/src/openttd.cpp b/src/openttd.cpp index 4464e80168..f00ce74c37 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -618,7 +618,7 @@ int openttd_main(int argc, char *argv[]) case 'e': _switch_mode = (_switch_mode == SM_LOAD_GAME || _switch_mode == SM_LOAD_SCENARIO ? SM_LOAD_SCENARIO : SM_EDITOR); break; case 'g': if (mgo.opt != NULL) { - strecpy(_file_to_saveload.name, mgo.opt, lastof(_file_to_saveload.name)); + _file_to_saveload.SetName(mgo.opt); bool is_scenario = _switch_mode == SM_EDITOR || _switch_mode == SM_LOAD_SCENARIO; _switch_mode = is_scenario ? SM_LOAD_SCENARIO : SM_LOAD_GAME; _file_to_saveload.SetMode(FOP_LOAD, is_scenario ? FT_SCENARIO : FT_SAVEGAME, DFT_GAME_FILE); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 4dd8a4c7b6..b78171e600 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2932,6 +2932,24 @@ void FileToSaveLoad::SetMode(FileOperation fop, AbstractFileType aft, DetailedFi this->abstract_ftype = aft; } +/** + * Set the name of the file. + * @param name Name of the file. + */ +void FileToSaveLoad::SetName(const char *name) +{ + strecpy(this->name, name, lastof(this->name)); +} + +/** + * Set the title of the file. + * @param title Title of the file. + */ +void FileToSaveLoad::SetTitle(const char *title) +{ + strecpy(this->title, title, lastof(this->title)); +} + #if 0 /** * Function to get the type of the savegame by looking at the file header. diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 7b0ae8f487..b25e91e2cd 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -32,6 +32,8 @@ struct FileToSaveLoad { void SetMode(FiosType ft); void SetMode(FileOperation fop, AbstractFileType aft, DetailedFileType dft); + void SetName(const char *name); + void SetTitle(const char *title); }; /** Types of save games. */ From 0b8869930fb91824e425d9eebcdf351eeab0bcee Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 15:10:41 +0000 Subject: [PATCH 130/417] (svn r27652) -Fix(r27650): Use the file operation being performed to set the _sl.action variable. --- src/saveload/saveload.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index b78171e600..8da0d03984 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2812,7 +2812,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, FileOperation fop, DetailedFil } assert(dft == DFT_GAME_FILE); - switch (dft) { + switch (fop) { case FOP_CHECK: _sl.action = SLA_LOAD_CHECK; break; From f286ba8db2c8f57346ba4cd273a00ad171619b92 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 16:06:50 +0000 Subject: [PATCH 131/417] (svn r27653) -Fix(r27647): Rename FileOperation enum and values to SaveLoadOperation to avoid nameclash with windows compiler toolkit. --- src/console_cmds.cpp | 4 ++-- src/crashlog.cpp | 2 +- src/fileio_type.h | 10 ++++----- src/fios.cpp | 32 +++++++++++++-------------- src/fios.h | 12 +++++----- src/fios_gui.cpp | 36 +++++++++++++++--------------- src/genworld.cpp | 2 +- src/intro_gui.cpp | 6 ++--- src/network/network_client.cpp | 4 ++-- src/network/network_gui.cpp | 6 ++--- src/openttd.cpp | 20 ++++++++--------- src/saveload/saveload.cpp | 40 +++++++++++++++++----------------- src/saveload/saveload.h | 6 ++--- src/toolbar_gui.cpp | 14 ++++++------ src/video/dedicated_v.cpp | 2 +- 15 files changed, 98 insertions(+), 98 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 863929b94c..9cfc8e8f9d 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -67,7 +67,7 @@ public: void ValidateFileList(bool force_reload = false) { if (force_reload || !this->file_list_valid) { - this->BuildFileList(FT_SAVEGAME, FOP_LOAD); + this->BuildFileList(FT_SAVEGAME, SLO_LOAD); this->file_list_valid = true; } } @@ -318,7 +318,7 @@ DEF_CONSOLE_CMD(ConSave) char *filename = str_fmt("%s.sav", argv[1]); IConsolePrint(CC_DEFAULT, "Saving map..."); - if (SaveOrLoad(filename, FOP_SAVE, DFT_GAME_FILE, SAVE_DIR) != SL_OK) { + if (SaveOrLoad(filename, SLO_SAVE, DFT_GAME_FILE, SAVE_DIR) != SL_OK) { IConsolePrint(CC_ERROR, "Saving map failed"); } else { IConsolePrintF(CC_DEFAULT, "Map successfully saved to %s", filename); diff --git a/src/crashlog.cpp b/src/crashlog.cpp index 83beb94ff8..53a85e442c 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -388,7 +388,7 @@ bool CrashLog::WriteSavegame(char *filename, const char *filename_last) const seprintf(filename, filename_last, "%scrash.sav", _personal_dir); /* Don't do a threaded saveload. */ - return SaveOrLoad(filename, FOP_SAVE, DFT_GAME_FILE, NO_DIRECTORY, false) == SL_OK; + return SaveOrLoad(filename, SLO_SAVE, DFT_GAME_FILE, NO_DIRECTORY, false) == SL_OK; } catch (...) { return false; } diff --git a/src/fileio_type.h b/src/fileio_type.h index 0c4602bbaf..fd3ac84554 100644 --- a/src/fileio_type.h +++ b/src/fileio_type.h @@ -46,12 +46,12 @@ enum DetailedFileType { }; /** Operation performed on the file. */ -enum FileOperation { - FOP_CHECK, ///< Load file for checking and/or preview. - FOP_LOAD, ///< File is being loaded. - FOP_SAVE, ///< File is being saved. +enum SaveLoadOperation { + SLO_CHECK, ///< Load file for checking and/or preview. + SLO_LOAD, ///< File is being loaded. + SLO_SAVE, ///< File is being saved. - FOP_INVALID, ///< Unknown file operation. + SLO_INVALID, ///< Unknown file operation. }; /** diff --git a/src/fios.cpp b/src/fios.cpp index 987542acc9..8ed01152f0 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -71,13 +71,13 @@ FileList::~FileList() /** * Construct a file list with the given kind of files, for the stated purpose. * @param abstract_filetype Kind of files to collect. - * @param fop Purpose of the collection, either #FOP_LOAD or #FOP_SAVE. + * @param fop Purpose of the collection, either #SLO_LOAD or #SLO_SAVE. */ -void FileList::BuildFileList(AbstractFileType abstract_filetype, FileOperation fop) +void FileList::BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperation fop) { this->Clear(); - assert(fop == FOP_LOAD || FOP_SAVE); + assert(fop == SLO_LOAD || SLO_SAVE); switch (abstract_filetype) { case FT_NONE: break; @@ -274,13 +274,13 @@ bool FiosDelete(const char *name) return unlink(filename) == 0; } -typedef FiosType fios_getlist_callback_proc(FileOperation fop, const char *filename, const char *ext, char *title, const char *last); +typedef FiosType fios_getlist_callback_proc(SaveLoadOperation fop, const char *filename, const char *ext, char *title, const char *last); /** * Scanner to scan for a particular type of FIOS file. */ class FiosFileScanner : public FileScanner { - FileOperation fop; ///< The kind of file we are looking for. + SaveLoadOperation fop; ///< The kind of file we are looking for. fios_getlist_callback_proc *callback_proc; ///< Callback to check whether the file may be added FileList &file_list; ///< Destination of the found files. public: @@ -290,7 +290,7 @@ public: * @param callback_proc The function that is called where you need to do the filtering. * @param file_list Destination of the found files. */ - FiosFileScanner(FileOperation fop, fios_getlist_callback_proc *callback_proc, FileList &file_list) : + FiosFileScanner(SaveLoadOperation fop, fios_getlist_callback_proc *callback_proc, FileList &file_list) : fop(fop), callback_proc(callback_proc), file_list(file_list) {} @@ -354,7 +354,7 @@ bool FiosFileScanner::AddFile(const char *filename, size_t basepath_length, cons * @param subdir The directory from where to start (global) searching. * @param file_list Destination of the found files. */ -static void FiosGetFileList(FileOperation fop, fios_getlist_callback_proc *callback_proc, Subdirectory subdir, FileList &file_list) +static void FiosGetFileList(SaveLoadOperation fop, fios_getlist_callback_proc *callback_proc, Subdirectory subdir, FileList &file_list) { struct stat sb; struct dirent *dirent; @@ -456,7 +456,7 @@ static void GetFileTitle(const char *file, char *title, const char *last, Subdir * @see FiosGetFileList * @see FiosGetSavegameList */ -FiosType FiosGetSavegameListCallback(FileOperation fop, const char *file, const char *ext, char *title, const char *last) +FiosType FiosGetSavegameListCallback(SaveLoadOperation fop, const char *file, const char *ext, char *title, const char *last) { /* Show savegame files * .SAV OpenTTD saved game @@ -472,7 +472,7 @@ FiosType FiosGetSavegameListCallback(FileOperation fop, const char *file, const return FIOS_TYPE_FILE; } - if (fop == FOP_LOAD) { + if (fop == SLO_LOAD) { if (strcasecmp(ext, ".ss1") == 0 || strcasecmp(ext, ".sv1") == 0 || strcasecmp(ext, ".sv2") == 0) { if (title != NULL) GetOldSaveGameName(file, title, last); @@ -489,7 +489,7 @@ FiosType FiosGetSavegameListCallback(FileOperation fop, const char *file, const * @param file_list Destination of the found files. * @see FiosGetFileList */ -void FiosGetSavegameList(FileOperation fop, FileList &file_list) +void FiosGetSavegameList(SaveLoadOperation fop, FileList &file_list) { static char *fios_save_path = NULL; static char *fios_save_path_last = NULL; @@ -517,7 +517,7 @@ void FiosGetSavegameList(FileOperation fop, FileList &file_list) * @see FiosGetFileList * @see FiosGetScenarioList */ -static FiosType FiosGetScenarioListCallback(FileOperation fop, const char *file, const char *ext, char *title, const char *last) +static FiosType FiosGetScenarioListCallback(SaveLoadOperation fop, const char *file, const char *ext, char *title, const char *last) { /* Show scenario files * .SCN OpenTTD style scenario file @@ -528,7 +528,7 @@ static FiosType FiosGetScenarioListCallback(FileOperation fop, const char *file, return FIOS_TYPE_SCENARIO; } - if (fop == FOP_LOAD) { + if (fop == SLO_LOAD) { if (strcasecmp(ext, ".sv0") == 0 || strcasecmp(ext, ".ss0") == 0 ) { GetOldSaveGameName(file, title, last); return FIOS_TYPE_OLD_SCENARIO; @@ -544,7 +544,7 @@ static FiosType FiosGetScenarioListCallback(FileOperation fop, const char *file, * @param file_list Destination of the found files. * @see FiosGetFileList */ -void FiosGetScenarioList(FileOperation fop, FileList &file_list) +void FiosGetScenarioList(SaveLoadOperation fop, FileList &file_list) { static char *fios_scn_path = NULL; static char *fios_scn_path_last = NULL; @@ -562,11 +562,11 @@ void FiosGetScenarioList(FileOperation fop, FileList &file_list) char base_path[MAX_PATH]; FioGetDirectory(base_path, lastof(base_path), SCENARIO_DIR); - Subdirectory subdir = (fop == FOP_LOAD && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY; + Subdirectory subdir = (fop == SLO_LOAD && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY; FiosGetFileList(fop, &FiosGetScenarioListCallback, subdir, file_list); } -static FiosType FiosGetHeightmapListCallback(FileOperation fop, const char *file, const char *ext, char *title, const char *last) +static FiosType FiosGetHeightmapListCallback(SaveLoadOperation fop, const char *file, const char *ext, char *title, const char *last) { /* Show heightmap files * .PNG PNG Based heightmap files @@ -615,7 +615,7 @@ static FiosType FiosGetHeightmapListCallback(FileOperation fop, const char *file * @param fop Purpose of collecting the list. * @param file_list Destination of the found files. */ -void FiosGetHeightmapList(FileOperation fop, FileList &file_list) +void FiosGetHeightmapList(SaveLoadOperation fop, FileList &file_list) { static char *fios_hmap_path = NULL; static char *fios_hmap_path_last = NULL; diff --git a/src/fios.h b/src/fios.h index 80654812b2..51e0c275a6 100644 --- a/src/fios.h +++ b/src/fios.h @@ -190,7 +190,7 @@ public: this->files.Compact(); } - void BuildFileList(AbstractFileType abstract_filetype, FileOperation fop); + void BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperation fop); const FiosItem *FindItem(const char *file); SmallVector files; ///< The list of files. @@ -207,11 +207,11 @@ DECLARE_ENUM_AS_BIT_SET(SortingBits) /* Variables to display file lists */ extern SortingBits _savegame_sort_order; -void ShowSaveLoadDialog(AbstractFileType abstract_filetype, FileOperation fop); +void ShowSaveLoadDialog(AbstractFileType abstract_filetype, SaveLoadOperation fop); -void FiosGetSavegameList(FileOperation fop, FileList &file_list); -void FiosGetScenarioList(FileOperation fop, FileList &file_list); -void FiosGetHeightmapList(FileOperation fop, FileList &file_list); +void FiosGetSavegameList(SaveLoadOperation fop, FileList &file_list); +void FiosGetScenarioList(SaveLoadOperation fop, FileList &file_list); +void FiosGetHeightmapList(SaveLoadOperation fop, FileList &file_list); const char *FiosBrowseTo(const FiosItem *item); @@ -220,7 +220,7 @@ bool FiosDelete(const char *name); void FiosMakeHeightmapName(char *buf, const char *name, const char *last); void FiosMakeSavegameName(char *buf, const char *name, const char *last); -FiosType FiosGetSavegameListCallback(FileOperation fop, const char *file, const char *ext, char *title, const char *last); +FiosType FiosGetSavegameListCallback(SaveLoadOperation fop, const char *file, const char *ext, char *title, const char *last); int CDECL CompareFiosItems(const FiosItem *a, const FiosItem *b); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index a0f0f1b296..e6cd9625cc 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -229,7 +229,7 @@ struct SaveLoadWindow : public Window { private: QueryString filename_editbox; ///< Filename editbox. AbstractFileType abstract_filetype; /// Type of file to select. - FileOperation fop; ///< File operation to perform. + SaveLoadOperation fop; ///< File operation to perform. FileList fios_items; ///< Save game list. FiosItem o_dir; const FiosItem *selected; ///< Selected game in #fios_items, or \c NULL. @@ -243,13 +243,13 @@ public: this->filename_editbox.text.UpdateSize(); } - SaveLoadWindow(WindowDesc *desc, AbstractFileType abstract_filetype, FileOperation fop) + SaveLoadWindow(WindowDesc *desc, AbstractFileType abstract_filetype, SaveLoadOperation fop) : Window(desc), filename_editbox(64), abstract_filetype(abstract_filetype), fop(fop) { - assert(this->fop == FOP_SAVE || this->fop == FOP_LOAD); + assert(this->fop == SLO_SAVE || this->fop == SLO_LOAD); /* For saving, construct an initial file name. */ - if (this->fop == FOP_SAVE) { + if (this->fop == SLO_SAVE) { switch (this->abstract_filetype) { case FT_SAVEGAME: this->GenerateFileName(); @@ -268,7 +268,7 @@ public: this->filename_editbox.ok_button = WID_SL_SAVE_GAME; this->CreateNestedTree(true); - if (this->fop == FOP_LOAD && this->abstract_filetype == FT_SAVEGAME) { + if (this->fop == SLO_LOAD && this->abstract_filetype == FT_SAVEGAME) { this->GetWidget(WID_SL_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL); } @@ -276,15 +276,15 @@ public: StringID caption_string; switch (this->abstract_filetype) { case FT_SAVEGAME: - caption_string = (this->fop == FOP_SAVE) ? STR_SAVELOAD_SAVE_CAPTION : STR_SAVELOAD_LOAD_CAPTION; + caption_string = (this->fop == SLO_SAVE) ? STR_SAVELOAD_SAVE_CAPTION : STR_SAVELOAD_LOAD_CAPTION; break; case FT_SCENARIO: - caption_string = (this->fop == FOP_SAVE) ? STR_SAVELOAD_SAVE_SCENARIO : STR_SAVELOAD_LOAD_SCENARIO; + caption_string = (this->fop == SLO_SAVE) ? STR_SAVELOAD_SAVE_SCENARIO : STR_SAVELOAD_LOAD_SCENARIO; break; case FT_HEIGHTMAP: - caption_string = (this->fop == FOP_SAVE) ? STR_SAVELOAD_SAVE_HEIGHTMAP : STR_SAVELOAD_LOAD_HEIGHTMAP; + caption_string = (this->fop == SLO_SAVE) ? STR_SAVELOAD_SAVE_HEIGHTMAP : STR_SAVELOAD_LOAD_HEIGHTMAP; break; default: @@ -328,7 +328,7 @@ public: } /* Focus the edit box by default in the save windows */ - if (this->fop == FOP_SAVE) this->SetFocusedWidget(WID_SL_SAVE_OSK_TITLE); + if (this->fop == SLO_SAVE) this->SetFocusedWidget(WID_SL_SAVE_OSK_TITLE); } virtual ~SaveLoadWindow() @@ -438,7 +438,7 @@ public: } /* Hide the NewGRF stuff when saving. We also hide the button. */ - if (this->fop == FOP_LOAD && (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO)) { + if (this->fop == SLO_LOAD && (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO)) { y += WD_PAR_VSEP_NORMAL; if (y > y_max) break; @@ -583,19 +583,19 @@ public: if (GetDetailedFileType(file->type) == DFT_GAME_FILE) { /* Other detailed file types cannot be checked before. */ - SaveOrLoad(name, FOP_CHECK, DFT_GAME_FILE, NO_DIRECTORY, false); + SaveOrLoad(name, SLO_CHECK, DFT_GAME_FILE, NO_DIRECTORY, false); } this->InvalidateData(1); } - if (this->fop == FOP_SAVE) { + if (this->fop == SLO_SAVE) { /* Copy clicked name to editbox */ this->filename_editbox.text.Assign(file->title); this->SetWidgetDirty(WID_SL_SAVE_OSK_TITLE); } } else if (!_load_check_data.HasErrors()) { this->selected = file; - if (this->fop == FOP_LOAD) { + if (this->fop == SLO_LOAD) { if (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO) { this->OnClick(pt, WID_SL_LOAD_BUTTON, 1); } else { @@ -621,7 +621,7 @@ public: ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, WL_ERROR); } else { #if defined(ENABLE_NETWORK) - assert(this->fop == FOP_LOAD); + assert(this->fop == SLO_LOAD); switch (this->abstract_filetype) { default: NOT_REACHED(); case FT_SCENARIO: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_SCENARIO); break; @@ -654,7 +654,7 @@ public: virtual void OnTimeout() { /* Widgets WID_SL_DELETE_SELECTION and WID_SL_SAVE_GAME only exist when saving to a file. */ - if (this->fop != FOP_SAVE) return; + if (this->fop != SLO_SAVE) return; if (this->IsWidgetLowered(WID_SL_DELETE_SELECTION)) { // Delete button clicked if (!FiosDelete(this->filename_editbox.text.buf)) { @@ -707,7 +707,7 @@ public: /* Selection changes */ if (!gui_scope) break; - if (this->fop != FOP_LOAD) break; + if (this->fop != SLO_LOAD) break; switch (this->abstract_filetype) { case FT_HEIGHTMAP: @@ -764,12 +764,12 @@ static WindowDesc _save_dialog_desc( * @param abstract_filetype Kind of file to handle. * @param fop File operation to perform (load or save). */ -void ShowSaveLoadDialog(AbstractFileType abstract_filetype, FileOperation fop) +void ShowSaveLoadDialog(AbstractFileType abstract_filetype, SaveLoadOperation fop) { DeleteWindowById(WC_SAVELOAD, 0); WindowDesc *sld; - if (fop == FOP_SAVE) { + if (fop == SLO_SAVE) { sld = &_save_dialog_desc; } else { /* Dialogue for loading a file. */ diff --git a/src/genworld.cpp b/src/genworld.cpp index 95e28fcdf0..a08b323116 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -204,7 +204,7 @@ static void _GenerateWorld(void *) if (_debug_desync_level > 0) { char name[MAX_PATH]; seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); - SaveOrLoad(name, FOP_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false); + SaveOrLoad(name, SLO_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false); } } catch (...) { BasePersistentStorageArray::SwitchMode(PSM_LEAVE_GAMELOOP, true); diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp index b6ac73cb74..a09a59a10d 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -111,9 +111,9 @@ struct SelectGameWindow : public Window { } break; - case WID_SGI_LOAD_GAME: ShowSaveLoadDialog(FT_SAVEGAME, FOP_LOAD); break; - case WID_SGI_PLAY_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, FOP_LOAD); break; - case WID_SGI_PLAY_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,FOP_LOAD); break; + case WID_SGI_LOAD_GAME: ShowSaveLoadDialog(FT_SAVEGAME, SLO_LOAD); break; + case WID_SGI_PLAY_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, SLO_LOAD); break; + case WID_SGI_PLAY_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,SLO_LOAD); break; case WID_SGI_EDIT_SCENARIO: StartScenarioEditor(); break; case WID_SGI_PLAY_NETWORK: diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index a33e5c6814..edfe4587f3 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -520,7 +520,7 @@ bool ClientNetworkGameSocketHandler::IsConnected() * DEF_CLIENT_RECEIVE_COMMAND has parameter: Packet *p ************/ -extern bool SafeLoad(const char *filename, FileOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL); +extern bool SafeLoad(const char *filename, SaveLoadOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL); NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_FULL(Packet *p) { @@ -836,7 +836,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_MAP_DONE(Packet /* The map is done downloading, load it */ ClearErrorMessages(); - bool load_success = SafeLoad(NULL, FOP_LOAD, DFT_GAME_FILE, GM_NORMAL, NO_DIRECTORY, lf); + bool load_success = SafeLoad(NULL, SLO_LOAD, DFT_GAME_FILE, GM_NORMAL, NO_DIRECTORY, lf); /* Long savegame loads shouldn't affect the lag calculation! */ this->last_packet = _realtime_tick; diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index c3aef5b0fd..520c4f60a8 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -1187,17 +1187,17 @@ struct NetworkStartServerWindow : public Window { case WID_NSS_LOAD_GAME: _is_network_server = true; - ShowSaveLoadDialog(FT_SAVEGAME, FOP_LOAD); + ShowSaveLoadDialog(FT_SAVEGAME, SLO_LOAD); break; case WID_NSS_PLAY_SCENARIO: _is_network_server = true; - ShowSaveLoadDialog(FT_SCENARIO, FOP_LOAD); + ShowSaveLoadDialog(FT_SCENARIO, SLO_LOAD); break; case WID_NSS_PLAY_HEIGHTMAP: _is_network_server = true; - ShowSaveLoadDialog(FT_HEIGHTMAP,FOP_LOAD); + ShowSaveLoadDialog(FT_HEIGHTMAP,SLO_LOAD); break; } } diff --git a/src/openttd.cpp b/src/openttd.cpp index f00ce74c37..58f011b082 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -328,7 +328,7 @@ static void LoadIntroGame(bool load_newgrfs = true) SetupColoursAndInitialWindow(); /* Load the default opening screen savegame */ - if (SaveOrLoad("opntitle.dat", FOP_LOAD, DFT_GAME_FILE, BASESET_DIR) != SL_OK) { + if (SaveOrLoad("opntitle.dat", SLO_LOAD, DFT_GAME_FILE, BASESET_DIR) != SL_OK) { GenerateWorld(GWM_EMPTY, 64, 64); // if failed loading, make empty world. WaitTillGeneratedWorld(); SetLocalCompany(COMPANY_SPECTATOR); @@ -621,12 +621,12 @@ int openttd_main(int argc, char *argv[]) _file_to_saveload.SetName(mgo.opt); bool is_scenario = _switch_mode == SM_EDITOR || _switch_mode == SM_LOAD_SCENARIO; _switch_mode = is_scenario ? SM_LOAD_SCENARIO : SM_LOAD_GAME; - _file_to_saveload.SetMode(FOP_LOAD, is_scenario ? FT_SCENARIO : FT_SAVEGAME, DFT_GAME_FILE); + _file_to_saveload.SetMode(SLO_LOAD, is_scenario ? FT_SCENARIO : FT_SAVEGAME, DFT_GAME_FILE); /* if the file doesn't exist or it is not a valid savegame, let the saveload code show an error */ const char *t = strrchr(_file_to_saveload.name, '.'); if (t != NULL) { - FiosType ft = FiosGetSavegameListCallback(FOP_LOAD, _file_to_saveload.name, t, NULL, NULL); + FiosType ft = FiosGetSavegameListCallback(SLO_LOAD, _file_to_saveload.name, t, NULL, NULL); if (ft != FIOS_TYPE_INVALID) _file_to_saveload.SetMode(ft); } @@ -648,10 +648,10 @@ int openttd_main(int argc, char *argv[]) char title[80]; title[0] = '\0'; - FiosGetSavegameListCallback(FOP_LOAD, mgo.opt, strrchr(mgo.opt, '.'), title, lastof(title)); + FiosGetSavegameListCallback(SLO_LOAD, mgo.opt, strrchr(mgo.opt, '.'), title, lastof(title)); _load_check_data.Clear(); - SaveOrLoadResult res = SaveOrLoad(mgo.opt, FOP_CHECK, DFT_GAME_FILE, SAVE_DIR, false); + SaveOrLoadResult res = SaveOrLoad(mgo.opt, SLO_CHECK, DFT_GAME_FILE, SAVE_DIR, false); if (res != SL_OK || _load_check_data.HasErrors()) { fprintf(stderr, "Failed to open savegame\n"); if (_load_check_data.HasErrors()) { @@ -998,9 +998,9 @@ static void MakeNewEditorWorld() * @param subdir default directory to look for filename, set to 0 if not needed * @param lf Load filter to use, if NULL: use filename + subdir. */ -bool SafeLoad(const char *filename, FileOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL) +bool SafeLoad(const char *filename, SaveLoadOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL) { - assert(fop == FOP_LOAD); + assert(fop == SLO_LOAD); assert(dft == DFT_GAME_FILE || (lf == NULL && dft == DFT_OLD_GAME_FILE)); GameMode ogm = _game_mode; @@ -1158,7 +1158,7 @@ void SwitchToMode(SwitchMode new_mode) case SM_SAVE_GAME: // Save game. /* Make network saved games on pause compatible to singleplayer */ - if (SaveOrLoad(_file_to_saveload.name, FOP_SAVE, DFT_GAME_FILE, NO_DIRECTORY) != SL_OK) { + if (SaveOrLoad(_file_to_saveload.name, SLO_SAVE, DFT_GAME_FILE, NO_DIRECTORY) != SL_OK) { SetDParamStr(0, GetSaveLoadErrorString()); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_ERROR); } else { @@ -1369,7 +1369,7 @@ void StateGameLoop() /* Save the desync savegame if needed. */ char name[MAX_PATH]; seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); - SaveOrLoad(name, FOP_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false); + SaveOrLoad(name, SLO_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false); } CheckCaches(); @@ -1426,7 +1426,7 @@ static void DoAutosave() } DEBUG(sl, 2, "Autosaving to '%s'", buf); - if (SaveOrLoad(buf, FOP_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR) != SL_OK) { + if (SaveOrLoad(buf, SLO_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR) != SL_OK) { ShowErrorMessage(STR_ERROR_AUTOSAVE_FAILED, INVALID_STRING_ID, WL_ERROR); } } diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 8da0d03984..7b7341115a 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2778,10 +2778,10 @@ SaveOrLoadResult LoadWithFilter(LoadFilter *reader) * @param threaded True when threaded saving is allowed * @return Return the result of the action. #SL_OK, #SL_ERROR, or #SL_REINIT ("unload" the game) */ -SaveOrLoadResult SaveOrLoad(const char *filename, FileOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded) +SaveOrLoadResult SaveOrLoad(const char *filename, SaveLoadOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded) { /* An instance of saving is already active, so don't go saving again */ - if (_sl.saveinprogress && fop == FOP_SAVE && dft == DFT_GAME_FILE && threaded) { + if (_sl.saveinprogress && fop == SLO_SAVE && dft == DFT_GAME_FILE && threaded) { /* if not an autosave, but a user action, show error message */ if (!_do_autosave) ShowErrorMessage(STR_ERROR_SAVE_STILL_IN_PROGRESS, INVALID_STRING_ID, WL_ERROR); return SL_OK; @@ -2790,7 +2790,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, FileOperation fop, DetailedFil try { /* Load a TTDLX or TTDPatch game */ - if (fop == FOP_LOAD && dft == DFT_OLD_GAME_FILE) { + if (fop == SLO_LOAD && dft == DFT_OLD_GAME_FILE) { InitializeGame(256, 256, true, true); // set a mapsize of 256x256 for TTDPatch games or it might get confused /* TTD/TTO savegames have no NewGRFs, TTDP savegame have them @@ -2813,33 +2813,33 @@ SaveOrLoadResult SaveOrLoad(const char *filename, FileOperation fop, DetailedFil assert(dft == DFT_GAME_FILE); switch (fop) { - case FOP_CHECK: + case SLO_CHECK: _sl.action = SLA_LOAD_CHECK; break; - case FOP_LOAD: + case SLO_LOAD: _sl.action = SLA_LOAD; break; - case FOP_SAVE: + case SLO_SAVE: _sl.action = SLA_SAVE; break; default: NOT_REACHED(); } - FILE *fh = (fop == FOP_SAVE) ? FioFOpenFile(filename, "wb", sb) : FioFOpenFile(filename, "rb", sb); + FILE *fh = (fop == SLO_SAVE) ? FioFOpenFile(filename, "wb", sb) : FioFOpenFile(filename, "rb", sb); /* Make it a little easier to load savegames from the console */ - if (fh == NULL && fop != FOP_SAVE) fh = FioFOpenFile(filename, "rb", SAVE_DIR); - if (fh == NULL && fop != FOP_SAVE) fh = FioFOpenFile(filename, "rb", BASE_DIR); - if (fh == NULL && fop != FOP_SAVE) fh = FioFOpenFile(filename, "rb", SCENARIO_DIR); + if (fh == NULL && fop != SLO_SAVE) fh = FioFOpenFile(filename, "rb", SAVE_DIR); + if (fh == NULL && fop != SLO_SAVE) fh = FioFOpenFile(filename, "rb", BASE_DIR); + if (fh == NULL && fop != SLO_SAVE) fh = FioFOpenFile(filename, "rb", SCENARIO_DIR); if (fh == NULL) { - SlError(fop == FOP_SAVE ? STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE : STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE); + SlError(fop == SLO_SAVE ? STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE : STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE); } - if (fop == FOP_SAVE) { // SAVE game + if (fop == SLO_SAVE) { // SAVE game DEBUG(desync, 1, "save: %08x; %02x; %s", _date, _date_fract, filename); if (_network_server || !_settings_client.gui.threaded_saves) threaded = false; @@ -2847,25 +2847,25 @@ SaveOrLoadResult SaveOrLoad(const char *filename, FileOperation fop, DetailedFil } /* LOAD game */ - assert(fop == FOP_LOAD || fop == FOP_CHECK); + assert(fop == SLO_LOAD || fop == SLO_CHECK); DEBUG(desync, 1, "load: %s", filename); - return DoLoad(new FileReader(fh), fop == FOP_CHECK); + return DoLoad(new FileReader(fh), fop == SLO_CHECK); } catch (...) { /* This code may be executed both for old and new save games. */ ClearSaveLoadState(); /* Skip the "colour" character */ - if (fop != FOP_CHECK) DEBUG(sl, 0, "%s", GetSaveLoadErrorString() + 3); + if (fop != SLO_CHECK) DEBUG(sl, 0, "%s", GetSaveLoadErrorString() + 3); /* A saver/loader exception!! reinitialize all variables to prevent crash! */ - return (fop == FOP_LOAD) ? SL_REINIT : SL_ERROR; + return (fop == SLO_LOAD) ? SL_REINIT : SL_ERROR; } } /** Do a save when exiting the game (_settings_client.gui.autosave_on_exit) */ void DoExitSave() { - SaveOrLoad("exit.sav", FOP_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR); + SaveOrLoad("exit.sav", SLO_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR); } /** @@ -2909,7 +2909,7 @@ void GenerateDefaultSaveName(char *buf, const char *last) */ void FileToSaveLoad::SetMode(FiosType ft) { - this->SetMode(FOP_LOAD, GetAbstractFileType(ft), GetDetailedFileType(ft)); + this->SetMode(SLO_LOAD, GetAbstractFileType(ft), GetDetailedFileType(ft)); } /** @@ -2918,10 +2918,10 @@ void FileToSaveLoad::SetMode(FiosType ft) * @param aft Abstract file type. * @param dft Detailed file type. */ -void FileToSaveLoad::SetMode(FileOperation fop, AbstractFileType aft, DetailedFileType dft) +void FileToSaveLoad::SetMode(SaveLoadOperation fop, AbstractFileType aft, DetailedFileType dft) { if (aft == FT_INVALID || aft == FT_NONE) { - this->file_op = FOP_INVALID; + this->file_op = SLO_INVALID; this->detail_ftype = DFT_INVALID; this->abstract_ftype = FT_INVALID; return; diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index b25e91e2cd..1513355c8d 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -24,14 +24,14 @@ enum SaveOrLoadResult { /** Deals with the type of the savegame, independent of extension */ struct FileToSaveLoad { - FileOperation file_op; ///< File operation to perform. + SaveLoadOperation file_op; ///< File operation to perform. DetailedFileType detail_ftype; ///< Concrete file type (PNG, BMP, old save, etc). AbstractFileType abstract_ftype; ///< Abstract type of file (scenario, heightmap, etc). char name[MAX_PATH]; ///< Name of the file. char title[255]; ///< Internal name of the game. void SetMode(FiosType ft); - void SetMode(FileOperation fop, AbstractFileType aft, DetailedFileType dft); + void SetMode(SaveLoadOperation fop, AbstractFileType aft, DetailedFileType dft); void SetName(const char *name); void SetTitle(const char *title); }; @@ -51,7 +51,7 @@ extern FileToSaveLoad _file_to_saveload; void GenerateDefaultSaveName(char *buf, const char *last); void SetSaveLoadError(uint16 str); const char *GetSaveLoadErrorString(); -SaveOrLoadResult SaveOrLoad(const char *filename, FileOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded = true); +SaveOrLoadResult SaveOrLoad(const char *filename, SaveLoadOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded = true); void WaitTillSaved(); void ProcessAsyncSaveFinish(); void DoExitSave(); diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index 55b49fd748..2649552f45 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -427,17 +427,17 @@ static CallBackFunction MenuClickSaveLoad(int index = 0) { if (_game_mode == GM_EDITOR) { switch (index) { - case SLEME_SAVE_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, FOP_SAVE); break; - case SLEME_LOAD_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, FOP_LOAD); break; - case SLEME_SAVE_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,FOP_SAVE); break; - case SLEME_LOAD_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,FOP_LOAD); break; + case SLEME_SAVE_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, SLO_SAVE); break; + case SLEME_LOAD_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, SLO_LOAD); break; + case SLEME_SAVE_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,SLO_SAVE); break; + case SLEME_LOAD_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,SLO_LOAD); break; case SLEME_EXIT_TOINTRO: AskExitToGameMenu(); break; case SLEME_EXIT_GAME: HandleExitGameRequest(); break; } } else { switch (index) { - case SLNME_SAVE_GAME: ShowSaveLoadDialog(FT_SAVEGAME, FOP_SAVE); break; - case SLNME_LOAD_GAME: ShowSaveLoadDialog(FT_SAVEGAME, FOP_LOAD); break; + case SLNME_SAVE_GAME: ShowSaveLoadDialog(FT_SAVEGAME, SLO_SAVE); break; + case SLNME_LOAD_GAME: ShowSaveLoadDialog(FT_SAVEGAME, SLO_LOAD); break; case SLNME_EXIT_TOINTRO: AskExitToGameMenu(); break; case SLNME_EXIT_GAME: HandleExitGameRequest(); break; } @@ -1712,7 +1712,7 @@ struct MainToolbarWindow : Window { case MTHK_FASTFORWARD: ToolbarFastForwardClick(this); break; case MTHK_SETTINGS: ShowGameOptions(); break; case MTHK_SAVEGAME: MenuClickSaveLoad(); break; - case MTHK_LOADGAME: ShowSaveLoadDialog(FT_SAVEGAME, FOP_LOAD); break; + case MTHK_LOADGAME: ShowSaveLoadDialog(FT_SAVEGAME, SLO_LOAD); break; case MTHK_SMALLMAP: ShowSmallMap(); break; case MTHK_TOWNDIRECTORY: ShowTownDirectory(); break; case MTHK_SUBSIDIES: ShowSubsidiesList(); break; diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index 95d40cd000..e038df9751 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -142,7 +142,7 @@ static void *_dedicated_video_mem; /* Whether a fork has been done. */ bool _dedicated_forks; -extern bool SafeLoad(const char *filename, FileOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL); +extern bool SafeLoad(const char *filename, SaveLoadOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, struct LoadFilter *lf = NULL); static FVideoDriver_Dedicated iFVideoDriver_Dedicated; From 533cb7c156ec4ffc36e688379afa94e1b814885c Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 5 Sep 2016 19:11:01 +0000 Subject: [PATCH 132/417] (svn r27654) -Change: Enable C++11 for clang 3.3 (LordAro) --- config.lib | 7 ++++++- src/table/newgrf_debug_data.h | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/config.lib b/config.lib index ab9bb82b61..a144b9e3ea 100644 --- a/config.lib +++ b/config.lib @@ -1285,7 +1285,7 @@ make_compiler_cflags() { # -W alone doesn't enable all warnings enabled by -Wall; on the other hand, # -Weverything enables too many useless warnings that can't be disabled (as of 3.0) - flags="$flags -Wall -W" + flags="$flags -Wall -W -Wextra" # warning: unused parameter '...' flags="$flags -Wno-unused-parameter" @@ -1326,6 +1326,11 @@ make_compiler_cflags() { flags="$flags -Wno-unused-variable" fi + if [ "$cc_version" -ge "33" ]; then + # clang completed C++11 support in version 3.3 + flags="$flags -std=c++11" + fi + # rdynamic is used to get useful stack traces from crash reports. ldflags="$ldflags -rdynamic" else diff --git a/src/table/newgrf_debug_data.h b/src/table/newgrf_debug_data.h index b7d0c92024..afe19bbedb 100644 --- a/src/table/newgrf_debug_data.h +++ b/src/table/newgrf_debug_data.h @@ -17,7 +17,7 @@ #define NIP_END() { NULL, 0, 0, 0, 0 } /* Helper for filling callback tables */ -#define NIC(cb_id, base, variable, bit) { #cb_id, cpp_offsetof(base, variable), cpp_sizeof(base, variable), bit, cb_id } +#define NIC(cb_id, base, variable, bit) { #cb_id, (ptrdiff_t)cpp_offsetof(base, variable), cpp_sizeof(base, variable), bit, cb_id } #define NIC_END() { NULL, 0, 0, 0, 0 } /* Helper for filling variable tables */ From 2fe7571034d8d29ced235e912f76764bd084836b Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Sep 2016 01:38:35 +0100 Subject: [PATCH 133/417] Require C++11 support. Set minimum compiler versions to: GCC 4.7 clang 3.3 ICC 14.0 --- config.lib | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/config.lib b/config.lib index a144b9e3ea..961e5eae8c 100644 --- a/config.lib +++ b/config.lib @@ -1265,7 +1265,12 @@ make_compiler_cflags() { # remark #2259: non-pointer conversion from ... to ... may lose significant bits flags="$flags -wd2259" # Use c++0x mode so static_assert() is available - cxxflags="$cxxflags -std=c++0x" + cxxflags="$cxxflags -std=c++11" + fi + + if [ $cc_version -lt 140 ]; then + log 1 "configure: error: ICC version is too old: `$1 -dumpversion`, minumum: 14.0" + exit 1 fi if [ "$enable_lto" != "0" ]; then @@ -1329,6 +1334,9 @@ make_compiler_cflags() { if [ "$cc_version" -ge "33" ]; then # clang completed C++11 support in version 3.3 flags="$flags -std=c++11" + else + log 1 "configure: error: clang version is too old: `$1 -v 2>&1 | head -n 1`, minumum: 3.3" + exit 1 fi # rdynamic is used to get useful stack traces from crash reports. @@ -1390,7 +1398,7 @@ make_compiler_cflags() { if [ $cc_version -ge 403 ] && [ $cc_version -lt 600 ]; then # Use gnu++0x mode so static_assert() is available. # Don't use c++0x, it breaks mingw (with gcc 4.4.0). - cxxflags="$cxxflags -std=gnu++0x" + cxxflags="$cxxflags -std=gnu++11" fi if [ $cc_version -eq 405 ]; then @@ -1406,6 +1414,9 @@ make_compiler_cflags() { cxxflags="$cxxflags -Wno-narrowing" # Disable bogus 'attempt to free a non-heap object' warning flags="$flags -Wno-free-nonheap-object" + else + log 1 "configure: error: GCC version is too old: `$1 -dumpversion`, minumum: 4.7" + exit 1 fi if [ $cc_version -ge 600 ]; then From 51099c3572255e9364ce1fbbb5b93535b052beca Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Sep 2016 01:15:09 +0100 Subject: [PATCH 134/417] Unconditionally use static_assert. --- src/stdafx.h | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/stdafx.h b/src/stdafx.h index 4616212f18..4ca0a12c30 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -361,21 +361,8 @@ typedef unsigned char byte; #define PERSONAL_DIR "" #endif -/* Compile time assertions. Prefer c++0x static_assert(). - * Older compilers cannot evaluate some expressions at compile time, - * typically when templates are involved, try assert_tcompile() in those cases. */ -#if defined(__STDCXX_VERSION__) || defined(__GXX_EXPERIMENTAL_CXX0X__) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(static_assert) - /* __STDCXX_VERSION__ is c++0x feature macro, __GXX_EXPERIMENTAL_CXX0X__ is used by gcc, __GXX_EXPERIMENTAL_CPP0X__ by icc */ - #define assert_compile(expr) static_assert(expr, #expr ) - #define assert_tcompile(expr) assert_compile(expr) -#elif defined(__OS2__) - /* Disabled for OS/2 */ - #define assert_compile(expr) - #define assert_tcompile(expr) assert_compile(expr) -#else - #define assert_compile(expr) typedef int __ct_assert__[1 - 2 * !(expr)] - #define assert_tcompile(expr) assert(expr) -#endif +#define assert_compile(expr) static_assert(expr, #expr ) +#define assert_tcompile(expr) assert_compile(expr) /* Check if the types have the bitsizes like we are using them */ assert_compile(sizeof(uint64) == 8); From 0b7d68a6d1e22c6566ec57e938d0322ac302331e Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Sep 2016 01:18:09 +0100 Subject: [PATCH 135/417] Add support for verbose asserts. (cherry picked from commit 48e4c35fdce27ce2cb139f72374301f658276d0c) --- src/openttd.cpp | 19 +++++++++++++++++++ src/stdafx.h | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/src/openttd.cpp b/src/openttd.cpp index 58f011b082..cc382bdbf0 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -123,6 +123,25 @@ void CDECL error(const char *s, ...) abort(); } +void CDECL assert_msg_error(int line, const char *file, const char *expr, const char *str, ...) +{ + va_list va; + char buf[2048]; + + char *b = buf; + b += seprintf(b, lastof(buf), "Assertion failed at line %i of %s: %s\n\t", line, file, expr); + + va_start(va, str); + vseprintf(b, lastof(buf), str, va); + va_end(va); + + ShowOSErrorBox(buf, true); + + /* Set the error message for the crash log and then invoke it. */ + CrashLog::SetErrorMessage(buf); + abort(); +} + /** * Shows some information on the console/a popup box depending on the OS. * @param str the text to show. diff --git a/src/stdafx.h b/src/stdafx.h index 4ca0a12c30..cf9fe92f99 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -433,6 +433,7 @@ assert_compile(SIZE_MAX >= UINT32_MAX); void NORETURN CDECL usererror(const char *str, ...) WARN_FORMAT(1, 2); void NORETURN CDECL error(const char *str, ...) WARN_FORMAT(1, 2); +void NORETURN CDECL assert_msg_error(int line, const char *file, const char *expr, const char *str, ...) WARN_FORMAT(4, 5); #define NOT_REACHED() error("NOT_REACHED triggered at line %i of %s", __LINE__, __FILE__) /* For non-debug builds with assertions enabled use the special assertion handler: @@ -447,6 +448,9 @@ void NORETURN CDECL error(const char *str, ...) WARN_FORMAT(1, 2); /* Asserts are enabled if NDEBUG isn't defined, or if we are using MSVC and WITH_ASSERT is defined. */ #if !defined(NDEBUG) || (defined(_MSC_VER) && defined(WITH_ASSERT)) #define OTTD_ASSERT + #define assert_msg(expression, ...) if (!(expression)) assert_msg_error(__LINE__, __FILE__, #expression, __VA_ARGS__); +#else + #define assert_msg(expression, ...) #endif #if defined(MORPHOS) || defined(__NDS__) || defined(__DJGPP__) From bb6ea150a38d1438876b0049ba57902c6eb61f93 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 10 Mar 2016 00:13:58 +0000 Subject: [PATCH 136/417] Use likely/__builtin_expect for assertion macros. (cherry picked from commit f82002cda2e3cb1ef1264f0c2e091bd88b449f48) --- src/stdafx.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/stdafx.h b/src/stdafx.h index cf9fe92f99..631f64cca7 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -431,6 +431,14 @@ assert_compile(SIZE_MAX >= UINT32_MAX); #define CloseConnection OTTD_CloseConnection #endif /* __APPLE__ */ +#ifdef __GNUC__ +#define likely(x) __builtin_expect(!!(x), 1) +#define unlikely(x) __builtin_expect(!!(x), 0) +#else +#define likely(x) (x) +#define unlikely(x) (x) +#endif + void NORETURN CDECL usererror(const char *str, ...) WARN_FORMAT(1, 2); void NORETURN CDECL error(const char *str, ...) WARN_FORMAT(1, 2); void NORETURN CDECL assert_msg_error(int line, const char *file, const char *expr, const char *str, ...) WARN_FORMAT(4, 5); @@ -442,13 +450,13 @@ void NORETURN CDECL assert_msg_error(int line, const char *file, const char *exp */ #if (defined(_MSC_VER) && defined(NDEBUG) && defined(WITH_ASSERT)) || (!defined(_MSC_VER) && !defined(NDEBUG) && !defined(_DEBUG)) #undef assert - #define assert(expression) if (!(expression)) error("Assertion failed at line %i of %s: %s", __LINE__, __FILE__, #expression); + #define assert(expression) if (unlikely(!(expression))) error("Assertion failed at line %i of %s: %s", __LINE__, __FILE__, #expression); #endif /* Asserts are enabled if NDEBUG isn't defined, or if we are using MSVC and WITH_ASSERT is defined. */ #if !defined(NDEBUG) || (defined(_MSC_VER) && defined(WITH_ASSERT)) #define OTTD_ASSERT - #define assert_msg(expression, ...) if (!(expression)) assert_msg_error(__LINE__, __FILE__, #expression, __VA_ARGS__); + #define assert_msg(expression, ...) if (unlikely(!(expression))) assert_msg_error(__LINE__, __FILE__, #expression, __VA_ARGS__); #else #define assert_msg(expression, ...) #endif From 6e9ea59ab50cb9598c3b83e357b7fd13a645c4b4 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Sep 2016 20:56:31 +0100 Subject: [PATCH 137/417] Add a simple scope guard include file. --- projects/openttd_vs100.vcxproj | 1 + projects/openttd_vs100.vcxproj.filters | 3 ++ projects/openttd_vs140.vcxproj | 1 + projects/openttd_vs140.vcxproj.filters | 3 ++ projects/openttd_vs80.vcproj | 4 ++ projects/openttd_vs90.vcproj | 4 ++ source.list | 1 + src/scope.h | 53 ++++++++++++++++++++++++++ 8 files changed, 70 insertions(+) create mode 100644 src/scope.h diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj index 59e087ee70..a7abe4d1ab 100644 --- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -571,6 +571,7 @@ + diff --git a/projects/openttd_vs100.vcxproj.filters b/projects/openttd_vs100.vcxproj.filters index 06800ffdaf..d996963c06 100644 --- a/projects/openttd_vs100.vcxproj.filters +++ b/projects/openttd_vs100.vcxproj.filters @@ -942,6 +942,9 @@ Header Files + + Header Files + Header Files diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index 8d8b980649..67acda0402 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -588,6 +588,7 @@ + diff --git a/projects/openttd_vs140.vcxproj.filters b/projects/openttd_vs140.vcxproj.filters index 06800ffdaf..d996963c06 100644 --- a/projects/openttd_vs140.vcxproj.filters +++ b/projects/openttd_vs140.vcxproj.filters @@ -942,6 +942,9 @@ Header Files + + Header Files + Header Files diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj index 70dcab226a..fcd9c0e3a3 100644 --- a/projects/openttd_vs80.vcproj +++ b/projects/openttd_vs80.vcproj @@ -1558,6 +1558,10 @@ RelativePath=".\..\src\safeguards.h" > + + diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj index dd722d085d..cd5eea9d4e 100644 --- a/projects/openttd_vs90.vcproj +++ b/projects/openttd_vs90.vcproj @@ -1555,6 +1555,10 @@ RelativePath=".\..\src\safeguards.h" > + + diff --git a/source.list b/source.list index df35cdd26e..59b2824ad0 100644 --- a/source.list +++ b/source.list @@ -310,6 +310,7 @@ road_type.h roadstop_base.h roadveh.h safeguards.h +scope.h screenshot.h sdl.h sound/sdl_s.h diff --git a/src/scope.h b/src/scope.h new file mode 100644 index 0000000000..d341b50b1f --- /dev/null +++ b/src/scope.h @@ -0,0 +1,53 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ + +/** @file scope.h Simple scope guard... */ + +#ifndef SCOPE_H +#define SCOPE_H + +template +class scope_exit_obj { + T f; + bool shouldexec; + + + public: + + scope_exit_obj(T &&func) + : f(std::move(func)), shouldexec(true) { } + + scope_exit_obj(const scope_exit_obj ©src) = delete; + scope_exit_obj(scope_exit_obj &&movesrc) + : f(std::move(movesrc.f)), shouldexec(movesrc.shouldexec) { + movesrc.shouldexec = false; + } + + ~scope_exit_obj() { + exec(); + } + + void exec() { + if (shouldexec) { + f(); + shouldexec = false; + } + } + + void cancel() { + shouldexec = false; + } +}; + +template +scope_exit_obj::type> scope_guard(T &&func) { + return scope_exit_obj::type>(std::forward(func)); +} + +#endif /* SCOPE_H */ From f7af8b8bdc8d0c35216a263deab96349ed0a968e Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Sep 2016 23:00:45 +0100 Subject: [PATCH 138/417] Silence -Wunused-variable warnings in src/table/townname.h --- src/table/townname.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/table/townname.h b/src/table/townname.h index 25c997d255..d14999340c 100644 --- a/src/table/townname.h +++ b/src/table/townname.h @@ -11,6 +11,10 @@ #include "../core/enum_type.hpp" +#if defined(__GNUC__) +#pragma GCC diagnostic ignored "-Wunused-variable" +#endif + static const char * const _name_original_english_1[] = { "Great ", "Little ", From 8e8d7e93d5d235b5233baee5d5e44978e0348a53 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Sep 2016 23:26:36 +0100 Subject: [PATCH 139/417] Tidy up legacy-compatibility code in PATX/PLYX handlers. Use lambdas instead of manual emulation. Move an inner struct back into its owner function. --- src/settings.cpp | 56 +++++++++++------------------------------------- 1 file changed, 13 insertions(+), 43 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index 18fbab98c6..39fba94cc6 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2247,18 +2247,6 @@ static void SaveSettings(const SettingDesc *sd, void *object) /** Sorted list of PATX settings, generated by MakeSettingsPatxList */ static std::vector _sorted_patx_settings; -/** - * Internal structure used in LoadSettingsPatx() - * placed outside for legacy compiler compatibility - * this makes me miss lambdas :/ - */ -struct StringSorter { - bool operator()(const SettingDesc *a, const SettingDesc *b) - { - return strcmp(a->patx_name, b->patx_name) < 0; - } -}; - /** * Prepare a sorted list of settings to be potentially be loaded out of the PATX chunk * This is to enable efficient lookup of settings by name @@ -2277,28 +2265,11 @@ static void MakeSettingsPatxList(const SettingDesc *sd) _sorted_patx_settings.push_back(desc); } - std::sort(_sorted_patx_settings.begin(), _sorted_patx_settings.end(), StringSorter()); + std::sort(_sorted_patx_settings.begin(), _sorted_patx_settings.end(), [](const SettingDesc *a, const SettingDesc *b) { + return strcmp(a->patx_name, b->patx_name) < 0; + }); } -/** - * Internal structure used in LoadSettingsPatx() - * placed outside for legacy compiler compatibility - * this is effectively a reference capture lambda - */ -struct StringSearcher { - bool &m_exact_match; - - StringSearcher(bool &exact_match) - : m_exact_match(exact_match) { } - - bool operator()(const SettingDesc *a, const char *b) - { - int result = strcmp(a->patx_name, b); - if (result == 0) m_exact_match = true; - return result < 0; - } -}; - /** * Internal structure used in LoadSettingsPatx() and LoadSettingsPlyx() */ @@ -2354,9 +2325,13 @@ static void LoadSettingsPatx(const SettingDesc *sd, void *object) // flags are not in use yet, reserve for future expansion if (current_setting.flags != 0) SlErrorCorruptFmt("PATX chunk: unknown setting header flags: 0x%X", current_setting.flags); - // now try to find corresponding setting, this would be much easier with C++11 support... + // now try to find corresponding setting bool exact_match = false; - std::vector::iterator iter = std::lower_bound(_sorted_patx_settings.begin(), _sorted_patx_settings.end(), current_setting.name, StringSearcher(exact_match)); + auto iter = std::lower_bound(_sorted_patx_settings.begin(), _sorted_patx_settings.end(), current_setting.name, [&](const SettingDesc *a, const char *b) { + int result = strcmp(a->patx_name, b); + if (result == 0) exact_match = true; + return result < 0; + }); if (exact_match) { assert(iter != _sorted_patx_settings.end()); @@ -2376,15 +2351,6 @@ static void LoadSettingsPatx(const SettingDesc *sd, void *object) } } -/** - * Internal structure used in SaveSettingsPatx() - * placed outside for legacy compiler compatibility - */ -struct SettingToAdd { - const SettingDesc *setting; - uint32 setting_length; -}; - /** * Save handler for settings which go in the PATX chunk * @param sd SettingDesc struct containing all information @@ -2395,6 +2361,10 @@ static void SaveSettingsPatx(const SettingDesc *sd, void *object) { SettingsExtSave current_setting; + struct SettingToAdd { + const SettingDesc *setting; + uint32 setting_length; + }; std::vector settings_to_add; size_t length = 8; From a3d0fc5817a1ed8a81c3452cdb98cd94a9d12d44 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Sep 2016 23:26:52 +0100 Subject: [PATCH 140/417] Remove an unused extern declaration, update comment. --- src/saveload/extended_ver_sl.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index 6e13994e67..fb64afe2c9 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -115,9 +115,7 @@ void SlXvSetCurrentState() */ void SlXvCheckSpecialSavegameVersions() { - extern uint16 _sl_version; - - // TODO: check for savegame versions + // Checks for special savegame versions go here } /** From 737897653ae3cf6d3cd98728fd111528f2b4c8bd Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 6 Sep 2016 17:45:36 +0000 Subject: [PATCH 141/417] (svn r27655) -Update from Eints: romanian: 2 changes by kkmic --- src/lang/romanian.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 6876ee288c..632787d2af 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1114,6 +1114,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Setări joc (st STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Setări joc (stocate în salvări; afectează doar jocul curent) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Setări companie (stocate în salvări; afectează doar jocurile noi) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Setări compenia (stocate în salvări; afectează doar compania curentă) +STR_CONFIG_SETTINGS_NONE :{WHITE}- Nespecificat - STR_CONFIG_SETTING_OFF :Inactiv STR_CONFIG_SETTING_ON :Activ @@ -1283,6 +1284,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grosimea liniil STR_CONFIG_SETTING_LAND_GENERATOR :Generator teren: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Tip teren: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distanța maximă de la marginea hărții pentru rafinării: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Rafinăriile de petrol vor fi construite doar la marginea hărţii, sau pe coastă, în cazul harţilor insulare STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Grosimea stratului de zăpadă: {STRING} From 390a22f864537eb09efb8341c4f5917e6418a9c8 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 8 Sep 2016 18:38:53 +0100 Subject: [PATCH 142/417] Enable FINAL, (un)linkely, __attribute__ for clang. --- src/stdafx.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/stdafx.h b/src/stdafx.h index 631f64cca7..e19d015ed9 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -143,7 +143,7 @@ #endif /* PSP */ /* Stuff for GCC */ -#if defined(__GNUC__) +#if defined(__GNUC__) || defined(__clang__) #define NORETURN __attribute__ ((noreturn)) #define CDECL #define __int64 long long @@ -151,12 +151,8 @@ /* Warn about functions using 'printf' format syntax. First argument determines which parameter * is the format string, second argument is start of values passed to printf. */ #define WARN_FORMAT(string, args) __attribute__ ((format (printf, string, args))) - #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) - #define FINAL final - #else - #define FINAL - #endif -#endif /* __GNUC__ */ + #define FINAL final +#endif /* __GNUC__ || __clang__ */ #if defined(__WATCOMC__) #define NORETURN @@ -431,13 +427,13 @@ assert_compile(SIZE_MAX >= UINT32_MAX); #define CloseConnection OTTD_CloseConnection #endif /* __APPLE__ */ -#ifdef __GNUC__ +#if defined(__GNUC__) || defined(__clang__) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else #define likely(x) (x) #define unlikely(x) (x) -#endif +#endif /* __GNUC__ || __clang__ */ void NORETURN CDECL usererror(const char *str, ...) WARN_FORMAT(1, 2); void NORETURN CDECL error(const char *str, ...) WARN_FORMAT(1, 2); From 8a2f9311a9d1e5652475568b75f9a91082c127bd Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 8 Sep 2016 19:31:40 +0100 Subject: [PATCH 143/417] Include -01 in CFLAGS_BUILD when using clang. --- config.lib | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config.lib b/config.lib index 961e5eae8c..ae9b5be2c1 100644 --- a/config.lib +++ b/config.lib @@ -1524,8 +1524,11 @@ make_cflags_and_ldflags() { cc_build_is_gcc=`basename "$cc_build" | grep "gcc" 2>/dev/null` if [ -n "$cc_build_is_gcc" ]; then - # Just add -O1 to the tools needed for building. + # Add -O1 and fortify source to the tools needed for building, on gcc CFLAGS_BUILD="$CFLAGS_BUILD -D_FORTIFY_SOURCE=2 -O1" + elif [ -n "`basename "$cc_build" | grep "clang" 2>/dev/null`" ]; then + # Add -O1 to the tools needed for building, on clang + CFLAGS_BUILD="$CFLAGS_BUILD -O1" fi fi From ea2b04a6be83cbc8714cf6fb9698a2346c1f6325 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Fri, 9 Sep 2016 21:10:39 +0100 Subject: [PATCH 144/417] Add C++11 container utility functions. --- source.list | 1 + src/core/container_func.hpp | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/core/container_func.hpp diff --git a/source.list b/source.list index 59b2824ad0..b2c2f4d495 100644 --- a/source.list +++ b/source.list @@ -423,6 +423,7 @@ core/alloc_type.hpp core/backup_type.hpp core/bitmath_func.cpp core/bitmath_func.hpp +core/container_func.hpp core/endian_func.hpp core/endian_type.hpp core/enum_type.hpp diff --git a/src/core/container_func.hpp b/src/core/container_func.hpp new file mode 100644 index 0000000000..1b8e8ad847 --- /dev/null +++ b/src/core/container_func.hpp @@ -0,0 +1,35 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ + +/** @file container_func.hpp Functions related to use of containers. */ + +template unsigned int container_unordered_remove_if (C &container, UP predicate) { + unsigned int removecount = 0; + for (auto it = container.begin(); it != container.end();) { + if (predicate(*it)) { + removecount++; + if (std::next(it) != container.end()) { + *it = std::move(container.back()); + container.pop_back(); + } else { + container.pop_back(); + break; + } + } else { + ++it; + } + } + return removecount; +} + +template unsigned int container_unordered_remove(C &container, const V &value) { + return container_unordered_remove_if (container, [&](const typename C::value_type &v) { + return v == value; + }); +} From 13fb737bed0b94dc031db433bce04702b0d658a4 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 12 Sep 2016 22:48:58 +0100 Subject: [PATCH 145/417] Add a template parameter for the inner container of MultiMap. --- src/core/multimap.hpp | 45 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/src/core/multimap.hpp b/src/core/multimap.hpp index e906677141..da6a33ef45 100644 --- a/src/core/multimap.hpp +++ b/src/core/multimap.hpp @@ -15,7 +15,7 @@ #include #include -template +template class MultiMap; /** @@ -23,14 +23,15 @@ class MultiMap; * @tparam Tmap_iter Iterator type for the map in the MultiMap. * @tparam Tlist_iter Iterator type for the lists in the MultiMap. * @tparam Tkey Key type of the MultiMap. - * @tparam Tvalue Value type of the MultMap. + * @tparam Tvalue Value type of the MultiMap. + * @tparam Tcontainer Container type for the values of the MultiMap. * @tparam Tcompare Comparator type for keys of the MultiMap. */ -template +template class MultiMapIterator { protected: - friend class MultiMap; - typedef MultiMapIterator Self; + friend class MultiMap; + typedef MultiMapIterator Self; Tlist_iter list_iter; ///< Iterator pointing to current position in the current list of items with equal keys. Tmap_iter map_iter; ///< Iterator pointing to the position of the current list of items with equal keys in the map. @@ -201,8 +202,8 @@ public: * @param iter2 Second iterator to compare. * @return If iter1 and iter2 are equal. */ -template -bool operator==(const MultiMapIterator &iter1, const MultiMapIterator &iter2) +template +bool operator==(const MultiMapIterator &iter1, const MultiMapIterator &iter2) { if (iter1.GetMapIter() != iter2.GetMapIter()) return false; if (!iter1.ListValid()) return !iter2.ListValid(); @@ -218,8 +219,8 @@ bool operator==(const MultiMapIterator -bool operator!=(const MultiMapIterator &iter1, const MultiMapIterator &iter2) +template +bool operator!=(const MultiMapIterator &iter1, const MultiMapIterator &iter2) { return !(iter1 == iter2); } @@ -232,8 +233,8 @@ bool operator!=(const MultiMapIterator -bool operator==(const MultiMapIterator &iter1, const Tmap_iter2 &iter2) +template +bool operator==(const MultiMapIterator &iter1, const Tmap_iter2 &iter2) { return !iter1.ListValid() && iter1.GetMapIter() == iter2; } @@ -244,8 +245,8 @@ bool operator==(const MultiMapIterator -bool operator!=(const MultiMapIterator &iter1, const Tmap_iter2 &iter2) +template +bool operator!=(const MultiMapIterator &iter1, const Tmap_iter2 &iter2) { return iter1.ListValid() || iter1.GetMapIter() != iter2; } @@ -256,8 +257,8 @@ bool operator!=(const MultiMapIterator -bool operator==(const Tmap_iter2 &iter2, const MultiMapIterator &iter1) +template +bool operator==(const Tmap_iter2 &iter2, const MultiMapIterator &iter1) { return !iter1.ListValid() && iter1.GetMapIter() == iter2; } @@ -268,8 +269,8 @@ bool operator==(const Tmap_iter2 &iter2, const MultiMapIterator -bool operator!=(const Tmap_iter2 &iter2, const MultiMapIterator &iter1) +template +bool operator!=(const Tmap_iter2 &iter2, const MultiMapIterator &iter1) { return iter1.ListValid() || iter1.GetMapIter() != iter2; } @@ -282,10 +283,10 @@ bool operator!=(const Tmap_iter2 &iter2, const MultiMapIterator > -class MultiMap : public std::map, Tcompare > { +template, typename Tcompare = std::less > +class MultiMap : public std::map { public: - typedef typename std::list List; + typedef Tcontainer List; typedef typename List::iterator ListIterator; typedef typename List::const_iterator ConstListIterator; @@ -293,8 +294,8 @@ public: typedef typename Map::iterator MapIterator; typedef typename Map::const_iterator ConstMapIterator; - typedef MultiMapIterator iterator; - typedef MultiMapIterator const_iterator; + typedef MultiMapIterator iterator; + typedef MultiMapIterator const_iterator; /** * Erase the value pointed to by an iterator. The iterator may be invalid afterwards. From c752da3a9ee5e93de8b40f40650d34bf1822f6a5 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 12 Sep 2016 22:49:52 +0100 Subject: [PATCH 146/417] SaveLoad: Add support for saving/loading from a std::deque --- src/saveload/saveload.cpp | 20 +++++++++++++------- src/saveload/saveload.h | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index b5e88dc791..5b4410c6dd 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -52,6 +52,7 @@ #include "../safeguards.h" +#include #include /* @@ -1366,9 +1367,10 @@ static void *IntToReference(size_t index, SLRefType rt) * Return the size in bytes of a list * @param list The std::list to find the size of */ + template static inline size_t SlCalcListLen(const void *list) { - const std::list *l = (const std::list *) list; + const PtrList *l = (const PtrList *) list; int type_size = IsSavegameVersionBefore(69) ? 2 : 4; /* Each entry is saved as type_size bytes, plus type_size bytes are used for the length @@ -1382,23 +1384,23 @@ static inline size_t SlCalcListLen(const void *list) * @param list The list being manipulated * @param conv SLRefType type of the list (Vehicle *, Station *, etc) */ +template static void SlList(void *list, SLRefType conv) { /* Automatically calculate the length? */ if (_sl.need_length != NL_NONE) { - SlSetLength(SlCalcListLen(list)); + SlSetLength(SlCalcListLen(list)); /* Determine length only? */ if (_sl.need_length == NL_CALCLENGTH) return; } - typedef std::list PtrList; PtrList *l = (PtrList *)list; switch (_sl.action) { case SLA_SAVE: { SlWriteUint32((uint32)l->size()); - PtrList::iterator iter; + typename PtrList::iterator iter; for (iter = l->begin(); iter != l->end(); ++iter) { void *ptr = *iter; SlWriteUint32((uint32)ReferenceToInt(ptr, conv)); @@ -1420,7 +1422,7 @@ static void SlList(void *list, SLRefType conv) PtrList temp = *l; l->clear(); - PtrList::iterator iter; + typename PtrList::iterator iter; for (iter = temp.begin(); iter != temp.end(); ++iter) { void *ptr = IntToReference((size_t)*iter, conv); l->push_back(ptr); @@ -1486,6 +1488,7 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) case SL_ARR: case SL_STR: case SL_LST: + case SL_DEQ: /* CONDITIONAL saveload types depend on the savegame version */ if (!SlIsObjectValidInSavegame(sld)) break; @@ -1494,7 +1497,8 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) case SL_REF: return SlCalcRefLen(); case SL_ARR: return SlCalcArrayLen(sld->length, sld->conv); case SL_STR: return SlCalcStringLen(GetVariableAddress(object, sld), sld->length, sld->conv); - case SL_LST: return SlCalcListLen(GetVariableAddress(object, sld)); + case SL_LST: return SlCalcListLen>(GetVariableAddress(object, sld)); + case SL_DEQ: return SlCalcListLen>(GetVariableAddress(object, sld)); default: NOT_REACHED(); } break; @@ -1557,6 +1561,7 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) case SL_ARR: case SL_STR: case SL_LST: + case SL_DEQ: /* CONDITIONAL saveload types depend on the savegame version */ if (!SlIsObjectValidInSavegame(sld)) return false; if (SlSkipVariableOnLoad(sld)) return false; @@ -1583,7 +1588,8 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) break; case SL_ARR: SlArray(ptr, sld->length, conv); break; case SL_STR: SlString(ptr, sld->length, sld->conv); break; - case SL_LST: SlList(ptr, (SLRefType)conv); break; + case SL_LST: SlList>(ptr, (SLRefType)conv); break; + case SL_DEQ: SlList>(ptr, (SLRefType)conv); break; default: NOT_REACHED(); } break; diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 42bc82c48f..46ed04237f 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -205,6 +205,7 @@ enum SaveLoadTypes { SL_ARR = 2, ///< Save/load an array. SL_STR = 3, ///< Save/load a string. SL_LST = 4, ///< Save/load a list. + SL_DEQ = 5, ///< Save/load a deque. /* non-normal save-load types */ SL_WRITEBYTE = 8, SL_VEH_INCLUDE = 9, @@ -310,6 +311,18 @@ typedef SaveLoad SaveLoadGlobVarList; #define SLE_CONDLST_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_LST, base, variable, type, 0, from, to, extver) #define SLE_CONDLST(base, variable, type, from, to) SLE_CONDLST_X(base, variable, type, from, to, SlXvFeatureTest()) +/** + * Storage of a deque in some savegame versions. + * @param base Name of the class or struct containing the list. + * @param variable Name of the variable in the class or struct referenced by \a base. + * @param type Storage of the data in memory and in the savegame. + * @param from First savegame version that has the list. + * @param to Last savegame version that has the list. + * @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field + */ +#define SLE_CONDDEQ_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_DEQ, base, variable, type, 0, from, to, extver) +#define SLE_CONDDEQ(base, variable, type, from, to) SLE_CONDDEQ_X(base, variable, type, from, to, SlXvFeatureTest()) + /** * Storage of a variable in every version of a savegame. * @param base Name of the class or struct containing the variable. @@ -352,6 +365,14 @@ typedef SaveLoad SaveLoadGlobVarList; */ #define SLE_LST(base, variable, type) SLE_CONDLST(base, variable, type, 0, SL_MAX_VERSION) +/** + * Storage of a deque in every savegame version. + * @param base Name of the class or struct containing the list. + * @param variable Name of the variable in the class or struct referenced by \a base. + * @param type Storage of the data in memory and in the savegame. + */ +#define SLE_DEQ(base, variable, type) SLE_CONDDEQ(base, variable, type, 0, SL_MAX_VERSION) + /** * Empty space in every savegame version. * @param length Length of the empty space. @@ -447,6 +468,17 @@ typedef SaveLoad SaveLoadGlobVarList; #define SLEG_CONDLST_X(variable, type, from, to, extver) SLEG_GENERAL_X(SL_LST, variable, type, 0, from, to, extver) #define SLEG_CONDLST(variable, type, from, to) SLEG_CONDLST_X(variable, type, from, to, SlXvFeatureTest()) +/** + * Storage of a global deque in some savegame versions. + * @param variable Name of the global variable. + * @param type Storage of the data in memory and in the savegame. + * @param from First savegame version that has the list. + * @param to Last savegame version that has the list. + * @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field + */ +#define SLEG_CONDDEQ_X(variable, type, from, to, extver) SLEG_GENERAL_X(SL_DEQ, variable, type, 0, from, to, extver) +#define SLEG_CONDDEQ(variable, type, from, to) SLEG_CONDDEQ_X(variable, type, from, to, SlXvFeatureTest()) + /** * Storage of a global variable in every savegame version. * @param variable Name of the global variable. @@ -482,6 +514,13 @@ typedef SaveLoad SaveLoadGlobVarList; */ #define SLEG_LST(variable, type) SLEG_CONDLST(variable, type, 0, SL_MAX_VERSION) +/** + * Storage of a global deque in every savegame version. + * @param variable Name of the global variable. + * @param type Storage of the data in memory and in the savegame. + */ +#define SLEG_DEQ(variable, type) SLEG_CONDDEQ(variable, type, 0, SL_MAX_VERSION) + /** * Empty global space in some savegame versions. * @param length Length of the empty space. From 94d3700f7920dd680bc1ff38de8bd4f744d10da9 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 13 Sep 2016 18:30:55 +0100 Subject: [PATCH 147/417] SaveLoad: Add support for saving/loading from a std::vector --- src/saveload/saveload.cpp | 4 ++++ src/saveload/saveload.h | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 5b4410c6dd..f531944d63 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1489,6 +1489,7 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) case SL_STR: case SL_LST: case SL_DEQ: + case SL_VEC: /* CONDITIONAL saveload types depend on the savegame version */ if (!SlIsObjectValidInSavegame(sld)) break; @@ -1499,6 +1500,7 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) case SL_STR: return SlCalcStringLen(GetVariableAddress(object, sld), sld->length, sld->conv); case SL_LST: return SlCalcListLen>(GetVariableAddress(object, sld)); case SL_DEQ: return SlCalcListLen>(GetVariableAddress(object, sld)); + case SL_VEC: return SlCalcListLen>(GetVariableAddress(object, sld)); default: NOT_REACHED(); } break; @@ -1562,6 +1564,7 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) case SL_STR: case SL_LST: case SL_DEQ: + case SL_VEC: /* CONDITIONAL saveload types depend on the savegame version */ if (!SlIsObjectValidInSavegame(sld)) return false; if (SlSkipVariableOnLoad(sld)) return false; @@ -1590,6 +1593,7 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) case SL_STR: SlString(ptr, sld->length, sld->conv); break; case SL_LST: SlList>(ptr, (SLRefType)conv); break; case SL_DEQ: SlList>(ptr, (SLRefType)conv); break; + case SL_VEC: SlList>(ptr, (SLRefType)conv); break; default: NOT_REACHED(); } break; diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 46ed04237f..44e040aa1a 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -206,6 +206,7 @@ enum SaveLoadTypes { SL_STR = 3, ///< Save/load a string. SL_LST = 4, ///< Save/load a list. SL_DEQ = 5, ///< Save/load a deque. + SL_VEC = 6, ///< Save/load a vector. /* non-normal save-load types */ SL_WRITEBYTE = 8, SL_VEH_INCLUDE = 9, @@ -323,6 +324,18 @@ typedef SaveLoad SaveLoadGlobVarList; #define SLE_CONDDEQ_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_DEQ, base, variable, type, 0, from, to, extver) #define SLE_CONDDEQ(base, variable, type, from, to) SLE_CONDDEQ_X(base, variable, type, from, to, SlXvFeatureTest()) +/** + * Storage of a vector in some savegame versions. + * @param base Name of the class or struct containing the list. + * @param variable Name of the variable in the class or struct referenced by \a base. + * @param type Storage of the data in memory and in the savegame. + * @param from First savegame version that has the list. + * @param to Last savegame version that has the list. + * @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field + */ +#define SLE_CONDVEC_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_VEC, base, variable, type, 0, from, to, extver) +#define SLE_CONDVEC(base, variable, type, from, to) SLE_CONDVEC_X(base, variable, type, from, to, SlXvFeatureTest()) + /** * Storage of a variable in every version of a savegame. * @param base Name of the class or struct containing the variable. @@ -373,6 +386,14 @@ typedef SaveLoad SaveLoadGlobVarList; */ #define SLE_DEQ(base, variable, type) SLE_CONDDEQ(base, variable, type, 0, SL_MAX_VERSION) +/** + * Storage of a vector in every savegame version. + * @param base Name of the class or struct containing the list. + * @param variable Name of the variable in the class or struct referenced by \a base. + * @param type Storage of the data in memory and in the savegame. + */ +#define SLE_VEC(base, variable, type) SLE_CONDVEC(base, variable, type, 0, SL_MAX_VERSION) + /** * Empty space in every savegame version. * @param length Length of the empty space. @@ -479,6 +500,17 @@ typedef SaveLoad SaveLoadGlobVarList; #define SLEG_CONDDEQ_X(variable, type, from, to, extver) SLEG_GENERAL_X(SL_DEQ, variable, type, 0, from, to, extver) #define SLEG_CONDDEQ(variable, type, from, to) SLEG_CONDDEQ_X(variable, type, from, to, SlXvFeatureTest()) +/** + * Storage of a global vector in some savegame versions. + * @param variable Name of the global variable. + * @param type Storage of the data in memory and in the savegame. + * @param from First savegame version that has the list. + * @param to Last savegame version that has the list. + * @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field + */ +#define SLEG_CONDVEC_X(variable, type, from, to, extver) SLEG_GENERAL_X(SL_VEC, variable, type, 0, from, to, extver) +#define SLEG_CONDVEC(variable, type, from, to) SLEG_CONDVEC_X(variable, type, from, to, SlXvFeatureTest()) + /** * Storage of a global variable in every savegame version. * @param variable Name of the global variable. @@ -521,6 +553,13 @@ typedef SaveLoad SaveLoadGlobVarList; */ #define SLEG_DEQ(variable, type) SLEG_CONDDEQ(variable, type, 0, SL_MAX_VERSION) +/** + * Storage of a global vector in every savegame version. + * @param variable Name of the global variable. + * @param type Storage of the data in memory and in the savegame. + */ +#define SLEG_VEC(variable, type) SLEG_CONDVEC(variable, type, 0, SL_MAX_VERSION) + /** * Empty global space in some savegame versions. * @param length Length of the empty space. From d124089d2996f1e7affd4eb6e4b52994f3988c45 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 13 Sep 2016 19:14:19 +0100 Subject: [PATCH 148/417] Add extended version tag and feature versions to output of -q. --- src/openttd.cpp | 15 ++++++++++++++- src/saveload/extended_ver_sl.cpp | 14 ++++++++++++++ src/saveload/extended_ver_sl.h | 2 ++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index cc382bdbf0..85b56adc85 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -249,7 +249,20 @@ static void WriteSavegameInfo(const char *name) char buf[8192]; char *p = buf; p += seprintf(p, lastof(buf), "Name: %s\n", name); - p += seprintf(p, lastof(buf), "Savegame ver: %d\n", _sl_version); + const char *type = ""; + extern bool _sl_is_faked_ext; + extern bool _sl_is_ext_version; + if (_sl_is_faked_ext) { + type = " (fake extended)"; + } else if (_sl_is_ext_version) { + type = " (extended)"; + } + p += seprintf(p, lastof(buf), "Savegame ver: %d%s\n", _sl_version, type); + for (size_t i = 0; i < XSLFI_SIZE; i++) { + if (_sl_xv_feature_versions[i] > 0) { + p += seprintf(p, lastof(buf), " Feature: %s = %d\n", SlXvGetFeatureName((SlXvFeatureIndex) i), _sl_xv_feature_versions[i]); + } + } p += seprintf(p, lastof(buf), "NewGRF ver: 0x%08X\n", last_ottd_rev); p += seprintf(p, lastof(buf), "Modified: %d\n", ever_modified); diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index fb64afe2c9..7b083a7f21 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -86,6 +86,20 @@ bool SlXvIsFeaturePresent(SlXvFeatureIndex feature, uint16 min_version, uint16 m return _sl_xv_feature_versions[feature] >= min_version && _sl_xv_feature_versions[feature] <= max_version; } +/** + * Returns true if @p feature is present and has a version inclusively bounded by @p min_version and @p max_version + */ +const char *SlXvGetFeatureName(SlXvFeatureIndex feature) +{ + const SlxiSubChunkInfo *info = _sl_xv_sub_chunk_infos; + for (; info->index != XSLFI_NULL; ++info) { + if (info->index == feature) { + return info->name; + } + } + return "(unknown feature)"; +} + /** * Resets all extended feature versions to 0 */ diff --git a/src/saveload/extended_ver_sl.h b/src/saveload/extended_ver_sl.h index 39a03478c2..b495c60c4e 100644 --- a/src/saveload/extended_ver_sl.h +++ b/src/saveload/extended_ver_sl.h @@ -65,6 +65,8 @@ inline bool SlXvIsFeatureMissing(SlXvFeatureIndex feature) return !SlXvIsFeaturePresent(feature); } +const char *SlXvGetFeatureName(SlXvFeatureIndex feature); + /** * sub chunk flags, this is saved as-is * (XSCF_EXTRA_DATA_PRESENT and XSCF_CHUNK_ID_LIST_PRESENT must only be set by the save code, and read by the load code) From 740534440eba27cc51ee89d078bb17f6571b56d4 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 18 Sep 2016 14:07:52 +0000 Subject: [PATCH 149/417] (svn r27656) -Fix [FS#6511]: When removing objects of bankrupt companies the tiles may revert to canal. In that case also check the ownership of the canal. --- src/object_cmd.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index b5b9921525..f7ba0d995b 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -770,6 +770,8 @@ static void ChangeTileOwner_Object(TileIndex tile, Owner old_owner, Owner new_ow { if (!IsTileOwner(tile, old_owner)) return; + bool do_clear = false; + if (IsObjectType(tile, OBJECT_OWNED_LAND) && new_owner != INVALID_OWNER) { SetTileOwner(tile, new_owner); } else if (IsObjectType(tile, OBJECT_STATUE)) { @@ -780,12 +782,18 @@ static void ChangeTileOwner_Object(TileIndex tile, Owner old_owner, Owner new_ow SetBit(t->statues, new_owner); SetTileOwner(tile, new_owner); } else { - ReallyClearObjectTile(Object::GetByTile(tile)); + do_clear = true; } SetWindowDirty(WC_TOWN_AUTHORITY, t->index); } else { + do_clear = true; + } + + if (do_clear) { ReallyClearObjectTile(Object::GetByTile(tile)); + /* When clearing objects, they may turn into canal, which may require transfering ownership. */ + ChangeTileOwner(tile, old_owner, new_owner); } } From 06f9c019864a0fd3f832d42101897fee8c27a7cb Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 27 Sep 2016 01:05:42 +0100 Subject: [PATCH 150/417] Fix CPU pointer width detection in configure script. --- config.lib | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/config.lib b/config.lib index ae9b5be2c1..91b710252a 100644 --- a/config.lib +++ b/config.lib @@ -3123,24 +3123,40 @@ detect_nforenum() { log 1 "checking nforenum... found" } -detect_cputype() { - if [ -n "$cpu_type" ] && [ "$cpu_type" != "DETECT" ]; then - log 1 "forcing cpu-type... $cpu_type bits" - return; - fi - echo "#define _SQ64 1" > tmp.64bit.cpp - echo "#include \"src/stdafx.h\"" >> tmp.64bit.cpp - echo "assert_compile(sizeof(size_t) == 8);" >> tmp.64bit.cpp - echo "int main() { return 0; }" >> tmp.64bit.cpp - execute="$cxx_host $CFLAGS tmp.64bit.cpp -o tmp.64bit -DTESTING 2>&1" +_detect_cputype_width() { + echo "#define _SQ64 1" > $1.cpp + echo "#include \"src/stdafx.h\"" >> $1.cpp + echo "assert_compile(sizeof(size_t) == $2);" >> $1.cpp + echo "int main() { return 0; }" >> $1.cpp + execute="$cxx_host $CFLAGS -std=c++11 $1.cpp -o $1 -DTESTING 2>&1" cpu_type="`eval $execute 2>/dev/null`" ret=$? log 2 "executing $execute" log 2 " returned $cpu_type" log 2 " exit code $ret" - if [ "$ret" = "0" ]; then cpu_type="64"; else cpu_type="32"; fi + rm -f $1 $1.cpp + return $ret +} + +detect_cputype() { + if [ -n "$cpu_type" ] && [ "$cpu_type" != "DETECT" ]; then + log 1 "forcing cpu-type... $cpu_type bits" + return; + fi + _detect_cputype_width tmp.32bit 4 + result32=$? + _detect_cputype_width tmp.64bit 8 + result64=$? + + if [ "$result32" = 0 ] && [ "$result64" != 0 ]; then + cpu_type="32" + elif [ "$result32" != 0 ] && [ "$result64" = 0 ]; then + cpu_type="64" + else + log 1 "configure: unable to determine cpu-type (pointer width)" + exit 1 + fi log 1 "detecting cpu-type... $cpu_type bits" - rm -f tmp.64bit tmp.64bit.cpp } detect_sse_capable_architecture() { From db38de3b7e9b0aaf09f44049a6a891b61d5e8884 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 2 Oct 2016 13:41:56 +0000 Subject: [PATCH 151/417] (svn r27657) -Change: Replace another occurence of the ancient tilehash function with the newer one. This time to make rough land appear more random. --- src/clear_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp index 2e9589aee2..f9eb88df54 100644 --- a/src/clear_cmd.cpp +++ b/src/clear_cmd.cpp @@ -56,7 +56,7 @@ void DrawHillyLandTile(const TileInfo *ti) if (ti->tileh != SLOPE_FLAT) { DrawGroundSprite(SPR_FLAT_ROUGH_LAND + SlopeToSpriteOffset(ti->tileh), PAL_NONE); } else { - DrawGroundSprite(_landscape_clear_sprites_rough[GB(ti->x ^ ti->y, 4, 3)], PAL_NONE); + DrawGroundSprite(_landscape_clear_sprites_rough[GB(TileHash(ti->x, ti->y), 0, 3)], PAL_NONE); } } From 169468a8574f148b8f0460598b65e57d759c96f5 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 6 Oct 2016 17:45:36 +0000 Subject: [PATCH 152/417] (svn r27658) -Update from Eints: danish: 1 change by Knogle --- src/lang/danish.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 175092f8d2..7bbeab58ab 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2874,7 +2874,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Gå til STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Tidligere grafikelement STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Fortsæt til den forrige normal sprite, springe over nogen pseudo / recolour / FONT sprites og indpakning rundt fra den første sprite til det sidste STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Repræsentation af den markerede sprite. Justeringen ignoreres når denne sprite tegnes. -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Flyt spriten rundt for at ændre X- og Y-forskydningen +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Flyt spriten rundt for at ændre X- og Y-forskydningen. Ctrl+Klik for at flytte spriten otte enheder af gangen STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Nulstil relativ STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Nulstil den nuværende relative forskydning STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X-forskydning: {NUM}, Y-forskydning: {NUM} (Absolut) From 3ee07f37d8c2588d00af9989200c6544fd694e1d Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 9 Oct 2016 17:45:39 +0000 Subject: [PATCH 153/417] (svn r27659) -Update from Eints: portuguese: 25 changes by Samu --- src/lang/portuguese.txt | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index ec2a83c556..9211b9a908 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -845,6 +845,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} tem uma ordem nula STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} tem ordens duplicadas STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} tem uma ordem inválida no seu horário +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} tem um aeroporto nas ordens cuja pista de aterragem é muito curta STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} está a ficar velho STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} está a ficar muito velho @@ -1288,10 +1289,14 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Mostrar a popul STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grossura das linhas nos gráficos: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Largura da linha nos gráficos. Uma linha mais estreita é de leitura mais precisa, enquanto uma linha mais espessa é mais fácil de ver e as cores distinguem-se melhor. +STR_CONFIG_SETTING_LANDSCAPE :Cenário: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Os estilos dos cenários definem a jogabilidade base, cada um com cargas e requerimentos diferentes para o desenvolvimento das cidades. Mas NewGRF e Scripts de Jogo permitem um controlo mais refinado STR_CONFIG_SETTING_LAND_GENERATOR :Gerador de terra: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :O gerador original é dependente do conjunto gráfico base, e compõe formas de terreno já afixadas. TerraGenesis é um gerador baseado no algoritmo de ruído de Perlin que permite definições mais refinadas STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Tipo de terreno: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis only) Relevo do terreno STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densidade industrial: {STRING} STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Define quantas indústrias devem ser geradas e que nível deve ser mantido durante o jogo STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distância máxima entre o limite do mapa e Refinarias de Petróleo: {STRING} @@ -1661,13 +1666,23 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrico (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localização +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Gráficos STR_CONFIG_SETTING_SOUND :{ORANGE}Efeitos sonoros STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Geral +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Visualizadores STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construção +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Notícias / Assessores STR_CONFIG_SETTING_COMPANY :{ORANGE}Empresa +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Contabilidade STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veículos +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Física STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Em rota +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitações STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres / Acidentes +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Geração do mundo +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Ambiente +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoridades STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Cidades STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuição de Carga @@ -2860,7 +2875,11 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Ir para STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Gráfico anterior STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceder ao gráfico normal anterior, ignorando quaisquer gráficos pseudo/recolorir/tipo-de-letra e dando a volta no início STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representação do gráfico seleccionado actualmente. O alinhamento é ignorado a desenhar este gráfico -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover o gráfico, mudando os desvios X e Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Desloca o gráfico, alterando os intervalos X e Y. Ctrl+Clique desloca o gráfico 8 unidades de uma só vez +STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Repor relativo +STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Repor intervalos relativos atuais +STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Intervalo X: {NUM}, Intervalo Y: {NUM} (Absoluto) +STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Intervalo X: {NUM}, Intervalo Y: {NUM} (Relativo) STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Escolher gráfico STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Escolha um gráfico de qualquer lado no ecrã @@ -3338,6 +3357,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}Mudar o STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clique para proteger este grupo da autosubstituição global STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Apagar Grupo +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Tem a certeza de que quer apagar este grupo e quaisquer descendentes? STR_GROUP_ADD_SHARED_VEHICLE :Adic. veíc. partilh. STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos os veículos @@ -3879,6 +3899,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viagem (sem pro STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viajar no máximo a {2:VELOCITY} (sem programação) STR_TIMETABLE_TRAVEL_FOR :Viajar durante {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Viajar por {STRING} no máximo a {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viajar (durante {STRING}, sem programação) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viajar (por {STRING}, sem programação) no máximo a {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(permanecer durante {STRING}, sem programação) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viajar durante {STRING}, sem programação) STR_TIMETABLE_STAY_FOR :e ficar durante {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :e viaja para {STRING} STR_TIMETABLE_DAYS :{COMMA} dia{P "" s} From b080b865742cff55a10dd49f29a89038ec93f4e0 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 10 Oct 2016 17:45:36 +0000 Subject: [PATCH 154/417] (svn r27660) -Update from Eints: portuguese: 7 changes by Samu --- src/lang/portuguese.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 9211b9a908..e24d144311 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1290,20 +1290,20 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grossura das li STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Largura da linha nos gráficos. Uma linha mais estreita é de leitura mais precisa, enquanto uma linha mais espessa é mais fácil de ver e as cores distinguem-se melhor. STR_CONFIG_SETTING_LANDSCAPE :Cenário: {STRING} -STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Os estilos dos cenários definem a jogabilidade base, cada um com cargas e requerimentos diferentes para o desenvolvimento das cidades. Mas NewGRF e Scripts de Jogo permitem um controlo mais refinado -STR_CONFIG_SETTING_LAND_GENERATOR :Gerador de terra: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Os estilos dos cenários definem a jogabilidade base, cada um com cargas e requerimentos diferentes para o desenvolvimento das cidades. NewGRF e Scripts de Jogo permitem um controlo mais refinado +STR_CONFIG_SETTING_LAND_GENERATOR :Gerador de terreno: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :O gerador original é dependente do conjunto gráfico base, e compõe formas de terreno já afixadas. TerraGenesis é um gerador baseado no algoritmo de ruído de Perlin que permite definições mais refinadas STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Tipo de terreno: {STRING} -STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis only) Relevo do terreno +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Apenas TerraGenesis) Relevo do terreno STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densidade industrial: {STRING} STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Define quantas indústrias devem ser geradas e que nível deve ser mantido durante o jogo STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distância máxima entre o limite do mapa e Refinarias de Petróleo: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Refinarias de petróleo são construídas apenas próximo da borda do mapa, isto é, na costa para mapas de ilha STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Altura da linha de neve: {STRING} STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controla a que altura a neve começa em paisagens sub-árticas. A neve também afecta a geração de indústrias e os requisitos de crescimento das cidades -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rudeza do terreno (apenas TerraGenesis) : {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rudeza do terreno: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Apenas TerraGenesis) Escolhe a frequência de montes: paisagens macias têm menos montes e mais espalhados. Paisagens duras têm muitos montes, que podem parecer repetitivos STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Muito suave STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Suave @@ -1602,8 +1602,8 @@ STR_CONFIG_SETTING_LARGER_TOWNS :Proporção de STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Quantidade de povoações que se tornarão cidades, logo cidades que começarão maiores e crescerão mais depressa STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 em {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum -STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial para dimensão da metrópole: {STRING} -STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho relativo das cidades em relação ao tamanho normal das mesmas aquando o inicio do jogo +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial para a dimensão das metrópoles: {STRING} +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho relativo das metrópoles em relação ao tamanho normal das cidades aquando o início do jogo STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualizar gráfico de distribuição a cada {STRING} dia{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tempo entre recalculos subsequentes de cada gráfico. Cada recalculo calcula os planos para cada componente do gráfico. Isto significa que um valor X para essa configuração não indica que o gráfico será todo actualizado a cada X dias. Apenas alguns componentes serão. Quanto mais curto o definir, mais tempo será necessário ao CPU para o calcular. Quanto mais longo, mais tempo levará até que a distribuição da carga inicie em novas rotas. @@ -1681,7 +1681,7 @@ STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Em rota STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitações STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres / Acidentes STR_CONFIG_SETTING_GENWORLD :{ORANGE}Geração do mundo -STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Ambiente +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Meio Ambiente STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoridades STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Cidades STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias From 8c1bf8f16d7fd5e3275bfaa853d84b8d2fbd4a87 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 12 Oct 2016 17:45:36 +0000 Subject: [PATCH 155/417] (svn r27661) -Update from Eints: portuguese: 1 change by Samu --- src/lang/portuguese.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index e24d144311..be21b6c4ae 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1756,7 +1756,7 @@ STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Seleccio STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Mostrar opções de jogo STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Mostrar tabela de classificações -STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Definições de Display +STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Mostrar definições STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Mostrar definições de NewGRF STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Verificar conteúdo novo e actualizado para descarga STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar definições de IA e de script de jogo From 3b9cc7055379d8635b940993a9a3528a0f100ff5 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 16 Oct 2016 14:56:05 +0000 Subject: [PATCH 156/417] (svn r27662) -Codechange: Deduplicate code using GetSingleVehicleWidth. --- src/vehicle_gui.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index a5ff3f3530..021c56294e 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2100,9 +2100,7 @@ struct VehicleDetailsWindow : Window { case WID_VD_MIDDLE_DETAILS: { /* For other vehicles, at the place of the matrix. */ bool rtl = _current_text_dir == TD_RTL; - uint sprite_width = UnScaleGUI( - max(GetSprite(v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DETAILS), ST_NORMAL)->width, 70U)) + - WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; + uint sprite_width = GetSingleVehicleWidth(v, EIT_IN_DETAILS) + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; uint text_left = r.left + (rtl ? 0 : sprite_width); uint text_right = r.right - (rtl ? sprite_width : 0); From 2a1e955feed7506de4226b7fe40cb9a4ff175e4e Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 16 Oct 2016 14:56:33 +0000 Subject: [PATCH 157/417] (svn r27663) -Codechange: Deduplicate code when rotating crashed vehicles. --- src/train_cmd.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index dca456d976..699f0c144c 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3521,14 +3521,14 @@ static void ChangeTrainDirRandomly(Train *v) /* We don't need to twist around vehicles if they're not visible */ if (!(v->vehstatus & VS_HIDDEN)) { v->direction = ChangeDir(v->direction, delta[GB(Random(), 0, 2)]); - v->UpdateDeltaXY(v->direction); - v->cur_image = v->GetImage(v->direction, EIT_ON_MAP); /* Refrain from updating the z position of the vehicle when on * a bridge, because UpdateInclination() will put the vehicle under * the bridge in that case */ if (v->track != TRACK_BIT_WORMHOLE) { v->UpdatePosition(); - v->UpdateInclination(false, false); + v->UpdateInclination(false, true); + } else { + v->UpdateViewport(false, true); } } } while ((v = v->Next()) != NULL); From fe12488232c02789a45a3ce15a184bffe5c0b768 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 16 Oct 2016 14:56:52 +0000 Subject: [PATCH 158/417] (svn r27664) -Codechange: Deduplicate code for animating effect vehicles. --- src/effectvehicle.cpp | 57 ++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/src/effectvehicle.cpp b/src/effectvehicle.cpp index 209b78d2e9..c871ac09ad 100644 --- a/src/effectvehicle.cpp +++ b/src/effectvehicle.cpp @@ -22,6 +22,22 @@ #include "safeguards.h" +/** + * Increment the sprite unless it has reached the end of the animation. + * @param v Vehicle to increment sprite of. + * @param last Last sprite of animation. + * @return true if the sprite was incremented, false if the end was reached. + */ +static bool IncrementSprite(EffectVehicle *v, SpriteID last) +{ + if (v->cur_image != last) { + v->cur_image++; + return true; + } else { + return false; + } +} + static void ChimneySmokeInit(EffectVehicle *v) { uint32 r = Random(); @@ -40,9 +56,7 @@ static bool ChimneySmokeTick(EffectVehicle *v) return false; } - if (v->cur_image != SPR_CHIMNEY_SMOKE_7) { - v->cur_image++; - } else { + if (!IncrementSprite(v, SPR_CHIMNEY_SMOKE_7)) { v->cur_image = SPR_CHIMNEY_SMOKE_0; } v->progress = 7; @@ -70,9 +84,7 @@ static bool SteamSmokeTick(EffectVehicle *v) } if ((v->progress & 0xF) == 4) { - if (v->cur_image != SPR_STEAM_SMOKE_4) { - v->cur_image++; - } else { + if (!IncrementSprite(v, SPR_STEAM_SMOKE_4)) { delete v; return false; } @@ -98,13 +110,11 @@ static bool DieselSmokeTick(EffectVehicle *v) v->z_pos++; v->UpdatePositionAndViewport(); } else if ((v->progress & 7) == 1) { - if (v->cur_image != SPR_DIESEL_SMOKE_5) { - v->cur_image++; - v->UpdatePositionAndViewport(); - } else { + if (!IncrementSprite(v, SPR_DIESEL_SMOKE_5)) { delete v; return false; } + v->UpdatePositionAndViewport(); } return true; @@ -122,13 +132,12 @@ static bool ElectricSparkTick(EffectVehicle *v) v->progress++; } else { v->progress = 0; - if (v->cur_image != SPR_ELECTRIC_SPARK_5) { - v->cur_image++; - v->UpdatePositionAndViewport(); - } else { + + if (!IncrementSprite(v, SPR_ELECTRIC_SPARK_5)) { delete v; return false; } + v->UpdatePositionAndViewport(); } return true; @@ -152,9 +161,7 @@ static bool SmokeTick(EffectVehicle *v) } if ((v->progress & 0xF) == 4) { - if (v->cur_image != SPR_SMOKE_4) { - v->cur_image++; - } else { + if (!IncrementSprite(v, SPR_SMOKE_4)) { delete v; return false; } @@ -176,13 +183,11 @@ static bool ExplosionLargeTick(EffectVehicle *v) { v->progress++; if ((v->progress & 3) == 0) { - if (v->cur_image != SPR_EXPLOSION_LARGE_F) { - v->cur_image++; - v->UpdatePositionAndViewport(); - } else { + if (!IncrementSprite(v, SPR_EXPLOSION_LARGE_F)) { delete v; return false; } + v->UpdatePositionAndViewport(); } return true; @@ -198,9 +203,7 @@ static bool BreakdownSmokeTick(EffectVehicle *v) { v->progress++; if ((v->progress & 7) == 0) { - if (v->cur_image != SPR_BREAKDOWN_SMOKE_3) { - v->cur_image++; - } else { + if (!IncrementSprite(v, SPR_BREAKDOWN_SMOKE_3)) { v->cur_image = SPR_BREAKDOWN_SMOKE_0; } v->UpdatePositionAndViewport(); @@ -225,13 +228,11 @@ static bool ExplosionSmallTick(EffectVehicle *v) { v->progress++; if ((v->progress & 3) == 0) { - if (v->cur_image != SPR_EXPLOSION_SMALL_B) { - v->cur_image++; - v->UpdatePositionAndViewport(); - } else { + if (!IncrementSprite(v, SPR_EXPLOSION_SMALL_B)) { delete v; return false; } + v->UpdatePositionAndViewport(); } return true; From 8321c2d0fa3f505333948a8c180ca5ce04a60837 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 16 Oct 2016 14:57:13 +0000 Subject: [PATCH 159/417] (svn r27665) -Fix: When dragging crashed vehicles, also draw them as crashed at the mouse cursor. --- src/vehicle_gui.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 021c56294e..87c119074c 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2881,8 +2881,10 @@ void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type) if (_cursor.sprite_count == lengthof(_cursor.sprite_seq)) break; if (total_width >= 2 * (int)VEHICLEINFO_FULL_VEHICLE_WIDTH) break; + PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); + _cursor.sprite_seq[_cursor.sprite_count].sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type); - _cursor.sprite_seq[_cursor.sprite_count].pal = GetVehiclePalette(v); + _cursor.sprite_seq[_cursor.sprite_count].pal = pal; _cursor.sprite_pos[_cursor.sprite_count].x = rtl ? -total_width : total_width; _cursor.sprite_pos[_cursor.sprite_count].y = 0; From f36539837e2562c6426c2268ce0c3dd2088e083f Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 16 Oct 2016 14:57:56 +0000 Subject: [PATCH 160/417] (svn r27666) -Codechange: Pass vehicle sprites around using a struct VehicleSpriteSeq. --- src/aircraft.h | 4 +- src/aircraft_cmd.cpp | 69 ++++++++++++++++++++--------------- src/aircraft_gui.cpp | 15 +++++--- src/articulated_vehicles.cpp | 2 +- src/disaster_vehicle.cpp | 5 ++- src/effectvehicle.cpp | 37 ++++++++++--------- src/newgrf_engine.cpp | 21 ++++++----- src/newgrf_engine.h | 16 +++++--- src/roadveh.h | 2 +- src/roadveh_cmd.cpp | 34 +++++++++-------- src/roadveh_gui.cpp | 4 +- src/saveload/oldloader_sl.cpp | 6 +-- src/saveload/vehicle_sl.cpp | 14 +++---- src/ship.h | 2 +- src/ship_cmd.cpp | 31 +++++++++------- src/ship_gui.cpp | 8 ++-- src/train.h | 2 +- src/train_cmd.cpp | 59 ++++++++++++++++-------------- src/train_gui.cpp | 8 +++- src/vehicle.cpp | 8 ++-- src/vehicle_base.h | 54 ++++++++++++++++++++++++--- src/vehicle_gui.cpp | 9 +++-- 22 files changed, 249 insertions(+), 161 deletions(-) diff --git a/src/aircraft.h b/src/aircraft.h index 0805ae8ec6..f0ca1c4abb 100644 --- a/src/aircraft.h +++ b/src/aircraft.h @@ -93,7 +93,7 @@ struct Aircraft FINAL : public SpecializedVehicle { void UpdateDeltaXY(Direction direction); ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_AIRCRAFT_INC : EXPENSES_AIRCRAFT_RUN; } bool IsPrimaryVehicle() const { return this->IsNormalAircraft(); } - SpriteID GetImage(Direction direction, EngineImageType image_type) const; + void GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const; int GetDisplaySpeed() const { return this->cur_speed; } int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed; } int GetSpeedOldUnits() const { return this->vcache.cached_max_speed * 10 / 128; } @@ -141,7 +141,7 @@ struct Aircraft FINAL : public SpecializedVehicle { */ #define FOR_ALL_AIRCRAFT(var) FOR_ALL_VEHICLES_OF_TYPE(Aircraft, var) -SpriteID GetRotorImage(const Aircraft *v, EngineImageType image_type); +void GetRotorImage(const Aircraft *v, EngineImageType image_type, VehicleSpriteSeq *result); Station *GetTargetAirportIfValid(const Aircraft *v); diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index edb10af327..c7cb5bbb22 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -152,64 +152,67 @@ static StationID FindNearestHangar(const Aircraft *v) return index; } -SpriteID Aircraft::GetImage(Direction direction, EngineImageType image_type) const +void Aircraft::GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const { uint8 spritenum = this->spritenum; if (is_custom_sprite(spritenum)) { - SpriteID sprite = GetCustomVehicleSprite(this, direction, image_type); - if (sprite != 0) return sprite; + GetCustomVehicleSprite(this, direction, image_type, result); + if (result->IsValid()) return; spritenum = this->GetEngine()->original_image_index; } assert(IsValidImageIndex(spritenum)); - return direction + _aircraft_sprite[spritenum]; + result->Set(direction + _aircraft_sprite[spritenum]); } -SpriteID GetRotorImage(const Aircraft *v, EngineImageType image_type) +void GetRotorImage(const Aircraft *v, EngineImageType image_type, VehicleSpriteSeq *result) { assert(v->subtype == AIR_HELICOPTER); const Aircraft *w = v->Next()->Next(); if (is_custom_sprite(v->spritenum)) { - SpriteID sprite = GetCustomRotorSprite(v, false, image_type); - if (sprite != 0) return sprite; + GetCustomRotorSprite(v, false, image_type, result); + if (result->IsValid()) return; } /* Return standard rotor sprites if there are no custom sprites for this helicopter */ - return SPR_ROTOR_STOPPED + w->state; + result->Set(SPR_ROTOR_STOPPED + w->state); } -static SpriteID GetAircraftIcon(EngineID engine, EngineImageType image_type) +static void GetAircraftIcon(EngineID engine, EngineImageType image_type, VehicleSpriteSeq *result) { const Engine *e = Engine::Get(engine); uint8 spritenum = e->u.air.image_index; if (is_custom_sprite(spritenum)) { - SpriteID sprite = GetCustomVehicleIcon(engine, DIR_W, image_type); - if (sprite != 0) return sprite; + GetCustomVehicleIcon(engine, DIR_W, image_type, result); + if (result->IsValid()) return; spritenum = e->original_image_index; } assert(IsValidImageIndex(spritenum)); - return DIR_W + _aircraft_sprite[spritenum]; + result->Set(DIR_W + _aircraft_sprite[spritenum]); } void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type) { - SpriteID sprite = GetAircraftIcon(engine, image_type); - const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); + VehicleSpriteSeq seq; + GetAircraftIcon(engine, image_type, &seq); + + const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); preferred_x = Clamp(preferred_x, left - UnScaleGUI(real_sprite->x_offs), right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs)); - DrawSprite(sprite, pal, preferred_x, y); + DrawSprite(seq.sprite, pal, preferred_x, y); if (!(AircraftVehInfo(engine)->subtype & AIR_CTOL)) { - SpriteID rotor_sprite = GetCustomRotorIcon(engine, image_type); - if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED; - DrawSprite(rotor_sprite, PAL_NONE, preferred_x, y - ScaleGUITrad(5)); + VehicleSpriteSeq rotor_seq; + GetCustomRotorIcon(engine, image_type, &rotor_seq); + if (!rotor_seq.IsValid()) rotor_seq.Set(SPR_ROTOR_STOPPED); + DrawSprite(rotor_seq.sprite, PAL_NONE, preferred_x, y - ScaleGUITrad(5)); } } @@ -224,7 +227,10 @@ void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID en */ void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type) { - const Sprite *spr = GetSprite(GetAircraftIcon(engine, image_type), ST_NORMAL); + VehicleSpriteSeq seq; + GetAircraftIcon(engine, image_type, &seq); + + const Sprite *spr = GetSprite(seq.sprite, ST_NORMAL); width = UnScaleGUI(spr->width); height = UnScaleGUI(spr->height); @@ -317,7 +323,8 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine * v->date_of_last_service = _date; v->build_year = u->build_year = _cur_year; - v->cur_image = u->cur_image = SPR_IMG_QUERY; + v->sprite_seq.Set(SPR_IMG_QUERY); + u->sprite_seq.Set(SPR_IMG_QUERY); v->random_bits = VehicleRandomBits(); u->random_bits = VehicleRandomBits(); @@ -349,7 +356,7 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine * w->vehstatus = VS_HIDDEN | VS_UNCLICKABLE; w->spritenum = 0xFF; w->subtype = AIR_ROTOR; - w->cur_image = SPR_ROTOR_STOPPED; + w->sprite_seq.Set(SPR_ROTOR_STOPPED); w->random_bits = VehicleRandomBits(); /* Use rotor's air.state to store the rotor animation frame */ w->state = HRS_ROTOR_STOPPED; @@ -468,21 +475,21 @@ static void HelicopterTickHandler(Aircraft *v) int tick = ++u->tick_counter; int spd = u->cur_speed >> 4; - SpriteID img; + VehicleSpriteSeq seq; if (spd == 0) { u->state = HRS_ROTOR_STOPPED; - img = GetRotorImage(v, EIT_ON_MAP); - if (u->cur_image == img) return; + GetRotorImage(v, EIT_ON_MAP, &seq); + if (u->sprite_seq == seq) return; } else if (tick >= spd) { u->tick_counter = 0; u->state++; if (u->state > HRS_ROTOR_MOVING_3) u->state = HRS_ROTOR_MOVING_1; - img = GetRotorImage(v, EIT_ON_MAP); + GetRotorImage(v, EIT_ON_MAP, &seq); } else { return; } - u->cur_image = img; + u->sprite_seq = seq; u->UpdatePositionAndViewport(); } @@ -502,7 +509,9 @@ void SetAircraftPosition(Aircraft *v, int x, int y, int z) v->UpdatePosition(); v->UpdateViewport(true, false); - if (v->subtype == AIR_HELICOPTER) v->Next()->Next()->cur_image = GetRotorImage(v, EIT_ON_MAP); + if (v->subtype == AIR_HELICOPTER) { + GetRotorImage(v, EIT_ON_MAP, &v->Next()->Next()->sprite_seq); + } Aircraft *u = v->Next(); @@ -513,7 +522,7 @@ void SetAircraftPosition(Aircraft *v, int x, int y, int z) safe_y = Clamp(u->y_pos, 0, MapMaxY() * TILE_SIZE); u->z_pos = GetSlopePixelZ(safe_x, safe_y); - u->cur_image = v->cur_image; + u->sprite_seq.sprite = v->sprite_seq.sprite; u->UpdatePositionAndViewport(); @@ -1237,7 +1246,9 @@ void Aircraft::MarkDirty() { this->colourmap = PAL_NONE; this->UpdateViewport(true, false); - if (this->subtype == AIR_HELICOPTER) this->Next()->Next()->cur_image = GetRotorImage(this, EIT_ON_MAP); + if (this->subtype == AIR_HELICOPTER) { + GetRotorImage(this, EIT_ON_MAP, &this->Next()->Next()->sprite_seq); + } } diff --git a/src/aircraft_gui.cpp b/src/aircraft_gui.cpp index c3379d3951..752e0da909 100644 --- a/src/aircraft_gui.cpp +++ b/src/aircraft_gui.cpp @@ -83,8 +83,10 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s { bool rtl = _current_text_dir == TD_RTL; - SpriteID sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type); - const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); + VehicleSpriteSeq seq; + v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq); + + const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); int width = UnScaleGUI(real_sprite->width); int x_offs = UnScaleGUI(real_sprite->x_offs); @@ -95,13 +97,14 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s int heli_offs = 0; PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); - DrawSprite(sprite, pal, x, y + y_offs); + DrawSprite(seq.sprite, pal, x, y + y_offs); if (helicopter) { const Aircraft *a = Aircraft::From(v); - SpriteID rotor_sprite = GetCustomRotorSprite(a, true, image_type); - if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED; + VehicleSpriteSeq rotor_seq; + GetCustomRotorSprite(a, true, image_type, &rotor_seq); + if (!rotor_seq.IsValid()) rotor_seq.Set(SPR_ROTOR_STOPPED); heli_offs = ScaleGUITrad(5); - DrawSprite(rotor_sprite, PAL_NONE, x, y + y_offs - heli_offs); + DrawSprite(rotor_seq.sprite, PAL_NONE, x, y + y_offs - heli_offs); } if (v->index == selection) { x += x_offs; diff --git a/src/articulated_vehicles.cpp b/src/articulated_vehicles.cpp index 8c372e7eae..04c9f95a97 100644 --- a/src/articulated_vehicles.cpp +++ b/src/articulated_vehicles.cpp @@ -441,7 +441,7 @@ void AddArticulatedParts(Vehicle *first) v->max_age = 0; v->engine_type = engine_type; v->value = 0; - v->cur_image = SPR_IMG_QUERY; + v->sprite_seq.Set(SPR_IMG_QUERY); v->random_bits = VehicleRandomBits(); if (flip_image) v->spritenum++; diff --git a/src/disaster_vehicle.cpp b/src/disaster_vehicle.cpp index d75e2d460e..65a9187e3e 100644 --- a/src/disaster_vehicle.cpp +++ b/src/disaster_vehicle.cpp @@ -112,7 +112,7 @@ void DisasterVehicle::UpdateImage() { SpriteID img = this->image_override; if (img == 0) img = _disaster_images[this->subtype][this->direction]; - this->cur_image = img; + this->sprite_seq.Set(img); } /** @@ -499,7 +499,8 @@ static bool DisasterTick_Helicopter_Rotors(DisasterVehicle *v) v->tick_counter++; if (HasBit(v->tick_counter, 0)) return true; - if (++v->cur_image > SPR_ROTOR_MOVING_3) v->cur_image = SPR_ROTOR_MOVING_1; + SpriteID &cur_image = v->sprite_seq.sprite; + if (++cur_image > SPR_ROTOR_MOVING_3) cur_image = SPR_ROTOR_MOVING_1; v->UpdatePositionAndViewport(); diff --git a/src/effectvehicle.cpp b/src/effectvehicle.cpp index c871ac09ad..266a8e0963 100644 --- a/src/effectvehicle.cpp +++ b/src/effectvehicle.cpp @@ -30,8 +30,8 @@ */ static bool IncrementSprite(EffectVehicle *v, SpriteID last) { - if (v->cur_image != last) { - v->cur_image++; + if (v->sprite_seq.sprite != last) { + v->sprite_seq.sprite++; return true; } else { return false; @@ -41,7 +41,7 @@ static bool IncrementSprite(EffectVehicle *v, SpriteID last) static void ChimneySmokeInit(EffectVehicle *v) { uint32 r = Random(); - v->cur_image = SPR_CHIMNEY_SMOKE_0 + GB(r, 0, 3); + v->sprite_seq.Set(SPR_CHIMNEY_SMOKE_0 + GB(r, 0, 3)); v->progress = GB(r, 16, 3); } @@ -57,7 +57,7 @@ static bool ChimneySmokeTick(EffectVehicle *v) } if (!IncrementSprite(v, SPR_CHIMNEY_SMOKE_7)) { - v->cur_image = SPR_CHIMNEY_SMOKE_0; + v->sprite_seq.Set(SPR_CHIMNEY_SMOKE_0); } v->progress = 7; v->UpdatePositionAndViewport(); @@ -68,7 +68,7 @@ static bool ChimneySmokeTick(EffectVehicle *v) static void SteamSmokeInit(EffectVehicle *v) { - v->cur_image = SPR_STEAM_SMOKE_0; + v->sprite_seq.Set(SPR_STEAM_SMOKE_0); v->progress = 12; } @@ -98,7 +98,7 @@ static bool SteamSmokeTick(EffectVehicle *v) static void DieselSmokeInit(EffectVehicle *v) { - v->cur_image = SPR_DIESEL_SMOKE_0; + v->sprite_seq.Set(SPR_DIESEL_SMOKE_0); v->progress = 0; } @@ -122,7 +122,7 @@ static bool DieselSmokeTick(EffectVehicle *v) static void ElectricSparkInit(EffectVehicle *v) { - v->cur_image = SPR_ELECTRIC_SPARK_0; + v->sprite_seq.Set(SPR_ELECTRIC_SPARK_0); v->progress = 1; } @@ -145,7 +145,7 @@ static bool ElectricSparkTick(EffectVehicle *v) static void SmokeInit(EffectVehicle *v) { - v->cur_image = SPR_SMOKE_0; + v->sprite_seq.Set(SPR_SMOKE_0); v->progress = 12; } @@ -175,7 +175,7 @@ static bool SmokeTick(EffectVehicle *v) static void ExplosionLargeInit(EffectVehicle *v) { - v->cur_image = SPR_EXPLOSION_LARGE_0; + v->sprite_seq.Set(SPR_EXPLOSION_LARGE_0); v->progress = 0; } @@ -195,7 +195,7 @@ static bool ExplosionLargeTick(EffectVehicle *v) static void BreakdownSmokeInit(EffectVehicle *v) { - v->cur_image = SPR_BREAKDOWN_SMOKE_0; + v->sprite_seq.Set(SPR_BREAKDOWN_SMOKE_0); v->progress = 0; } @@ -204,7 +204,7 @@ static bool BreakdownSmokeTick(EffectVehicle *v) v->progress++; if ((v->progress & 7) == 0) { if (!IncrementSprite(v, SPR_BREAKDOWN_SMOKE_3)) { - v->cur_image = SPR_BREAKDOWN_SMOKE_0; + v->sprite_seq.Set(SPR_BREAKDOWN_SMOKE_0); } v->UpdatePositionAndViewport(); } @@ -220,7 +220,7 @@ static bool BreakdownSmokeTick(EffectVehicle *v) static void ExplosionSmallInit(EffectVehicle *v) { - v->cur_image = SPR_EXPLOSION_SMALL_0; + v->sprite_seq.Set(SPR_EXPLOSION_SMALL_0); v->progress = 0; } @@ -240,7 +240,7 @@ static bool ExplosionSmallTick(EffectVehicle *v) static void BulldozerInit(EffectVehicle *v) { - v->cur_image = SPR_BULLDOZER_NE; + v->sprite_seq.Set(SPR_BULLDOZER_NE); v->progress = 0; v->animation_state = 0; v->animation_substate = 0; @@ -291,7 +291,7 @@ static bool BulldozerTick(EffectVehicle *v) if ((v->progress & 7) == 0) { const BulldozerMovement *b = &_bulldozer_movement[v->animation_state]; - v->cur_image = SPR_BULLDOZER_NE + b->image; + v->sprite_seq.Set(SPR_BULLDOZER_NE + b->image); v->x_pos += _inc_by_dir[b->direction].x; v->y_pos += _inc_by_dir[b->direction].y; @@ -313,7 +313,7 @@ static bool BulldozerTick(EffectVehicle *v) static void BubbleInit(EffectVehicle *v) { - v->cur_image = SPR_BUBBLE_GENERATE_0; + v->sprite_seq.Set(SPR_BUBBLE_GENERATE_0); v->spritenum = 0; v->progress = 0; } @@ -476,8 +476,9 @@ static bool BubbleTick(EffectVehicle *v) if ((v->progress & 3) != 0) return true; if (v->spritenum == 0) { - v->cur_image++; - if (v->cur_image < SPR_BUBBLE_GENERATE_3) { + SpriteID &cur_image = v->sprite_seq.sprite; + cur_image++; + if (cur_image < SPR_BUBBLE_GENERATE_3) { v->UpdatePositionAndViewport(); return true; } @@ -522,7 +523,7 @@ static bool BubbleTick(EffectVehicle *v) v->x_pos += b->x; v->y_pos += b->y; v->z_pos += b->z; - v->cur_image = SPR_BUBBLE_0 + b->image; + v->sprite_seq.Set(SPR_BUBBLE_0 + b->image); v->UpdatePositionAndViewport(); diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index 4aafa10f9f..ba8367c7da 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -1023,17 +1023,19 @@ VehicleResolverObject::VehicleResolverObject(EngineID engine_type, const Vehicle -SpriteID GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction direction, EngineImageType image_type) +void GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) { VehicleResolverObject object(engine, v, VehicleResolverObject::WO_CACHED, false, CBID_NO_CALLBACK, image_type); - const SpriteGroup *group = object.Resolve(); - if (group == NULL || group->GetNumResults() == 0) return 0; + result->Clear(); - return group->GetResult() + (direction % group->GetNumResults()); + const SpriteGroup *group = object.Resolve(); + if (group == NULL || group->GetNumResults() == 0) return; + + result->Set(group->GetResult() + (direction % group->GetNumResults())); } -SpriteID GetRotorOverrideSprite(EngineID engine, const Aircraft *v, bool info_view, EngineImageType image_type) +void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, bool info_view, EngineImageType image_type, VehicleSpriteSeq *result) { const Engine *e = Engine::Get(engine); @@ -1042,13 +1044,14 @@ SpriteID GetRotorOverrideSprite(EngineID engine, const Aircraft *v, bool info_vi assert(!(e->u.air.subtype & AIR_CTOL)); VehicleResolverObject object(engine, v, VehicleResolverObject::WO_SELF, info_view, CBID_NO_CALLBACK, image_type); + result->Clear(); + uint rotor_pos = v == NULL || info_view ? 0 : v->Next()->Next()->state; + const SpriteGroup *group = object.Resolve(); - if (group == NULL || group->GetNumResults() == 0) return 0; + if (group == NULL || group->GetNumResults() == 0) return; - if (v == NULL || info_view) return group->GetResult(); - - return group->GetResult() + (v->Next()->Next()->state % group->GetNumResults()); + result->Set(group->GetResult() + (rotor_pos % group->GetNumResults())); } diff --git a/src/newgrf_engine.h b/src/newgrf_engine.h index 4a6f211c49..3c8108737c 100644 --- a/src/newgrf_engine.h +++ b/src/newgrf_engine.h @@ -64,13 +64,19 @@ static const uint TRAININFO_DEFAULT_VEHICLE_WIDTH = 29; static const uint ROADVEHINFO_DEFAULT_VEHICLE_WIDTH = 32; static const uint VEHICLEINFO_FULL_VEHICLE_WIDTH = 32; +struct VehicleSpriteSeq; + void SetWagonOverrideSprites(EngineID engine, CargoID cargo, const struct SpriteGroup *group, EngineID *train_id, uint trains); const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, EngineID overriding_engine); void SetCustomEngineSprites(EngineID engine, byte cargo, const struct SpriteGroup *group); -SpriteID GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction direction, EngineImageType image_type); -SpriteID GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, bool info_view, EngineImageType image_type); -#define GetCustomRotorSprite(v, i, image_type) GetRotorOverrideSprite(v->engine_type, v, i, image_type) -#define GetCustomRotorIcon(et, image_type) GetRotorOverrideSprite(et, NULL, true, image_type) + +void GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction direction, EngineImageType image_type, VehicleSpriteSeq *result); +#define GetCustomVehicleSprite(v, direction, image_type, result) GetCustomEngineSprite(v->engine_type, v, direction, image_type, result) +#define GetCustomVehicleIcon(et, direction, image_type, result) GetCustomEngineSprite(et, NULL, direction, image_type, result) + +void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, bool info_view, EngineImageType image_type, VehicleSpriteSeq *result); +#define GetCustomRotorSprite(v, i, image_type, result) GetRotorOverrideSprite(v->engine_type, v, i, image_type, result) +#define GetCustomRotorIcon(et, image_type, result) GetRotorOverrideSprite(et, NULL, true, image_type, result) /* Forward declaration of GRFFile, to avoid unnecessary inclusion of newgrf.h * elsewhere... */ @@ -81,8 +87,6 @@ void SetEngineGRF(EngineID engine, const struct GRFFile *file); uint16 GetVehicleCallback(CallbackID callback, uint32 param1, uint32 param2, EngineID engine, const Vehicle *v); uint16 GetVehicleCallbackParent(CallbackID callback, uint32 param1, uint32 param2, EngineID engine, const Vehicle *v, const Vehicle *parent); bool UsesWagonOverride(const Vehicle *v); -#define GetCustomVehicleSprite(v, direction, image_type) GetCustomEngineSprite(v->engine_type, v, direction, image_type) -#define GetCustomVehicleIcon(et, direction, image_type) GetCustomEngineSprite(et, NULL, direction, image_type) /* Handler to Evaluate callback 36. If the callback fails (i.e. most of the * time) orig_value is returned */ diff --git a/src/roadveh.h b/src/roadveh.h index 5b265f0470..b1865fc22e 100644 --- a/src/roadveh.h +++ b/src/roadveh.h @@ -108,7 +108,7 @@ struct RoadVehicle FINAL : public GroundVehicle { void UpdateDeltaXY(Direction direction); ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_ROADVEH_INC : EXPENSES_ROADVEH_RUN; } bool IsPrimaryVehicle() const { return this->IsFrontEngine(); } - SpriteID GetImage(Direction direction, EngineImageType image_type) const; + void GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const; int GetDisplaySpeed() const { return this->gcache.last_speed / 2; } int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed / 2; } Money GetRunningCost() const; diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 35c671d355..e956787b0b 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -113,40 +113,39 @@ int RoadVehicle::GetDisplayImageWidth(Point *offset) const return ScaleGUITrad(this->gcache.cached_veh_length * reference_width / VEHICLE_LENGTH); } -static SpriteID GetRoadVehIcon(EngineID engine, EngineImageType image_type) +static void GetRoadVehIcon(EngineID engine, EngineImageType image_type, VehicleSpriteSeq *result) { const Engine *e = Engine::Get(engine); uint8 spritenum = e->u.road.image_index; if (is_custom_sprite(spritenum)) { - SpriteID sprite = GetCustomVehicleIcon(engine, DIR_W, image_type); - if (sprite != 0) return sprite; + GetCustomVehicleIcon(engine, DIR_W, image_type, result); + if (result->IsValid()) return; spritenum = e->original_image_index; } assert(IsValidImageIndex(spritenum)); - return DIR_W + _roadveh_images[spritenum]; + result->Set(DIR_W + _roadveh_images[spritenum]); } -SpriteID RoadVehicle::GetImage(Direction direction, EngineImageType image_type) const +void RoadVehicle::GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const { uint8 spritenum = this->spritenum; - SpriteID sprite; if (is_custom_sprite(spritenum)) { - sprite = GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(spritenum)), image_type); - if (sprite != 0) return sprite; + GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(spritenum)), image_type, result); + if (result->IsValid()) return; spritenum = this->GetEngine()->original_image_index; } assert(IsValidImageIndex(spritenum)); - sprite = direction + _roadveh_images[spritenum]; + SpriteID sprite = direction + _roadveh_images[spritenum]; if (this->cargo.StoredCount() >= this->cargo_cap / 2U) sprite += _roadveh_full_adder[spritenum]; - return sprite; + result->Set(sprite); } /** @@ -160,12 +159,14 @@ SpriteID RoadVehicle::GetImage(Direction direction, EngineImageType image_type) */ void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type) { - SpriteID sprite = GetRoadVehIcon(engine, image_type); - const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); + VehicleSpriteSeq seq; + GetRoadVehIcon(engine, image_type, &seq); + + const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); preferred_x = Clamp(preferred_x, left - UnScaleGUI(real_sprite->x_offs), right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs)); - DrawSprite(sprite, pal, preferred_x, y); + DrawSprite(seq.sprite, pal, preferred_x, y); } /** @@ -179,7 +180,10 @@ void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID eng */ void GetRoadVehSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type) { - const Sprite *spr = GetSprite(GetRoadVehIcon(engine, image_type), ST_NORMAL); + VehicleSpriteSeq seq; + GetRoadVehIcon(engine, image_type, &seq); + + const Sprite *spr = GetSprite(seq.sprite, ST_NORMAL); width = UnScaleGUI(spr->width); height = UnScaleGUI(spr->height); @@ -306,7 +310,7 @@ CommandCost CmdBuildRoadVehicle(TileIndex tile, DoCommandFlag flags, const Engin v->date_of_last_service = _date; v->build_year = _cur_year; - v->cur_image = SPR_IMG_QUERY; + v->sprite_seq.Set(SPR_IMG_QUERY); v->random_bits = VehicleRandomBits(); v->SetFrontEngine(); diff --git a/src/roadveh_gui.cpp b/src/roadveh_gui.cpp index 46ff6cea78..26027a8892 100644 --- a/src/roadveh_gui.cpp +++ b/src/roadveh_gui.cpp @@ -149,7 +149,9 @@ void DrawRoadVehImage(const Vehicle *v, int left, int right, int y, VehicleID se if (rtl ? px + width > 0 : px - width < max_width) { PaletteID pal = (u->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(u); - DrawSprite(u->GetImage(dir, image_type), pal, px + (rtl ? -offset.x : offset.x), ScaleGUITrad(6) + offset.y); + VehicleSpriteSeq seq; + u->GetImage(dir, image_type, &seq); + DrawSprite(seq.sprite, pal, px + (rtl ? -offset.x : offset.x), ScaleGUITrad(6) + offset.y); } px += rtl ? -width : width; diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index 4afbe6033d..561df3361a 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -1165,7 +1165,7 @@ static const OldChunks vehicle_chunk[] = { OCL_SVAR( OC_UINT8, Vehicle, owner ), OCL_SVAR( OC_TILE, Vehicle, tile ), - OCL_SVAR( OC_FILE_U16 | OC_VAR_U32, Vehicle, cur_image ), + OCL_SVAR( OC_FILE_U16 | OC_VAR_U32, Vehicle, sprite_seq.sprite ), OCL_NULL( 8 ), ///< Vehicle sprite box, calculated automatically @@ -1258,7 +1258,7 @@ bool LoadOldVehicle(LoadgameState *ls, int num) if (v == NULL) continue; v->refit_cap = v->cargo_cap; - SpriteID sprite = v->cur_image; + SpriteID sprite = v->sprite_seq.sprite; /* no need to override other sprites */ if (IsInsideMM(sprite, 1460, 1465)) { sprite += 580; // aircraft smoke puff @@ -1269,7 +1269,7 @@ bool LoadOldVehicle(LoadgameState *ls, int num) } else if (IsInsideMM(sprite, 2516, 2539)) { sprite += 1385; // rotor or disaster-related vehicles } - v->cur_image = sprite; + v->sprite_seq.sprite = sprite; switch (v->type) { case VEH_TRAIN: { diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index ebc5fc4215..4c40f52b21 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -436,21 +436,21 @@ void AfterLoadVehicles(bool part_of_load) case VEH_TRAIN: case VEH_SHIP: - v->cur_image = v->GetImage(v->direction, EIT_ON_MAP); + v->GetImage(v->direction, EIT_ON_MAP, &v->sprite_seq); break; case VEH_AIRCRAFT: if (Aircraft::From(v)->IsNormalAircraft()) { - v->cur_image = v->GetImage(v->direction, EIT_ON_MAP); + v->GetImage(v->direction, EIT_ON_MAP, &v->sprite_seq); - /* The plane's shadow will have the same image as the plane */ + /* The plane's shadow will have the same image as the plane, but no colour */ Vehicle *shadow = v->Next(); - shadow->cur_image = v->cur_image; + shadow->sprite_seq.sprite = v->sprite_seq.sprite; /* In the case of a helicopter we will update the rotor sprites */ if (v->subtype == AIR_HELICOPTER) { Vehicle *rotor = shadow->Next(); - rotor->cur_image = GetRotorImage(Aircraft::From(v), EIT_ON_MAP); + GetRotorImage(Aircraft::From(v), EIT_ON_MAP, &rotor->sprite_seq); } UpdateAircraftCache(Aircraft::From(v), true); @@ -796,7 +796,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, 0, 163), SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, 164, SL_MAX_VERSION), - SLE_VAR(Vehicle, cur_image, SLE_FILE_U16 | SLE_VAR_U32), + SLE_VAR(Vehicle, sprite_seq.sprite, SLE_FILE_U16 | SLE_VAR_U32), SLE_CONDNULL(5, 0, 57), SLE_VAR(Vehicle, progress, SLE_UINT8), SLE_VAR(Vehicle, vehstatus, SLE_UINT8), @@ -836,7 +836,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) SLE_CONDVAR(Vehicle, current_order.dest, SLE_FILE_U8 | SLE_VAR_U16, 0, 4), SLE_CONDVAR(Vehicle, current_order.dest, SLE_UINT16, 5, SL_MAX_VERSION), - SLE_VAR(Vehicle, cur_image, SLE_FILE_U16 | SLE_VAR_U32), + SLE_VAR(Vehicle, sprite_seq.sprite, SLE_FILE_U16 | SLE_VAR_U32), SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Vehicle, age, SLE_INT32, 31, SL_MAX_VERSION), SLE_VAR(Vehicle, tick_counter, SLE_UINT8), diff --git a/src/ship.h b/src/ship.h index 18f04c8faf..c94cbcddb7 100644 --- a/src/ship.h +++ b/src/ship.h @@ -34,7 +34,7 @@ struct Ship FINAL : public SpecializedVehicle { ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_SHIP_INC : EXPENSES_SHIP_RUN; } void PlayLeaveStationSound() const; bool IsPrimaryVehicle() const { return true; } - SpriteID GetImage(Direction direction, EngineImageType image_type) const; + void GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const; int GetDisplaySpeed() const { return this->cur_speed / 2; } int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed / 2; } int GetCurrentMaxSpeed() const { return min(this->vcache.cached_max_speed, this->current_order.GetMaxSpeed() * 2); } diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index a24fb35104..a4b84ae876 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -70,30 +70,32 @@ static inline TrackBits GetTileShipTrackStatus(TileIndex tile) return TrackStatusToTrackBits(GetTileTrackStatus(tile, TRANSPORT_WATER, 0)); } -static SpriteID GetShipIcon(EngineID engine, EngineImageType image_type) +static void GetShipIcon(EngineID engine, EngineImageType image_type, VehicleSpriteSeq *result) { const Engine *e = Engine::Get(engine); uint8 spritenum = e->u.ship.image_index; if (is_custom_sprite(spritenum)) { - SpriteID sprite = GetCustomVehicleIcon(engine, DIR_W, image_type); - if (sprite != 0) return sprite; + GetCustomVehicleIcon(engine, DIR_W, image_type, result); + if (result->IsValid()) return; spritenum = e->original_image_index; } assert(IsValidImageIndex(spritenum)); - return DIR_W + _ship_sprites[spritenum]; + result->Set(DIR_W + _ship_sprites[spritenum]); } void DrawShipEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type) { - SpriteID sprite = GetShipIcon(engine, image_type); - const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); + VehicleSpriteSeq seq; + GetShipIcon(engine, image_type, &seq); + + const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); preferred_x = Clamp(preferred_x, left - UnScaleGUI(real_sprite->x_offs), right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs)); - DrawSprite(sprite, pal, preferred_x, y); + DrawSprite(seq.sprite, pal, preferred_x, y); } /** @@ -107,7 +109,10 @@ void DrawShipEngine(int left, int right, int preferred_x, int y, EngineID engine */ void GetShipSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type) { - const Sprite *spr = GetSprite(GetShipIcon(engine, image_type), ST_NORMAL); + VehicleSpriteSeq seq; + GetShipIcon(engine, image_type, &seq); + + const Sprite *spr = GetSprite(seq.sprite, ST_NORMAL); width = UnScaleGUI(spr->width); height = UnScaleGUI(spr->height); @@ -115,19 +120,19 @@ void GetShipSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, i yoffs = UnScaleGUI(spr->y_offs); } -SpriteID Ship::GetImage(Direction direction, EngineImageType image_type) const +void Ship::GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const { uint8 spritenum = this->spritenum; if (is_custom_sprite(spritenum)) { - SpriteID sprite = GetCustomVehicleSprite(this, direction, image_type); - if (sprite != 0) return sprite; + GetCustomVehicleSprite(this, direction, image_type, result); + if (result->IsValid()) return; spritenum = this->GetEngine()->original_image_index; } assert(IsValidImageIndex(spritenum)); - return _ship_sprites[spritenum] + direction; + result->Set(_ship_sprites[spritenum] + direction); } static const Depot *FindClosestShipDepot(const Vehicle *v, uint max_distance) @@ -710,7 +715,7 @@ CommandCost CmdBuildShip(TileIndex tile, DoCommandFlag flags, const Engine *e, u v->SetServiceInterval(Company::Get(_current_company)->settings.vehicle.servint_ships); v->date_of_last_service = _date; v->build_year = _cur_year; - v->cur_image = SPR_IMG_QUERY; + v->sprite_seq.Set(SPR_IMG_QUERY); v->random_bits = VehicleRandomBits(); v->UpdateCache(); diff --git a/src/ship_gui.cpp b/src/ship_gui.cpp index 7ad2e8473a..f827b0a31a 100644 --- a/src/ship_gui.cpp +++ b/src/ship_gui.cpp @@ -35,15 +35,17 @@ void DrawShipImage(const Vehicle *v, int left, int right, int y, VehicleID selec { bool rtl = _current_text_dir == TD_RTL; - SpriteID sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type); - const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); + VehicleSpriteSeq seq; + v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq); + + const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); int width = UnScaleGUI(real_sprite->width); int x_offs = UnScaleGUI(real_sprite->x_offs); int x = rtl ? right - width - x_offs : left - x_offs; y += ScaleGUITrad(10); - DrawSprite(sprite, GetVehiclePalette(v), x, y); + DrawSprite(seq.sprite, GetVehiclePalette(v), x, y); if (v->index == selection) { x += x_offs; diff --git a/src/train.h b/src/train.h index 280d59ebdd..82e33b67d9 100644 --- a/src/train.h +++ b/src/train.h @@ -114,7 +114,7 @@ struct Train FINAL : public GroundVehicle { ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_TRAIN_INC : EXPENSES_TRAIN_RUN; } void PlayLeaveStationSound() const; bool IsPrimaryVehicle() const { return this->IsFrontEngine(); } - SpriteID GetImage(Direction direction, EngineImageType image_type) const; + void GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const; int GetDisplaySpeed() const { return this->gcache.last_speed; } int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed; } Money GetRunningCost() const; diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 699f0c144c..34e7ef2549 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -482,41 +482,40 @@ static SpriteID GetDefaultTrainSprite(uint8 spritenum, Direction direction) * @param image_type Visualisation context. * @return Sprite to display. */ -SpriteID Train::GetImage(Direction direction, EngineImageType image_type) const +void Train::GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const { uint8 spritenum = this->spritenum; - SpriteID sprite; if (HasBit(this->flags, VRF_REVERSE_DIRECTION)) direction = ReverseDir(direction); if (is_custom_sprite(spritenum)) { - sprite = GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(spritenum)), image_type); - if (sprite != 0) return sprite; + GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(spritenum)), image_type, result); + if (result->IsValid()) return; spritenum = this->GetEngine()->original_image_index; } assert(IsValidImageIndex(spritenum)); - sprite = GetDefaultTrainSprite(spritenum, direction); + SpriteID sprite = GetDefaultTrainSprite(spritenum, direction); if (this->cargo.StoredCount() >= this->cargo_cap / 2U) sprite += _wagon_full_adder[spritenum]; - return sprite; + result->Set(sprite); } -static SpriteID GetRailIcon(EngineID engine, bool rear_head, int &y, EngineImageType image_type) +static void GetRailIcon(EngineID engine, bool rear_head, int &y, EngineImageType image_type, VehicleSpriteSeq *result) { const Engine *e = Engine::Get(engine); Direction dir = rear_head ? DIR_E : DIR_W; uint8 spritenum = e->u.rail.image_index; if (is_custom_sprite(spritenum)) { - SpriteID sprite = GetCustomVehicleIcon(engine, dir, image_type); - if (sprite != 0) { + GetCustomVehicleIcon(engine, dir, image_type, result); + if (result->IsValid()) { if (e->GetGRF() != NULL) { y += ScaleGUITrad(e->GetGRF()->traininfo_vehicle_pitch); } - return sprite; + return; } spritenum = Engine::Get(engine)->original_image_index; @@ -524,7 +523,7 @@ static SpriteID GetRailIcon(EngineID engine, bool rear_head, int &y, EngineImage if (rear_head) spritenum++; - return GetDefaultTrainSprite(spritenum, DIR_W); + result->Set(GetDefaultTrainSprite(spritenum, DIR_W)); } void DrawTrainEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type) @@ -533,24 +532,28 @@ void DrawTrainEngine(int left, int right, int preferred_x, int y, EngineID engin int yf = y; int yr = y; - SpriteID spritef = GetRailIcon(engine, false, yf, image_type); - SpriteID spriter = GetRailIcon(engine, true, yr, image_type); - const Sprite *real_spritef = GetSprite(spritef, ST_NORMAL); - const Sprite *real_spriter = GetSprite(spriter, ST_NORMAL); + VehicleSpriteSeq seqf, seqr; + GetRailIcon(engine, false, yf, image_type, &seqf); + GetRailIcon(engine, true, yr, image_type, &seqr); + + const Sprite *real_spritef = GetSprite(seqf.sprite, ST_NORMAL); + const Sprite *real_spriter = GetSprite(seqr.sprite, ST_NORMAL); preferred_x = Clamp(preferred_x, left - UnScaleGUI(real_spritef->x_offs) + ScaleGUITrad(14), right - UnScaleGUI(real_spriter->width) - UnScaleGUI(real_spriter->x_offs) - ScaleGUITrad(15)); - DrawSprite(spritef, pal, preferred_x - ScaleGUITrad(14), yf); - DrawSprite(spriter, pal, preferred_x + ScaleGUITrad(15), yr); + DrawSprite(seqf.sprite, pal, preferred_x - ScaleGUITrad(14), yf); + DrawSprite(seqr.sprite, pal, preferred_x + ScaleGUITrad(15), yr); } else { - SpriteID sprite = GetRailIcon(engine, false, y, image_type); - const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); + VehicleSpriteSeq seq; + GetRailIcon(engine, false, y, image_type, &seq); + + const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); preferred_x = Clamp(preferred_x, left - UnScaleGUI(real_sprite->x_offs), right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs)); - DrawSprite(sprite, pal, preferred_x, y); + DrawSprite(seq.sprite, pal, preferred_x, y); } } @@ -567,8 +570,10 @@ void GetTrainSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, { int y = 0; - SpriteID sprite = GetRailIcon(engine, false, y, image_type); - const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); + VehicleSpriteSeq seq; + GetRailIcon(engine, false, y, image_type, &seq); + + const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); width = UnScaleGUI(real_sprite->width); height = UnScaleGUI(real_sprite->height); @@ -576,8 +581,8 @@ void GetTrainSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, yoffs = UnScaleGUI(real_sprite->y_offs); if (RailVehInfo(engine)->railveh_type == RAILVEH_MULTIHEAD) { - sprite = GetRailIcon(engine, true, y, image_type); - real_sprite = GetSprite(sprite, ST_NORMAL); + GetRailIcon(engine, true, y, image_type, &seq); + real_sprite = GetSprite(seq.sprite, ST_NORMAL); /* Calculate values relative to an imaginary center between the two sprites. */ width = ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) + UnScaleGUI(real_sprite->width) + UnScaleGUI(real_sprite->x_offs) - xoffs; @@ -638,7 +643,7 @@ static CommandCost CmdBuildRailWagon(TileIndex tile, DoCommandFlag flags, const v->date_of_last_service = _date; v->build_year = _cur_year; - v->cur_image = SPR_IMG_QUERY; + v->sprite_seq.Set(SPR_IMG_QUERY); v->random_bits = VehicleRandomBits(); v->group_id = DEFAULT_GROUP; @@ -706,7 +711,7 @@ static void AddRearEngineToMultiheadedTrain(Train *v) u->engine_type = v->engine_type; u->date_of_last_service = v->date_of_last_service; u->build_year = v->build_year; - u->cur_image = SPR_IMG_QUERY; + u->sprite_seq.Set(SPR_IMG_QUERY); u->random_bits = VehicleRandomBits(); v->SetMultiheaded(); u->SetMultiheaded(); @@ -772,7 +777,7 @@ CommandCost CmdBuildRailVehicle(TileIndex tile, DoCommandFlag flags, const Engin v->SetServiceInterval(Company::Get(_current_company)->settings.vehicle.servint_trains); v->date_of_last_service = _date; v->build_year = _cur_year; - v->cur_image = SPR_IMG_QUERY; + v->sprite_seq.Set(SPR_IMG_QUERY); v->random_bits = VehicleRandomBits(); if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SetBit(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE); diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 219d016ec0..42ba87c848 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -124,7 +124,9 @@ void DrawTrainImage(const Train *v, int left, int right, int y, VehicleID select if (rtl ? px + width > 0 : px - width < max_width) { PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); - DrawSprite(v->GetImage(dir, image_type), pal, px + (rtl ? -offset.x : offset.x), height / 2 + offset.y); + VehicleSpriteSeq seq; + v->GetImage(dir, image_type, &seq); + DrawSprite(seq.sprite, pal, px + (rtl ? -offset.x : offset.x), height / 2 + offset.y); } if (!v->IsArticulatedPart()) sel_articulated = false; @@ -383,7 +385,9 @@ void DrawTrainDetails(const Train *v, int left, int right, int y, int vscroll_po pitch = ScaleGUITrad(e->GetGRF()->traininfo_vehicle_pitch); } PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); - DrawSprite(u->GetImage(dir, EIT_IN_DETAILS), pal, px + (rtl ? -offset.x : offset.x), y - line_height * vscroll_pos + sprite_y_offset + pitch); + VehicleSpriteSeq seq; + u->GetImage(dir, EIT_IN_DETAILS, &seq); + DrawSprite(seq.sprite, pal, px + (rtl ? -offset.x : offset.x), y - line_height * vscroll_pos + sprite_y_offset + pitch); } px += rtl ? -width : width; dx += width; diff --git a/src/vehicle.cpp b/src/vehicle.cpp index da2cfeb807..c5261407b9 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1008,7 +1008,6 @@ void CallVehicleTicks() */ static void DoDrawVehicle(const Vehicle *v) { - SpriteID image = v->cur_image; PaletteID pal = PAL_NONE; if (v->vehstatus & VS_DEFPAL) pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); @@ -1023,7 +1022,7 @@ static void DoDrawVehicle(const Vehicle *v) if (to != TO_INVALID && (IsTransparencySet(to) || IsInvisibilitySet(to))) return; } - AddSortableSpriteToDraw(image, pal, v->x_pos + v->x_offs, v->y_pos + v->y_offs, + AddSortableSpriteToDraw(v->sprite_seq.sprite, pal, v->x_pos + v->x_offs, v->y_pos + v->y_offs, v->x_extent, v->y_extent, v->z_extent, v->z_pos, shadowed, v->x_bb_offs, v->y_bb_offs); } @@ -1487,10 +1486,9 @@ void Vehicle::UpdatePosition() */ void Vehicle::UpdateViewport(bool dirty) { - int img = this->cur_image; - Point pt = RemapCoords(this->x_pos + this->x_offs, this->y_pos + this->y_offs, this->z_pos); - const Sprite *spr = GetSprite(img, ST_NORMAL); + const Sprite *spr = GetSprite(this->sprite_seq.sprite, ST_NORMAL); + Point pt = RemapCoords(this->x_pos + this->x_offs, this->y_pos + this->y_offs, this->z_pos); pt.x += spr->x_offs; pt.y += spr->y_offs; diff --git a/src/vehicle_base.h b/src/vehicle_base.h index f923c2d791..30366e5ea6 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -126,6 +126,45 @@ struct VehicleCache { byte cached_vis_effect; ///< Visual effect to show (see #VisualEffect) }; +/** Sprite sequence for a vehicle part. */ +struct VehicleSpriteSeq { + SpriteID sprite; + + bool operator==(const VehicleSpriteSeq &other) const + { + return this->sprite == other.sprite; + } + + bool operator!=(const VehicleSpriteSeq &other) const + { + return !this->operator==(other); + } + + /** + * Check whether the sequence contains any sprites. + */ + bool IsValid() const + { + return this->sprite != 0; + } + + /** + * Clear all information. + */ + void Clear() + { + this->sprite = 0; + } + + /** + * Assign a single sprite to the sequence. + */ + void Set(SpriteID sprite) + { + this->sprite = sprite; + } +}; + /** A vehicle pool for a little over 1 million vehicles. */ typedef Pool VehiclePool; extern VehiclePool _vehicle_pool; @@ -220,7 +259,7 @@ public: * 0xff == reserved for another custom sprite */ byte spritenum; - SpriteID cur_image; ///< sprite number for this vehicle + VehicleSpriteSeq sprite_seq; ///< Vehicle appearance. byte x_extent; ///< x-extent of vehicle bounding box byte y_extent; ///< y-extent of vehicle bounding box byte z_extent; ///< z-extent of vehicle bounding box @@ -380,9 +419,9 @@ public: /** * Gets the sprite to show for the given direction * @param direction the direction the vehicle is facing - * @return the sprite for the given vehicle in the given direction + * @param [out] result Vehicle sprite sequence. */ - virtual SpriteID GetImage(Direction direction, EngineImageType image_type) const { return 0; } + virtual void GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const { result->Clear(); } const GRFFile *GetGRF() const; uint32 GetGRFID() const; @@ -1079,9 +1118,12 @@ struct SpecializedVehicle : public Vehicle { /* Explicitly choose method to call to prevent vtable dereference - * it gives ~3% runtime improvements in games with many vehicles */ if (update_delta) ((T *)this)->T::UpdateDeltaXY(this->direction); - SpriteID old_image = this->cur_image; - this->cur_image = ((T *)this)->T::GetImage(this->direction, EIT_ON_MAP); - if (force_update || this->cur_image != old_image) this->Vehicle::UpdateViewport(true); + VehicleSpriteSeq seq; + ((T *)this)->T::GetImage(this->direction, EIT_ON_MAP, &seq); + if (force_update || this->sprite_seq != seq) { + this->sprite_seq = seq; + this->Vehicle::UpdateViewport(true); + } } }; diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 87c119074c..3d93e4d30e 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2842,8 +2842,9 @@ int GetSingleVehicleWidth(const Vehicle *v, EngineImageType image_type) default: bool rtl = _current_text_dir == TD_RTL; - SpriteID sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type); - const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL); + VehicleSpriteSeq seq; + v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq); + const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); return UnScaleGUI(real_sprite->width); } } @@ -2882,8 +2883,10 @@ void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type) if (total_width >= 2 * (int)VEHICLEINFO_FULL_VEHICLE_WIDTH) break; PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); + VehicleSpriteSeq seq; + v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq); - _cursor.sprite_seq[_cursor.sprite_count].sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type); + _cursor.sprite_seq[_cursor.sprite_count].sprite = seq.sprite; _cursor.sprite_seq[_cursor.sprite_count].pal = pal; _cursor.sprite_pos[_cursor.sprite_count].x = rtl ? -total_width : total_width; _cursor.sprite_pos[_cursor.sprite_count].y = 0; From a37bb32fd6a2c90e4eda06c71ee43c6bafb97e6a Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 16 Oct 2016 14:58:38 +0000 Subject: [PATCH 161/417] (svn r27667) -Codechange: Add VehicleSpriteSeq::GetBounds and Draw. --- src/aircraft_cmd.cpp | 23 +++++++++++++---------- src/aircraft_gui.cpp | 15 ++++++++------- src/roadveh_cmd.cpp | 21 ++++++++++++--------- src/roadveh_gui.cpp | 2 +- src/ship_cmd.cpp | 21 ++++++++++++--------- src/ship_gui.cpp | 13 +++++++------ src/train_cmd.cpp | 42 +++++++++++++++++++++++------------------- src/train_gui.cpp | 4 ++-- src/vehicle.cpp | 42 ++++++++++++++++++++++++++++++++++-------- src/vehicle_base.h | 3 +++ src/vehicle_gui.cpp | 5 +++-- 11 files changed, 118 insertions(+), 73 deletions(-) diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index c7cb5bbb22..28680ad92f 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -202,17 +202,19 @@ void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID en VehicleSpriteSeq seq; GetAircraftIcon(engine, image_type, &seq); - const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); preferred_x = Clamp(preferred_x, - left - UnScaleGUI(real_sprite->x_offs), - right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs)); - DrawSprite(seq.sprite, pal, preferred_x, y); + left - UnScaleGUI(rect.left), + right - UnScaleGUI(rect.right)); + + seq.Draw(preferred_x, y, pal, pal == PALETTE_CRASH); if (!(AircraftVehInfo(engine)->subtype & AIR_CTOL)) { VehicleSpriteSeq rotor_seq; GetCustomRotorIcon(engine, image_type, &rotor_seq); if (!rotor_seq.IsValid()) rotor_seq.Set(SPR_ROTOR_STOPPED); - DrawSprite(rotor_seq.sprite, PAL_NONE, preferred_x, y - ScaleGUITrad(5)); + rotor_seq.Draw(preferred_x, y - ScaleGUITrad(5), PAL_NONE, false); } } @@ -230,12 +232,13 @@ void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, int &xoff VehicleSpriteSeq seq; GetAircraftIcon(engine, image_type, &seq); - const Sprite *spr = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); - width = UnScaleGUI(spr->width); - height = UnScaleGUI(spr->height); - xoffs = UnScaleGUI(spr->x_offs); - yoffs = UnScaleGUI(spr->y_offs); + width = UnScaleGUI(rect.right - rect.left + 1); + height = UnScaleGUI(rect.bottom - rect.top + 1); + xoffs = UnScaleGUI(rect.left); + yoffs = UnScaleGUI(rect.top); } /** diff --git a/src/aircraft_gui.cpp b/src/aircraft_gui.cpp index 752e0da909..20fca9fc5d 100644 --- a/src/aircraft_gui.cpp +++ b/src/aircraft_gui.cpp @@ -86,10 +86,11 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s VehicleSpriteSeq seq; v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq); - const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); - int width = UnScaleGUI(real_sprite->width); - int x_offs = UnScaleGUI(real_sprite->x_offs); + int width = UnScaleGUI(rect.right - rect.left + 1); + int x_offs = UnScaleGUI(rect.left); int x = rtl ? right - width - x_offs : left - x_offs; bool helicopter = v->subtype == AIR_HELICOPTER; @@ -97,18 +98,18 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s int heli_offs = 0; PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); - DrawSprite(seq.sprite, pal, x, y + y_offs); + seq.Draw(x, y + y_offs, pal, v->vehstatus & VS_CRASHED); if (helicopter) { const Aircraft *a = Aircraft::From(v); VehicleSpriteSeq rotor_seq; GetCustomRotorSprite(a, true, image_type, &rotor_seq); if (!rotor_seq.IsValid()) rotor_seq.Set(SPR_ROTOR_STOPPED); heli_offs = ScaleGUITrad(5); - DrawSprite(rotor_seq.sprite, PAL_NONE, x, y + y_offs - heli_offs); + rotor_seq.Draw(x, y + y_offs - heli_offs, PAL_NONE, false); } if (v->index == selection) { x += x_offs; - y += UnScaleGUI(real_sprite->y_offs) + y_offs - heli_offs; - DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleGUI(real_sprite->height) + heli_offs + 1, COLOUR_WHITE, FR_BORDERONLY); + y += UnScaleGUI(rect.top) + y_offs - heli_offs; + DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleGUI(rect.bottom - rect.top + 1) + heli_offs + 1, COLOUR_WHITE, FR_BORDERONLY); } } diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index e956787b0b..9b541a766b 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -162,11 +162,13 @@ void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID eng VehicleSpriteSeq seq; GetRoadVehIcon(engine, image_type, &seq); - const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); preferred_x = Clamp(preferred_x, - left - UnScaleGUI(real_sprite->x_offs), - right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs)); - DrawSprite(seq.sprite, pal, preferred_x, y); + left - UnScaleGUI(rect.left), + right - UnScaleGUI(rect.right)); + + seq.Draw(preferred_x, y, pal, pal == PALETTE_CRASH); } /** @@ -183,12 +185,13 @@ void GetRoadVehSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs VehicleSpriteSeq seq; GetRoadVehIcon(engine, image_type, &seq); - const Sprite *spr = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); - width = UnScaleGUI(spr->width); - height = UnScaleGUI(spr->height); - xoffs = UnScaleGUI(spr->x_offs); - yoffs = UnScaleGUI(spr->y_offs); + width = UnScaleGUI(rect.right - rect.left + 1); + height = UnScaleGUI(rect.bottom - rect.top + 1); + xoffs = UnScaleGUI(rect.left); + yoffs = UnScaleGUI(rect.top); } /** diff --git a/src/roadveh_gui.cpp b/src/roadveh_gui.cpp index 26027a8892..c446db5109 100644 --- a/src/roadveh_gui.cpp +++ b/src/roadveh_gui.cpp @@ -151,7 +151,7 @@ void DrawRoadVehImage(const Vehicle *v, int left, int right, int y, VehicleID se PaletteID pal = (u->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(u); VehicleSpriteSeq seq; u->GetImage(dir, image_type, &seq); - DrawSprite(seq.sprite, pal, px + (rtl ? -offset.x : offset.x), ScaleGUITrad(6) + offset.y); + seq.Draw(px + (rtl ? -offset.x : offset.x), ScaleGUITrad(6) + offset.y, pal, u->vehstatus & VS_CRASHED); } px += rtl ? -width : width; diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index a4b84ae876..2a760e2ca7 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -91,11 +91,13 @@ void DrawShipEngine(int left, int right, int preferred_x, int y, EngineID engine VehicleSpriteSeq seq; GetShipIcon(engine, image_type, &seq); - const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); preferred_x = Clamp(preferred_x, - left - UnScaleGUI(real_sprite->x_offs), - right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs)); - DrawSprite(seq.sprite, pal, preferred_x, y); + left - UnScaleGUI(rect.left), + right - UnScaleGUI(rect.right)); + + seq.Draw(preferred_x, y, pal, pal == PALETTE_CRASH); } /** @@ -112,12 +114,13 @@ void GetShipSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, i VehicleSpriteSeq seq; GetShipIcon(engine, image_type, &seq); - const Sprite *spr = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); - width = UnScaleGUI(spr->width); - height = UnScaleGUI(spr->height); - xoffs = UnScaleGUI(spr->x_offs); - yoffs = UnScaleGUI(spr->y_offs); + width = UnScaleGUI(rect.right - rect.left + 1); + height = UnScaleGUI(rect.bottom - rect.top + 1); + xoffs = UnScaleGUI(rect.left); + yoffs = UnScaleGUI(rect.top); } void Ship::GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const diff --git a/src/ship_gui.cpp b/src/ship_gui.cpp index f827b0a31a..c6bf342d97 100644 --- a/src/ship_gui.cpp +++ b/src/ship_gui.cpp @@ -38,19 +38,20 @@ void DrawShipImage(const Vehicle *v, int left, int right, int y, VehicleID selec VehicleSpriteSeq seq; v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq); - const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); - int width = UnScaleGUI(real_sprite->width); - int x_offs = UnScaleGUI(real_sprite->x_offs); + int width = UnScaleGUI(rect.right - rect.left + 1); + int x_offs = UnScaleGUI(rect.left); int x = rtl ? right - width - x_offs : left - x_offs; y += ScaleGUITrad(10); - DrawSprite(seq.sprite, GetVehiclePalette(v), x, y); + seq.Draw(x, y, GetVehiclePalette(v), false); if (v->index == selection) { x += x_offs; - y += UnScaleGUI(real_sprite->y_offs); - DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleGUI(real_sprite->height) + 1, COLOUR_WHITE, FR_BORDERONLY); + y += UnScaleGUI(rect.top); + DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleGUI(rect.bottom - rect.top + 1) + 1, COLOUR_WHITE, FR_BORDERONLY); } } diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 34e7ef2549..5502532232 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -536,24 +536,27 @@ void DrawTrainEngine(int left, int right, int preferred_x, int y, EngineID engin GetRailIcon(engine, false, yf, image_type, &seqf); GetRailIcon(engine, true, yr, image_type, &seqr); - const Sprite *real_spritef = GetSprite(seqf.sprite, ST_NORMAL); - const Sprite *real_spriter = GetSprite(seqr.sprite, ST_NORMAL); + Rect rectf, rectr; + seqf.GetBounds(&rectf); + seqr.GetBounds(&rectr); preferred_x = Clamp(preferred_x, - left - UnScaleGUI(real_spritef->x_offs) + ScaleGUITrad(14), - right - UnScaleGUI(real_spriter->width) - UnScaleGUI(real_spriter->x_offs) - ScaleGUITrad(15)); + left - UnScaleGUI(rectf.left) + ScaleGUITrad(14), + right - UnScaleGUI(rectr.right) - ScaleGUITrad(15)); - DrawSprite(seqf.sprite, pal, preferred_x - ScaleGUITrad(14), yf); - DrawSprite(seqr.sprite, pal, preferred_x + ScaleGUITrad(15), yr); + seqf.Draw(preferred_x - ScaleGUITrad(14), yf, pal, pal == PALETTE_CRASH); + seqr.Draw(preferred_x + ScaleGUITrad(15), yr, pal, pal == PALETTE_CRASH); } else { VehicleSpriteSeq seq; GetRailIcon(engine, false, y, image_type, &seq); - const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); preferred_x = Clamp(preferred_x, - left - UnScaleGUI(real_sprite->x_offs), - right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs)); - DrawSprite(seq.sprite, pal, preferred_x, y); + left - UnScaleGUI(rect.left), + right - UnScaleGUI(rect.right)); + + seq.Draw(preferred_x, y, pal, pal == PALETTE_CRASH); } } @@ -573,22 +576,23 @@ void GetTrainSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, VehicleSpriteSeq seq; GetRailIcon(engine, false, y, image_type, &seq); - const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); + Rect rect; + seq.GetBounds(&rect); - width = UnScaleGUI(real_sprite->width); - height = UnScaleGUI(real_sprite->height); - xoffs = UnScaleGUI(real_sprite->x_offs); - yoffs = UnScaleGUI(real_sprite->y_offs); + width = UnScaleGUI(rect.right - rect.left + 1); + height = UnScaleGUI(rect.bottom - rect.top + 1); + xoffs = UnScaleGUI(rect.left); + yoffs = UnScaleGUI(rect.top); if (RailVehInfo(engine)->railveh_type == RAILVEH_MULTIHEAD) { GetRailIcon(engine, true, y, image_type, &seq); - real_sprite = GetSprite(seq.sprite, ST_NORMAL); + seq.GetBounds(&rect); /* Calculate values relative to an imaginary center between the two sprites. */ - width = ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) + UnScaleGUI(real_sprite->width) + UnScaleGUI(real_sprite->x_offs) - xoffs; - height = max(height, UnScaleGUI(real_sprite->height)); + width = ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) + UnScaleGUI(rect.right) - xoffs; + height = max(height, UnScaleGUI(rect.bottom - rect.top + 1)); xoffs = xoffs - ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) / 2; - yoffs = min(yoffs, UnScaleGUI(real_sprite->y_offs)); + yoffs = min(yoffs, UnScaleGUI(rect.top)); } } diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 42ba87c848..513f57fbba 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -126,7 +126,7 @@ void DrawTrainImage(const Train *v, int left, int right, int y, VehicleID select PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); VehicleSpriteSeq seq; v->GetImage(dir, image_type, &seq); - DrawSprite(seq.sprite, pal, px + (rtl ? -offset.x : offset.x), height / 2 + offset.y); + seq.Draw(px + (rtl ? -offset.x : offset.x), height / 2 + offset.y, pal, v->vehstatus & VS_CRASHED); } if (!v->IsArticulatedPart()) sel_articulated = false; @@ -387,7 +387,7 @@ void DrawTrainDetails(const Train *v, int left, int right, int y, int vscroll_po PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); VehicleSpriteSeq seq; u->GetImage(dir, EIT_IN_DETAILS, &seq); - DrawSprite(seq.sprite, pal, px + (rtl ? -offset.x : offset.x), y - line_height * vscroll_pos + sprite_y_offset + pitch); + seq.Draw(px + (rtl ? -offset.x : offset.x), y - line_height * vscroll_pos + sprite_y_offset + pitch, pal, v->vehstatus & VS_CRASHED); } px += rtl ? -width : width; dx += width; diff --git a/src/vehicle.cpp b/src/vehicle.cpp index c5261407b9..54a2bfa289 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -68,6 +68,32 @@ uint16 _returned_mail_refit_capacity; ///< Stores the mail capacity after a refi VehiclePool _vehicle_pool("Vehicle"); INSTANTIATE_POOL_METHODS(Vehicle) + +/** + * Determine shared bounds of all sprites. + * @param [out] bounds Shared bounds. + */ +void VehicleSpriteSeq::GetBounds(Rect *bounds) const +{ + const Sprite *spr = GetSprite(this->sprite, ST_NORMAL); + bounds->left = spr->x_offs; + bounds->top = spr->y_offs; + bounds->right = spr->width + spr->x_offs - 1; + bounds->bottom = spr->height + spr->y_offs - 1; +} + +/** + * Draw the sprite sequence. + * @param x X position + * @param y Y position + * @param default_pal Vehicle palette + * @param force_pal Whether to ignore individual palettes, and draw everything with \a default_pal. + */ +void VehicleSpriteSeq::Draw(int x, int y, PaletteID default_pal, bool force_pal) const +{ + DrawSprite(this->sprite, default_pal, x, y); +} + /** * Function to tell if a vehicle needs to be autorenewed * @param *c The vehicle owner @@ -1486,19 +1512,19 @@ void Vehicle::UpdatePosition() */ void Vehicle::UpdateViewport(bool dirty) { - const Sprite *spr = GetSprite(this->sprite_seq.sprite, ST_NORMAL); + Rect new_coord; + this->sprite_seq.GetBounds(&new_coord); Point pt = RemapCoords(this->x_pos + this->x_offs, this->y_pos + this->y_offs, this->z_pos); - pt.x += spr->x_offs; - pt.y += spr->y_offs; + new_coord.left += pt.x; + new_coord.top += pt.y; + new_coord.right += pt.x + 2 * ZOOM_LVL_BASE; + new_coord.bottom += pt.y + 2 * ZOOM_LVL_BASE; - UpdateVehicleViewportHash(this, pt.x, pt.y); + UpdateVehicleViewportHash(this, new_coord.left, new_coord.top); Rect old_coord = this->coord; - this->coord.left = pt.x; - this->coord.top = pt.y; - this->coord.right = pt.x + spr->width + 2 * ZOOM_LVL_BASE; - this->coord.bottom = pt.y + spr->height + 2 * ZOOM_LVL_BASE; + this->coord = new_coord; if (dirty) { if (old_coord.left == INVALID_COORD) { diff --git a/src/vehicle_base.h b/src/vehicle_base.h index 30366e5ea6..0b5f2e1dec 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -163,6 +163,9 @@ struct VehicleSpriteSeq { { this->sprite = sprite; } + + void GetBounds(Rect *bounds) const; + void Draw(int x, int y, PaletteID default_pal, bool force_pal) const; }; /** A vehicle pool for a little over 1 million vehicles. */ diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 3d93e4d30e..29b3b30fa7 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2844,8 +2844,9 @@ int GetSingleVehicleWidth(const Vehicle *v, EngineImageType image_type) bool rtl = _current_text_dir == TD_RTL; VehicleSpriteSeq seq; v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq); - const Sprite *real_sprite = GetSprite(seq.sprite, ST_NORMAL); - return UnScaleGUI(real_sprite->width); + Rect rec; + seq.GetBounds(&rec); + return UnScaleGUI(rec.right - rec.left + 1); } } From ba566e9126c385797bd39d8f79ad29fc3b6b2264 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 16 Oct 2016 14:59:44 +0000 Subject: [PATCH 162/417] (svn r27668) -Feature: [NewGRF] Allow composing vehicles from multiple sprites. --- src/aircraft_cmd.cpp | 2 +- src/disaster_vehicle.cpp | 2 +- src/effectvehicle.cpp | 9 ++++---- src/engine_type.h | 1 + src/newgrf_engine.cpp | 41 +++++++++++++++++++++++++---------- src/saveload/oldloader_sl.cpp | 6 ++--- src/saveload/vehicle_sl.cpp | 6 ++--- src/vehicle.cpp | 37 ++++++++++++++++++++++++------- src/vehicle_base.h | 30 ++++++++++++++++++++----- src/vehicle_gui.cpp | 16 +++++++++----- 10 files changed, 106 insertions(+), 44 deletions(-) diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index 28680ad92f..c9cddbf97d 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -525,7 +525,7 @@ void SetAircraftPosition(Aircraft *v, int x, int y, int z) safe_y = Clamp(u->y_pos, 0, MapMaxY() * TILE_SIZE); u->z_pos = GetSlopePixelZ(safe_x, safe_y); - u->sprite_seq.sprite = v->sprite_seq.sprite; + u->sprite_seq.CopyWithoutPalette(v->sprite_seq); // the shadow is never coloured u->UpdatePositionAndViewport(); diff --git a/src/disaster_vehicle.cpp b/src/disaster_vehicle.cpp index 65a9187e3e..98978ddfb0 100644 --- a/src/disaster_vehicle.cpp +++ b/src/disaster_vehicle.cpp @@ -499,7 +499,7 @@ static bool DisasterTick_Helicopter_Rotors(DisasterVehicle *v) v->tick_counter++; if (HasBit(v->tick_counter, 0)) return true; - SpriteID &cur_image = v->sprite_seq.sprite; + SpriteID &cur_image = v->sprite_seq.seq[0].sprite; if (++cur_image > SPR_ROTOR_MOVING_3) cur_image = SPR_ROTOR_MOVING_1; v->UpdatePositionAndViewport(); diff --git a/src/effectvehicle.cpp b/src/effectvehicle.cpp index 266a8e0963..5921cd190e 100644 --- a/src/effectvehicle.cpp +++ b/src/effectvehicle.cpp @@ -30,8 +30,8 @@ */ static bool IncrementSprite(EffectVehicle *v, SpriteID last) { - if (v->sprite_seq.sprite != last) { - v->sprite_seq.sprite++; + if (v->sprite_seq.seq[0].sprite != last) { + v->sprite_seq.seq[0].sprite++; return true; } else { return false; @@ -476,9 +476,8 @@ static bool BubbleTick(EffectVehicle *v) if ((v->progress & 3) != 0) return true; if (v->spritenum == 0) { - SpriteID &cur_image = v->sprite_seq.sprite; - cur_image++; - if (cur_image < SPR_BUBBLE_GENERATE_3) { + v->sprite_seq.seq[0].sprite++; + if (v->sprite_seq.seq[0].sprite < SPR_BUBBLE_GENERATE_3) { v->UpdatePositionAndViewport(); return true; } diff --git a/src/engine_type.h b/src/engine_type.h index aeebcb3522..8356fda8f8 100644 --- a/src/engine_type.h +++ b/src/engine_type.h @@ -158,6 +158,7 @@ enum EngineMiscFlags { EF_AUTO_REFIT = 4, ///< Automatic refitting is allowed EF_NO_DEFAULT_CARGO_MULTIPLIER = 5, ///< Use the new capacity algorithm. The default cargotype of the vehicle does not affect capacity multipliers. CB 15 is also called in purchase list. EF_NO_BREAKDOWN_SMOKE = 6, ///< Do not show black smoke during a breakdown. + EF_SPRITE_STACK = 7, ///< Draw vehicle by stacking multiple sprites. }; /** diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index ba8367c7da..8dd8d545a2 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -1025,13 +1025,23 @@ VehicleResolverObject::VehicleResolverObject(EngineID engine_type, const Vehicle void GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) { - VehicleResolverObject object(engine, v, VehicleResolverObject::WO_CACHED, false, CBID_NO_CALLBACK, image_type); + VehicleResolverObject object(engine, v, VehicleResolverObject::WO_CACHED, false, CBID_NO_CALLBACK); result->Clear(); - const SpriteGroup *group = object.Resolve(); - if (group == NULL || group->GetNumResults() == 0) return; - - result->Set(group->GetResult() + (direction % group->GetNumResults())); + bool sprite_stack = HasBit(EngInfo(engine)->misc_flags, EF_SPRITE_STACK); + uint max_stack = sprite_stack ? lengthof(result->seq) : 1; + for (uint stack = 0; stack < max_stack; ++stack) { + object.ResetState(); + object.callback_param1 = image_type | (stack << 8); + const SpriteGroup *group = object.Resolve(); + uint32 reg100 = sprite_stack ? GetRegister(0x100) : 0; + if (group != NULL && group->GetNumResults() != 0) { + result->seq[result->count].sprite = group->GetResult() + (direction % group->GetNumResults()); + result->seq[result->count].pal = GB(reg100, 0, 16); // zero means default recolouring + result->count++; + } + if (!HasBit(reg100, 31)) break; + } } @@ -1043,15 +1053,24 @@ void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, bool info assert(e->type == VEH_AIRCRAFT); assert(!(e->u.air.subtype & AIR_CTOL)); - VehicleResolverObject object(engine, v, VehicleResolverObject::WO_SELF, info_view, CBID_NO_CALLBACK, image_type); + VehicleResolverObject object(engine, v, VehicleResolverObject::WO_SELF, info_view, CBID_NO_CALLBACK); result->Clear(); uint rotor_pos = v == NULL || info_view ? 0 : v->Next()->Next()->state; - const SpriteGroup *group = object.Resolve(); - - if (group == NULL || group->GetNumResults() == 0) return; - - result->Set(group->GetResult() + (rotor_pos % group->GetNumResults())); + bool sprite_stack = HasBit(e->info.misc_flags, EF_SPRITE_STACK); + uint max_stack = sprite_stack ? lengthof(result->seq) : 1; + for (uint stack = 0; stack < max_stack; ++stack) { + object.ResetState(); + object.callback_param1 = image_type | (stack << 8); + const SpriteGroup *group = object.Resolve(); + uint32 reg100 = sprite_stack ? GetRegister(0x100) : 0; + if (group != NULL && group->GetNumResults() != 0) { + result->seq[result->count].sprite = group->GetResult() + (rotor_pos % group->GetNumResults()); + result->seq[result->count].pal = GB(reg100, 0, 16); // zero means default recolouring + result->count++; + } + if (!HasBit(reg100, 31)) break; + } } diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index 561df3361a..0c57166816 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -1165,7 +1165,7 @@ static const OldChunks vehicle_chunk[] = { OCL_SVAR( OC_UINT8, Vehicle, owner ), OCL_SVAR( OC_TILE, Vehicle, tile ), - OCL_SVAR( OC_FILE_U16 | OC_VAR_U32, Vehicle, sprite_seq.sprite ), + OCL_SVAR( OC_FILE_U16 | OC_VAR_U32, Vehicle, sprite_seq.seq[0].sprite ), OCL_NULL( 8 ), ///< Vehicle sprite box, calculated automatically @@ -1258,7 +1258,7 @@ bool LoadOldVehicle(LoadgameState *ls, int num) if (v == NULL) continue; v->refit_cap = v->cargo_cap; - SpriteID sprite = v->sprite_seq.sprite; + SpriteID sprite = v->sprite_seq.seq[0].sprite; /* no need to override other sprites */ if (IsInsideMM(sprite, 1460, 1465)) { sprite += 580; // aircraft smoke puff @@ -1269,7 +1269,7 @@ bool LoadOldVehicle(LoadgameState *ls, int num) } else if (IsInsideMM(sprite, 2516, 2539)) { sprite += 1385; // rotor or disaster-related vehicles } - v->sprite_seq.sprite = sprite; + v->sprite_seq.seq[0].sprite = sprite; switch (v->type) { case VEH_TRAIN: { diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index 4c40f52b21..86ca590e4d 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -445,7 +445,7 @@ void AfterLoadVehicles(bool part_of_load) /* The plane's shadow will have the same image as the plane, but no colour */ Vehicle *shadow = v->Next(); - shadow->sprite_seq.sprite = v->sprite_seq.sprite; + shadow->sprite_seq.CopyWithoutPalette(v->sprite_seq); /* In the case of a helicopter we will update the rotor sprites */ if (v->subtype == AIR_HELICOPTER) { @@ -796,7 +796,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, 0, 163), SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, 164, SL_MAX_VERSION), - SLE_VAR(Vehicle, sprite_seq.sprite, SLE_FILE_U16 | SLE_VAR_U32), + SLE_VAR(Vehicle, sprite_seq.seq[0].sprite, SLE_FILE_U16 | SLE_VAR_U32), SLE_CONDNULL(5, 0, 57), SLE_VAR(Vehicle, progress, SLE_UINT8), SLE_VAR(Vehicle, vehstatus, SLE_UINT8), @@ -836,7 +836,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) SLE_CONDVAR(Vehicle, current_order.dest, SLE_FILE_U8 | SLE_VAR_U16, 0, 4), SLE_CONDVAR(Vehicle, current_order.dest, SLE_UINT16, 5, SL_MAX_VERSION), - SLE_VAR(Vehicle, sprite_seq.sprite, SLE_FILE_U16 | SLE_VAR_U32), + SLE_VAR(Vehicle, sprite_seq.seq[0].sprite, SLE_FILE_U16 | SLE_VAR_U32), SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Vehicle, age, SLE_INT32, 31, SL_MAX_VERSION), SLE_VAR(Vehicle, tick_counter, SLE_UINT8), diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 54a2bfa289..b686461316 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -75,11 +75,23 @@ INSTANTIATE_POOL_METHODS(Vehicle) */ void VehicleSpriteSeq::GetBounds(Rect *bounds) const { - const Sprite *spr = GetSprite(this->sprite, ST_NORMAL); - bounds->left = spr->x_offs; - bounds->top = spr->y_offs; - bounds->right = spr->width + spr->x_offs - 1; - bounds->bottom = spr->height + spr->y_offs - 1; + bounds->left = bounds->top = bounds->right = bounds->bottom = 0; + for (uint i = 0; i < this->count; ++i) { + const Sprite *spr = GetSprite(this->seq[i].sprite, ST_NORMAL); + if (i == 0) { + bounds->left = spr->x_offs; + bounds->top = spr->y_offs; + bounds->right = spr->width + spr->x_offs - 1; + bounds->bottom = spr->height + spr->y_offs - 1; + } else { + if (spr->x_offs < bounds->left) bounds->left = spr->x_offs; + if (spr->y_offs < bounds->top) bounds->top = spr->y_offs; + int right = spr->width + spr->x_offs - 1; + int bottom = spr->height + spr->y_offs - 1; + if (right > bounds->right) bounds->right = right; + if (bottom > bounds->bottom) bounds->bottom = bottom; + } + } } /** @@ -91,7 +103,10 @@ void VehicleSpriteSeq::GetBounds(Rect *bounds) const */ void VehicleSpriteSeq::Draw(int x, int y, PaletteID default_pal, bool force_pal) const { - DrawSprite(this->sprite, default_pal, x, y); + for (uint i = 0; i < this->count; ++i) { + PaletteID pal = force_pal || !this->seq[i].pal ? default_pal : this->seq[i].pal; + DrawSprite(this->seq[i].sprite, pal, x, y); + } } /** @@ -1048,8 +1063,14 @@ static void DoDrawVehicle(const Vehicle *v) if (to != TO_INVALID && (IsTransparencySet(to) || IsInvisibilitySet(to))) return; } - AddSortableSpriteToDraw(v->sprite_seq.sprite, pal, v->x_pos + v->x_offs, v->y_pos + v->y_offs, - v->x_extent, v->y_extent, v->z_extent, v->z_pos, shadowed, v->x_bb_offs, v->y_bb_offs); + StartSpriteCombine(); + for (uint i = 0; i < v->sprite_seq.count; ++i) { + PaletteID pal2 = v->sprite_seq.seq[i].pal; + if (!pal2 || (v->vehstatus & VS_CRASHED)) pal2 = pal; + AddSortableSpriteToDraw(v->sprite_seq.seq[i].sprite, pal2, v->x_pos + v->x_offs, v->y_pos + v->y_offs, + v->x_extent, v->y_extent, v->z_extent, v->z_pos, shadowed, v->x_bb_offs, v->y_bb_offs); + } + EndSpriteCombine(); } /** diff --git a/src/vehicle_base.h b/src/vehicle_base.h index 0b5f2e1dec..f2a02072a2 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -128,11 +128,12 @@ struct VehicleCache { /** Sprite sequence for a vehicle part. */ struct VehicleSpriteSeq { - SpriteID sprite; + PalSpriteID seq[4]; + uint count; bool operator==(const VehicleSpriteSeq &other) const { - return this->sprite == other.sprite; + return this->count == other.count && MemCmpT(this->seq, other.seq, this->count) == 0; } bool operator!=(const VehicleSpriteSeq &other) const @@ -145,7 +146,7 @@ struct VehicleSpriteSeq { */ bool IsValid() const { - return this->sprite != 0; + return this->count != 0; } /** @@ -153,7 +154,7 @@ struct VehicleSpriteSeq { */ void Clear() { - this->sprite = 0; + this->count = 0; } /** @@ -161,7 +162,21 @@ struct VehicleSpriteSeq { */ void Set(SpriteID sprite) { - this->sprite = sprite; + this->count = 1; + this->seq[0].sprite = sprite; + this->seq[0].pal = 0; + } + + /** + * Copy data from another sprite sequence, while dropping all recolouring information. + */ + void CopyWithoutPalette(const VehicleSpriteSeq &src) + { + this->count = src.count; + for (uint i = 0; i < src.count; ++i) { + this->seq[i].sprite = src.seq[i].sprite; + this->seq[i].pal = 0; + } } void GetBounds(Rect *bounds) const; @@ -982,7 +997,10 @@ struct SpecializedVehicle : public Vehicle { /** * Set vehicle type correctly */ - inline SpecializedVehicle() : Vehicle(Type) { } + inline SpecializedVehicle() : Vehicle(Type) + { + this->sprite_seq.count = 1; + } /** * Get the first vehicle in the chain diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 29b3b30fa7..acef864080 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2880,20 +2880,24 @@ void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type) _cursor.sprite_count = 0; int total_width = 0; for (; v != NULL; v = v->HasArticulatedPart() ? v->GetNextArticulatedPart() : NULL) { - if (_cursor.sprite_count == lengthof(_cursor.sprite_seq)) break; if (total_width >= 2 * (int)VEHICLEINFO_FULL_VEHICLE_WIDTH) break; PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); VehicleSpriteSeq seq; v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq); - _cursor.sprite_seq[_cursor.sprite_count].sprite = seq.sprite; - _cursor.sprite_seq[_cursor.sprite_count].pal = pal; - _cursor.sprite_pos[_cursor.sprite_count].x = rtl ? -total_width : total_width; - _cursor.sprite_pos[_cursor.sprite_count].y = 0; + if (_cursor.sprite_count + seq.count > lengthof(_cursor.sprite_seq)) break; + + for (uint i = 0; i < seq.count; ++i) { + PaletteID pal2 = (v->vehstatus & VS_CRASHED) || !seq.seq[i].pal ? pal : seq.seq[i].pal; + _cursor.sprite_seq[_cursor.sprite_count].sprite = seq.seq[i].sprite; + _cursor.sprite_seq[_cursor.sprite_count].pal = pal2; + _cursor.sprite_pos[_cursor.sprite_count].x = rtl ? -total_width : total_width; + _cursor.sprite_pos[_cursor.sprite_count].y = 0; + _cursor.sprite_count++; + } total_width += GetSingleVehicleWidth(v, image_type); - _cursor.sprite_count++; } int offs = ((int)VEHICLEINFO_FULL_VEHICLE_WIDTH - total_width) / 2; From f8f2c9d3a56ad818c2a1f00af3519132fc9bf273 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 19 Oct 2016 17:45:35 +0000 Subject: [PATCH 163/417] (svn r27669) -Update from Eints: thai: 11 changes by angelix --- src/lang/thai.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 89f8e69113..86720059ae 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -250,6 +250,7 @@ STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}ทำ # Show engines button +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :ถ้าได้อนุญาตที่ปุ่มนี้แล้ว อากาศยานที่ซ่อนจะถูกแสดงออกมา # Query window STR_BUTTON_DEFAULT :{BLACK}ค่าปกติ @@ -970,6 +971,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}คว STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}เลือกความละเอียดของหน้าจอที่จะใช้ STR_GAME_OPTIONS_RESOLUTION_OTHER :อื่นๆ +STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}ขนาดของแผงควบคุม STR_GAME_OPTIONS_BASE_GRF :{BLACK}ตั้งค่า Graphic พื้นฐาน @@ -1086,6 +1088,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_MENU :ตั้งค STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :ตั้งค่าองค์กร (ถูกเก็บไว้ในการบันทึกเกม; มีผลเฉพาะเกมปัจจุบัน) STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}หมวดหมู่: +STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}ชนิด: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}จำกัดรายการด้านล่างให้แสดงเฉพาะการตั้งค่าที่มีการเปลี่ยนแปลง STR_CONFIG_SETTING_RESTRICT_BASIC :ตั้งค่าพื้นฐาน STR_CONFIG_SETTING_RESTRICT_ADVANCED :ตั้งค่าขั้นสูง @@ -1270,6 +1273,7 @@ STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :โรงกล STR_CONFIG_SETTING_SNOWLINE_HEIGHT :ระดับความสูงแนวหิมะ: {STRING} STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :ควบคุมความสูงเริ่มต้นของหิมะบนพื้นภูมิทัศน์อาร์ติคย่อยๆ, หิมะยังมีผลการสร้างอุตสาหกรรม และการเติบโตของเมือง STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :ความหยาบของพื้นที่ (เฉพาะ TerraGenesis): {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Choose the frequency of hills: Smooth landscapes have fewer, more wide-spread hills. Rough landscapes have many hills, which may look repetitive STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :ราบเรียบมาก STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :ราบเรียบ STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :หยาบ @@ -1626,6 +1630,7 @@ STR_CONFIG_SETTING_SOUND :{ORANGE}เส STR_CONFIG_SETTING_INTERFACE :{ORANGE}ส่วนเชื่อมต่อผู้ใช้ STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}การก่อสร้าง STR_CONFIG_SETTING_VEHICLES :{ORANGE}ยานพาหนะ +STR_CONFIG_SETTING_VEHICLES_PHYSICS :กายภาพ STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}การค้นหาเส้นทางของพาหนะ STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}สิ่งแวดล้อม STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}เมือง @@ -1701,6 +1706,7 @@ STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}เล STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}แสดงตัวเลือกเกม STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}แสดงตารางคะแนนสูงสุด +STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}การตั้งค่า หน้าจอ STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}แสดงการกำหนดค่า NewGRF STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}ตรวจสอบเนื้อหาใหม่และการปรับปรุงสำหรับดาวโหลด STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}แสดงการตั้งค่า AI/Game script @@ -2663,6 +2669,7 @@ STR_MAPGEN_BY :{BLACK}* STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}จำนวนเมือง STR_MAPGEN_DATE :{BLACK}วันที่: STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}จำนวนอุตสาหกรรม: +STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}ขนาดความสูงของแผนที่สูงสุด: STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}เส้นความสูงเขตหิมะ: STR_MAPGEN_SNOW_LINE_UP :{BLACK}ปรับเปลี่ยนความสูงของหิมะขึ้นไป 1 ระดับ STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}ปรับเปลี่ยนความสูงของหิมะลงมา 1 ระดับ @@ -2773,6 +2780,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}ไม่ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}ไม่รองรับกับ OpenTTD เวอร์ชั่นนี้ # NewGRF save preset window +STR_SAVE_PRESET_SAVE_TOOLTIP :บันทึก ชุดการตั้งค่า ตามที่ได้เลือกไว้ # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}เปลี่ยนแปลง NewGRF parameters @@ -3342,10 +3350,12 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}เป STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อชนิดของเรือ STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อชนิดของเครื่องบิน +STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :ซ่อน STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}การแสดงผล STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}การแสดงผล +STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}ปรับเปลี่ยน ซ่อน/แสดง ของชนิดเครื่องอากาศยาน STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}เปลี่ยนชื่อชนิดของรถไฟ STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}เปลี่ยนชื่อชนิดของรถ @@ -3451,6 +3461,7 @@ STR_REPLACE_VEHICLE_ROAD_VEHICLE :ยานพา STR_REPLACE_VEHICLE_SHIP :ยานพาหนะทางน้ำ STR_REPLACE_VEHICLE_AIRCRAFT :อากาศยาน +STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}พาหนะถูกใช้งานอยู่ STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}เลือกประเภทของรถจักรที่จะแทนที่ STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}เลือกประเภทของพาหนะที่จะแทนที่ทางซ้ายมือ From 3f75b8bca2958f9c16702a33662eac27afd69f42 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 30 Oct 2016 17:29:33 +0000 Subject: [PATCH 164/417] (svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR) --- src/genworld.cpp | 2 +- src/linkgraph/linkgraphjob.cpp | 2 +- src/network/core/tcp_connect.cpp | 2 +- src/network/network_udp.cpp | 6 +++--- src/newgrf_config.cpp | 2 +- src/saveload/saveload.cpp | 2 +- src/thread/thread.h | 3 ++- src/thread/thread_morphos.cpp | 2 +- src/thread/thread_none.cpp | 2 +- src/thread/thread_os2.cpp | 2 +- src/thread/thread_pthread.cpp | 20 +++++++++++++++----- src/thread/thread_win32.cpp | 2 +- src/video/sdl_v.cpp | 2 +- 13 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/genworld.cpp b/src/genworld.cpp index a08b323116..5cdb129b9c 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -331,7 +331,7 @@ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_setti _gw.thread = NULL; } - if (!VideoDriver::GetInstance()->HasGUI() || !ThreadObject::New(&_GenerateWorld, NULL, &_gw.thread)) { + if (!VideoDriver::GetInstance()->HasGUI() || !ThreadObject::New(&_GenerateWorld, NULL, &_gw.thread, "ottd:genworld")) { DEBUG(misc, 1, "Cannot create genworld thread, reverting to single-threaded mode"); _gw.threaded = false; _modal_progress_work_mutex->EndCritical(); diff --git a/src/linkgraph/linkgraphjob.cpp b/src/linkgraph/linkgraphjob.cpp index 20cbf3f64d..537303cf35 100644 --- a/src/linkgraph/linkgraphjob.cpp +++ b/src/linkgraph/linkgraphjob.cpp @@ -61,7 +61,7 @@ void LinkGraphJob::EraseFlows(NodeID from) */ void LinkGraphJob::SpawnThread() { - if (!ThreadObject::New(&(LinkGraphSchedule::Run), this, &this->thread)) { + if (!ThreadObject::New(&(LinkGraphSchedule::Run), this, &this->thread, "ottd:linkgraph")) { this->thread = NULL; /* Of course this will hang a bit. * On the other hand, if you want to play games which make this hang noticably diff --git a/src/network/core/tcp_connect.cpp b/src/network/core/tcp_connect.cpp index ccbf93f3c3..2dc7898824 100644 --- a/src/network/core/tcp_connect.cpp +++ b/src/network/core/tcp_connect.cpp @@ -35,7 +35,7 @@ TCPConnecter::TCPConnecter(const NetworkAddress &address) : address(address) { *_tcp_connecters.Append() = this; - if (!ThreadObject::New(TCPConnecter::ThreadEntry, this, &this->thread)) { + if (!ThreadObject::New(TCPConnecter::ThreadEntry, this, &this->thread, "ottd:tcp")) { this->Connect(); } } diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp index 1cccbf6441..1dc6960659 100644 --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -109,7 +109,7 @@ static void NetworkUDPQueryServerThread(void *pntr) void NetworkUDPQueryServer(NetworkAddress address, bool manually) { NetworkUDPQueryServerInfo *info = new NetworkUDPQueryServerInfo(address, manually); - if (address.IsResolved() || !ThreadObject::New(NetworkUDPQueryServerThread, info)) { + if (address.IsResolved() || !ThreadObject::New(NetworkUDPQueryServerThread, info, NULL, "ottd:udp-query")) { NetworkUDPQueryServerThread(info); } } @@ -565,7 +565,7 @@ void NetworkUDPRemoveAdvertise(bool blocking) /* Check if we are advertising */ if (!_networking || !_network_server || !_network_udp_server) return; - if (blocking || !ThreadObject::New(NetworkUDPRemoveAdvertiseThread, NULL)) { + if (blocking || !ThreadObject::New(NetworkUDPRemoveAdvertiseThread, NULL, NULL, "ottd:udp-advert")) { NetworkUDPRemoveAdvertiseThread(NULL); } } @@ -648,7 +648,7 @@ void NetworkUDPAdvertise() if (_next_advertisement < _last_advertisement) _next_advertisement = UINT32_MAX; if (_next_retry < _last_advertisement) _next_retry = UINT32_MAX; - if (!ThreadObject::New(NetworkUDPAdvertiseThread, NULL)) { + if (!ThreadObject::New(NetworkUDPAdvertiseThread, NULL, NULL, "ottd:udp-advert")) { NetworkUDPAdvertiseThread(NULL); } } diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index bd95373d91..19ac4d4a7e 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -786,7 +786,7 @@ void ScanNewGRFFiles(NewGRFScanCallback *callback) /* Only then can we really start, especially by marking the whole screen dirty. Get those other windows hidden!. */ MarkWholeScreenDirty(); - if (!VideoDriver::GetInstance()->HasGUI() || !ThreadObject::New(&DoScanNewGRFFiles, callback, NULL)) { + if (!VideoDriver::GetInstance()->HasGUI() || !ThreadObject::New(&DoScanNewGRFFiles, callback, NULL, "ottd:newgrf-scan")) { _modal_progress_work_mutex->EndCritical(); _modal_progress_paint_mutex->EndCritical(); DoScanNewGRFFiles(callback); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 7b7341115a..87df2c3a65 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2585,7 +2585,7 @@ static SaveOrLoadResult DoSave(SaveFilter *writer, bool threaded) SlSaveChunks(); SaveFileStart(); - if (!threaded || !ThreadObject::New(&SaveFileToDiskThread, NULL, &_save_thread)) { + if (!threaded || !ThreadObject::New(&SaveFileToDiskThread, NULL, &_save_thread, "ottd:savegame")) { if (threaded) DEBUG(sl, 1, "Cannot create savegame thread, reverting to single-threaded mode..."); SaveOrLoadResult result = SaveFileToDisk(false); diff --git a/src/thread/thread.h b/src/thread/thread.h index b944a53b96..07831bb4ba 100644 --- a/src/thread/thread.h +++ b/src/thread/thread.h @@ -44,9 +44,10 @@ public: * @param proc The procedure to call inside the thread. * @param param The params to give with 'proc'. * @param thread Place to store a pointer to the thread in. May be NULL. + * @param name A name for the thread. May be NULL. * @return True if the thread was started correctly. */ - static bool New(OTTDThreadFunc proc, void *param, ThreadObject **thread = NULL); + static bool New(OTTDThreadFunc proc, void *param, ThreadObject **thread = NULL, const char *name = NULL); }; /** diff --git a/src/thread/thread_morphos.cpp b/src/thread/thread_morphos.cpp index cc6b2f9d3d..6d00d0579c 100644 --- a/src/thread/thread_morphos.cpp +++ b/src/thread/thread_morphos.cpp @@ -193,7 +193,7 @@ private: } }; -/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread) +/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread, const char *name) { ThreadObject *to = new ThreadObject_MorphOS(proc, param, thread == NULL); if (thread != NULL) *thread = to; diff --git a/src/thread/thread_none.cpp b/src/thread/thread_none.cpp index afa799b239..91eb50b113 100644 --- a/src/thread/thread_none.cpp +++ b/src/thread/thread_none.cpp @@ -14,7 +14,7 @@ #include "../safeguards.h" -/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread) +/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread, const char *name) { if (thread != NULL) *thread = NULL; return false; diff --git a/src/thread/thread_os2.cpp b/src/thread/thread_os2.cpp index 2dcb8288f4..c66e2ad643 100644 --- a/src/thread/thread_os2.cpp +++ b/src/thread/thread_os2.cpp @@ -83,7 +83,7 @@ private: } }; -/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread) +/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread, const char *name) { ThreadObject *to = new ThreadObject_OS2(proc, param, thread == NULL); if (thread != NULL) *thread = to; diff --git a/src/thread/thread_pthread.cpp b/src/thread/thread_pthread.cpp index ce407fd941..747b8943d6 100644 --- a/src/thread/thread_pthread.cpp +++ b/src/thread/thread_pthread.cpp @@ -25,16 +25,18 @@ private: OTTDThreadFunc proc; ///< External thread procedure. void *param; ///< Parameter for the external thread procedure. bool self_destruct; ///< Free ourselves when done? + const char *name; ///< Name for the thread public: /** * Create a pthread and start it, calling proc(param). */ - ThreadObject_pthread(OTTDThreadFunc proc, void *param, bool self_destruct) : + ThreadObject_pthread(OTTDThreadFunc proc, void *param, bool self_destruct, const char *name) : thread(0), proc(proc), param(param), - self_destruct(self_destruct) + self_destruct(self_destruct), + name(name) { pthread_create(&this->thread, NULL, &stThreadProc, this); } @@ -60,7 +62,15 @@ private: */ static void *stThreadProc(void *thr) { - ((ThreadObject_pthread *)thr)->ThreadProc(); + ThreadObject_pthread *self = (ThreadObject_pthread *) thr; +#if defined(__GLIBC__) +#if __GLIBC_PREREQ(2, 12) + if (self->name) { + pthread_setname_np(pthread_self(), self->name); + } +#endif +#endif + self->ThreadProc(); pthread_exit(NULL); } @@ -85,9 +95,9 @@ private: } }; -/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread) +/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread, const char *name) { - ThreadObject *to = new ThreadObject_pthread(proc, param, thread == NULL); + ThreadObject *to = new ThreadObject_pthread(proc, param, thread == NULL, name); if (thread != NULL) *thread = to; return true; } diff --git a/src/thread/thread_win32.cpp b/src/thread/thread_win32.cpp index c37baf7c36..81a7212530 100644 --- a/src/thread/thread_win32.cpp +++ b/src/thread/thread_win32.cpp @@ -96,7 +96,7 @@ private: } }; -/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread) +/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread, const char *name) { ThreadObject *to = new ThreadObject_Win32(proc, param, thread == NULL); if (thread != NULL) *thread = to; diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index ea68c21656..4ee96db778 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -687,7 +687,7 @@ void VideoDriver_SDL::MainLoop() _draw_mutex->BeginCritical(); _draw_continue = true; - _draw_threaded = ThreadObject::New(&DrawSurfaceToScreenThread, NULL, &_draw_thread); + _draw_threaded = ThreadObject::New(&DrawSurfaceToScreenThread, NULL, &_draw_thread, "ottd:draw-sdl"); /* Free the mutex if we won't be able to use it. */ if (!_draw_threaded) { From 77b790cd5a5a29335b15e4734ce88082e1db5be7 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 30 Oct 2016 17:36:57 +0000 Subject: [PATCH 165/417] (svn r27671) -Codechange: Replace magic numbers in the toolbar with the already existing WID_TN_xxx. (Wolf01) --- src/toolbar_gui.cpp | 364 +++++++++++++++++++++++++++++++++-- src/widgets/toolbar_widget.h | 3 +- 2 files changed, 346 insertions(+), 21 deletions(-) diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index 2649552f45..f253be8b3a 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -1469,36 +1469,302 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer { { static const uint SMALLEST_ARRANGEMENT = 14; static const uint BIGGEST_ARRANGEMENT = 20; + + /* The number of buttons of each row of the toolbar should match the number of items which we want to be visible. + * The total number of buttons should be equal to arrangable_count * 2. + * No bad things happen, but we could see strange behaviours if we have buttons < (arrangable_count * 2) like a + * pause button appearing on the right of the lower toolbar and weird resizing of the widgets even if there is + * enough space. + */ static const byte arrange14[] = { - 0, 1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 29, - 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 26, 27, 28, 29, + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_TRAINS, + WID_TN_ROADVEHS, + WID_TN_SHIPS, + WID_TN_AIRCRAFTS, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_SWITCH_BAR, + // lower toolbar + WID_TN_SETTINGS, + WID_TN_SAVE, + WID_TN_SMALL_MAP, + WID_TN_TOWNS, + WID_TN_SUBSIDIES, + WID_TN_STATIONS, + WID_TN_FINANCES, + WID_TN_COMPANIES, + WID_TN_GRAPHS, + WID_TN_INDUSTRIES, + WID_TN_MUSIC_SOUND, + WID_TN_MESSAGES, + WID_TN_HELP, + WID_TN_SWITCH_BAR, }; static const byte arrange15[] = { - 0, 1, 4, 15, 16, 17, 18, 21, 22, 23, 24, 25, 19, 20, 29, - 0, 2, 4, 3, 5, 6, 7, 8, 9, 12, 14, 26, 27, 28, 29, + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SMALL_MAP, + WID_TN_TRAINS, + WID_TN_ROADVEHS, + WID_TN_SHIPS, + WID_TN_AIRCRAFTS, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, + // lower toolbar + WID_TN_PAUSE, + WID_TN_SETTINGS, + WID_TN_SMALL_MAP, + WID_TN_SAVE, + WID_TN_TOWNS, + WID_TN_SUBSIDIES, + WID_TN_STATIONS, + WID_TN_FINANCES, + WID_TN_COMPANIES, + WID_TN_GRAPHS, + WID_TN_INDUSTRIES, + WID_TN_MUSIC_SOUND, + WID_TN_MESSAGES, + WID_TN_HELP, + WID_TN_SWITCH_BAR, }; static const byte arrange16[] = { - 0, 1, 2, 4, 15, 16, 17, 18, 21, 22, 23, 24, 25, 19, 20, 29, - 0, 1, 3, 5, 6, 7, 8, 9, 12, 14, 26, 27, 28, 19, 20, 29, + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SETTINGS, + WID_TN_SMALL_MAP, + WID_TN_TRAINS, + WID_TN_ROADVEHS, + WID_TN_SHIPS, + WID_TN_AIRCRAFTS, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, + // lower toolbar + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SAVE, + WID_TN_TOWNS, + WID_TN_SUBSIDIES, + WID_TN_STATIONS, + WID_TN_FINANCES, + WID_TN_COMPANIES, + WID_TN_GRAPHS, + WID_TN_INDUSTRIES, + WID_TN_MUSIC_SOUND, + WID_TN_MESSAGES, + WID_TN_HELP, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, }; static const byte arrange17[] = { - 0, 1, 2, 4, 6, 15, 16, 17, 18, 21, 22, 23, 24, 25, 19, 20, 29, - 0, 1, 3, 4, 6, 5, 7, 8, 9, 12, 14, 26, 27, 28, 19, 20, 29, + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SETTINGS, + WID_TN_SMALL_MAP, + WID_TN_SUBSIDIES, + WID_TN_TRAINS, + WID_TN_ROADVEHS, + WID_TN_SHIPS, + WID_TN_AIRCRAFTS, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, + // lower toolbar + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SAVE, + WID_TN_SMALL_MAP, + WID_TN_SUBSIDIES, + WID_TN_TOWNS, + WID_TN_STATIONS, + WID_TN_FINANCES, + WID_TN_COMPANIES, + WID_TN_GRAPHS, + WID_TN_INDUSTRIES, + WID_TN_MUSIC_SOUND, + WID_TN_MESSAGES, + WID_TN_HELP, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, }; static const byte arrange18[] = { - 0, 1, 2, 4, 5, 6, 7, 8, 9, 14, 21, 22, 23, 24, 25, 19, 20, 29, - 0, 1, 3, 4, 5, 6, 7, 12, 15, 16, 17, 18, 26, 27, 28, 19, 20, 29, + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SETTINGS, + WID_TN_SMALL_MAP, + WID_TN_TOWNS, + WID_TN_SUBSIDIES, + WID_TN_STATIONS, + WID_TN_FINANCES, + WID_TN_COMPANIES, + WID_TN_INDUSTRIES, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, + // lower toolbar + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SAVE, + WID_TN_SMALL_MAP, + WID_TN_TOWNS, + WID_TN_SUBSIDIES, + WID_TN_STATIONS, + WID_TN_GRAPHS, + WID_TN_TRAINS, + WID_TN_ROADVEHS, + WID_TN_SHIPS, + WID_TN_AIRCRAFTS, + WID_TN_MUSIC_SOUND, + WID_TN_MESSAGES, + WID_TN_HELP, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, }; static const byte arrange19[] = { - 0, 1, 2, 4, 5, 6, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 19, 20, 29, - 0, 1, 3, 4, 7, 8, 9, 12, 14, 27, 21, 22, 23, 24, 25, 28, 19, 20, 29, + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SETTINGS, + WID_TN_SMALL_MAP, + WID_TN_TOWNS, + WID_TN_SUBSIDIES, + WID_TN_TRAINS, + WID_TN_ROADVEHS, + WID_TN_SHIPS, + WID_TN_AIRCRAFTS, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_MUSIC_SOUND, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, + // lower toolbar + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SAVE, + WID_TN_SMALL_MAP, + WID_TN_STATIONS, + WID_TN_FINANCES, + WID_TN_COMPANIES, + WID_TN_GRAPHS, + WID_TN_INDUSTRIES, + WID_TN_MESSAGES, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_HELP, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, }; static const byte arrange20[] = { - 0, 1, 2, 4, 5, 6, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 11, 19, 20, 29, - 0, 1, 3, 4, 7, 8, 9, 12, 14, 27, 21, 22, 23, 24, 25, 10, 28, 19, 20, 29, + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SETTINGS, + WID_TN_SMALL_MAP, + WID_TN_TOWNS, + WID_TN_SUBSIDIES, + WID_TN_TRAINS, + WID_TN_ROADVEHS, + WID_TN_SHIPS, + WID_TN_AIRCRAFTS, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_MUSIC_SOUND, + WID_TN_GOAL, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, + // lower toolbar + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SAVE, + WID_TN_SMALL_MAP, + WID_TN_STATIONS, + WID_TN_FINANCES, + WID_TN_COMPANIES, + WID_TN_GRAPHS, + WID_TN_INDUSTRIES, + WID_TN_MESSAGES, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_STORY, + WID_TN_HELP, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_SWITCH_BAR, }; static const byte arrange_all[] = { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 + WID_TN_PAUSE, + WID_TN_FAST_FORWARD, + WID_TN_SETTINGS, + WID_TN_SAVE, + WID_TN_SMALL_MAP, + WID_TN_TOWNS, + WID_TN_SUBSIDIES, + WID_TN_STATIONS, + WID_TN_FINANCES, + WID_TN_COMPANIES, + WID_TN_STORY, + WID_TN_GOAL, + WID_TN_GRAPHS, + WID_TN_LEAGUE, + WID_TN_INDUSTRIES, + WID_TN_TRAINS, + WID_TN_ROADVEHS, + WID_TN_SHIPS, + WID_TN_AIRCRAFTS, + WID_TN_ZOOM_IN, + WID_TN_ZOOM_OUT, + WID_TN_RAILS, + WID_TN_ROADS, + WID_TN_WATER, + WID_TN_AIR, + WID_TN_LANDSCAPE, + WID_TN_MUSIC_SOUND, + WID_TN_MESSAGES, + WID_TN_HELP }; /* If at least BIGGEST_ARRANGEMENT fit, just spread all the buttons nicely */ @@ -1540,14 +1806,65 @@ class NWidgetScenarioToolbarContainer : public NWidgetToolbarContainer { /* virtual */ const byte *GetButtonArrangement(uint &width, uint &arrangable_count, uint &button_count, uint &spacer_count) const { static const byte arrange_all[] = { - 0, 1, 2, 3, 4, 18, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 26, 28, + WID_TE_PAUSE, + WID_TE_FAST_FORWARD, + WID_TE_SETTINGS, + WID_TE_SAVE, + WID_TE_SPACER, + WID_TE_DATE_PANEL, + WID_TE_SMALL_MAP, + WID_TE_ZOOM_IN, + WID_TE_ZOOM_OUT, + WID_TE_LAND_GENERATE, + WID_TE_TOWN_GENERATE, + WID_TE_INDUSTRY, + WID_TE_ROADS, + WID_TE_WATER, + WID_TE_TREES, + WID_TE_SIGNS, + WID_TE_MUSIC_SOUND, + WID_TE_HELP, }; static const byte arrange_nopanel[] = { - 0, 1, 2, 3, 18, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 26, 28, + WID_TE_PAUSE, + WID_TE_FAST_FORWARD, + WID_TE_SETTINGS, + WID_TE_SAVE, + WID_TE_DATE_PANEL, + WID_TE_SMALL_MAP, + WID_TE_ZOOM_IN, + WID_TE_ZOOM_OUT, + WID_TE_LAND_GENERATE, + WID_TE_TOWN_GENERATE, + WID_TE_INDUSTRY, + WID_TE_ROADS, + WID_TE_WATER, + WID_TE_TREES, + WID_TE_SIGNS, + WID_TE_MUSIC_SOUND, + WID_TE_HELP, }; static const byte arrange_switch[] = { - 18, 8, 11, 12, 13, 14, 15, 16, 17, 29, - 0, 1, 2, 3, 18, 9, 10, 26, 28, 29, + WID_TE_DATE_PANEL, + WID_TE_SMALL_MAP, + WID_TE_LAND_GENERATE, + WID_TE_TOWN_GENERATE, + WID_TE_INDUSTRY, + WID_TE_ROADS, + WID_TE_WATER, + WID_TE_TREES, + WID_TE_SIGNS, + WID_TE_SWITCH_BAR, + // lower toolbar + WID_TE_PAUSE, + WID_TE_FAST_FORWARD, + WID_TE_SETTINGS, + WID_TE_SAVE, + WID_TE_DATE_PANEL, + WID_TE_ZOOM_IN, + WID_TE_ZOOM_OUT, + WID_TE_MUSIC_SOUND, + WID_TE_HELP, WID_TE_SWITCH_BAR, }; /* If we can place all buttons *and* the panels, show them. */ @@ -1901,7 +2218,14 @@ static NWidgetBase *MakeMainToolbar(int *biggest_index) NWidgetMainToolbarContainer *hor = new NWidgetMainToolbarContainer(); for (uint i = 0; i < WID_TN_END; i++) { switch (i) { - case 4: case 8: case 15: case 19: case 21: case 26: hor->Add(new NWidgetSpacer(0, 0)); break; + case WID_TN_SMALL_MAP: + case WID_TN_FINANCES: + case WID_TN_VEHICLE_START: + case WID_TN_ZOOM_IN: + case WID_TN_BUILDING_TOOLS_START: + case WID_TN_MUSIC_SOUND: + hor->Add(new NWidgetSpacer(0, 0)); + break; } hor->Add(new NWidgetLeaf(i == WID_TN_SAVE ? WWT_IMGBTN_2 : WWT_IMGBTN, COLOUR_GREY, i, toolbar_button_sprites[i], STR_TOOLBAR_TOOLTIP_PAUSE_GAME + i)); } diff --git a/src/widgets/toolbar_widget.h b/src/widgets/toolbar_widget.h index 6ede3ad634..434a238acc 100644 --- a/src/widgets/toolbar_widget.h +++ b/src/widgets/toolbar_widget.h @@ -36,7 +36,8 @@ enum ToolbarNormalWidgets { WID_TN_AIRCRAFTS, ///< Aircraft menu. WID_TN_ZOOM_IN, ///< Zoom in the main viewport. WID_TN_ZOOM_OUT, ///< Zoom out the main viewport. - WID_TN_RAILS, ///< Rail building menu. + WID_TN_BUILDING_TOOLS_START, ///< Helper for the offset of the building tools + WID_TN_RAILS = WID_TN_BUILDING_TOOLS_START, ///< Rail building menu. WID_TN_ROADS, ///< Road building menu. WID_TN_WATER, ///< Water building toolbar. WID_TN_AIR, ///< Airport building toolbar. From a08df612bec110c567b332fc9a9bdd9e2670a421 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 30 Oct 2016 18:04:20 +0000 Subject: [PATCH 166/417] (svn r27672) -Doc [FS#6489]: Fix comment. (Yho) --- src/vehicle_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index acef864080..6617929c6a 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2370,8 +2370,8 @@ static const uint32 _vehicle_command_translation_table[][4] = { }; /** - * This is the Callback method after the cloning attempt of a vehicle - * @param result the result of the cloning command + * This is the Callback method after attempting to start/stop a vehicle + * @param result the result of the start/stop command * @param tile unused * @param p1 vehicle ID * @param p2 unused From 36cbb54a9dd4ca929ce49ac1430b5beeb6444bb5 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Sun, 30 Oct 2016 18:22:55 +0000 Subject: [PATCH 167/417] (svn r27673) -Add: [Win32] Thread names for windows debuggers. --- src/music/win32_m.cpp | 3 +++ src/os/windows/win32.cpp | 33 +++++++++++++++++++++++++++++++++ src/os/windows/win32.h | 6 ++++++ src/sound/win32_s.cpp | 3 +++ src/thread/thread_win32.cpp | 13 ++++++++++--- src/video/dedicated_v.cpp | 3 +++ src/video/win32_v.cpp | 2 +- 7 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/music/win32_m.cpp b/src/music/win32_m.cpp index d3a7019a0f..fff0376a09 100644 --- a/src/music/win32_m.cpp +++ b/src/music/win32_m.cpp @@ -14,6 +14,7 @@ #include "win32_m.h" #include #include +#include "../os/windows/win32.h" #include "../safeguards.h" @@ -105,6 +106,8 @@ static bool MidiIntIsSongPlaying() static DWORD WINAPI MidiThread(LPVOID arg) { + SetWin32ThreadName(-1, "ottd:win-midi"); + do { char *s; int vol; diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp index 344d243143..3fd1777fa8 100644 --- a/src/os/windows/win32.cpp +++ b/src/os/windows/win32.cpp @@ -785,3 +785,36 @@ uint GetCPUCoreCount() GetSystemInfo(&info); return info.dwNumberOfProcessors; } + +#ifdef _MSC_VER +/* Code from MSDN: https://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx */ +const DWORD MS_VC_EXCEPTION = 0x406D1388; +#pragma pack(push,8) +typedef struct { + DWORD dwType; ///< Must be 0x1000. + LPCSTR szName; ///< Pointer to name (in user addr space). + DWORD dwThreadID; ///< Thread ID (-1=caller thread). + DWORD dwFlags; ///< Reserved for future use, must be zero. +} THREADNAME_INFO; +#pragma pack(pop) + +/** + * Signal thread name to any attached debuggers. + */ +void SetWin32ThreadName(DWORD dwThreadID, const char* threadName) +{ + THREADNAME_INFO info; + info.dwType = 0x1000; + info.szName = threadName; + info.dwThreadID = dwThreadID; + info.dwFlags = 0; + +#pragma warning(push) +#pragma warning(disable: 6320 6322) + __try { + RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR*)&info); + } __except (EXCEPTION_EXECUTE_HANDLER) { + } +#pragma warning(pop) +} +#endif diff --git a/src/os/windows/win32.h b/src/os/windows/win32.h index 4e53879cf0..c3ded817ac 100644 --- a/src/os/windows/win32.h +++ b/src/os/windows/win32.h @@ -39,4 +39,10 @@ HRESULT OTTDSHGetFolderPath(HWND, int, HANDLE, DWORD, LPTSTR); #define SHGFP_TYPE_CURRENT 0 #endif /* __MINGW32__ */ +#ifdef _MSC_VER +void SetWin32ThreadName(DWORD dwThreadID, const char* threadName); +#else +void SetWin32ThreadName(DWORD dwThreadID, const char* threadName) {} +#endif + #endif /* WIN32_H */ diff --git a/src/sound/win32_s.cpp b/src/sound/win32_s.cpp index 45f88172a9..c9c1a8afdc 100644 --- a/src/sound/win32_s.cpp +++ b/src/sound/win32_s.cpp @@ -19,6 +19,7 @@ #include "win32_s.h" #include #include +#include "../os/windows/win32.h" #include "../safeguards.h" @@ -41,6 +42,8 @@ static void PrepareHeader(WAVEHDR *hdr) static DWORD WINAPI SoundThread(LPVOID arg) { + SetWin32ThreadName(-1, "ottd:win-sound"); + do { for (WAVEHDR *hdr = _wave_hdr; hdr != endof(_wave_hdr); hdr++) { if ((hdr->dwFlags & WHDR_INQUEUE) != 0) continue; diff --git a/src/thread/thread_win32.cpp b/src/thread/thread_win32.cpp index 81a7212530..a01ea8e108 100644 --- a/src/thread/thread_win32.cpp +++ b/src/thread/thread_win32.cpp @@ -16,6 +16,7 @@ #include #include #include +#include "../os/windows/win32.h" #include "../safeguards.h" @@ -29,17 +30,19 @@ private: OTTDThreadFunc proc; ///< External thread procedure. void *param; ///< Parameter for the external thread procedure. bool self_destruct; ///< Free ourselves when done? + const char *name; ///< Thread name. public: /** * Create a win32 thread and start it, calling proc(param). */ - ThreadObject_Win32(OTTDThreadFunc proc, void *param, bool self_destruct) : + ThreadObject_Win32(OTTDThreadFunc proc, void *param, bool self_destruct, const char *name) : thread(NULL), id(0), proc(proc), param(param), - self_destruct(self_destruct) + self_destruct(self_destruct), + name(name) { this->thread = (HANDLE)_beginthreadex(NULL, 0, &stThreadProc, this, CREATE_SUSPENDED, &this->id); if (this->thread == NULL) return; @@ -85,6 +88,10 @@ private: */ void ThreadProc() { +#ifdef _MSC_VER + /* Set thread name for debuggers. Has to be done from the thread due to a race condition in older MS debuggers. */ + SetWin32ThreadName(-1, this->name); +#endif try { this->proc(this->param); } catch (OTTDThreadExitSignal) { @@ -98,7 +105,7 @@ private: /* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread, const char *name) { - ThreadObject *to = new ThreadObject_Win32(proc, param, thread == NULL); + ThreadObject *to = new ThreadObject_Win32(proc, param, thread == NULL, name); if (thread != NULL) *thread = to; return true; } diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index e038df9751..5e2be481c9 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -84,6 +84,7 @@ static void DedicatedSignalHandler(int sig) # endif # include # include +# include "../os/windows/win32.h" static HANDLE _hInputReady, _hWaitForInputHandling; static HANDLE _hThread; // Thread to close static char _win_console_thread_buffer[200]; @@ -95,6 +96,8 @@ static void WINAPI CheckForConsoleInput() /* WinCE doesn't support console stuff */ return; #else + SetWin32ThreadName(-1, "ottd:win-console"); + DWORD nb; HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); for (;;) { diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 4dcc9eb703..c37ebd7dd6 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -1199,7 +1199,7 @@ void VideoDriver_Win32::MainLoop() _draw_threaded = false; } else { _draw_continue = true; - _draw_threaded = ThreadObject::New(&PaintWindowThread, NULL, &_draw_thread); + _draw_threaded = ThreadObject::New(&PaintWindowThread, NULL, &_draw_thread, "ottd:draw-win32"); /* Free the mutex if we won't be able to use it. */ if (!_draw_threaded) { From 221c84be66b371856f545f4e107eb779314f65c0 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Sun, 30 Oct 2016 19:27:07 +0000 Subject: [PATCH 168/417] (svn r27674) -Fix (r27673): Mingw... --- src/os/windows/win32.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/os/windows/win32.h b/src/os/windows/win32.h index c3ded817ac..16632f6e9a 100644 --- a/src/os/windows/win32.h +++ b/src/os/windows/win32.h @@ -42,7 +42,7 @@ HRESULT OTTDSHGetFolderPath(HWND, int, HANDLE, DWORD, LPTSTR); #ifdef _MSC_VER void SetWin32ThreadName(DWORD dwThreadID, const char* threadName); #else -void SetWin32ThreadName(DWORD dwThreadID, const char* threadName) {} +static inline void SetWin32ThreadName(DWORD dwThreadID, const char* threadName) {} #endif #endif /* WIN32_H */ From 4436f96f9fcea0b84e6023214e0a68a9e711cb53 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Mon, 31 Oct 2016 19:29:01 +0000 Subject: [PATCH 169/417] (svn r27675) -Fix [FS#6502]: [OSX] Building with 10.11 or 10.12 SDKs. --- src/music/cocoa_m.cpp | 8 ++++++-- src/os/macosx/osx_stdafx.h | 13 +++++++++++-- src/video/cocoa/wnd_quartz.mm | 22 +++++++++++++++------- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/music/cocoa_m.cpp b/src/music/cocoa_m.cpp index a201984ae1..925dc21ab5 100644 --- a/src/music/cocoa_m.cpp +++ b/src/music/cocoa_m.cpp @@ -30,6 +30,10 @@ #include "../safeguards.h" +#if !defined(HAVE_OSX_1011_SDK) +#define kMusicSequenceFile_AnyType 0 +#endif + static FMusicDriver_Cocoa iFMusicDriver_Cocoa; @@ -68,7 +72,7 @@ static void DoSetVolume() * risk compilation errors. The header AudioComponent.h * was introduced in 10.6 so use it to decide which * type definition to use. */ -#ifdef __AUDIOCOMPONENT_H__ +#if defined(__AUDIOCOMPONENT_H__) || defined(HAVE_OSX_107_SDK) AudioComponentDescription desc; #else ComponentDescription desc; @@ -159,7 +163,7 @@ void MusicDriver_Cocoa::PlaySong(const char *filename) #if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) if (MacOSVersionIsAtLeast(10, 5, 0)) { - if (MusicSequenceFileLoad(_sequence, url, 0, 0) != noErr) { + if (MusicSequenceFileLoad(_sequence, url, kMusicSequenceFile_AnyType, 0) != noErr) { DEBUG(driver, 0, "cocoa_m: Failed to load MIDI file"); CFRelease(url); return; diff --git a/src/os/macosx/osx_stdafx.h b/src/os/macosx/osx_stdafx.h index 35b3f434a1..4e16b5e63b 100644 --- a/src/os/macosx/osx_stdafx.h +++ b/src/os/macosx/osx_stdafx.h @@ -13,6 +13,17 @@ #define MACOS_STDAFX_H +#include + +/* We assume if these macros are defined, the SDK is also at least this version or later. */ +#ifdef MAC_OS_X_VERSION_10_7 +#define HAVE_OSX_107_SDK +#endif + +#ifdef MAC_OS_X_VERSION_10_11 +#define HAVE_OSX_1011_SDK +#endif + /* It would seem that to ensure backward compability we have to ensure that we have defined MAC_OS_X_VERSION_10_x everywhere */ #ifndef MAC_OS_X_VERSION_10_3 #define MAC_OS_X_VERSION_10_3 1030 @@ -57,8 +68,6 @@ # error "Compiling 64 bits without _SQ64 set! (or vice versa)" #endif -#include - /* Name conflict */ #define Rect OTTDRect #define Point OTTDPoint diff --git a/src/video/cocoa/wnd_quartz.mm b/src/video/cocoa/wnd_quartz.mm index c93a1f6fb3..795a311bc6 100644 --- a/src/video/cocoa/wnd_quartz.mm +++ b/src/video/cocoa/wnd_quartz.mm @@ -110,15 +110,23 @@ static CGColorSpaceRef QZ_GetCorrectColorSpace() static CGColorSpaceRef colorSpace = NULL; if (colorSpace == NULL) { - CMProfileRef sysProfile; - - if (CMGetSystemProfile(&sysProfile) == noErr) { - colorSpace = CGColorSpaceCreateWithPlatformColorSpace(sysProfile); - CMCloseProfile(sysProfile); - } else { - colorSpace = CGColorSpaceCreateDeviceRGB(); +#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) + if (MacOSVersionIsAtLeast(10, 5, 0)) { + colorSpace = CGDisplayCopyColorSpace(CGMainDisplayID()); + } else +#endif + { +#if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5) && !defined(HAVE_OSX_1011_SDK) + CMProfileRef sysProfile; + if (CMGetSystemProfile(&sysProfile) == noErr) { + colorSpace = CGColorSpaceCreateWithPlatformColorSpace(sysProfile); + CMCloseProfile(sysProfile); + } +#endif } + if (colorSpace == NULL) colorSpace = CGColorSpaceCreateDeviceRGB(); + if (colorSpace == NULL) error("Could not get system colour space. You might need to recalibrate your monitor."); } From 616c02c42eee488cf021a0e478f48817a137057f Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 5 Nov 2016 11:53:03 +0000 Subject: [PATCH 170/417] (svn r27676) -Codechange: Rename catenary functions, so that they refer unambiguously to either RoadCatenary or RailCatenary. --- src/elrail.cpp | 38 +++++++++++++++++++------------------- src/elrail_func.h | 12 ++++++------ src/newgrf.cpp | 2 +- src/rail_cmd.cpp | 4 ++-- src/road_cmd.cpp | 8 ++++---- src/road_internal.h | 2 +- src/station_cmd.cpp | 4 ++-- src/table/elrail_data.h | 10 +++++----- src/tunnelbridge_cmd.cpp | 16 ++++++++-------- 9 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/elrail.cpp b/src/elrail.cpp index 1927be03e5..ac36161617 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -89,7 +89,7 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) { switch (GetTileType(t)) { case MP_RAILWAY: - if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE; + if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; switch (GetRailTileType(t)) { case RAIL_TILE_NORMAL: case RAIL_TILE_SIGNALS: return GetTrackBits(t); @@ -99,7 +99,7 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) break; case MP_TUNNELBRIDGE: - if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE; + if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; if (override != NULL && (IsTunnel(t) || GetTunnelBridgeLength(t, GetOtherBridgeEnd(t)) > 0)) { *override = 1 << GetTunnelBridgeDirection(t); } @@ -107,12 +107,12 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) case MP_ROAD: if (!IsLevelCrossing(t)) return TRACK_BIT_NONE; - if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE; + if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; return GetCrossingRailBits(t); case MP_STATION: if (!HasStationRail(t)) return TRACK_BIT_NONE; - if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE; + if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; return TrackToTrackBits(GetRailStationTrack(t)); default: @@ -135,7 +135,7 @@ static TrackBits MaskWireBits(TileIndex t, TrackBits tracks) * axis that still display wires to preserve visual continuity. */ TileIndex next_tile = TileAddByDiagDir(t, d); RailType rt = GetTileRailType(next_tile); - if (rt == INVALID_RAILTYPE || !HasCatenary(rt) || + if (rt == INVALID_RAILTYPE || !HasRailCatenary(rt) || ((TrackStatusToTrackBits(GetTileTrackStatus(next_tile, TRANSPORT_RAIL, 0)) & DiagdirReachesTracks(d)) == TRACK_BIT_NONE && (!HasStationTileRail(next_tile) || GetRailStationAxis(next_tile) != DiagDirToAxis(d) || !CanStationTileHaveWires(next_tile)))) { neighbour_tdb |= DiagdirReachesTrackdirs(ReverseDiagDir(d)); @@ -241,7 +241,7 @@ static int GetPCPElevation(TileIndex tile, DiagDirection PCPpos) * * @param ti The Tileinfo to draw the tile for */ -void DrawCatenaryOnTunnel(const TileInfo *ti) +void DrawRailCatenaryOnTunnel(const TileInfo *ti) { /* xmin, ymin, xmax + 1, ymax + 1 of BB */ static const int _tunnel_wire_BB[4][4] = { @@ -255,7 +255,7 @@ void DrawCatenaryOnTunnel(const TileInfo *ti) SpriteID wire_base = GetWireBase(ti->tile); - const SortableSpriteStruct *sss = &CatenarySpriteData_Tunnel[dir]; + const SortableSpriteStruct *sss = &RailCatenarySpriteData_Tunnel[dir]; const int *BB_data = _tunnel_wire_BB[dir]; AddSortableSpriteToDraw( wire_base + sss->image_offset, PAL_NONE, ti->x + sss->x_offset, ti->y + sss->y_offset, @@ -270,7 +270,7 @@ void DrawCatenaryOnTunnel(const TileInfo *ti) * Draws wires and, if required, pylons on a given tile * @param ti The Tileinfo to draw the tile for */ -static void DrawCatenaryRailway(const TileInfo *ti) +static void DrawRailCatenaryRailway(const TileInfo *ti) { /* Pylons are placed on a tile edge, so we need to take into account * the track configuration of 2 adjacent tiles. trackconfig[0] stores the @@ -379,7 +379,7 @@ static void DrawCatenaryRailway(const TileInfo *ti) if (IsTileType(neighbour, MP_STATION) || IsTileType(neighbour, MP_ROAD)) tileh[TS_NEIGHBOUR] = SLOPE_FLAT; /* Read the foundations if they are present, and adjust the tileh */ - if (trackconfig[TS_NEIGHBOUR] != TRACK_BIT_NONE && IsTileType(neighbour, MP_RAILWAY) && HasCatenary(GetRailType(neighbour))) foundation = GetRailFoundation(tileh[TS_NEIGHBOUR], trackconfig[TS_NEIGHBOUR]); + if (trackconfig[TS_NEIGHBOUR] != TRACK_BIT_NONE && IsTileType(neighbour, MP_RAILWAY) && HasRailCatenary(GetRailType(neighbour))) foundation = GetRailFoundation(tileh[TS_NEIGHBOUR], trackconfig[TS_NEIGHBOUR]); if (IsBridgeTile(neighbour)) { foundation = GetBridgeFoundation(tileh[TS_NEIGHBOUR], DiagDirToAxis(GetTunnelBridgeDirection(neighbour))); } @@ -442,7 +442,7 @@ static void DrawCatenaryRailway(const TileInfo *ti) } } - /* The wire above the tunnel is drawn together with the tunnel-roof (see DrawCatenaryOnTunnel()) */ + /* The wire above the tunnel is drawn together with the tunnel-roof (see DrawRailCatenaryOnTunnel()) */ if (IsTunnelTile(ti->tile)) return; /* Don't draw a wire under a low bridge */ @@ -478,7 +478,7 @@ static void DrawCatenaryRailway(const TileInfo *ti) assert(PCPconfig != 0); // We have a pylon on neither end of the wire, that doesn't work (since we have no sprites for that) assert(!IsSteepSlope(tileh[TS_HOME])); - sss = &CatenarySpriteData[Wires[tileh_selector][t][PCPconfig]]; + sss = &RailCatenarySpriteData[Wires[tileh_selector][t][PCPconfig]]; /* * The "wire"-sprite position is inside the tile, i.e. 0 <= sss->?_offset < TILE_SIZE. @@ -498,7 +498,7 @@ static void DrawCatenaryRailway(const TileInfo *ti) * * @param ti The Tileinfo to draw the tile for */ -void DrawCatenaryOnBridge(const TileInfo *ti) +void DrawRailCatenaryOnBridge(const TileInfo *ti) { TileIndex end = GetSouthernBridgeEnd(ti->tile); TileIndex start = GetOtherBridgeEnd(end); @@ -511,15 +511,15 @@ void DrawCatenaryOnBridge(const TileInfo *ti) Axis axis = GetBridgeAxis(ti->tile); TLG tlg = GetTLG(ti->tile); - CatenarySprite offset = (CatenarySprite)(axis == AXIS_X ? 0 : WIRE_Y_FLAT_BOTH - WIRE_X_FLAT_BOTH); + RailCatenarySprite offset = (RailCatenarySprite)(axis == AXIS_X ? 0 : WIRE_Y_FLAT_BOTH - WIRE_X_FLAT_BOTH); if ((length % 2) && num == length) { /* Draw the "short" wire on the southern end of the bridge * only needed if the length of the bridge is odd */ - sss = &CatenarySpriteData[WIRE_X_FLAT_BOTH + offset]; + sss = &RailCatenarySpriteData[WIRE_X_FLAT_BOTH + offset]; } else { /* Draw "long" wires on all other tiles of the bridge (one pylon every two tiles) */ - sss = &CatenarySpriteData[WIRE_X_FLAT_SW + (num % 2) + offset]; + sss = &RailCatenarySpriteData[WIRE_X_FLAT_SW + (num % 2) + offset]; } height = GetBridgePixelHeight(end); @@ -558,14 +558,14 @@ void DrawCatenaryOnBridge(const TileInfo *ti) /** * Draws overhead wires and pylons for electric railways. * @param ti The TileInfo struct of the tile being drawn - * @see DrawCatenaryRailway + * @see DrawRailCatenaryRailway */ -void DrawCatenary(const TileInfo *ti) +void DrawRailCatenary(const TileInfo *ti) { switch (GetTileType(ti->tile)) { case MP_RAILWAY: if (IsRailDepot(ti->tile)) { - const SortableSpriteStruct *sss = &CatenarySpriteData_Depot[GetRailDepotDirection(ti->tile)]; + const SortableSpriteStruct *sss = &RailCatenarySpriteData_Depot[GetRailDepotDirection(ti->tile)]; SpriteID wire_base = GetWireBase(ti->tile); @@ -587,7 +587,7 @@ void DrawCatenary(const TileInfo *ti) default: return; } - DrawCatenaryRailway(ti); + DrawRailCatenaryRailway(ti); } bool SettingsDisableElrail(int32 p1) diff --git a/src/elrail_func.h b/src/elrail_func.h index 60cb782bbf..5cdae20c54 100644 --- a/src/elrail_func.h +++ b/src/elrail_func.h @@ -20,7 +20,7 @@ * Test if a rail type has catenary * @param rt Rail type to test */ -static inline bool HasCatenary(RailType rt) +static inline bool HasRailCatenary(RailType rt) { return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY); } @@ -29,14 +29,14 @@ static inline bool HasCatenary(RailType rt) * Test if we should draw rail catenary * @param rt Rail type to test */ -static inline bool HasCatenaryDrawn(RailType rt) +static inline bool HasRailCatenaryDrawn(RailType rt) { - return HasCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_settings_game.vehicle.disable_elrails; + return HasRailCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_settings_game.vehicle.disable_elrails; } -void DrawCatenary(const TileInfo *ti); -void DrawCatenaryOnTunnel(const TileInfo *ti); -void DrawCatenaryOnBridge(const TileInfo *ti); +void DrawRailCatenary(const TileInfo *ti); +void DrawRailCatenaryOnTunnel(const TileInfo *ti); +void DrawRailCatenaryOnBridge(const TileInfo *ti); bool SettingsDisableElrail(int32 p1); ///< _settings_game.disable_elrail callback diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 6624e2bfdf..3f4a8db6f3 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5584,7 +5584,7 @@ static const Action5Type _action5_types[] = { /* 0x02 */ { A5BLOCK_INVALID, 0, 0, 0, "Type 0x02" }, /* 0x03 */ { A5BLOCK_INVALID, 0, 0, 0, "Type 0x03" }, /* 0x04 */ { A5BLOCK_ALLOW_OFFSET, SPR_SIGNALS_BASE, 1, PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT, "Signal graphics" }, - /* 0x05 */ { A5BLOCK_ALLOW_OFFSET, SPR_ELRAIL_BASE, 1, ELRAIL_SPRITE_COUNT, "Catenary graphics" }, + /* 0x05 */ { A5BLOCK_ALLOW_OFFSET, SPR_ELRAIL_BASE, 1, ELRAIL_SPRITE_COUNT, "Rail catenary graphics" }, /* 0x06 */ { A5BLOCK_ALLOW_OFFSET, SPR_SLOPES_BASE, 1, NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT, "Foundation graphics" }, /* 0x07 */ { A5BLOCK_INVALID, 0, 75, 0, "TTDP GUI graphics" }, // Not used by OTTD. /* 0x08 */ { A5BLOCK_ALLOW_OFFSET, SPR_CANALS_BASE, 1, CANALS_SPRITE_COUNT, "Canal graphics" }, diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 2010f9b305..eda02481c5 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -2394,7 +2394,7 @@ static void DrawTile_Track(TileInfo *ti) if (HasBit(_display_opt, DO_FULL_DETAIL)) DrawTrackDetails(ti, rti); - if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti); if (HasSignals(ti->tile)) DrawSignals(ti->tile, rails, rti); } else { @@ -2469,7 +2469,7 @@ static void DrawTile_Track(TileInfo *ti) int depot_sprite = GetCustomRailSprite(rti, ti->tile, RTSG_DEPOT); relocation = depot_sprite != 0 ? depot_sprite - SPR_RAIL_DEPOT_SE_1 : rti->GetRailtypeSpriteOffset(); - if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti); DrawRailTileSeq(ti, dts, TO_BUILDINGS, relocation, 0, _drawtile_track_palette); } diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index aa445eb91a..ddd8bd0e9b 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1191,7 +1191,7 @@ static bool DrawRoadAsSnowDesert(TileIndex tile, Roadside roadside) * @param ti information about the tile (slopes, height etc) * @param tram the roadbits for the tram */ -void DrawTramCatenary(const TileInfo *ti, RoadBits tram) +void DrawRoadCatenary(const TileInfo *ti, RoadBits tram) { /* Do not draw catenary if it is invisible */ if (IsInvisibilitySet(TO_CATENARY)) return; @@ -1298,7 +1298,7 @@ static void DrawRoadBits(TileInfo *ti) return; } - if (tram != ROAD_NONE) DrawTramCatenary(ti, tram); + if (tram != ROAD_NONE) DrawRoadCatenary(ti, tram); /* Return if full detail is disabled, or we are zoomed fully out. */ if (!HasBit(_display_opt, DO_FULL_DETAIL) || _cur_dpi->zoom > ZOOM_LVL_DETAIL) return; @@ -1388,9 +1388,9 @@ static void DrawTile_Road(TileInfo *ti) if (HasTileRoadType(ti->tile, ROADTYPE_TRAM)) { DrawGroundSprite(SPR_TRAMWAY_OVERLAY + (GetCrossingRoadAxis(ti->tile) ^ 1), pal); - DrawTramCatenary(ti, GetCrossingRoadBits(ti->tile)); + DrawRoadCatenary(ti, GetCrossingRoadBits(ti->tile)); } - if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti); break; } diff --git a/src/road_internal.h b/src/road_internal.h index c8cae84224..8da909e94a 100644 --- a/src/road_internal.h +++ b/src/road_internal.h @@ -19,6 +19,6 @@ RoadBits CleanUpRoadBits(const TileIndex tile, RoadBits org_rb); CommandCost CheckAllowRemoveRoad(TileIndex tile, RoadBits remove, Owner owner, RoadType rt, DoCommandFlag flags, bool town_check = true); -void DrawTramCatenary(const TileInfo *ti, RoadBits tram); +void DrawRoadCatenary(const TileInfo *ti, RoadBits tram); #endif /* ROAD_INTERNAL_H */ diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index eb90c29ab5..5883afc086 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2897,12 +2897,12 @@ draw_default_foundation: } } - if (HasStationRail(ti->tile) && HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); + if (HasStationRail(ti->tile) && HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti); if (HasBit(roadtypes, ROADTYPE_TRAM)) { Axis axis = GetRoadStopDir(ti->tile) == DIAGDIR_NE ? AXIS_X : AXIS_Y; DrawGroundSprite((HasBit(roadtypes, ROADTYPE_ROAD) ? SPR_TRAMWAY_OVERLAY : SPR_TRAMWAY_TRAM) + (axis ^ 1), PAL_NONE); - DrawTramCatenary(ti, axis == AXIS_X ? ROAD_X : ROAD_Y); + DrawRoadCatenary(ti, axis == AXIS_X ? ROAD_X : ROAD_Y); } if (IsRailWaypoint(ti->tile)) { diff --git a/src/table/elrail_data.h b/src/table/elrail_data.h index 156f0e9413..102ad42644 100644 --- a/src/table/elrail_data.h +++ b/src/table/elrail_data.h @@ -331,7 +331,7 @@ static const uint ELRAIL_ELEVATION = 10; /** Wires that a draw one level higher than the north corner. */ static const uint ELRAIL_ELEVRAISE = ELRAIL_ELEVATION + TILE_HEIGHT; -static const SortableSpriteStruct CatenarySpriteData[] = { +static const SortableSpriteStruct RailCatenarySpriteData[] = { /* X direction * Flat tiles: * Wires */ @@ -392,14 +392,14 @@ static const SortableSpriteStruct CatenarySpriteData[] = { { WSO_EW_E, 15, 8, 3, 3, 1, ELRAIL_ELEVATION } //!33: LOWER trackbit wire, pylon on both ends }; -static const SortableSpriteStruct CatenarySpriteData_Depot[] = { +static const SortableSpriteStruct RailCatenarySpriteData_Depot[] = { { WSO_ENTRANCE_NE, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for NE depot exit { WSO_ENTRANCE_SE, 7, 0, 1, 15, 1, ELRAIL_ELEVATION }, //! Wire for SE depot exit { WSO_ENTRANCE_SW, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for SW depot exit { WSO_ENTRANCE_NW, 7, 0, 1, 15, 1, ELRAIL_ELEVATION } //! Wire for NW depot exit }; -static const SortableSpriteStruct CatenarySpriteData_Tunnel[] = { +static const SortableSpriteStruct RailCatenarySpriteData_Tunnel[] = { { WSO_ENTRANCE_NE, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for NE tunnel exit { WSO_ENTRANCE_SE, 7, 0, 1, 15, 1, ELRAIL_ELEVATION }, //! Wire for SE tunnel exit { WSO_ENTRANCE_SW, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for SW tunnel exit @@ -419,7 +419,7 @@ static const SortableSpriteStruct CatenarySpriteData_Tunnel[] = { *
  • Position of the Pylon relative to the track
  • *
  • Position of the Pylon inside the tile
  • */ -enum CatenarySprite { +enum RailCatenarySprite { WIRE_X_FLAT_SW, WIRE_X_FLAT_NE, WIRE_X_FLAT_BOTH, @@ -471,7 +471,7 @@ enum CatenarySprite { * c) the second * d) both * PCP exists.*/ -static const CatenarySprite Wires[5][TRACK_END][4] = { +static const RailCatenarySprite Wires[5][TRACK_END][4] = { { // Tileh == 0 {INVALID_CATENARY, WIRE_X_FLAT_NE, WIRE_X_FLAT_SW, WIRE_X_FLAT_BOTH}, {INVALID_CATENARY, WIRE_Y_FLAT_SE, WIRE_Y_FLAT_NW, WIRE_Y_FLAT_BOTH}, diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 5f2534b58c..677cf99752 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -1216,14 +1216,14 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } } - if (HasCatenaryDrawn(GetRailType(ti->tile))) { + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) { /* Maybe draw pylons on the entry side */ - DrawCatenary(ti); + DrawRailCatenary(ti); catenary = true; StartSpriteCombine(); /* Draw wire above the ramp */ - DrawCatenaryOnTunnel(ti); + DrawRailCatenaryOnTunnel(ti); } } @@ -1341,8 +1341,8 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } EndSpriteCombine(); - if (HasCatenaryDrawn(GetRailType(ti->tile))) { - DrawCatenary(ti); + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) { + DrawRailCatenary(ti); } } @@ -1392,7 +1392,7 @@ void DrawBridgeMiddle(const TileInfo *ti) { /* Sectional view of bridge bounding boxes: * - * 1 2 1,2 = SpriteCombine of Bridge front/(back&floor) and TramCatenary + * 1 2 1,2 = SpriteCombine of Bridge front/(back&floor) and RoadCatenary * 1 2 3 = empty helper BB * 1 7 2 4,5 = pillars under higher bridges * 1 6 88888 6 2 6 = elrail-pylons @@ -1491,8 +1491,8 @@ void DrawBridgeMiddle(const TileInfo *ti) EndSpriteCombine(); - if (HasCatenaryDrawn(GetRailType(rampsouth))) { - DrawCatenaryOnBridge(ti); + if (HasRailCatenaryDrawn(GetRailType(rampsouth))) { + DrawRailCatenaryOnBridge(ti); } } From 9d8c04b0cc34125d5b270ca1d8031fe5c653046f Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 5 Nov 2016 19:16:59 +0000 Subject: [PATCH 171/417] (svn r27677) -Codechange: Remove implicit VehicleListIdentifier from uint32 constructor, to make conversions more explicit. --- src/vehicle_cmd.cpp | 4 ++-- src/vehicle_gui.cpp | 2 +- src/vehicle_gui_base.h | 2 +- src/vehiclelist.cpp | 8 +++++--- src/vehiclelist.h | 5 +++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index 3b664defb6..9670fa05d0 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -606,7 +606,7 @@ CommandCost CmdMassStartStopVehicle(TileIndex tile, DoCommandFlag flags, uint32 bool vehicle_list_window = HasBit(p1, 1); VehicleListIdentifier vli; - if (!vli.Unpack(p2)) return CMD_ERROR; + if (!vli.UnpackIfValid(p2)) return CMD_ERROR; if (!IsCompanyBuildableVehicleType(vli.vtype)) return CMD_ERROR; if (vehicle_list_window) { @@ -1001,7 +1001,7 @@ CommandCost CmdSendVehicleToDepot(TileIndex tile, DoCommandFlag flags, uint32 p1 if (p1 & DEPOT_MASS_SEND) { /* Mass goto depot requested */ VehicleListIdentifier vli; - if (!vli.Unpack(p2)) return CMD_ERROR; + if (!vli.UnpackIfValid(p2)) return CMD_ERROR; return SendAllVehiclesToDepot(flags, (p1 & DEPOT_SERVICE) != 0, vli); } diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 6617929c6a..8ea8cda4c8 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1638,7 +1638,7 @@ public: break; case WID_VL_MANAGE_VEHICLES_DROPDOWN: { - DropDownList *list = this->BuildActionDropdownList(VehicleListIdentifier(this->window_number).type == VL_STANDARD, false); + DropDownList *list = this->BuildActionDropdownList(VehicleListIdentifier::UnPack(this->window_number).type == VL_STANDARD, false); ShowDropDownList(this, list, 0, WID_VL_MANAGE_VEHICLES_DROPDOWN); break; } diff --git a/src/vehicle_gui_base.h b/src/vehicle_gui_base.h index 1c03f7b34d..5755c7fa88 100644 --- a/src/vehicle_gui_base.h +++ b/src/vehicle_gui_base.h @@ -38,7 +38,7 @@ struct BaseVehicleListWindow : public Window { static const StringID vehicle_sorter_names[]; static GUIVehicleList::SortFunction * const vehicle_sorter_funcs[]; - BaseVehicleListWindow(WindowDesc *desc, WindowNumber wno) : Window(desc), vli(wno) + BaseVehicleListWindow(WindowDesc *desc, WindowNumber wno) : Window(desc), vli(VehicleListIdentifier::UnPack(wno)) { this->vehicles.SetSortFuncs(this->vehicle_sorter_funcs); } diff --git a/src/vehiclelist.cpp b/src/vehiclelist.cpp index 7e42b25aa2..f1f5d0424a 100644 --- a/src/vehiclelist.cpp +++ b/src/vehiclelist.cpp @@ -37,7 +37,7 @@ uint32 VehicleListIdentifier::Pack() const * @param data The data to unpack. * @return true iff the data was valid (enough). */ -bool VehicleListIdentifier::Unpack(uint32 data) +bool VehicleListIdentifier::UnpackIfValid(uint32 data) { byte c = GB(data, 28, 4); this->company = c == 0xF ? OWNER_NONE : (CompanyID)c; @@ -52,10 +52,12 @@ bool VehicleListIdentifier::Unpack(uint32 data) * Decode a packed vehicle list identifier into a new one. * @param data The data to unpack. */ -VehicleListIdentifier::VehicleListIdentifier(uint32 data) +/* static */ VehicleListIdentifier VehicleListIdentifier::UnPack(uint32 data) { - bool ret = this->Unpack(data); + VehicleListIdentifier result; + bool ret = result.UnpackIfValid(data); assert(ret); + return result; } /** diff --git a/src/vehiclelist.h b/src/vehiclelist.h index c96fb692ae..996c8c007f 100644 --- a/src/vehiclelist.h +++ b/src/vehiclelist.h @@ -35,7 +35,8 @@ struct VehicleListIdentifier { uint32 index; ///< A vehicle list type specific index. uint32 Pack() const; - bool Unpack(uint32 data); + bool UnpackIfValid(uint32 data); + static VehicleListIdentifier UnPack(uint32 data); /** * Create a simple vehicle list. @@ -47,7 +48,7 @@ struct VehicleListIdentifier { VehicleListIdentifier(VehicleListType type, VehicleType vtype, CompanyID company, uint index = 0) : type(type), vtype(vtype), company(company), index(index) {} - VehicleListIdentifier(uint32 data = 0); + VehicleListIdentifier() : type(), vtype(), company(), index() {} }; /** A list of vehicles. */ From 7e2e63094b369082cac7c2ed20ad608946e0acaa Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 8 Nov 2016 18:45:38 +0000 Subject: [PATCH 172/417] (svn r27678) -Update from Eints: romanian: 20 changes by kneekoo --- src/lang/romanian.txt | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 632787d2af..2ab5fb17c6 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1281,19 +1281,24 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Afișează popu STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grosimea liniilor din grafice: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grosimea liniilor din grafice. O linie subțire este mai informativă, o linie mai groasă este mai ușor de văzut și are culorile mai usor de distins +STR_CONFIG_SETTING_LANDSCAPE :Peisaj: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Peisajele definesc scenariile de bază a jocului cu cerințe diferite pentru încărcături și dezvoltare a orașelor. NewGRF și scripturile de joc permit un control mai fin STR_CONFIG_SETTING_LAND_GENERATOR :Generator teren: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Tip teren: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densitatea industriei: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distanța maximă de la marginea hărții pentru rafinării: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Rafinăriile de petrol vor fi construite doar la marginea hărţii, sau pe coastă, în cazul harţilor insulare STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Grosimea stratului de zăpadă: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Duritatea terenului (doar pt TerraGenesis) : {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Doar TerraGenesis) Alegeți frecvența dealurilor: Peisajele line au dealuri mai puține și mai întinse. Peisajele dure au multe dealuri și pot arăta repetitiv STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Foarte fin STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Fin STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Dur STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Foarte dur STR_CONFIG_SETTING_TREE_PLACER :Algoritm amplasare arbori: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Alegeți distribuția copacilor pe hartă: 'Original' plantează copacii dispersați uniform, 'Îmbunătățit' îi plantează grupat STR_CONFIG_SETTING_TREE_PLACER_NONE :Niciunul STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Îmbunătăţit @@ -1554,6 +1559,7 @@ STR_CONFIG_SETTING_SOFT_LIMIT :Numărul maxim STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA} STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :dezactivat STR_CONFIG_SETTING_ZOOM_MIN :Nivelul maxim de apropiere imagine: {STRING} +STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Nivelul maxim de apropiere a câmpului vizual. Luați aminte că nivelele înalte ridică necesarul de memorie STR_CONFIG_SETTING_ZOOM_MAX :Nivelul maxim de îndepărtare imagine: {STRING} STR_CONFIG_SETTING_ZOOM_LVL_MIN :x4 STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :x2 @@ -1582,6 +1588,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetric STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simetric STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modalitatea de distribuire a pasagerilor: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Modalitatea de distribuire a poştei: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"simetric" înseamnă că aproximativ aceeași cantitate de poștă va fi expediată din stația A spre stația B, precum de la B la A. "asimetric" presupune expedierea de cantități arbitrare de poștă în fiecare direcție. "manual" înseamnă că repartizarea poștei nu va fi automatizată. STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modalitatea de distribuire pentru clasa de cargo BLINDAT: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Modalitatea de distribuire pentru alte clase de cargo: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Acurateţea distribuţiei: {STRING} @@ -1628,9 +1635,13 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localizare STR_CONFIG_SETTING_SOUND :{ORANGE}Efecte sonore STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfaţă +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Câmpuri vizuale STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construcţie +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Știri / Consilieri +STR_CONFIG_SETTING_COMPANY :{ORANGE}Companie STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicule STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Direcţionare +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Dezastre / Accidente STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Oraşe STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrii STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuţie cargo @@ -2654,6 +2665,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Salveaz STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Salvează cu numele selectat jocul curent STR_SAVELOAD_LOAD_BUTTON :{BLACK}Încarcă STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Încarcă salvarea selectată +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Încarcă harta selectată STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalii joc STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Nicio informaţie disponibilă STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2756,6 +2768,7 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Mută î STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mută fişierul NewGRF selectat mai sus în listă STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Mută în jos STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mută fişierul NewGRF selectat mai jos în listă +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Upgrade STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}O listă a fişierelor NewGRF instalate STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Setează parametri @@ -2781,6 +2794,8 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}Dezactivat STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatibil cu această versiune de OpenTTD # NewGRF save preset window +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Nu schimba setarea implicită +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Salvează setarea pe numele selectat # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Schimbă parametrii NewGRF @@ -3827,11 +3842,13 @@ STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}Schimba STR_TIMETABLE_TOOLTIP :{BLACK}Orar - click pe un ordin pentru a-l selecta STR_TIMETABLE_NO_TRAVEL :NU este calatorie -STR_TIMETABLE_NOT_TIMETABLEABLE :Călătorie (automat; orar generat de următorul ordin manual) +STR_TIMETABLE_NOT_TIMETABLEABLE :Călătorie (automat; programată după următoarea comandă manuală) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Calatorie (fara orar) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Mergi cu maxim {2:VELOCITY} (fără planificare) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Călătoriți (neplanificat) cu maxim {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Calatorii pentru {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Mergi către {STRING} cu maxim {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Călătoriți (pentru {STRING}, neprogramat) cu cel mult {VELOCITY} +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(călătorie pentru {STRING}, neprogramată) STR_TIMETABLE_STAY_FOR :şi opreşte pentru {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :şi călătoreşte pentru {STRING} STR_TIMETABLE_DAYS :{COMMA} zi{P "" le} @@ -3960,6 +3977,7 @@ STR_AI_SETTINGS_START_DELAY :Perioada (în z STR_TEXTFILE_README_CAPTION :{WHITE}{STRING}, fișier readme al {STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING}, lista de modificări a {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING}, licența fișierului {STRING} +STR_TEXTFILE_WRAP_TEXT :{WHITE}Încadrează textul STR_TEXTFILE_VIEW_README :{BLACK}Vezi fișierul readme STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Listă modificări STR_TEXTFILE_VIEW_LICENCE :{BLACK}Licenţă From 4ea93bc8ef86e5bba75555678e5e51d4ad668020 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 9 Nov 2016 18:45:35 +0000 Subject: [PATCH 173/417] (svn r27679) -Update from Eints: romanian: 10 changes by kneekoo --- src/lang/romanian.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 2ab5fb17c6..71366d444d 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1297,6 +1297,7 @@ STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Foarte fin STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Fin STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Dur STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Foarte dur +STR_CONFIG_SETTING_VARIETY :Distribuția varietății: {STRING} STR_CONFIG_SETTING_TREE_PLACER :Algoritm amplasare arbori: {STRING} STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Alegeți distribuția copacilor pe hartă: 'Original' plantează copacii dispersați uniform, 'Îmbunătățit' îi plantează grupat STR_CONFIG_SETTING_TREE_PLACER_NONE :Niciunul @@ -1587,6 +1588,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetric STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simetric STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modalitatea de distribuire a pasagerilor: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"simetric" înseamnă că aproximativ același număr de pasageri va fi transportat din stația A spre stația B, precum de la B la A. "asimetric" presupune transportul unui număr arbitrar de pasageri în fiecare direcție. "manual" înseamnă că repartizarea pasagerilor nu va fi automatizată. STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Modalitatea de distribuire a poştei: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"simetric" înseamnă că aproximativ aceeași cantitate de poștă va fi expediată din stația A spre stația B, precum de la B la A. "asimetric" presupune expedierea de cantități arbitrare de poștă în fiecare direcție. "manual" înseamnă că repartizarea poștei nu va fi automatizată. STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modalitatea de distribuire pentru clasa de cargo BLINDAT: {STRING} @@ -1642,6 +1644,8 @@ STR_CONFIG_SETTING_COMPANY :{ORANGE}Compani STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicule STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Direcţionare STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Dezastre / Accidente +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generare lume +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Mediu STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Oraşe STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrii STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuţie cargo @@ -2550,6 +2554,7 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Încărcături acceptate: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limită viteză pe calea ferată: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Viteza limită a drumului: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Stânci @@ -2769,6 +2774,7 @@ STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mută fi STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Mută în jos STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mută fişierul NewGRF selectat mai jos în listă STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Upgrade +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualizați fișierele NewGRF pentru care aveți o versiune mai nouă instalată STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}O listă a fişierelor NewGRF instalate STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Setează parametri @@ -2794,6 +2800,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}Dezactivat STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatibil cu această versiune de OpenTTD # NewGRF save preset window +STR_SAVE_PRESET_CANCEL :{BLACK}Anulează STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Nu schimba setarea implicită STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Salvează setarea pe numele selectat @@ -2826,7 +2833,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Mergi la STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Imaginea precedentă STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Mergi la precedenta imagine normală, sărind peste pseudo-imagini, recolorări sau fonturi şi reporneşte când s-a ajuns la sfârşit STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Reprezentarea imaginii curente. Aliniamentul este ignorat -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mişcă imaginea schimbând distanţele pe axele X şi Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mișcă imaginea schimbând distanțele pe axele X şi Y. Ctrl+Clic pentru mutarea imaginii câte opt unități la un pas STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetează relativele STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Resetază limitele relative actuale STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Limita X: {NUM}, Limita Y: {NUM} (Absolut) @@ -3847,6 +3854,7 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Calatorie (fara STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Călătoriți (neplanificat) cu maxim {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Calatorii pentru {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Mergi către {STRING} cu maxim {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Călătorie (pentru {STRING}, neplanificată) STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Călătoriți (pentru {STRING}, neprogramat) cu cel mult {VELOCITY} STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(călătorie pentru {STRING}, neprogramată) STR_TIMETABLE_STAY_FOR :şi opreşte pentru {STRING} @@ -3978,6 +3986,7 @@ STR_TEXTFILE_README_CAPTION :{WHITE}{STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING}, lista de modificări a {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING}, licența fișierului {STRING} STR_TEXTFILE_WRAP_TEXT :{WHITE}Încadrează textul +STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Încadrează textul ferestrei ca să fie vizibil integral, fără derulare STR_TEXTFILE_VIEW_README :{BLACK}Vezi fișierul readme STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Listă modificări STR_TEXTFILE_VIEW_LICENCE :{BLACK}Licenţă From fd7852cbdff5829bef01ae731d7aaa212c4e42ed Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 12 Nov 2016 18:45:38 +0000 Subject: [PATCH 174/417] (svn r27680) -Update from Eints: romanian: 1 change by kneekoo --- src/lang/romanian.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 71366d444d..a8ae04630e 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1100,6 +1100,7 @@ STR_CONFIG_SETTING_TYPE_GAME_INGAME :Setări joc (st STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Setări companie (stocate în fişierele de salvare; afectează doar jocurile noi) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Setări companie (stocate în fişierul de salvare; afectează doar compania curentă) +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categorie: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Arată în lista de mai jos doar setările modificate STR_CONFIG_SETTING_RESTRICT_BASIC :Setări de bază (afişează numai setări importante) STR_CONFIG_SETTING_RESTRICT_ADVANCED :Setări avansate (afişează majoritatea setărilor) From aa26edfa48e8daa844bb97c6da720d840cbfe114 Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sun, 4 Dec 2016 19:53:38 +0000 Subject: [PATCH 175/417] (svn r27681) -Fix: When deleting stale links, iterate through order lists before iterating through vehicles --- src/station_cmd.cpp | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 5883afc086..347317acba 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -3459,8 +3459,8 @@ void DeleteStaleLinks(Station *from) if ((uint)(_date - edge.LastUpdate()) > timeout) { /* Have all vehicles refresh their next hops before deciding to * remove the node. */ - bool updated = false; OrderList *l; + SmallVector vehicles; FOR_ALL_ORDER_LISTS(l) { bool found_from = false; bool found_to = false; @@ -3475,18 +3475,31 @@ void DeleteStaleLinks(Station *from) } } if (!found_to || !found_from) continue; - for (Vehicle *v = l->GetFirstSharedVehicle(); !updated && v != NULL; v = v->NextShared()) { - /* There is potential for optimization here: - * - Usually consists of the same order list are the same. It's probably better to - * first check the first of each list, then the second of each list and so on. - * - We could try to figure out if we've seen a consist with the same cargo on the - * same list already and if the consist can actually carry the cargo we're looking - * for. With conditional and refit orders this is not quite trivial, though. */ - LinkRefresher::Run(v, false); // Don't allow merging. Otherwise lg might get deleted. - if (edge.LastUpdate() == _date) updated = true; - } - if (updated) break; + *(vehicles.Append()) = l->GetFirstSharedVehicle(); } + + bool updated = false; + Vehicle **iter = vehicles.Begin(); + while (iter != vehicles.End()) { + Vehicle *v = *iter; + + LinkRefresher::Run(v, false); // Don't allow merging. Otherwise lg might get deleted. + if (edge.LastUpdate() == _date) { + updated = true; + break; + } + + Vehicle *next_shared = v->NextShared(); + if (next_shared) { + *iter = next_shared; + ++iter; + } else { + vehicles.Erase(iter); + } + + if (iter == vehicles.End()) iter = vehicles.Begin(); + } + if (!updated) { /* If it's still considered dead remove it. */ node.RemoveEdge(to->goods[c].node); From cdbb864725af4f4068e5505c3b413df6423de395 Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sun, 4 Dec 2016 19:59:17 +0000 Subject: [PATCH 176/417] (svn r27682) -Fix: Don't check if links are alive for manually routed cargo --- src/station_cmd.cpp | 76 ++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 347317acba..65be42d858 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -3445,6 +3445,7 @@ void RerouteCargo(Station *st, CargoID c, StationID avoid, StationID avoid2) void DeleteStaleLinks(Station *from) { for (CargoID c = 0; c < NUM_CARGO; ++c) { + const bool auto_distributed = (_settings_game.linkgraph.GetDistributionType(c) != DT_MANUAL); GoodsEntry &ge = from->goods[c]; LinkGraph *lg = LinkGraph::GetIfValid(ge.link_graph); if (lg == NULL) continue; @@ -3457,47 +3458,50 @@ void DeleteStaleLinks(Station *from) assert(_date >= edge.LastUpdate()); uint timeout = LinkGraph::MIN_TIMEOUT_DISTANCE + (DistanceManhattan(from->xy, to->xy) >> 3); if ((uint)(_date - edge.LastUpdate()) > timeout) { - /* Have all vehicles refresh their next hops before deciding to - * remove the node. */ - OrderList *l; - SmallVector vehicles; - FOR_ALL_ORDER_LISTS(l) { - bool found_from = false; - bool found_to = false; - for (Order *order = l->GetFirstOrder(); order != NULL; order = order->next) { - if (!order->IsType(OT_GOTO_STATION) && !order->IsType(OT_IMPLICIT)) continue; - if (order->GetDestination() == from->index) { - found_from = true; - if (found_to) break; - } else if (order->GetDestination() == to->index) { - found_to = true; - if (found_from) break; - } - } - if (!found_to || !found_from) continue; - *(vehicles.Append()) = l->GetFirstSharedVehicle(); - } - bool updated = false; - Vehicle **iter = vehicles.Begin(); - while (iter != vehicles.End()) { - Vehicle *v = *iter; - LinkRefresher::Run(v, false); // Don't allow merging. Otherwise lg might get deleted. - if (edge.LastUpdate() == _date) { - updated = true; - break; + if (auto_distributed) { + /* Have all vehicles refresh their next hops before deciding to + * remove the node. */ + OrderList *l; + SmallVector vehicles; + FOR_ALL_ORDER_LISTS(l) { + bool found_from = false; + bool found_to = false; + for (Order *order = l->GetFirstOrder(); order != NULL; order = order->next) { + if (!order->IsType(OT_GOTO_STATION) && !order->IsType(OT_IMPLICIT)) continue; + if (order->GetDestination() == from->index) { + found_from = true; + if (found_to) break; + } else if (order->GetDestination() == to->index) { + found_to = true; + if (found_from) break; + } + } + if (!found_to || !found_from) continue; + *(vehicles.Append()) = l->GetFirstSharedVehicle(); } - Vehicle *next_shared = v->NextShared(); - if (next_shared) { - *iter = next_shared; - ++iter; - } else { - vehicles.Erase(iter); - } + Vehicle **iter = vehicles.Begin(); + while (iter != vehicles.End()) { + Vehicle *v = *iter; - if (iter == vehicles.End()) iter = vehicles.Begin(); + LinkRefresher::Run(v, false); // Don't allow merging. Otherwise lg might get deleted. + if (edge.LastUpdate() == _date) { + updated = true; + break; + } + + Vehicle *next_shared = v->NextShared(); + if (next_shared) { + *iter = next_shared; + ++iter; + } else { + vehicles.Erase(iter); + } + + if (iter == vehicles.End()) iter = vehicles.Begin(); + } } if (!updated) { From da76191afcc3672c80d14d6304bc9fa528995b7f Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 8 Dec 2016 20:21:39 +0000 Subject: [PATCH 177/417] (svn r27683) -Change: Rearrange the autoreplace GUI for trains, and do not filter it by railtype by default. --- src/autoreplace_gui.cpp | 81 +++++++++++--------------- src/lang/afrikaans.txt | 1 - src/lang/arabic_egypt.txt | 1 - src/lang/basque.txt | 1 - src/lang/belarusian.txt | 1 - src/lang/brazilian_portuguese.txt | 1 - src/lang/bulgarian.txt | 1 - src/lang/catalan.txt | 1 - src/lang/croatian.txt | 1 - src/lang/czech.txt | 1 - src/lang/danish.txt | 1 - src/lang/dutch.txt | 1 - src/lang/english.txt | 2 +- src/lang/english_AU.txt | 1 - src/lang/english_US.txt | 1 - src/lang/esperanto.txt | 1 - src/lang/estonian.txt | 1 - src/lang/faroese.txt | 1 - src/lang/finnish.txt | 1 - src/lang/french.txt | 1 - src/lang/gaelic.txt | 1 - src/lang/galician.txt | 1 - src/lang/german.txt | 1 - src/lang/greek.txt | 1 - src/lang/hebrew.txt | 1 - src/lang/hungarian.txt | 1 - src/lang/icelandic.txt | 1 - src/lang/indonesian.txt | 1 - src/lang/irish.txt | 1 - src/lang/italian.txt | 1 - src/lang/japanese.txt | 1 - src/lang/korean.txt | 1 - src/lang/latin.txt | 1 - src/lang/latvian.txt | 1 - src/lang/lithuanian.txt | 1 - src/lang/luxembourgish.txt | 1 - src/lang/malay.txt | 1 - src/lang/norwegian_bokmal.txt | 1 - src/lang/norwegian_nynorsk.txt | 1 - src/lang/polish.txt | 1 - src/lang/portuguese.txt | 1 - src/lang/romanian.txt | 1 - src/lang/russian.txt | 1 - src/lang/serbian.txt | 1 - src/lang/simplified_chinese.txt | 1 - src/lang/slovak.txt | 1 - src/lang/slovenian.txt | 1 - src/lang/spanish.txt | 1 - src/lang/spanish_MX.txt | 1 - src/lang/swedish.txt | 1 - src/lang/tamil.txt | 1 - src/lang/thai.txt | 1 - src/lang/traditional_chinese.txt | 1 - src/lang/turkish.txt | 1 - src/lang/ukrainian.txt | 1 - src/lang/vietnamese.txt | 1 - src/lang/welsh.txt | 1 - src/rail_gui.cpp | 9 ++- src/rail_gui.h | 2 +- src/script/api/game/game_window.hpp.sq | 5 +- src/script/api/script_window.hpp | 5 +- src/widgets/autoreplace_widget.h | 4 +- 62 files changed, 49 insertions(+), 114 deletions(-) diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp index 691042a1d5..1074d1dd78 100644 --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -87,7 +87,7 @@ class ReplaceVehicleWindow : public Window { byte sort_criteria; ///< Criteria of sorting vehicles. bool descending_sort_order; ///< Order of sorting vehicles. bool show_hidden_engines; ///< Whether to show the hidden engines. - RailType sel_railtype; ///< Type of rail tracks selected. + RailType sel_railtype; ///< Type of rail tracks selected. #INVALID_RAILTYPE to show all. Scrollbar *vscroll[2]; /** @@ -104,7 +104,7 @@ class ReplaceVehicleWindow : public Window { /* Ensure that the wagon/engine selection fits the engine. */ if ((rvi->railveh_type == RAILVEH_WAGON) == show_engines) return false; - if (draw_left && show_engines) { + if (draw_left && this->sel_railtype != INVALID_RAILTYPE) { /* Ensure that the railtype is specific to the selected one */ if (rvi->railtype != this->sel_railtype) return false; } @@ -211,24 +211,7 @@ class ReplaceVehicleWindow : public Window { public: ReplaceVehicleWindow(WindowDesc *desc, VehicleType vehicletype, GroupID id_g) : Window(desc) { - if (vehicletype == VEH_TRAIN) { - /* For rail vehicles find the most used vehicle type, which is usually - * better than 'just' the first/previous vehicle type. */ - uint type_count[RAILTYPE_END]; - memset(type_count, 0, sizeof(type_count)); - - const Engine *e; - FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) { - if (e->u.rail.railveh_type == RAILVEH_WAGON) continue; - type_count[e->u.rail.railtype] += GetGroupNumEngines(_local_company, id_g, e->index); - } - - this->sel_railtype = RAILTYPE_BEGIN; - for (RailType rt = RAILTYPE_BEGIN; rt < RAILTYPE_END; rt++) { - if (type_count[this->sel_railtype] < type_count[rt]) this->sel_railtype = rt; - } - } - + this->sel_railtype = INVALID_RAILTYPE; this->replace_engines = true; // start with locomotives (all other vehicles will not read this bool) this->engines[0].ForceRebuild(); this->engines[1].ForceRebuild(); @@ -288,12 +271,9 @@ public: break; } - case WID_RV_TRAIN_ENGINEWAGON_TOGGLE: { - StringID str = this->GetWidget(widget)->widget_data; - SetDParam(0, STR_REPLACE_ENGINES); - Dimension d = GetStringBoundingBox(str); - SetDParam(0, STR_REPLACE_WAGONS); - d = maxdim(d, GetStringBoundingBox(str)); + case WID_RV_TRAIN_ENGINEWAGON_DROPDOWN: { + Dimension d = GetStringBoundingBox(STR_REPLACE_ENGINES); + d = maxdim(d, GetStringBoundingBox(STR_REPLACE_WAGONS)); d.width += padding.width; d.height += padding.height; *size = maxdim(*size, d); @@ -367,7 +347,7 @@ public: break; } - case WID_RV_TRAIN_ENGINEWAGON_TOGGLE: + case WID_RV_TRAIN_ENGINEWAGON_DROPDOWN: SetDParam(0, this->replace_engines ? STR_REPLACE_ENGINES : STR_REPLACE_WAGONS); break; } @@ -432,12 +412,8 @@ public: this->SetWidgetDisabledState(WID_RV_STOP_REPLACE, this->sel_engine[0] == INVALID_ENGINE || !EngineHasReplacementForCompany(c, this->sel_engine[0], this->sel_group)); if (this->window_number == VEH_TRAIN) { - /* sets the colour of that art thing */ - this->GetWidget(WID_RV_TRAIN_FLUFF_LEFT)->colour = _company_colours[_local_company]; - this->GetWidget(WID_RV_TRAIN_FLUFF_RIGHT)->colour = _company_colours[_local_company]; - /* Show the selected railtype in the pulldown menu */ - this->GetWidget(WID_RV_TRAIN_RAILTYPE_DROPDOWN)->widget_data = GetRailTypeInfo(sel_railtype)->strings.replace_text; + this->GetWidget(WID_RV_TRAIN_RAILTYPE_DROPDOWN)->widget_data = sel_railtype == INVALID_RAILTYPE ? STR_REPLACE_ALL_RAILTYPE : GetRailTypeInfo(sel_railtype)->strings.replace_text; } this->DrawWidgets(); @@ -483,15 +459,16 @@ public: DisplayVehicleSortDropDown(this, static_cast(this->window_number), this->sort_criteria, WID_RV_SORT_DROPDOWN); break; - case WID_RV_TRAIN_ENGINEWAGON_TOGGLE: - this->replace_engines = !(this->replace_engines); - this->engines[0].ForceRebuild(); - this->reset_sel_engine = true; - this->SetDirty(); + case WID_RV_TRAIN_ENGINEWAGON_DROPDOWN: { + DropDownList *list = new DropDownList(); + *list->Append() = new DropDownListStringItem(STR_REPLACE_ENGINES, 1, false); + *list->Append() = new DropDownListStringItem(STR_REPLACE_WAGONS, 0, false); + ShowDropDownList(this, list, this->replace_engines ? 1 : 0, WID_RV_TRAIN_ENGINEWAGON_DROPDOWN); break; + } case WID_RV_TRAIN_RAILTYPE_DROPDOWN: // Railtype selection dropdown menu - ShowDropDownList(this, GetRailTypeDropDownList(true), sel_railtype, WID_RV_TRAIN_RAILTYPE_DROPDOWN); + ShowDropDownList(this, GetRailTypeDropDownList(true, true), sel_railtype, WID_RV_TRAIN_RAILTYPE_DROPDOWN); break; case WID_RV_TRAIN_WAGONREMOVE_TOGGLE: // toggle renew_keep_length @@ -566,6 +543,14 @@ public: break; } + case WID_RV_TRAIN_ENGINEWAGON_DROPDOWN: { + this->replace_engines = index != 0; + this->engines[0].ForceRebuild(); + this->reset_sel_engine = true; + this->SetDirty(); + break; + } + case WID_RV_START_REPLACE: this->ReplaceClick_StartReplace(index != 0); break; @@ -611,7 +596,13 @@ static const NWidgetPart _nested_replace_rail_vehicle_widgets[] = { EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), - NWidget(WWT_PANEL, COLOUR_GREY), SetResize(1, 0), EndContainer(), + NWidget(NWID_VERTICAL), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_RV_TRAIN_RAILTYPE_DROPDOWN), SetMinimalSize(136, 12), SetDataTip(0x0, STR_REPLACE_HELP_RAILTYPE), SetFill(1, 0), SetResize(1, 0), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_RV_TRAIN_ENGINEWAGON_DROPDOWN), SetDataTip(STR_BLACK_STRING, STR_REPLACE_ENGINE_WAGON_SELECT_HELP), + EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY), SetResize(1, 0), EndContainer(), + EndContainer(), NWidget(NWID_VERTICAL), NWidget(NWID_HORIZONTAL), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_SORT_ASCENDING_DESCENDING), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER), SetFill(1, 1), @@ -631,20 +622,16 @@ static const NWidgetPart _nested_replace_rail_vehicle_widgets[] = { EndContainer(), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_LEFT_DETAILS), SetMinimalSize(240, 122), SetResize(1, 0), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_RIGHT_DETAILS), SetMinimalSize(240, 122), SetResize(1, 0), EndContainer(), + NWidget(NWID_VERTICAL), + NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_RIGHT_DETAILS), SetMinimalSize(240, 122), SetResize(1, 0), EndContainer(), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_TRAIN_WAGONREMOVE_TOGGLE), SetMinimalSize(138, 12), SetDataTip(STR_REPLACE_REMOVE_WAGON, STR_REPLACE_REMOVE_WAGON_HELP), SetFill(1, 0), SetResize(1, 0), + EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(NWID_PUSHBUTTON_DROPDOWN, COLOUR_GREY, WID_RV_START_REPLACE), SetMinimalSize(139, 12), SetDataTip(STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON), NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_INFO_TAB), SetMinimalSize(167, 12), SetDataTip(0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB), SetResize(1, 0), EndContainer(), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_STOP_REPLACE), SetMinimalSize(150, 12), SetDataTip(STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON), - EndContainer(), - NWidget(NWID_HORIZONTAL), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_TRAIN_ENGINEWAGON_TOGGLE), SetMinimalSize(139, 12), SetDataTip(STR_REPLACE_ENGINE_WAGON_SELECT, STR_REPLACE_ENGINE_WAGON_SELECT_HELP), - NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_TRAIN_FLUFF_LEFT), SetMinimalSize(15, 12), EndContainer(), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_RV_TRAIN_RAILTYPE_DROPDOWN), SetMinimalSize(136, 12), SetDataTip(0x0, STR_REPLACE_HELP_RAILTYPE), SetResize(1, 0), - NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_TRAIN_FLUFF_RIGHT), SetMinimalSize(16, 12), EndContainer(), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_TRAIN_WAGONREMOVE_TOGGLE), SetMinimalSize(138, 12), SetDataTip(STR_REPLACE_REMOVE_WAGON, STR_REPLACE_REMOVE_WAGON_HELP), NWidget(WWT_RESIZEBOX, COLOUR_GREY), EndContainer(), }; diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 077092bbc3..95f9c3b8eb 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} waneer STR_REPLACE_VEHICLES_STOP :{BLACK}Staak vervanging STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Druk om die vervanging van die linker gekose enjin tipe te stop -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Vervang: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skakel tussen enjin en wa vervang vensters STR_REPLACE_ENGINES :Enjin STR_REPLACE_WAGONS :Waens diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index ba3045cae3..9e10ab6504 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -3060,7 +3060,6 @@ STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}لم ي STR_REPLACE_VEHICLES_STOP :{BLACK} اوقف تبديل العربات STR_REPLACE_HELP_STOP_BUTTON :{BLACK} اضغط لايقاف تبديل المحركات المختارة في اليسار -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK} تبديل: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} بدل بين نافذة استبدال المحركات و العربات STR_REPLACE_ENGINES :محركات STR_REPLACE_WAGONS :عربات diff --git a/src/lang/basque.txt b/src/lang/basque.txt index ede8426c24..f5cc44996f 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3424,7 +3424,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} zaharr STR_REPLACE_VEHICLES_STOP :{BLACK}Ibilgailuak ordezkatzen gelditu STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikatu ezkerrean aukeratutako motore motaren ordezkapena gelditzeko -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Ordezkatzen: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Aldatu motore pantaila eta bagoi paintailaren artean STR_REPLACE_ENGINES :Motoreak STR_REPLACE_WAGONS :Bagoiak diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 97bf6daa0f..8eaf7e94ce 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3910,7 +3910,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} кал STR_REPLACE_VEHICLES_STOP :{BLACK}Спыніць замену STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Спыніць замену транспарту -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Замяняем: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Пераключэньне паміж вокнамі замены лякаматываў і ваґонаў STR_REPLACE_ENGINES :Лякаматывы STR_REPLACE_WAGONS :Ваґоны diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 7165bd60ea..e6c5c94da4 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} quando STR_REPLACE_VEHICLES_STOP :{BLACK}Parar Substituição STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Pressione para parar a subsituição do tipo de motor que selecionou à esquerda -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Substituindo: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Troca entre substituir máquinas e substituir vagões STR_REPLACE_ENGINES :Motores STR_REPLACE_WAGONS :Vagões diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index b7a8a0b2b8..2ebd83953b 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3477,7 +3477,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} ког STR_REPLACE_VEHICLES_STOP :{BLACK}Спиране на замяната STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Натиснете за спиране подновяването на избрания в ляво двигател -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Замяна: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Превключване между замяна на локомотиви и вагони STR_REPLACE_ENGINES :Двигатели STR_REPLACE_WAGONS :Вагони diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index d5b64beb53..9dcb64eef1 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} quan s STR_REPLACE_VEHICLES_STOP :{BLACK}Para de substituir STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Prem per aturar el reemplaçament del model seleccionat a l'esquerra -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Substituint: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Canvia entre finestres de substitució de vagons i de motors STR_REPLACE_ENGINES :Motors STR_REPLACE_WAGONS :Vagons diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 25843d40b2..d42eea8e4e 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3653,7 +3653,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} kada j STR_REPLACE_VEHICLES_STOP :{BLACK}Prestani zamijenjivati vozila STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikni za zaustavljanje zamjene lijevo odabrane vrste lokomotive -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Zamjenjujem:{ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Prebaci između prozora za izmjenu lokomotiva i vagona STR_REPLACE_ENGINES :Lokomotive STR_REPLACE_WAGONS :Vagoni diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 2266b47f27..82d64e04b2 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3653,7 +3653,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} když STR_REPLACE_VEHICLES_STOP :{BLACK}Vypnout vyměňování STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Zmáčkni toto tlačítko, když nechceš vyměňovat typ lokomotivy vybraný v levém seznamu -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Vyměňování: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Přepne mezi okny na výměnu lokomotiv a vagonů STR_REPLACE_ENGINES :lokomotivy STR_REPLACE_WAGONS :vagony diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 7bbeab58ab..97793c7bf9 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} når d STR_REPLACE_VEHICLES_STOP :{BLACK}Stop udskiftning STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Tryk for at stoppe udskiftningen at den køretøjstype, som du har valgt til venstre -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Udskifter: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skift imellem lokomotiv- og vognudskiftningsvindue STR_REPLACE_ENGINES :Lokomotiver STR_REPLACE_WAGONS :Vogne diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 759250d394..7692216def 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} als ou STR_REPLACE_VEHICLES_STOP :{BLACK}Stop het vervangen STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klik op deze knop als je de aan de linkerkant geselecteerde locomotief niet wilt vervangen -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Aan het vervangen: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wissel tussen locomotief- en wagonvervangvensters STR_REPLACE_ENGINES :Motoren STR_REPLACE_WAGONS :Wagons diff --git a/src/lang/english.txt b/src/lang/english.txt index aaa794bffd..508bfbb22c 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3557,10 +3557,10 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} when o STR_REPLACE_VEHICLES_STOP :{BLACK}Stop Replacing Vehicles STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Press to stop the replacement of the engine type selected on the left -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Replacing: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch between engine and wagon replacement windows STR_REPLACE_ENGINES :Engines STR_REPLACE_WAGONS :Wagons +STR_REPLACE_ALL_RAILTYPE :All rail vehicles STR_REPLACE_HELP_RAILTYPE :{BLACK}Choose the rail 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 diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 8e59e1ec05..9507ee288e 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3508,7 +3508,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} when o STR_REPLACE_VEHICLES_STOP :{BLACK}Stop Replacing Vehicles STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Press to stop the replacement of the engine type selected on the left -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Replacing: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch between engine and wagon replacement windows STR_REPLACE_ENGINES :Engines STR_REPLACE_WAGONS :Wagons diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 2e3e257268..6a47188028 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} when o STR_REPLACE_VEHICLES_STOP :{BLACK}Stop Replacing Vehicles STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Press to stop the replacement of the engine type selected on the left -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Replacing: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch between engine and car replacement windows STR_REPLACE_ENGINES :Engines STR_REPLACE_WAGONS :Cars diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 5c4f7b2de6..4163a31b65 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2977,7 +2977,6 @@ STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}Ne elekt STR_REPLACE_VEHICLES_STOP :{BLACK}Ĉesu Anstataŭi STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Premu por ĉesi anstataŭi la maldekstre elektitan maŝinon -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Anstataŭante: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Ŝaltu inter maŝina kaj vagona anstataŭigo STR_REPLACE_ENGINES :Maŝinoj STR_REPLACE_WAGONS :Vagonoj diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index fa7251c13b..6da9875a5f 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3615,7 +3615,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} kui va STR_REPLACE_VEHICLES_STOP :{BLACK}Lõpeta Sõidukite Asendamine STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Vajuta lõpetamaks vasakult valitud veduri asendust -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Asendamisel: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Vaheta aken mootori ja vaguni asendamise aknate vahel STR_REPLACE_ENGINES :Vedurid STR_REPLACE_WAGONS :Vaguneid diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index a1eddbc5fa..e6463680e4 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -3168,7 +3168,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} tá ga STR_REPLACE_VEHICLES_STOP :{BLACK}Steðga umbýting av flutningstólum STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Trýst fyri at steðga umbýtanini av motor slagnum tú valdi á vinstru síðu -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Býtur um: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skift ímillum motor og vogna umbýtingar vindeyga STR_REPLACE_ENGINES :Motorar STR_REPLACE_WAGONS :Vognar diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 34fb2b4b08..c0873281dd 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} kun va STR_REPLACE_VEHICLES_STOP :{BLACK}Lopeta ajoneuvojen korv. STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Napsauta pysäyttääksesi vasemmalta valitun veturityypin korvauksen. -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Korvataan: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Vaihda toiseen korvausikkunaan STR_REPLACE_ENGINES :Veturit STR_REPLACE_WAGONS :Vaunut diff --git a/src/lang/french.txt b/src/lang/french.txt index 23f05d8043..5bccfdbca1 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} si vie STR_REPLACE_VEHICLES_STOP :{BLACK}Stopper le remplacement STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Appuyer sur ce bouton pour arrêter le remplacement du type de véhicule sélectionné à gauche -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}En remplacement{NBSP}: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Alterner entre les fenêtres de remplacement des locomotives ou des wagons STR_REPLACE_ENGINES :Locomotives STR_REPLACE_WAGONS :Wagons diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index cf77a8d16b..7de552151b 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3786,7 +3786,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} nuair STR_REPLACE_VEHICLES_STOP :{BLACK}Sguir dhe leasachadh nan carbadan STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Briog air ach nach tèid einnseanan dhen t-seòrsa a thagh thu air an taobh chlì a leasachadh -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}A' leasachadh: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Gearr leum eadar uinneagan leasachadh nan einnseanan is nan carbadan STR_REPLACE_ENGINES :Einnseanan STR_REPLACE_WAGONS :Carbadan diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 86ccc56f23..4ede44093e 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3504,7 +3504,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} cando STR_REPLACE_VEHICLES_STOP :{BLACK}Parar de substituír vehículos STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona para parar a substitución do tipo de máquina seleccionada na esquerda -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Substituíndo: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre as fiestras de substitución de locomotoras e vagóns STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagóns diff --git a/src/lang/german.txt b/src/lang/german.txt index 684360860b..22bc77fcc6 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} wenn a STR_REPLACE_VEHICLES_STOP :{BLACK}Fahrzeugersetzung aus STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klick zum Abbrechen der Ersetzung des Fahrzeugtyps auf der linken Seite -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Ersetzen: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Umschalter für Lok- oder Waggonersetzung STR_REPLACE_ENGINES :Schienenfahrzeuge STR_REPLACE_WAGONS :Waggons diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 73303c3396..15b78bed67 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3672,7 +3672,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} ότα STR_REPLACE_VEHICLES_STOP :{BLACK}Διακοπή Αντικατάστασης Οχημάτων STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Πατήστε για να σταματήσει η αντικατάσταση του τύπου μηχανής επιλεγμένος στα αριστερά -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Αντικατάσταση: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Εναλλαγή μεταξύ των παραθύρων αντικατάστασης μηχανών και βαγονιών STR_REPLACE_ENGINES :Μηχανές STR_REPLACE_WAGONS :Βαγόνια diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 29a6717260..94d977a357 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3571,7 +3571,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} כאש STR_REPLACE_VEHICLES_STOP :{BLACK}הפסק את החלפת הכלים STR_REPLACE_HELP_STOP_BUTTON :{BLACK}לחץ כאן להפסיק את ההחלפה -STR_REPLACE_ENGINE_WAGON_SELECT :{ORANGE}{STRING}{BLACK} : מחליף STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}החלף בין חלונות החלפת קרון וקטר STR_REPLACE_ENGINES :מנועים/קטרים STR_REPLACE_WAGONS :קרונות diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 37dcb2f66f..f31d34d837 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3621,7 +3621,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} - csak STR_REPLACE_VEHICLES_STOP :{BLACK}Járműcsere befejezése STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Nyomd meg ezt a gombot, ha be akarod fejezni a bal oldalon kiválasztott járművek cseréjét -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Lecserél: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Váltás a mozdony és a vagoncserélő ablak között STR_REPLACE_ENGINES :Mozdonyok STR_REPLACE_WAGONS :Vagonok diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index ee2f7b0a88..701d3a8884 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3330,7 +3330,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} ef gö STR_REPLACE_VEHICLES_STOP :{BLACK}Stöðva skipti STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Smelltu til að stöðva skipti á vagntegundinni sem valin er vinstra megin -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Skipti út: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skipta á milli útskiptiglugga dráttar- og flutningavagna STR_REPLACE_ENGINES :Dráttarvagnar STR_REPLACE_WAGONS :Vagnar diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 7e77758607..bc63f8662d 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3553,7 +3553,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} saat t STR_REPLACE_VEHICLES_STOP :{BLACK}Berhenti Mengganti STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Tekan untuk menghentikan penggantian jenis kendaraan terpilih di sisi kiri -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Mengganti: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Pindah tampilan penggantian lokomitif atau gerbong STR_REPLACE_ENGINES :Lokomotif STR_REPLACE_WAGONS :Gerbong diff --git a/src/lang/irish.txt b/src/lang/irish.txt index cdc13599d9..665bbf7b98 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} má t STR_REPLACE_VEHICLES_STOP :{BLACK}Stad ag athsholáthar Feithiclí STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Brúigh chun deireadh a chur le hathsholáthar den chineál innill atá roghnaithe ar chlé -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Ag athsholáthar: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Athraigh idir na fuinneoga athsholáthair innill agus vaigíní STR_REPLACE_ENGINES :Innill STR_REPLACE_WAGONS :Vaigíní diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 8f8d6cd1c6..8a625dd648 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3587,7 +3587,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} una vo STR_REPLACE_VEHICLES_STOP :{BLACK}Interrompi rimpiazzamento STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Premere per interrompere il rimpiazzamento del modello di locomotiva selezionato a sinistra -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Rimpiazza: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Scambia tra loro le finestre di rimpiazzamento delle locomotive e dei vagoni STR_REPLACE_ENGINES :Locomotive STR_REPLACE_WAGONS :Vagoni diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 2e7064051b..c941689f70 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :老朽化した STR_REPLACE_VEHICLES_STOP :{BLACK}置換終了 STR_REPLACE_HELP_STOP_BUTTON :{BLACK}クリックすると選択した輸送機器の置換を終了します -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}置換対象: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}置換対象を機関車/貨車に切り替えます STR_REPLACE_ENGINES :機関車 STR_REPLACE_WAGONS :貨車 diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 4c298f77ee..35a771e090 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :낡으면 {ENGI STR_REPLACE_VEHICLES_STOP :{BLACK}차량 교체 중지 STR_REPLACE_HELP_STOP_BUTTON :{BLACK}왼쪽에서 선택한 기관차 종류의 차량교체를 중지하려면 이 버튼을 누르세요. -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}교체중: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}기관차/화물차 교체 창으로 전환합니다. STR_REPLACE_ENGINES :기관차 STR_REPLACE_WAGONS :화물차 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index fe200a460d..1505333ce2 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3759,7 +3759,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} cum ve STR_REPLACE_VEHICLES_STOP :{BLACK}Consistere mutationem vehiculorum STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Preme ut mutatio vehiculi sinistri consistatur -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Mutatio: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Mutare inter mutationem hamaxarum curruumque STR_REPLACE_ENGINES :Hamaxarum STR_REPLACE_WAGONS :Curruum diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 24ccf94d9e..323ce383ec 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3488,7 +3488,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} kad ve STR_REPLACE_VEHICLES_STOP :{BLACK}Pārtraukt transportlīdzekļu nomaiņu STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Nospiest, lai apturētu kreisajā pusē atlasītās lokomotīves aizstāšanu -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Nomainīt: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Parslēgties starp lokomotīves un vagona aizstāšanas logiem STR_REPLACE_ENGINES :Lokomotīves STR_REPLACE_WAGONS :Vagoni diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index f97f3d6bf0..341978705d 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3814,7 +3814,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} jei pa STR_REPLACE_VEHICLES_STOP :{BLACK}Stabdyti tr. priemonių keitimą STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Spustelk, jei nori sustabdyti šiuo metu vykdomą keitimo procedūrą -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Keičiama: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Pereidinėti tarp garvežių ir vagonų pakeitimo langų STR_REPLACE_ENGINES :Varikliai STR_REPLACE_WAGONS :Vagonai diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index ea90888d82..72390e8759 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} wann a STR_REPLACE_VEHICLES_STOP :{BLACK}Stop Gefieraustosch STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Drécken fir den Austosch ze stoppen -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Tauschen aus: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wiessel tëscht Maschin- an Waggonaustosch-Fënster STR_REPLACE_ENGINES :Lokomotiven STR_REPLACE_WAGONS :Waggonen diff --git a/src/lang/malay.txt b/src/lang/malay.txt index a248a7953b..60b1dc0d98 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3197,7 +3197,6 @@ STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}Tiada ke STR_REPLACE_VEHICLES_STOP :{BLACK}Hentikan Penggantian Kenderaan STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Menekan untuk menghentikan ketukaran jenis engin yang telah dipilih di sebelah kiri -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Menggantikan: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Beralih antara tetingkap enjin dan penggantian wagon STR_REPLACE_ENGINES :Enjin STR_REPLACE_WAGONS :Gerabak diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 5041813a22..eb9fbdfe6c 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3561,7 +3561,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} når g STR_REPLACE_VEHICLES_STOP :{BLACK}Stopp erstatning av kjøretøy STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikk denne knappen for å stoppe erstatning av lokomotivet som er valgt på venstresiden -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Erstatter: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Veksle mellom tog- og vognerstatningsvinduet STR_REPLACE_ENGINES :Lokomotiv STR_REPLACE_WAGONS :Vogner diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 79cea5e58e..59b12849fd 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3474,7 +3474,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} når g STR_REPLACE_VEHICLES_STOP :{BLACK}Stopp utskiftinga av køyretøy STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikk denne knappen for å avbryte utskiftinga av lokomotivet du har vald på venstresida -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Erstatter: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skift mellom tog- og vognerstatningsvindauget STR_REPLACE_ENGINES :Lokomotiv STR_REPLACE_WAGONS :Vogner diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 1a3a6527bc..edc48f749c 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3943,7 +3943,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} kiedy STR_REPLACE_VEHICLES_STOP :{BLACK}Zatrzymaj zastępowanie STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Wciśnij ten przycisk jeśli nie chcesz zmieniać pojazdu zaznaczone po lewej stronie -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Zastępowanie: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Przejdź pomiędzy oknami zamiany lokomotyw i wagonów STR_REPLACE_ENGINES :Lokomotywy STR_REPLACE_WAGONS :Wagony diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index be21b6c4ae..c54e0a948e 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} quando STR_REPLACE_VEHICLES_STOP :{BLACK}Parar Subst. de Veículos STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Pressione para parar a subsituição do tipo de motor que seleccionou à esquerda -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Trocando: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Alternar entre a janela de substituição de locomotivas e a janela de substituição de vagões STR_REPLACE_ENGINES :Locomotivas STR_REPLACE_WAGONS :Vagões diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index a8ae04630e..403bddfc17 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3514,7 +3514,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} când STR_REPLACE_VEHICLES_STOP :{BLACK}Oprire înlocuire vehicule STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Apasă aici pentru a opri înlocuirea motorului selectat în stânga -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Înlocuire: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Comutã între ferestrele de înlocuire motoare si vagoane STR_REPLACE_ENGINES :Motoare STR_REPLACE_WAGONS :Vagoane diff --git a/src/lang/russian.txt b/src/lang/russian.txt index d3558f844c..c8a6156bef 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3747,7 +3747,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} ког STR_REPLACE_VEHICLES_STOP :{BLACK}Прекратить замену STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Прекратить замену транспорта -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Заменяем: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Переключение между окнами замены локомотивов и вагонов STR_REPLACE_ENGINES :Локомотивы STR_REPLACE_WAGONS :Вагоны diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index f27c669459..7734db34dd 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3768,7 +3768,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} kada p STR_REPLACE_VEHICLES_STOP :{BLACK}Zaustavi Zamenu Vozila STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Pritisnite kako bi se zaustavila zamena vrsta lokomotive označene sa leve strane -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Zamenjuje se: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Prebacuje između prikaza zamene lokomotiva i zamene vagona STR_REPLACE_ENGINES :Lokomotive STR_REPLACE_WAGONS :Vagoni diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 222e10941e..53157afbfe 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} 变老 STR_REPLACE_VEHICLES_STOP :{BLACK}停止更新 STR_REPLACE_HELP_STOP_BUTTON :{BLACK}点击这里可以停止继续更新车辆 -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}替换项目: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}可以切换 机车/挂车 替换项目 STR_REPLACE_ENGINES :机车 STR_REPLACE_WAGONS :挂车 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 48d075be5f..b755e4771b 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3625,7 +3625,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} ked je STR_REPLACE_VEHICLES_STOP :{BLACK}Zastaviť výmenu vozidiel STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Stlačte pre zastavenie výmeny lokomotívy vybranej z ľavého zoznamu -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Výmena: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Prepne medzi oknami na výmenu lokomotív a vagónov STR_REPLACE_ENGINES :Lokomotívy STR_REPLACE_WAGONS :Vagónov diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 86c00aca74..4160d74fcd 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3710,7 +3710,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} ko se STR_REPLACE_VEHICLES_STOP :{BLACK}Ustavi menjavo vozil STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Pritisni za zaustavitev zamenjave na levi izbranega tipa lokomotive -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Zamenjuje: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Preklop med okni za menjavo lokomotiv in vagonov STR_REPLACE_ENGINES :Lokomotive STR_REPLACE_WAGONS :Vagoni diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 4c0a290fc3..78dd86f2ef 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} cuando STR_REPLACE_VEHICLES_STOP :{BLACK}Parar de reemplazar vehículos STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona este botón para detener el reemplazo del vehículo situado a la izquierda -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Reemplazando: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre las ventanas de cambio de vagón y locomotora STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagones diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index aed6cf20f5..17d46f0ace 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} cuando STR_REPLACE_VEHICLES_STOP :{BLACK}Dejar de reemplazar vehículos STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presionar este botón para detener el reemplazo del vehículo situado a la izquierda -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Reemplazando: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambiar entre reemplazo de vagón y locomotora STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagones diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index e53665dd51..56ed2db467 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} vid h STR_REPLACE_VEHICLES_STOP :{BLACK}Sluta byta ut fordon STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Tryck för att sluta byta ut fordonstypen vald på vänster sida -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Ersätter: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Växla mellan lok- och vagnersättningsfönster STR_REPLACE_ENGINES :Lok STR_REPLACE_WAGONS :Vagnar diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index dd2fc5731a..c8275e04de 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -3142,7 +3142,6 @@ STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}எந STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} காலாவதியான பிறகு STR_REPLACE_VEHICLES_STOP :{BLACK}வாகனங்களை மாற்றுவதை நிறுத்தவும் -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}மாற்றல்: {ORANGE}{STRING} STR_REPLACE_ENGINES :பொறிகள் STR_REPLACE_WAGONS :வாகனங்கள் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 86720059ae..47c0208292 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3476,7 +3476,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} เม STR_REPLACE_VEHICLES_STOP :{BLACK}หยุดการแทนที่ยานพาหนะ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}กดเพื่อเริ่มหยุดการแทนที่ยานพาหนะตามที่เลือกไว้ในรายการ -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}กำลังแทนที่: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}สลับระหว่างหน้าต่างการแทนที่ของรถจักรและรถพ่วง STR_REPLACE_ENGINES :รถจักร STR_REPLACE_WAGONS :รถพ่วง diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index e0586ff7d8..d720830dde 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :更換舊運具 STR_REPLACE_VEHICLES_STOP :{BLACK}停止替換運輸工具 STR_REPLACE_HELP_STOP_BUTTON :{BLACK}按下之後會停止替換左方指定的車頭 -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}替換:{ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}在車頭及車廂替換畫面間切換。 STR_REPLACE_ENGINES :車頭 STR_REPLACE_WAGONS :車廂 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 7ba5ab8146..11a9a66216 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} eskidi STR_REPLACE_VEHICLES_STOP :{BLACK}Araçları değiştirmeyi durdur STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Değiştirme işlemini durdurmak için basın -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Değiştiriyor: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Lokomotif ve vagon değişimi pencereleri arasında geçiş yap. STR_REPLACE_ENGINES :Lokomotifler STR_REPLACE_WAGONS :Vagon diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 9ee521a921..2b8f879f5d 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3688,7 +3688,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} кол STR_REPLACE_VEHICLES_STOP :{BLACK}Зупинити оновлення STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Натисніть для припинення процесу оновлення потягів, що вибрані ліворуч -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Оновлення: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Переключення між вікнами заміни потягів та вагонів. STR_REPLACE_ENGINES :Локомотиви STR_REPLACE_WAGONS :Вагони diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 803cd125a0..20e48aefff 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} khi đ STR_REPLACE_VEHICLES_STOP :{BLACK}Ngừng thay thế phương tiện STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Bấm để ngừng việc thay thế kiểu đầu máy đã chọn -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Thay thế: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Chuyển qua lại cửa sổ thay thế đầu máy và toa xe STR_REPLACE_ENGINES :Đầu máy STR_REPLACE_WAGONS :Toa xe diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 1cf9a63c31..d322dcf76e 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} pan yn STR_REPLACE_VEHICLES_STOP :{BLACK}Gorffen Disodli Cerbydau STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Gwasgwch i atal disodli'r math injan sydd wedi'i ddewis ar y chwith -STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Disodli: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Newid rhwng y ffenest disodli wagenni a'r un injanau STR_REPLACE_ENGINES :Injanau STR_REPLACE_WAGONS :Wagenni diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 64a1126d81..e1602db0cb 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -1981,9 +1981,10 @@ void InitializeRailGUI() /** * Create a drop down list for all the rail types of the local company. * @param for_replacement Whether this list is for the replacement window. + * @param all_option Whether to add an 'all types' item. * @return The populated and sorted #DropDownList. */ -DropDownList *GetRailTypeDropDownList(bool for_replacement) +DropDownList *GetRailTypeDropDownList(bool for_replacement, bool all_option) { RailTypes used_railtypes = RAILTYPES_NONE; @@ -2000,6 +2001,12 @@ DropDownList *GetRailTypeDropDownList(bool for_replacement) const Company *c = Company::Get(_local_company); DropDownList *list = new DropDownList(); + + if (all_option) { + DropDownListStringItem *item = new DropDownListStringItem(STR_REPLACE_ALL_RAILTYPE, INVALID_RAILTYPE, false); + *list->Append() = item; + } + RailType rt; FOR_ALL_SORTED_RAILTYPES(rt) { /* If it's not used ever, don't show it to the user. */ diff --git a/src/rail_gui.h b/src/rail_gui.h index f51e8aa273..e7a03b9120 100644 --- a/src/rail_gui.h +++ b/src/rail_gui.h @@ -19,6 +19,6 @@ struct Window *ShowBuildRailToolbar(RailType railtype); void ReinitGuiAfterToggleElrail(bool disable); bool ResetSignalVariant(int32 = 0); void InitializeRailGUI(); -DropDownList *GetRailTypeDropDownList(bool for_replacement = false); +DropDownList *GetRailTypeDropDownList(bool for_replacement = false, bool all_option = false); #endif /* RAIL_GUI_H */ diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq index 23627ca665..533ba912b8 100644 --- a/src/script/api/game/game_window.hpp.sq +++ b/src/script/api/game/game_window.hpp.sq @@ -225,10 +225,8 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_START_REPLACE, "WID_RV_START_REPLACE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_INFO_TAB, "WID_RV_INFO_TAB"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_STOP_REPLACE, "WID_RV_STOP_REPLACE"); - SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_ENGINEWAGON_TOGGLE, "WID_RV_TRAIN_ENGINEWAGON_TOGGLE"); - SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_FLUFF_LEFT, "WID_RV_TRAIN_FLUFF_LEFT"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_ENGINEWAGON_DROPDOWN, "WID_RV_TRAIN_ENGINEWAGON_DROPDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_RAILTYPE_DROPDOWN, "WID_RV_TRAIN_RAILTYPE_DROPDOWN"); - SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_FLUFF_RIGHT, "WID_RV_TRAIN_FLUFF_RIGHT"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_WAGONREMOVE_TOGGLE, "WID_RV_TRAIN_WAGONREMOVE_TOGGLE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BB_BACKGROUND, "WID_BB_BACKGROUND"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BAFD_QUESTION, "WID_BAFD_QUESTION"); @@ -1183,6 +1181,7 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_AIRCRAFTS, "WID_TN_AIRCRAFTS"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_ZOOM_IN, "WID_TN_ZOOM_IN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_ZOOM_OUT, "WID_TN_ZOOM_OUT"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_BUILDING_TOOLS_START, "WID_TN_BUILDING_TOOLS_START"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_RAILS, "WID_TN_RAILS"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_ROADS, "WID_TN_ROADS"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_WATER, "WID_TN_WATER"); diff --git a/src/script/api/script_window.hpp b/src/script/api/script_window.hpp index 58e114734e..b07221943c 100644 --- a/src/script/api/script_window.hpp +++ b/src/script/api/script_window.hpp @@ -942,10 +942,8 @@ public: WID_RV_STOP_REPLACE = ::WID_RV_STOP_REPLACE, ///< Stop Replacing button. /* Train only widgets. */ - WID_RV_TRAIN_ENGINEWAGON_TOGGLE = ::WID_RV_TRAIN_ENGINEWAGON_TOGGLE, ///< Button to toggle engines and/or wagons. - WID_RV_TRAIN_FLUFF_LEFT = ::WID_RV_TRAIN_FLUFF_LEFT, ///< The fluff on the left. + WID_RV_TRAIN_ENGINEWAGON_DROPDOWN = ::WID_RV_TRAIN_ENGINEWAGON_DROPDOWN, ///< Dropdown to select engines and/or wagons. WID_RV_TRAIN_RAILTYPE_DROPDOWN = ::WID_RV_TRAIN_RAILTYPE_DROPDOWN, ///< Dropdown menu about the railtype. - WID_RV_TRAIN_FLUFF_RIGHT = ::WID_RV_TRAIN_FLUFF_RIGHT, ///< The fluff on the right. WID_RV_TRAIN_WAGONREMOVE_TOGGLE = ::WID_RV_TRAIN_WAGONREMOVE_TOGGLE, ///< Button to toggle removing wagons. }; @@ -2384,6 +2382,7 @@ public: WID_TN_AIRCRAFTS = ::WID_TN_AIRCRAFTS, ///< Aircraft menu. WID_TN_ZOOM_IN = ::WID_TN_ZOOM_IN, ///< Zoom in the main viewport. WID_TN_ZOOM_OUT = ::WID_TN_ZOOM_OUT, ///< Zoom out the main viewport. + WID_TN_BUILDING_TOOLS_START = ::WID_TN_BUILDING_TOOLS_START, ///< Helper for the offset of the building tools WID_TN_RAILS = ::WID_TN_RAILS, ///< Rail building menu. WID_TN_ROADS = ::WID_TN_ROADS, ///< Road building menu. WID_TN_WATER = ::WID_TN_WATER, ///< Water building toolbar. diff --git a/src/widgets/autoreplace_widget.h b/src/widgets/autoreplace_widget.h index 7a98b6cd72..4b761ca45d 100644 --- a/src/widgets/autoreplace_widget.h +++ b/src/widgets/autoreplace_widget.h @@ -35,10 +35,8 @@ enum ReplaceVehicleWidgets { WID_RV_STOP_REPLACE, ///< Stop Replacing button. /* Train only widgets. */ - WID_RV_TRAIN_ENGINEWAGON_TOGGLE, ///< Button to toggle engines and/or wagons. - WID_RV_TRAIN_FLUFF_LEFT, ///< The fluff on the left. + WID_RV_TRAIN_ENGINEWAGON_DROPDOWN, ///< Dropdown to select engines and/or wagons. WID_RV_TRAIN_RAILTYPE_DROPDOWN, ///< Dropdown menu about the railtype. - WID_RV_TRAIN_FLUFF_RIGHT, ///< The fluff on the right. WID_RV_TRAIN_WAGONREMOVE_TOGGLE, ///< Button to toggle removing wagons. }; From cf04ca5db3b4f8e898148ce800739f9062263e4b Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 9 Dec 2016 18:45:36 +0000 Subject: [PATCH 178/417] (svn r27684) -Update from Eints: italian: 1 change by lorenzodv --- src/lang/italian.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 8a625dd648..624c43781c 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3590,6 +3590,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Premere STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Scambia tra loro le finestre di rimpiazzamento delle locomotive e dei vagoni STR_REPLACE_ENGINES :Locomotive STR_REPLACE_WAGONS :Vagoni +STR_REPLACE_ALL_RAILTYPE :Tutti i veicoli ferroviari STR_REPLACE_HELP_RAILTYPE :{BLACK}Selezionare il tipo di rotaia per la quale si desidera rimpiazzare le locomotive STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra con quale locomotiva sarà rimpiazzato il modello eventualmente selezionato a sinistra From f294258b18425331e095284d41cc8a39143f3a54 Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 9 Dec 2016 21:26:37 +0000 Subject: [PATCH 179/417] (svn r27685) -Change: Preemptively invalidate translation changes of next commit for eints. --- src/lang/afrikaans.txt | 46 +++++++++++++++---------------- src/lang/arabic_egypt.txt | 46 +++++++++++++++---------------- src/lang/basque.txt | 46 +++++++++++++++---------------- src/lang/belarusian.txt | 46 +++++++++++++++---------------- src/lang/brazilian_portuguese.txt | 46 +++++++++++++++---------------- src/lang/bulgarian.txt | 46 +++++++++++++++---------------- src/lang/catalan.txt | 46 +++++++++++++++---------------- src/lang/croatian.txt | 46 +++++++++++++++---------------- src/lang/czech.txt | 46 +++++++++++++++---------------- src/lang/danish.txt | 46 +++++++++++++++---------------- src/lang/dutch.txt | 46 +++++++++++++++---------------- src/lang/english_AU.txt | 46 +++++++++++++++---------------- src/lang/english_US.txt | 46 +++++++++++++++---------------- src/lang/estonian.txt | 46 +++++++++++++++---------------- src/lang/faroese.txt | 46 +++++++++++++++---------------- src/lang/finnish.txt | 46 +++++++++++++++---------------- src/lang/french.txt | 46 +++++++++++++++---------------- src/lang/gaelic.txt | 46 +++++++++++++++---------------- src/lang/galician.txt | 46 +++++++++++++++---------------- src/lang/german.txt | 46 +++++++++++++++---------------- src/lang/greek.txt | 46 +++++++++++++++---------------- src/lang/hebrew.txt | 46 +++++++++++++++---------------- src/lang/hungarian.txt | 46 +++++++++++++++---------------- src/lang/icelandic.txt | 46 +++++++++++++++---------------- src/lang/indonesian.txt | 46 +++++++++++++++---------------- src/lang/irish.txt | 46 +++++++++++++++---------------- src/lang/italian.txt | 46 +++++++++++++++---------------- src/lang/japanese.txt | 46 +++++++++++++++---------------- src/lang/korean.txt | 46 +++++++++++++++---------------- src/lang/latin.txt | 46 +++++++++++++++---------------- src/lang/latvian.txt | 46 +++++++++++++++---------------- src/lang/lithuanian.txt | 46 +++++++++++++++---------------- src/lang/luxembourgish.txt | 46 +++++++++++++++---------------- src/lang/malay.txt | 46 +++++++++++++++---------------- src/lang/norwegian_bokmal.txt | 46 +++++++++++++++---------------- src/lang/norwegian_nynorsk.txt | 46 +++++++++++++++---------------- src/lang/polish.txt | 46 +++++++++++++++---------------- src/lang/portuguese.txt | 46 +++++++++++++++---------------- src/lang/romanian.txt | 46 +++++++++++++++---------------- src/lang/russian.txt | 46 +++++++++++++++---------------- src/lang/serbian.txt | 46 +++++++++++++++---------------- src/lang/simplified_chinese.txt | 46 +++++++++++++++---------------- src/lang/slovak.txt | 46 +++++++++++++++---------------- src/lang/slovenian.txt | 46 +++++++++++++++---------------- src/lang/spanish.txt | 46 +++++++++++++++---------------- src/lang/spanish_MX.txt | 46 +++++++++++++++---------------- src/lang/swedish.txt | 46 +++++++++++++++---------------- src/lang/tamil.txt | 46 +++++++++++++++---------------- src/lang/thai.txt | 46 +++++++++++++++---------------- src/lang/traditional_chinese.txt | 46 +++++++++++++++---------------- src/lang/turkish.txt | 46 +++++++++++++++---------------- src/lang/ukrainian.txt | 46 +++++++++++++++---------------- src/lang/unfinished/frisian.txt | 46 +++++++++++++++---------------- src/lang/unfinished/persian.txt | 46 +++++++++++++++---------------- src/lang/vietnamese.txt | 46 +++++++++++++++---------------- src/lang/welsh.txt | 46 +++++++++++++++---------------- 56 files changed, 1288 insertions(+), 1288 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 95f9c3b8eb..541b8262fe 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Velde STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Sneeu-bedekte land STR_LAI_CLEAR_DESCRIPTION_DESERT :Woestyn -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spoor -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spoor met blok seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spoor met voor-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spoor met uitgang-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spoor met kombinasie-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spoor met roete seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spoor met een-rigting pad seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spoor met blok en voor-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spoor met blok en uitgang-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spoor met blok en kombinasie-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spoor met blok en pad seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spoor met blok en een-rigting pad seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spoor met voor en uitgang seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spoor met voor en kombinasie-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spoor met voor en pad-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spoor met voor en een-rigting pad seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spoor met uitgang en kombinasie-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spoor met uitgang en pad-seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spoor met uitgang en een-rigting pad seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spoor met kombinasie en pad seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} spoor met kombinasie en eenrigting-pad seine -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spoor met pad en een-rigting pad seine -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} trein diensstasie +STR_LAI_RAIL_DESCRIPTION_TRACK :Spoorweg spoor +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Spoorweg spoor met blok seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Spoorweg spoor met voor-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Spoorweg spoor met uitgang-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Spoorweg spoor met kombinasie-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Spoorweg spoor met roete seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Spoorweg spoor met een-rigting pad seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Spoorweg spoor met blok en voor-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Spoorweg spoor met blok en uitgang-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Spoorweg spoor met blok en kombinasie-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Spoorweg spoor met blok en pad seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Spoorweg spoor met blok en een-rigting pad seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Spoorweg spoor met voor en uitgang seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Spoorweg spoor met voor en kombinasie-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Spoorweg spoor met voor en pad-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Spoorweg spoor met voor en een-rigting pad seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Spoorweg spoor met uitgang en kombinasie-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoorweg spoor met uitgang en pad-seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Spoorweg spoor met uitgang en een-rigting pad seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Spoorweg spoor met kombinasie en pad seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Spoorweg spoor met kombinasie en eenrigting-pad seine +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Spoorweg spoor met pad en een-rigting pad seine +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Spoorweg trein diensstasie STR_LAI_ROAD_DESCRIPTION_ROAD :Pad STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Pad met straatligte diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 9e10ab6504..bbc6322275 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2234,29 +2234,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :حقول STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :ارض ثلجية STR_LAI_CLEAR_DESCRIPTION_DESERT :صحراء -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} مسار -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} مسار مع اشارة اغلاق -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} مسار مع اشارة مبتدئة -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} سكة حديد مع اشارة خروج -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} سكة حديد مع اشارة مزدوجة -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} سكة حديد مع اشارة طريق -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة اتجاة واحد -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} سكة حديد مع اشارة توقف و اشارة مبتدئة -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} سكة حديد مع اشارة توقف و خروج -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} سكة حديد مع اشارة توقف و مزدوجة -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} سكة حديد مع اشارة اغلاق و طريق -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة اغلاق و طريق باتجاة واحد -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} سكة حديد مع اشارة مبدئية و اشارة خروج -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} سكة حديد مع اشارة مبدئية و اشارة مزدوجة -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} سكة حديد مع اشارة مبدئية و طريق -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة مبدئية و اتجاة و احد -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} سكة حديد مع اشارة خروج و مزدوجة -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} سكة حديد مع اشارة خروج و طريق -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة خروج و اتجاة واحد -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} سكة حديد مع اشارة مزدوجة و طريق -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة مزدوجة و طريق باتجاه واحد -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة طريق و اتجاة و احد -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} مستودع صيانة قطارات +STR_LAI_RAIL_DESCRIPTION_TRACK :سكة حديد مسار +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :سكة حديد مسار مع اشارة اغلاق +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :سكة حديد مسار مع اشارة مبتدئة +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :سكة حديد سكة حديد مع اشارة خروج +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :سكة حديد سكة حديد مع اشارة مزدوجة +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :سكة حديد سكة حديد مع اشارة طريق +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة اتجاة واحد +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :سكة حديد سكة حديد مع اشارة توقف و اشارة مبتدئة +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :سكة حديد سكة حديد مع اشارة توقف و خروج +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :سكة حديد سكة حديد مع اشارة توقف و مزدوجة +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :سكة حديد سكة حديد مع اشارة اغلاق و طريق +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة اغلاق و طريق باتجاة واحد +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :سكة حديد سكة حديد مع اشارة مبدئية و اشارة خروج +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :سكة حديد سكة حديد مع اشارة مبدئية و اشارة مزدوجة +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :سكة حديد سكة حديد مع اشارة مبدئية و طريق +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة مبدئية و اتجاة و احد +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :سكة حديد سكة حديد مع اشارة خروج و مزدوجة +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :سكة حديد سكة حديد مع اشارة خروج و طريق +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة خروج و اتجاة واحد +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :سكة حديد سكة حديد مع اشارة مزدوجة و طريق +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة مزدوجة و طريق باتجاه واحد +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة طريق و اتجاة و احد +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :سكة حديد مستودع صيانة قطارات STR_LAI_ROAD_DESCRIPTION_ROAD :طريق STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :طريق مضاء diff --git a/src/lang/basque.txt b/src/lang/basque.txt index f5cc44996f..83d22fcfb4 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2496,29 +2496,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Eremuak STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Elurrez estalitako paisaia STR_LAI_CLEAR_DESCRIPTION_DESERT :Desertua -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} Trenbidea -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} Trenbidea blokeo seinalearekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} trenbidea aurre-seinalekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} trenbidea irteera seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} trenbidea konbo seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} trenbidea bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} trenbidea norabide bakarreko bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} trenbidea blokeo seinale eta aurre-seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} trenbidea blokeo seinale eta irteera seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} trenbidea blokeo seinalea eta konbo seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} trenbidea blokeo seinaleekin eta bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} Trenbidea blokeo eta norabide bakarreko bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} trenbidea aurre-seinale eta irteera seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} trenbidea aurre-seinale eta konbo seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} trenbidea aurre-seinale eta bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} trenbidea aurre-seinale eta norabide bakarreko bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} trenbidea irteera seinale eta konbo seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} trenbidea irteera seinale eta bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} trenbidea irteera seinale eta norabide bakarreko bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} trenbidea konbo seinale eta bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} trenbide konbo seinale eta norabide bakarreko bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} trenbidea bide seinale eta norabide bakarreko seinaleekina -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} tren gordailua +STR_LAI_RAIL_DESCRIPTION_TRACK :Trenbidea Trenbidea +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trenbidea Trenbidea blokeo seinalearekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trenbidea trenbidea aurre-seinalekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trenbidea trenbidea irteera seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trenbidea trenbidea konbo seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trenbidea trenbidea bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trenbidea trenbidea norabide bakarreko bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trenbidea trenbidea blokeo seinale eta aurre-seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Trenbidea trenbidea blokeo seinale eta irteera seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Trenbidea trenbidea blokeo seinalea eta konbo seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Trenbidea trenbidea blokeo seinaleekin eta bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Trenbidea Trenbidea blokeo eta norabide bakarreko bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Trenbidea trenbidea aurre-seinale eta irteera seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Trenbidea trenbidea aurre-seinale eta konbo seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Trenbidea trenbidea aurre-seinale eta bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Trenbidea trenbidea aurre-seinale eta norabide bakarreko bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trenbidea trenbidea irteera seinale eta konbo seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trenbidea trenbidea irteera seinale eta bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trenbidea trenbidea irteera seinale eta norabide bakarreko bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trenbidea trenbidea konbo seinale eta bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trenbidea trenbide konbo seinale eta norabide bakarreko bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trenbidea trenbidea bide seinale eta norabide bakarreko seinaleekina +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trenbidea tren gordailua STR_LAI_ROAD_DESCRIPTION_ROAD :errepidea STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Errepidea farolekin diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 8eaf7e94ce..3507e8bffb 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -2934,29 +2934,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Палi STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Засьнежаная зямля STR_LAI_CLEAR_DESCRIPTION_DESERT :Пустэльня -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} рэйкi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} рэйкi са звычайнымі сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} рэйкi з уваходнымі прэсыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} рэйкi з выхаднымi сыґналамi (прэсыґналамі) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} рэйкi з камбiнаванымi сыґналамi (прэсыґналамі) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} рэйкi з маршрутнымi (PMS) сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} рэйкi з аднабаковымi маршрутнымi (PMS) сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} рэйкi са звычайнымi й уваходнымі прэсыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} рэйкi са звычайнымi й выхаднымi сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} рэйкi са звычайнымi й камбiнаванымi сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} рэйкi са звычайнымi й маршрутнымi (PMS) сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} рэйкi са звычайнымi й аднабаковымi маршрутнымi (PMS) сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} рэйкi з уваходнымi (прэcыгналамi) ды выхаднымi сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} рэйкi з уваходнымi (прэсыґналамi) ды камбiнаванымi сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} рэйкi з уваходнымi (прэсыґналамi) ды маршрутнымi (PMS) сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} рэйкi з уваходнымi (прэсыґналамi) ды аднабаковымi маршрутнымi (PMS) сыґналамi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} рэйкi з выхаднымi й камбінаванымі прэсыґналамі -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} рэйкі з выхаднымі (прэсыґналамі) ды маршрутнымі (PMS) сыґналамі -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} рэйкі з выхаднымі (прэсыґналамі) ды аднабаковымі маршрутнымі (PMS) сыґналамі -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} рэйкі з камбінаванымі (прэсыґналамі) ды маршрутнымі (PMS) сыґналамі -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} рэйкі з камбінаванымі (прэсыґналамі) ды аднабаковымі маршрутнымі (PMS) сыґналамі -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} рэйкі з маршрутнымі (PMS) ды аднабаковымі маршрутнымі сыґналамі -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} чыгуначнае дэпо +STR_LAI_RAIL_DESCRIPTION_TRACK :Чыгунка рэйкi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Чыгунка рэйкi са звычайнымі сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Чыгунка рэйкi з уваходнымі прэсыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Чыгунка рэйкi з выхаднымi сыґналамi (прэсыґналамі) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Чыгунка рэйкi з камбiнаванымi сыґналамi (прэсыґналамі) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Чыгунка рэйкi з маршрутнымi (PMS) сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Чыгунка рэйкi з аднабаковымi маршрутнымi (PMS) сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Чыгунка рэйкi са звычайнымi й уваходнымі прэсыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Чыгунка рэйкi са звычайнымi й выхаднымi сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Чыгунка рэйкi са звычайнымi й камбiнаванымi сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Чыгунка рэйкi са звычайнымi й маршрутнымi (PMS) сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Чыгунка рэйкi са звычайнымi й аднабаковымi маршрутнымi (PMS) сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Чыгунка рэйкi з уваходнымi (прэcыгналамi) ды выхаднымi сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Чыгунка рэйкi з уваходнымi (прэсыґналамi) ды камбiнаванымi сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Чыгунка рэйкi з уваходнымi (прэсыґналамi) ды маршрутнымi (PMS) сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Чыгунка рэйкi з уваходнымi (прэсыґналамi) ды аднабаковымi маршрутнымi (PMS) сыґналамi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Чыгунка рэйкi з выхаднымi й камбінаванымі прэсыґналамі +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Чыгунка рэйкі з выхаднымі (прэсыґналамі) ды маршрутнымі (PMS) сыґналамі +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Чыгунка рэйкі з выхаднымі (прэсыґналамі) ды аднабаковымі маршрутнымі (PMS) сыґналамі +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Чыгунка рэйкі з камбінаванымі (прэсыґналамі) ды маршрутнымі (PMS) сыґналамі +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Чыгунка рэйкі з камбінаванымі (прэсыґналамі) ды аднабаковымі маршрутнымі (PMS) сыґналамі +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Чыгунка рэйкі з маршрутнымі (PMS) ды аднабаковымі маршрутнымі сыґналамі +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Чыгунка чыгуначнае дэпо STR_LAI_ROAD_DESCRIPTION_ROAD :Дарога STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Дарога з вулічным асьвятленьнем diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index e6c5c94da4..ec65763fdf 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Neve STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto -STR_LAI_RAIL_DESCRIPTION_TRACK :Trilho de {STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trilho de {STRING} com sinais normais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trilho de {STRING} com pré-sinais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trilho de {STRING} com sinais de saída -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trilho de {STRING} com sinais-combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trilho de {STRING} com sinais avançados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trilhos de {STRING} com sinais avançados de mão única -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trilho de {STRING} com sinais normais e pré-sinais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Trilho de {STRING} com sinais normais e pré-sinais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Trilho de {STRING} com sinais normais e sinais-combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Trilho de {STRING} com sinais normais e avançados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Trilho de {STRING} com sinais normais e avançados de mão única -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Trilho de {STRING} com pré-sinais e de saída -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Trilho de {STRING} com pré-sinais e sinais-combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Trilho de {STRING} com pré-sinais e sinais avançados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Trilho de {STRING} com pré-sinais e avançados de mão única -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trilho de {STRING} com sinais de saída e sinais-combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trilho de {STRING} com sinais de saída e avançados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trilho de {STRING} com sinais de saída e avançados de mão única -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trilho de {STRING} com sinais-combo e avançados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trilho de {STRING} com sinais-combo e avançados de mão única -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trilho de {STRING} com sinais avançados e avançados de mão única -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de {STRING} +STR_LAI_RAIL_DESCRIPTION_TRACK :Trilho de Ferrovia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trilho de Ferrovia com sinais normais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trilho de Ferrovia com pré-sinais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trilho de Ferrovia com sinais de saída +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trilho de Ferrovia com sinais-combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trilho de Ferrovia com sinais avançados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trilhos de Ferrovia com sinais avançados de mão única +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trilho de Ferrovia com sinais normais e pré-sinais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Trilho de Ferrovia com sinais normais e pré-sinais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Trilho de Ferrovia com sinais normais e sinais-combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Trilho de Ferrovia com sinais normais e avançados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Trilho de Ferrovia com sinais normais e avançados de mão única +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Trilho de Ferrovia com pré-sinais e de saída +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Trilho de Ferrovia com pré-sinais e sinais-combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Trilho de Ferrovia com pré-sinais e sinais avançados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Trilho de Ferrovia com pré-sinais e avançados de mão única +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trilho de Ferrovia com sinais de saída e sinais-combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trilho de Ferrovia com sinais de saída e avançados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trilho de Ferrovia com sinais de saída e avançados de mão única +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trilho de Ferrovia com sinais-combo e avançados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trilho de Ferrovia com sinais-combo e avançados de mão única +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trilho de Ferrovia com sinais avançados e avançados de mão única +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de Ferrovia STR_LAI_ROAD_DESCRIPTION_ROAD :Rodovia STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Rodovia iluminada diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 2ebd83953b..4d6f20445c 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2540,29 +2540,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Поля STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Заснежена земя STR_LAI_CLEAR_DESCRIPTION_DESERT :Пустиня -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} линия -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} линия с блокиращи сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} линия с пре-сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} линия с изходни сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} линия с комбо сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} линия с насочващи сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} линия с еднопосочни сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} линия с блокиращи и пре-сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} линия с блокиращи и изходни сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} линия с блокиращи и комбо сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} линия с блокиращи и насочващи сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} линия с блокиращи и еднопосочни сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} линия с пред и изходни сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} линя с пред и комбо сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} линия с пред и насочващи сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} линия с пред и еднопосочни сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} линия с изходни и комбо сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} линия с изходни и насочващи сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} линия с изходни и еднопосочни сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} линия с комбо и насочващи сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} линия с комбо и еднопосочни сигнали -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} линия с насочващи и еднопосочни сигнали -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} влаково депо +STR_LAI_RAIL_DESCRIPTION_TRACK :ЖП път линия +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :ЖП път линия с блокиращи сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :ЖП път линия с пре-сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :ЖП път линия с изходни сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :ЖП път линия с комбо сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :ЖП път линия с насочващи сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :ЖП път линия с еднопосочни сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :ЖП път линия с блокиращи и пре-сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :ЖП път линия с блокиращи и изходни сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :ЖП път линия с блокиращи и комбо сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :ЖП път линия с блокиращи и насочващи сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :ЖП път линия с блокиращи и еднопосочни сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :ЖП път линия с пред и изходни сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :ЖП път линя с пред и комбо сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :ЖП път линия с пред и насочващи сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :ЖП път линия с пред и еднопосочни сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :ЖП път линия с изходни и комбо сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :ЖП път линия с изходни и насочващи сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :ЖП път линия с изходни и еднопосочни сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :ЖП път линия с комбо и насочващи сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :ЖП път линия с комбо и еднопосочни сигнали +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :ЖП път линия с насочващи и еднопосочни сигнали +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :ЖП път влаково депо STR_LAI_ROAD_DESCRIPTION_ROAD :път STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Асфалтов път с улично осветление diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 9dcb64eef1..0a85f8869d 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Camps de conreu STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terreny nevat STR_LAI_CLEAR_DESCRIPTION_DESERT :Desert -STR_LAI_RAIL_DESCRIPTION_TRACK :Via de {STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} via amb senyals de bloc -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} via amb pre-senyals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} via amb senyals de sortida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} via amb senyals combinats -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} via amb senyals de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} via amb senyals de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING}via amb senyals de bloc i pre-senyals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} via amb senyals de bloc i de sortida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} via amb senyals de bloc i combinats -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} via amb senyals de bloc i de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} via amb senyals de bloc i de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} via amb pre-senyals i senyals de sortida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} via amb pre-senyals i senyals combinats -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} via amb pre-senyals i senyals de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} via amb pre-senyals i senyals de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} via amb senyals de sortida i combinats -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} via amb senyals de sortida i de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} via amb senyals de sortida i de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} via amb senyals combinats i de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} via amb senyals combinats i de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} via amb senyals de camí i de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} cotxeres de tren +STR_LAI_RAIL_DESCRIPTION_TRACK :Via de Ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril via amb senyals de bloc +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrocarril via amb pre-senyals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ferrocarril via amb senyals de sortida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ferrocarril via amb senyals combinats +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril via amb senyals de camí +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril via amb senyals de camí d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarrilvia amb senyals de bloc i pre-senyals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril via amb senyals de bloc i de sortida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ferrocarril via amb senyals de bloc i combinats +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrocarril via amb senyals de bloc i de camí +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrocarril via amb senyals de bloc i de camí d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril via amb pre-senyals i senyals de sortida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ferrocarril via amb pre-senyals i senyals combinats +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ferrocarril via amb pre-senyals i senyals de camí +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril via amb pre-senyals i senyals de camí d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ferrocarril via amb senyals de sortida i combinats +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrocarril via amb senyals de sortida i de camí +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrocarril via amb senyals de sortida i de camí d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ferrocarril via amb senyals combinats i de camí +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ferrocarril via amb senyals combinats i de camí d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ferrocarril via amb senyals de camí i de camí d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril cotxeres de tren STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera amb fanals diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index d42eea8e4e..2ad789c78c 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -2697,29 +2697,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Polja STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zemlja pokrivena snijegom STR_LAI_CLEAR_DESCRIPTION_DESERT :Pustinja -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} pruga -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} pruga sa blok-signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} pruga sa pred-signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} pruga sa izlaznim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} pruga sa kombiniranim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} pruga sa putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} pruga sa jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} pruga sa blok-signalima i pred-signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} pruga sa blok-signalima i izlaznim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} pruga sa blok-signalima i kombiniranim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} pruga sa blok-signalima i putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} pruga sa blok-signalima i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} pruga sa pred-signalima i izlaznim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} pruga sa pred-signalima i kombiniranim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} pruga sa pred-signalima i putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} pruga sa pred-signalima i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} pruga sa izlaznim i kombiniranim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} pruga sa izlaznim i putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} pruga sa izlaznim i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} pruga sa kombiniranim i putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} pruga sa kombiniranim i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} pruga sa putnim i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} spremište vlaka +STR_LAI_RAIL_DESCRIPTION_TRACK :Pruga pruga +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Pruga pruga sa blok-signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Pruga pruga sa pred-signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Pruga pruga sa izlaznim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Pruga pruga sa kombiniranim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Pruga pruga sa putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Pruga pruga sa jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Pruga pruga sa blok-signalima i pred-signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Pruga pruga sa blok-signalima i izlaznim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Pruga pruga sa blok-signalima i kombiniranim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Pruga pruga sa blok-signalima i putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Pruga pruga sa blok-signalima i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Pruga pruga sa pred-signalima i izlaznim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Pruga pruga sa pred-signalima i kombiniranim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Pruga pruga sa pred-signalima i putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Pruga pruga sa pred-signalima i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Pruga pruga sa izlaznim i kombiniranim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Pruga pruga sa izlaznim i putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Pruga pruga sa izlaznim i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Pruga pruga sa kombiniranim i putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Pruga pruga sa kombiniranim i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Pruga pruga sa putnim i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Pruga spremište vlaka STR_LAI_ROAD_DESCRIPTION_ROAD :Cesta STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Cesta s javnom rasvjetom diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 82d64e04b2..88ba1559b4 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2694,29 +2694,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Pole STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zasněžená země STR_LAI_CLEAR_DESCRIPTION_DESERT :Poušť -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} trať -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} trať s obyčejným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} trať s vjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} trať s výjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} trať s kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} trať s dokonalejším (PBS) návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} trať s dokonalejším (PBS) jednosměrným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} trať s obyčejným a vjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} trať s obyčejným a odjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} trať s obyčejným a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} trať s obyčejným a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} trať s obyčejným a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} trať s vjezdovým a odjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} trať s vjezdovým a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} trať s vjezdovým a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} trať s vjezdovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} trať s výjezdovým a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} trať s výjezdovým a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} trať s výjezdovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} trať s kombinovaným a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} trať s kombinovaným a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} trať s cestovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} železniční depo +STR_LAI_RAIL_DESCRIPTION_TRACK :Železnice trať +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železnice trať s obyčejným návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železnice trať s vjezdovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železnice trať s výjezdovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železnice trať s kombinovaným návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železnice trať s dokonalejším (PBS) návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železnice trať s dokonalejším (PBS) jednosměrným návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železnice trať s obyčejným a vjezdovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železnice trať s obyčejným a odjezdovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železnice trať s obyčejným a kombinovaným návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železnice trať s obyčejným a cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železnice trať s obyčejným a jednosměrným cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železnice trať s vjezdovým a odjezdovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železnice trať s vjezdovým a kombinovaným návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železnice trať s vjezdovým a cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železnice trať s vjezdovým a jednosměrným cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železnice trať s výjezdovým a kombinovaným návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železnice trať s výjezdovým a cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železnice trať s výjezdovým a jednosměrným cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železnice trať s kombinovaným a cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železnice trať s kombinovaným a jednosměrným cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železnice trať s cestovým a jednosměrným cestovým návěstidlem +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železnice železniční depo STR_LAI_ROAD_DESCRIPTION_ROAD :Silnice STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Silnice s pouličním osvětlením diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 97793c7bf9..9bd2a95a49 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Marker STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snedækket land STR_LAI_CLEAR_DESCRIPTION_DESERT :Ørken -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spor -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spor med bloksignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spor med with pre-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spor med udgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spor med kombinerede signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spor med rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spor med en-vejs-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spor med blok- og pre-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spor med blok- og udgangs-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spor med blok og kombinerede signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spor med blok- og rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spor med blok og en-vejs rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spor med pre- og udgangs-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spor med pre- og kombinerede signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spor med pre- og rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spor med pre- og en-vejs rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spor med udgangs- og kombinerede signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spor med udgangs- og rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spor med udgangs- og en-vejs rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spor med kombinerede og rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} spor med kombinerede og en-vejs rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spor med rute- og en-vejs rute-signaler -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} togdepot +STR_LAI_RAIL_DESCRIPTION_TRACK :Jernbane spor +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Jernbane spor med bloksignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Jernbane spor med with pre-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Jernbane spor med udgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Jernbane spor med kombinerede signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Jernbane spor med rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbane spor med en-vejs-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbane spor med blok- og pre-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Jernbane spor med blok- og udgangs-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbane spor med blok og kombinerede signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Jernbane spor med blok- og rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbane spor med blok og en-vejs rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbane spor med pre- og udgangs-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Jernbane spor med pre- og kombinerede signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Jernbane spor med pre- og rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Jernbane spor med pre- og en-vejs rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbane spor med udgangs- og kombinerede signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbane spor med udgangs- og rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbane spor med udgangs- og en-vejs rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbane spor med kombinerede og rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbane spor med kombinerede og en-vejs rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbane spor med rute- og en-vejs rute-signaler +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane togdepot STR_LAI_ROAD_DESCRIPTION_ROAD :Vej STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Vej med gadelygter diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 7692216def..4053c578b6 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Akkers STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Sneeuw STR_LAI_CLEAR_DESCRIPTION_DESERT :Woestijn -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spoor -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spoor met blokseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spoor met voorseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spoor met exitseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spoor met combo-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spoor met routeseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spoor met eenrichtingsseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spoor met blok en voorseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spoor met blok en exitseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spoor met blok en combo-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spoor met blok en routeseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spoor met blok en eenrichtingsseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spoor met voor- en exitseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spoor met voor- en combo-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spoor met voor- en routeseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spoor met voor- en eenrichtingsseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spoor met exit- en combo-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spoor em exit- en routeseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spoor met exit- en eenrichtingsseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spoor met combo- en routeseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} Spoor met combo- en eenrichtingssein -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spoor met route en eenrichtingssein -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} trein depot +STR_LAI_RAIL_DESCRIPTION_TRACK :Spoorweg spoor +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Spoorweg spoor met blokseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Spoorweg spoor met voorseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Spoorweg spoor met exitseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Spoorweg spoor met combo-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Spoorweg spoor met routeseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Spoorweg spoor met eenrichtingsseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Spoorweg spoor met blok en voorseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Spoorweg spoor met blok en exitseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Spoorweg spoor met blok en combo-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Spoorweg spoor met blok en routeseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Spoorweg spoor met blok en eenrichtingsseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Spoorweg spoor met voor- en exitseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Spoorweg spoor met voor- en combo-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Spoorweg spoor met voor- en routeseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Spoorweg spoor met voor- en eenrichtingsseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Spoorweg spoor met exit- en combo-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoorweg spoor em exit- en routeseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Spoorweg spoor met exit- en eenrichtingsseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Spoorweg spoor met combo- en routeseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Spoorweg Spoor met combo- en eenrichtingssein +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Spoorweg spoor met route en eenrichtingssein +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Spoorweg trein depot STR_LAI_ROAD_DESCRIPTION_ROAD :Weg STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Weg met straatlantaarns diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 9507ee288e..9adc6d9314 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2576,29 +2576,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fields STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snow-covered land STR_LAI_CLEAR_DESCRIPTION_DESERT :Desert -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} track -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} track with block signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} track with pre-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} track with exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} track with combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} track with path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} track with one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} track with block and pre-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} track with block and exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} track with block and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} track with block and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} track with block and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} track with pre- and exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} track with pre- and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} track with pre- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} track with pre- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} track with exit- and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} track with exit- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} track with exit- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} track with combo- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} track with combo- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} track with path and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} train depot +STR_LAI_RAIL_DESCRIPTION_TRACK :Railway track +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Railway track with block signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Railway track with pre-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Railway track with exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Railway track with combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Railway track with path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Railway track with one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Railway track with block and pre-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Railway track with block and exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Railway track with block and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Railway track with block and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Railway track with block and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Railway track with pre- and exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Railway track with pre- and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Railway track with pre- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Railway track with pre- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Railway track with exit- and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Railway track with exit- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Railway track with exit- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Railway track with combo- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Railway track with combo- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Railway track with path and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Railway train depot STR_LAI_ROAD_DESCRIPTION_ROAD :Road STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Road with street lights diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 6a47188028..842f870e69 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fields STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snow-covered land STR_LAI_CLEAR_DESCRIPTION_DESERT :Desert -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} track -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} track with block signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} track with pre-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} track with exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} track with combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} track with path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} track with one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} track with block and pre-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} track with block and exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} track with block and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} track with block and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} track with block and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} track with pre- and exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} track with pre- and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} track with pre- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} track with pre- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} track with exit- and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} track with exit- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} track with exit- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} track with combo- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} track with combo- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} track with path and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} train depot +STR_LAI_RAIL_DESCRIPTION_TRACK :Railroad track +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Railroad track with block signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Railroad track with pre-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Railroad track with exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Railroad track with combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Railroad track with path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Railroad track with one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Railroad track with block and pre-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Railroad track with block and exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Railroad track with block and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Railroad track with block and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Railroad track with block and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Railroad track with pre- and exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Railroad track with pre- and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Railroad track with pre- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Railroad track with pre- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Railroad track with exit- and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Railroad track with exit- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Railroad track with exit- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Railroad track with combo- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Railroad track with combo- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Railroad track with path and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Railroad train depot STR_LAI_ROAD_DESCRIPTION_ROAD :Road STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Road with street lights diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 6da9875a5f..d3283c128a 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -2659,29 +2659,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Põllud STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Lumine maa STR_LAI_CLEAR_DESCRIPTION_DESERT :Kõrb -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} rööbas -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} rööpad koos blokksignaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} rööpad koos eelsignaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} rööpad väljasõidusignaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} rööpad kombineeritud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} rööpad koos täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} tööpad koos ühesuunaliste täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} rööpad koos blokk- ja eelsignaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} rööpad koos blokk- ja väljumissignaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} rööpad koos blokk- ja kombineeritud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} rööpad koos blokk- ja täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} rööpad koos blokksignaalidega ja ühesuunaliste täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} rööpad koos eel- ja väljumissignaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} rööpad koos eel- ja kombineeritud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} rööpad koos eel- ja täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} rööpad koos eel- ja ühesuunaliste täiustatud signaaligeda -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} rööpad koos väljumis- ja kombineeritud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} rööpad koos väljumis- ja täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} rööpad koos väljumis. ja ühesuunaliste täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} rööpad koos komineeriutd ja täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} rööpad koos komineeritud ja ühesuunaliste täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} rööpad koos täisutatud ja ühesuunaliste täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} Rongidepoo +STR_LAI_RAIL_DESCRIPTION_TRACK :Raudtee rööbas +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Raudtee rööpad koos blokksignaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Raudtee rööpad koos eelsignaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Raudtee rööpad väljasõidusignaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Raudtee rööpad kombineeritud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Raudtee rööpad koos täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Raudtee tööpad koos ühesuunaliste täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Raudtee rööpad koos blokk- ja eelsignaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Raudtee rööpad koos blokk- ja väljumissignaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Raudtee rööpad koos blokk- ja kombineeritud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Raudtee rööpad koos blokk- ja täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Raudtee rööpad koos blokksignaalidega ja ühesuunaliste täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Raudtee rööpad koos eel- ja väljumissignaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Raudtee rööpad koos eel- ja kombineeritud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Raudtee rööpad koos eel- ja täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Raudtee rööpad koos eel- ja ühesuunaliste täiustatud signaaligeda +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Raudtee rööpad koos väljumis- ja kombineeritud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Raudtee rööpad koos väljumis- ja täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Raudtee rööpad koos väljumis. ja ühesuunaliste täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Raudtee rööpad koos komineeriutd ja täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Raudtee rööpad koos komineeritud ja ühesuunaliste täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Raudtee rööpad koos täisutatud ja ühesuunaliste täiustatud signaalidega +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Raudtee Rongidepoo STR_LAI_ROAD_DESCRIPTION_ROAD :Sõidutee STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Valgustatud sõidutee diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index e6463680e4..c51b54e476 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2341,29 +2341,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Markir STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Kava-klætt lendi STR_LAI_CLEAR_DESCRIPTION_DESERT :Oyðimørk -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} breyt -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} breyt við blokk teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} breyt við for teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} breyt við útvegs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} breyt við blandings teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} breyt við leið teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} breyt við einvegis leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} breyt við blokk og for teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} breyt við blokk og útvegs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} breyt við block og blandings teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} breyt við blokk og leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} breyt við blokk og einvegis leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} breyt við for og útvegis teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} breyt við for og blandings teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} breyt við for og leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} breyt við for og einvegis leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} breyt við útvegs og blandings teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} breyt við útvegs og leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} breyt við útvegs og einvegis leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} breyt við blandings og leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} breyt við blandings og einvegis leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} breyt við leiðs og einvegis leiðs teknum -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} Tok goymsla +STR_LAI_RAIL_DESCRIPTION_TRACK :{G=m}Jarnbreyt breyt +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{G=m}Jarnbreyt breyt við blokk teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{G=m}Jarnbreyt breyt við for teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{G=m}Jarnbreyt breyt við útvegs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{G=m}Jarnbreyt breyt við blandings teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{G=m}Jarnbreyt breyt við leið teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{G=m}Jarnbreyt breyt við einvegis leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{G=m}Jarnbreyt breyt við blokk og for teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{G=m}Jarnbreyt breyt við blokk og útvegs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{G=m}Jarnbreyt breyt við block og blandings teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{G=m}Jarnbreyt breyt við blokk og leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{G=m}Jarnbreyt breyt við blokk og einvegis leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{G=m}Jarnbreyt breyt við for og útvegis teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{G=m}Jarnbreyt breyt við for og blandings teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{G=m}Jarnbreyt breyt við for og leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{G=m}Jarnbreyt breyt við for og einvegis leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{G=m}Jarnbreyt breyt við útvegs og blandings teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{G=m}Jarnbreyt breyt við útvegs og leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{G=m}Jarnbreyt breyt við útvegs og einvegis leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{G=m}Jarnbreyt breyt við blandings og leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{G=m}Jarnbreyt breyt við blandings og einvegis leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{G=m}Jarnbreyt breyt við leiðs og einvegis leiðs teknum +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{G=m}Jarnbreyt Tok goymsla STR_LAI_ROAD_DESCRIPTION_ROAD :Vegur STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Vegur við lyktapelum diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index c0873281dd..b1dc16d17f 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Peltoja STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Lumen peittämää maata STR_LAI_CLEAR_DESCRIPTION_DESERT :Aavikkoa -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} suojastusopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} tulo-opastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} poistumisopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} yhdistelmäopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} reittiopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} yksisuuntaisilla reittiopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} suojastus- ja tulo-opastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} suojastus- ja poistumisopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} suojastus- ja yhdistelmäopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} suojastus- ja reittiopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} suojastus- ja yksisuuntaisilla reittiopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} tulo- ja poistumisopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} tulo- ja yhdistelmäopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} tulo- ja reittiopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} tulo- ja yksisuuntaisilla reittiopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} poistumis- ja yhdistelmäopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} poistumis- ja reittiopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} poistumis- ja yksisuuntaisilla opastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} yhdistelmä- ja reittiopastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} yhdistelmä- ja yksisuuntaisilla opastimilla -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} reitti- ja yksisuuntaisilla opastimilla -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} veturitalli +STR_LAI_RAIL_DESCRIPTION_TRACK :Rautatie +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Rautatie suojastusopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Rautatie tulo-opastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Rautatie poistumisopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Rautatie yhdistelmäopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Rautatie reittiopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Rautatie yksisuuntaisilla reittiopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Rautatie suojastus- ja tulo-opastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Rautatie suojastus- ja poistumisopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Rautatie suojastus- ja yhdistelmäopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Rautatie suojastus- ja reittiopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Rautatie suojastus- ja yksisuuntaisilla reittiopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Rautatie tulo- ja poistumisopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Rautatie tulo- ja yhdistelmäopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Rautatie tulo- ja reittiopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Rautatie tulo- ja yksisuuntaisilla reittiopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Rautatie poistumis- ja yhdistelmäopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Rautatie poistumis- ja reittiopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Rautatie poistumis- ja yksisuuntaisilla opastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Rautatie yhdistelmä- ja reittiopastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Rautatie yhdistelmä- ja yksisuuntaisilla opastimilla +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Rautatie reitti- ja yksisuuntaisilla opastimilla +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Rautatie veturitalli STR_LAI_ROAD_DESCRIPTION_ROAD :Tie STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Tie katuvaloilla diff --git a/src/lang/french.txt b/src/lang/french.txt index 5bccfdbca1..e2bcfdcf54 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Champs STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terre enneigée STR_LAI_CLEAR_DESCRIPTION_DESERT :Désert -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING}{NBSP} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} avec signaux de bloc -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} avec pré-signaux -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} avec signaux de sortie -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} avec signaux combinés -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} avec signaux de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} avec signaux de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} avec signal de bloc et pré-signaux -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} avec signal de bloc et signaux de sortie -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} avec signal de bloc et signaux combinés -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} avec signaux de bloc et de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} avec signaux de bloc et de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} avec pré-signal et signal de sortie -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} avec pré-signal et signal combiné -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} avec pré-signal et signal de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} avec pré-signal et signal de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} avec signal de sortie et signal combiné -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} avec signal de sortie et signal de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} avec signal de sortie et signal de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} avec signal combiné et signal de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} avec signal combiné et signal de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} avec signal de chemin et signal de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Dépôt de trains de {STRING} +STR_LAI_RAIL_DESCRIPTION_TRACK :Voie ferrée simple{NBSP} +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Voie ferrée simple avec signaux de bloc +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Voie ferrée simple avec pré-signaux +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Voie ferrée simple avec signaux de sortie +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Voie ferrée simple avec signaux combinés +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Voie ferrée simple avec signaux de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Voie ferrée simple avec signaux de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Voie ferrée simple avec signal de bloc et pré-signaux +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Voie ferrée simple avec signal de bloc et signaux de sortie +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Voie ferrée simple avec signal de bloc et signaux combinés +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Voie ferrée simple avec signaux de bloc et de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Voie ferrée simple avec signaux de bloc et de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Voie ferrée simple avec pré-signal et signal de sortie +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Voie ferrée simple avec pré-signal et signal combiné +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Voie ferrée simple avec pré-signal et signal de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Voie ferrée simple avec pré-signal et signal de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Voie ferrée simple avec signal de sortie et signal combiné +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Voie ferrée simple avec signal de sortie et signal de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Voie ferrée simple avec signal de sortie et signal de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Voie ferrée simple avec signal combiné et signal de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Voie ferrée simple avec signal combiné et signal de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Voie ferrée simple avec signal de chemin et signal de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Dépôt de trains de Voie ferrée simple STR_LAI_ROAD_DESCRIPTION_ROAD :Route STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Route avec lampadaires diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 7de552151b..64cb4d96d6 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2812,29 +2812,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Achaidhean STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tìr sneachdach STR_LAI_CLEAR_DESCRIPTION_DESERT :Fàsach -STR_LAI_RAIL_DESCRIPTION_TRACK :Slighe {STRING.gen} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Slighe {STRING.gen} le comharran bacaidh -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Slighe {STRING.gen} le ro-chomharran -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Slighe {STRING.gen} le comharran a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Slighe {STRING.gen} le comharran aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Slighe {STRING.gen} le comharran slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Slighe {STRING.gen} le comharran aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Slighe {STRING.gen} le comharran bacaidh is ro-chomharran -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Slighe {STRING.gen} le comharran-bacaidh is a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Slighe {STRING.gen} le comharran-bacaidh is aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Slighe {STRING.gen} le comharran-bacaidh is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Slighe {STRING.gen} le comharran-bacaidh is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Slighe {STRING.gen} le ro-chomharran is comharran a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Slighe {STRING.gen} le ro-chomharran is comharran aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Slighe {STRING.gen} le ro-chomharran is comharran slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Slighe {STRING.gen} le ro-chomharran is comharran aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Slighe {STRING.gen} le comharran a-mach is aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Slighe {STRING.gen} le comharran a-mach is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Slighe {STRING.gen} le comharran a-mach is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Slighe {STRING.gen} le comharran aonaichte is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Slighe {STRING.gen} le comharran aonaichte is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Slighe {STRING.gen} le comharran slighe is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trèan-lann {STRING} +STR_LAI_RAIL_DESCRIPTION_TRACK :Slighe Rathad-iarainn +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Slighe Rathad-iarainn le comharran bacaidh +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Slighe Rathad-iarainn le ro-chomharran +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Slighe Rathad-iarainn le comharran a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Slighe Rathad-iarainn le comharran aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Slighe Rathad-iarainn le comharran slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Slighe Rathad-iarainn le comharran bacaidh is ro-chomharran +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Slighe Rathad-iarainn le comharran a-mach is aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Slighe Rathad-iarainn le comharran a-mach is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran a-mach is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Slighe Rathad-iarainn le comharran aonaichte is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran aonaichte is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran slighe is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trèan-lann Rathad-iarainn STR_LAI_ROAD_DESCRIPTION_ROAD :Rathad STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Rathad le solasan-rathaid diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 4ede44093e..960f66ba8e 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -2560,29 +2560,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Leiras STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terra cuberta de neve STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto -STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de {STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de {STRING} con sinais de bloqueo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de {STRING} con sinais avanzados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de {STRING} con sinais de saída -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de {STRING} con sinais combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de {STRING} con sinais de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de {STRING} con sinais de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de {STRING} con sinais de bloqueo e avanzados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de {STRING} con sinais de bloqueo e saída -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de {STRING} con sinais de bloqueo e combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de {STRING} con sinais de bloqueo e de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de {STRING} con sinais de bloqueo e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de {STRING} con sinais avanzados e de saída -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de {STRING} con sinais avanzados e combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de {STRING} con sinais avanzados e de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de {STRING} con sinais avanzados e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de {STRING} con sinais de saída e combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de {STRING} con sinais de saída e de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de {STRING} con sinais de saída e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de {STRING} con sinais combo e de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de {STRING} con sinais combo e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de {STRING} con sinais de ruta e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito ferroviario {STRING} +STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de Ferrocarril con sinais de bloqueo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de Ferrocarril con sinais avanzados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de Ferrocarril con sinais de saída +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con sinais combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de Ferrocarril con sinais de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de Ferrocarril con sinais de bloqueo e avanzados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de Ferrocarril con sinais de bloqueo e saída +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de Ferrocarril con sinais de bloqueo e combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de Ferrocarril con sinais de bloqueo e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de bloqueo e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de Ferrocarril con sinais avanzados e de saída +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de Ferrocarril con sinais avanzados e combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de Ferrocarril con sinais avanzados e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de Ferrocarril con sinais avanzados e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de Ferrocarril con sinais de saída e combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de Ferrocarril con sinais de saída e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de saída e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con sinais combo e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con sinais combo e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de ruta e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito ferroviario Ferrocarril STR_LAI_ROAD_DESCRIPTION_ROAD :Estrada STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Estrada con iluminación diff --git a/src/lang/german.txt b/src/lang/german.txt index 22bc77fcc6..ce4d80f282 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Ackerland STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Schneebedecktes Land STR_LAI_CLEAR_DESCRIPTION_DESERT :Wüste -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING}: Gleise -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING}: Gleise mit Blocksignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING}: Gleise mit Vorsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING}: Gleise mit Ausfahrtsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING}: Gleise mit Kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING}: Gleise mit Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING}: Gleise mit einseitigem Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING}: Gleise mit Block- und Vorsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING}: Gleise mit Block- und Ausfahrtsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING}: Gleise mit Block- und Kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING}: Gleise mit Block- und Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING}: Gleise mit Blocksignal und einseitigem Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING}: Gleise mit Vor- und Ausfahrtsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING}: Gleise mit Vor- und Kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING}: Gleise mit Vor- und Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING}: Gleise mit Vorsignal und einseitigem Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING}: Gleise mit Ausfahrts- und Kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING}: Gleise mit Ausfahrts- und Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING}: Gleise mit Ausfahrtssignal und einseitigem Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING}: Gleise mit Kombinations- und Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING}: Gleise mit Kombinationssignal und einseitigem Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING}: Gleise mit Pfadsignal und einseitigem Pfadsignal -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING}: Zugdepot +STR_LAI_RAIL_DESCRIPTION_TRACK :Schienen: Gleise +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Schienen: Gleise mit Blocksignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Schienen: Gleise mit Vorsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Schienen: Gleise mit Ausfahrtsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Schienen: Gleise mit Kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Schienen: Gleise mit Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Schienen: Gleise mit einseitigem Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Schienen: Gleise mit Block- und Vorsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Schienen: Gleise mit Block- und Ausfahrtsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Schienen: Gleise mit Block- und Kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Schienen: Gleise mit Block- und Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Schienen: Gleise mit Blocksignal und einseitigem Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Schienen: Gleise mit Vor- und Ausfahrtsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schienen: Gleise mit Vor- und Kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Schienen: Gleise mit Vor- und Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Schienen: Gleise mit Vorsignal und einseitigem Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Schienen: Gleise mit Ausfahrts- und Kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Schienen: Gleise mit Ausfahrts- und Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Schienen: Gleise mit Ausfahrtssignal und einseitigem Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Schienen: Gleise mit Kombinations- und Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Schienen: Gleise mit Kombinationssignal und einseitigem Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Schienen: Gleise mit Pfadsignal und einseitigem Pfadsignal +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Schienen: Zugdepot STR_LAI_ROAD_DESCRIPTION_ROAD :Straße STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Straße mit Laternen diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 15b78bed67..828e9d1196 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -2710,29 +2710,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Χωράφια STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Χιονισμένο έδαφος STR_LAI_CLEAR_DESCRIPTION_DESERT :Έρημος -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} σιδηροτροχιά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} σιδηροτροχιά με σήματα τμήματος -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} σιδηροτροχιά με σήματα ειδοποίησης -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} σιδηροτροχιά με σήματα εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} σιδηροτροχιά με συνδυαστικά σήματα -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} σιδηροτροχιά με σήματα διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} σιδηροτροχιά με σήματα μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} σιδηροτροχιά με σήματα τμήματος και ειδοποίησης -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} σιδηροτροχιά με σήματα τμήματος και εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} σιδηροτροχιά με σήματα τμήματος και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} σιδηροτροχιά με σήματα τμήματος και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} σιδηροτροχιά με σήματα τμήματος και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} σιδηροτροχιά με σήματα ειδοποίησης και εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} σιδηροτροχιά με σήματα ειδοποίησης και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} σιδηροτροχιά με σήματα ειδοποίησης και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} σιδηροτροχιά με σήματα ειδοποίησης και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} σιδηροτροχιά με σήματα εξόδου και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} σιδηροτροχιά με σήματα εξόδου και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} σιδηροτροχιά με σήματα εξόδου και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} σιδηροτροχιά με σήματα διαδρομής και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} σιδηροτροχιά σήματα μονόδρομους διαδρομής και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} σιδηροτροχιά με σήματα διαδρομής και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} αμαξοστάσιο τρένων +STR_LAI_RAIL_DESCRIPTION_TRACK :Σιδηρόδρομος σιδηροτροχιά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με συνδυαστικά σήματα +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα μονόδρομους διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και ειδοποίησης +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και μονόδρομους διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και μονόδρομους διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και μονόδρομους διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά σήματα μονόδρομους διαδρομής και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής και μονόδρομους διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Σιδηρόδρομος αμαξοστάσιο τρένων STR_LAI_ROAD_DESCRIPTION_ROAD :Δρόμος STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Δρόμος με φωτισμό diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 94d977a357..33441f910d 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -2615,29 +2615,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :שדות STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :אדמה מכוסה בשלג STR_LAI_CLEAR_DESCRIPTION_DESERT :מדבר -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} מסילה -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} מסילה עם רמזורים חוסמים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} מסילה עם רמזורים מקדימים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} מסילה עם רמזורי יציאה -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} מסילה עם רמזורים משולבים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} מסילה עם רמזורי נתיב -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} מסילה עם רמזורי נתיב חד-סטריים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} מסילה עם רמזורים חוסמים ומקדימים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} מסילה עם רמזורים חוסמים ורמזורי יציאה -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} מסילה עם רמזורים חוסמים ורמזורים משולבים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} מסילה עם רמזורים חוסמים ורמזורי נתיב -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} מסילה עם רמזורים חוסמים ורמזורי נתיב חד-סטריים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} מסילה עם רמזורים מקדימים ורמזורי יציאה -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} מסילה עם רמזורים מקדימים ורמזורים משולבים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} מסילה עם רמזורים מקדימים ורמזורי נתיב -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} מסילה עם רמזורים מקדימים ורמזורי נתיב חד-סטריים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} מסילה עם רמזורי יציאה ורמזורים משולבים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} מסילה עם רמזורי יציאה ורמזורי נתיב -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} מסילה עם רמזורי יציאה ורמזורי נתיב חד-סטריים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} מסילה עם רמזורים משולבים ורמזורי נתיב -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} מסילה עם רמזורים משולבים ורמזורי נתיב חד-סטריים -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} מסילה עם רמזורי נתיב ורמזורי נתיב חד-סטריים -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} מוסך רכבות +STR_LAI_RAIL_DESCRIPTION_TRACK :מסילת ברזל מסילה +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :מסילת ברזל מסילה עם רמזורי יציאה +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :מסילת ברזל מסילה עם רמזורים משולבים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :מסילת ברזל מסילה עם רמזורי נתיב +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורי נתיב חד-סטריים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ומקדימים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ורמזורי יציאה +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ורמזורים משולבים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ורמזורי נתיב +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ורמזורי נתיב חד-סטריים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים ורמזורי יציאה +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים ורמזורים משולבים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים ורמזורי נתיב +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים ורמזורי נתיב חד-סטריים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :מסילת ברזל מסילה עם רמזורי יציאה ורמזורים משולבים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :מסילת ברזל מסילה עם רמזורי יציאה ורמזורי נתיב +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורי יציאה ורמזורי נתיב חד-סטריים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :מסילת ברזל מסילה עם רמזורים משולבים ורמזורי נתיב +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורים משולבים ורמזורי נתיב חד-סטריים +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורי נתיב ורמזורי נתיב חד-סטריים +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :מסילת ברזל מוסך רכבות STR_LAI_ROAD_DESCRIPTION_ROAD :כביש STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :כביש עם תאורת רחוב diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index f31d34d837..980c65f8a8 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2665,29 +2665,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Szántóföld STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Havas föld STR_LAI_CLEAR_DESCRIPTION_DESERT :Sivatag -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} vasúti pálya -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} vasúti pálya normál jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} vasúti pálya előjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} vasúti pálya kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} vasúti pálya kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} vasúti pálya irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} vasúti pálya egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} vasúti pálya normál- és előjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} vasúti pálya normál- és kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} vasúti pálya normál- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} vasúti pálya normál- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} vasúti pálya normál- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} vasúti pálya elő- és kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} vasúti pálya elő- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} vasúti pálya elő- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} vasúti pálya elő- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} vasúti pálya kijárati- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} vasúti pálya kijárati- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} vasúti pálya kijárati- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} vasúti pálya kombinált- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} vasúti pálya kombinált- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} vasúti pálya irány- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} járműtelep +STR_LAI_RAIL_DESCRIPTION_TRACK :Vasút vasúti pálya +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vasút vasúti pálya normál jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vasút vasúti pálya előjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vasút vasúti pálya kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vasút vasúti pálya kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vasút vasúti pálya irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vasút vasúti pálya egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vasút vasúti pálya normál- és előjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vasút vasúti pálya normál- és kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vasút vasúti pálya normál- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vasút vasúti pálya normál- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vasút vasúti pálya normál- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vasút vasúti pálya elő- és kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vasút vasúti pálya elő- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vasút vasúti pálya elő- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vasút vasúti pálya elő- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vasút vasúti pálya kijárati- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vasút vasúti pálya kijárati- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vasút vasúti pálya kijárati- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vasút vasúti pálya kombinált- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vasút vasúti pálya kombinált- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vasút vasúti pálya irány- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Vasút járműtelep STR_LAI_ROAD_DESCRIPTION_ROAD :Út STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Út közvilágítással diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 701d3a8884..768479531b 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2450,29 +2450,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Akur STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snjóþekið land STR_LAI_CLEAR_DESCRIPTION_DESERT :Eyðimörk -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spor -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spor með hefðbundnum umferðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spor með for-merkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spor með frámerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spor með tvívirkum merkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spor með leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spor með einstefnu leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spor með hefðbundnum- og formerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spor með hefðbundnum- og frámerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spor með hefðbundnum- tvívirkum merkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spor með hefðbundnum- og leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spor með hefðbundnum- og einstefnu leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spor með for- og frámerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spor með for- og tvívirkum merkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spor með for- og leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spor með for- og einstefnu leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spor með frá- og tvívirkum merkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spor með frá- og leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spor með frá- og einstefnu leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spor með tvívirkum- og leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} spor með tvívirkum- og einstefnu leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spor með leiðarmerkjum og einstefnu leiðarmerkjum -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} lestarskýli +STR_LAI_RAIL_DESCRIPTION_TRACK :Járnbrautarspor spor +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Járnbrautarspor spor með hefðbundnum umferðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Járnbrautarspor spor með for-merkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Járnbrautarspor spor með frámerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Járnbrautarspor spor með tvívirkum merkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Járnbrautarspor spor með leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Járnbrautarspor spor með einstefnu leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Járnbrautarspor spor með hefðbundnum- og formerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Járnbrautarspor spor með hefðbundnum- og frámerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Járnbrautarspor spor með hefðbundnum- tvívirkum merkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Járnbrautarspor spor með hefðbundnum- og leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Járnbrautarspor spor með hefðbundnum- og einstefnu leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Járnbrautarspor spor með for- og frámerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Járnbrautarspor spor með for- og tvívirkum merkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Járnbrautarspor spor með for- og leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Járnbrautarspor spor með for- og einstefnu leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Járnbrautarspor spor með frá- og tvívirkum merkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Járnbrautarspor spor með frá- og leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Járnbrautarspor spor með frá- og einstefnu leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Járnbrautarspor spor með tvívirkum- og leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Járnbrautarspor spor með tvívirkum- og einstefnu leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Járnbrautarspor spor með leiðarmerkjum og einstefnu leiðarmerkjum +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Járnbrautarspor lestarskýli STR_LAI_ROAD_DESCRIPTION_ROAD :Vegur STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Vegur með götuljósum diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index bc63f8662d..3f584902d6 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Ladang STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Daerah tertutup salju STR_LAI_CLEAR_DESCRIPTION_DESERT :Gurun Pasir -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} track -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} Lintasan dengan "block signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} lintasan dengan "pre-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} lintasan dengan "exit-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING}lintasan dengan "combo-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} lintasan dengan "path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} lintasan dengan sinyal satu arah -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} lintasan dengan "block and pre-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} lintasan dengan "block and exit-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} lintasan dengan "block and combo-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} lintasan dengan "block and path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} lintasan dengan "block and one-way path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} lintasan dengan "pre- and exit-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} lintasan dengan "pre- and combo-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} lintasan dengan "pre- and path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} lintasan dengan "pre- and one-way path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} lintasan dengan "exit- and combo-signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} lintasan dengan "exit- and path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} lintasan dengan "exit- and one-way path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} lintasan dengan "combo- and path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} lintasan dengan "combo- and one-way path signals" -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} lintasan dengan "path and one-way path signals" -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} depo kereta +STR_LAI_RAIL_DESCRIPTION_TRACK :Rel Kereta track +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Rel Kereta Lintasan dengan "block signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Rel Kereta lintasan dengan "pre-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Rel Kereta lintasan dengan "exit-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Rel Keretalintasan dengan "combo-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Rel Kereta lintasan dengan "path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Rel Kereta lintasan dengan sinyal satu arah +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Rel Kereta lintasan dengan "block and pre-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Rel Kereta lintasan dengan "block and exit-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Rel Kereta lintasan dengan "block and combo-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Rel Kereta lintasan dengan "block and path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Rel Kereta lintasan dengan "block and one-way path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Rel Kereta lintasan dengan "pre- and exit-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Rel Kereta lintasan dengan "pre- and combo-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Rel Kereta lintasan dengan "pre- and path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Rel Kereta lintasan dengan "pre- and one-way path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Rel Kereta lintasan dengan "exit- and combo-signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Rel Kereta lintasan dengan "exit- and path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Rel Kereta lintasan dengan "exit- and one-way path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Rel Kereta lintasan dengan "combo- and path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Rel Kereta lintasan dengan "combo- and one-way path signals" +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Rel Kereta lintasan dengan "path and one-way path signals" +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Rel Kereta depo kereta STR_LAI_ROAD_DESCRIPTION_ROAD :Jalan STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Jalan raya dengan lampu diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 665bbf7b98..a64a876d54 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Garrantaí STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Talamh faoi shneachta STR_LAI_CLEAR_DESCRIPTION_DESERT :Fásach -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} ráille -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} ráille ar a bhfuil comharthaí bloc -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} ráille ar a bhfuil réamhchomharthaí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} ráille ar a bhfuil comharthaí amach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} ráille ar a bhfuil comharthaí teaglama -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} ráille ar a bhfuil comharthaí cosáin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} ráille ar a bhfuil comharthaí cosáin aonbhealaigh -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} ráille ar a bhfuil comharthaí bloic agus réamhchomharthaí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} ráille ar a bhfuil comharthaí bloic agus amach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} ráille ar a bhfuil comharthaí bloic agus teaglama -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} ráille ar a bhfuil comharthaí bloic agus cosáin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} ráille ar a bhfuil comharthaí bloic agus cosáin aonbhealaigh -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} ráille ar a bhfuil réamhchomharthaí agus comharthaí amach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} ráille ar a bhfuil réamhchomharthaí agus comharthaí teaglama -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} ráille ar a bhfuil réamhchomharthaí agus comharthaí cosáin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} ráille ar a bhfuil réamhchomharthaí agus comharthaí cosáin aonbhealaigh -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} ráille ar a bhfuil comharthaí amach agus teaglama -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} ráille ar a bhfuil comharthaí amach agus cosáin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} ráille ar a bhfuil comharthaí amach agus cosáin aonbhealaigh -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} ráille ar a bhfuil comharthaí teaglama agus cosáin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} ráille ar a bhfuil comharthaí teaglama agus cosáin aonbhealaigh -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} ráille ar a bhfuil comharthaí cosáin agus cosáin aonbhealaigh -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} iosta traenach +STR_LAI_RAIL_DESCRIPTION_TRACK :Iarnród ráille +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Iarnród ráille ar a bhfuil comharthaí bloc +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Iarnród ráille ar a bhfuil réamhchomharthaí +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Iarnród ráille ar a bhfuil comharthaí amach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Iarnród ráille ar a bhfuil comharthaí teaglama +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Iarnród ráille ar a bhfuil comharthaí cosáin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Iarnród ráille ar a bhfuil comharthaí cosáin aonbhealaigh +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Iarnród ráille ar a bhfuil comharthaí bloic agus réamhchomharthaí +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Iarnród ráille ar a bhfuil comharthaí bloic agus amach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Iarnród ráille ar a bhfuil comharthaí bloic agus teaglama +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Iarnród ráille ar a bhfuil comharthaí bloic agus cosáin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Iarnród ráille ar a bhfuil comharthaí bloic agus cosáin aonbhealaigh +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Iarnród ráille ar a bhfuil réamhchomharthaí agus comharthaí amach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Iarnród ráille ar a bhfuil réamhchomharthaí agus comharthaí teaglama +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Iarnród ráille ar a bhfuil réamhchomharthaí agus comharthaí cosáin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Iarnród ráille ar a bhfuil réamhchomharthaí agus comharthaí cosáin aonbhealaigh +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Iarnród ráille ar a bhfuil comharthaí amach agus teaglama +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Iarnród ráille ar a bhfuil comharthaí amach agus cosáin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Iarnród ráille ar a bhfuil comharthaí amach agus cosáin aonbhealaigh +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Iarnród ráille ar a bhfuil comharthaí teaglama agus cosáin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Iarnród ráille ar a bhfuil comharthaí teaglama agus cosáin aonbhealaigh +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Iarnród ráille ar a bhfuil comharthaí cosáin agus cosáin aonbhealaigh +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Iarnród iosta traenach STR_LAI_ROAD_DESCRIPTION_ROAD :Bóthair STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Bóthair le soilse sráide diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 624c43781c..2113ca70c5 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -2631,29 +2631,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campi STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terreno innevato STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} con segnali di blocco -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} con pre-segnali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} con segnali di uscita -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} con segnali combinati -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} con segnali a percorso -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} con segnali a percorso s.u. -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} con segnali di blocco e pre-segnali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} con segnali di blocco e di uscita -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} con segnali di blocco e combinati -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} con segnali di blocco e a percorso -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} con segnali di blocco e a percorso s.u. -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} con pre-segnali e segnali di uscita -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} con pre-segnali e segnali combinati -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} con pre-segnali e segnali a percorso -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} con pre-segnali e segnali a percorso s.u. -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} con segnali di uscita e combinati -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} con segnali di uscita e a percorso -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} con segnali di uscita e a percorso s.u. -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} con segnali combinati e a percorso -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} con segnali combinati e a percorso s.u. -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} con segnali a percorso e a percorso s.u. -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Deposito {STRING.ms} +STR_LAI_RAIL_DESCRIPTION_TRACK :Ferrovia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrovia con segnali di blocco +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrovia con pre-segnali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ferrovia con segnali di uscita +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ferrovia con segnali combinati +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrovia con segnali a percorso +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrovia con segnali a percorso s.u. +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrovia con segnali di blocco e pre-segnali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrovia con segnali di blocco e di uscita +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ferrovia con segnali di blocco e combinati +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrovia con segnali di blocco e a percorso +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrovia con segnali di blocco e a percorso s.u. +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrovia con pre-segnali e segnali di uscita +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ferrovia con pre-segnali e segnali combinati +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ferrovia con pre-segnali e segnali a percorso +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrovia con pre-segnali e segnali a percorso s.u. +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ferrovia con segnali di uscita e combinati +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrovia con segnali di uscita e a percorso +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrovia con segnali di uscita e a percorso s.u. +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ferrovia con segnali combinati e a percorso +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ferrovia con segnali combinati e a percorso s.u. +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ferrovia con segnali a percorso e a percorso s.u. +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Deposito Ferrovia STR_LAI_ROAD_DESCRIPTION_ROAD :Strada STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Strada con lampioni diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index c941689f70..d4e2beedfc 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :耕作地 STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :積雪地帯 STR_LAI_CLEAR_DESCRIPTION_DESERT :砂漠 -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} 線路 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} 信号付線路 (閉塞) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} 信号付線路 (入口) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} 信号付線路 (出口) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} 信号付線路 (コンボ) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} 信号付線路 (パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} 信号付線路 (一方通行パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} 信号付線路 (閉塞+入口) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} 信号付線路 (閉塞+出口) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} 信号付線路 (閉塞+コンボ) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} 信号付線路 (閉塞+パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} 信号付線路 (閉塞+一方通行パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} 信号付線路 (入口+出口) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} 信号付線路 (入口+コンボ) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} 信号付線路 (入口+パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} 信号付線路 (入口+一方通行パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} 信号付線路 (出口+コンボ) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} 信号付線路 (出口+パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} 信号付線路 (出口+一方通行パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} 信号付線路 (コンボ+パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} 信号付線路 (コンボ+一方通行パス) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} 信号付線路 (パス+一方通行パス) -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} 列車庫 +STR_LAI_RAIL_DESCRIPTION_TRACK :鉄道 (非電化) 線路 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :鉄道 (非電化) 信号付線路 (閉塞) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :鉄道 (非電化) 信号付線路 (入口) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :鉄道 (非電化) 信号付線路 (出口) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :鉄道 (非電化) 信号付線路 (コンボ) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :鉄道 (非電化) 信号付線路 (パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :鉄道 (非電化) 信号付線路 (一方通行パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :鉄道 (非電化) 信号付線路 (閉塞+入口) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :鉄道 (非電化) 信号付線路 (閉塞+出口) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :鉄道 (非電化) 信号付線路 (閉塞+コンボ) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :鉄道 (非電化) 信号付線路 (閉塞+パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :鉄道 (非電化) 信号付線路 (閉塞+一方通行パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :鉄道 (非電化) 信号付線路 (入口+出口) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :鉄道 (非電化) 信号付線路 (入口+コンボ) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :鉄道 (非電化) 信号付線路 (入口+パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :鉄道 (非電化) 信号付線路 (入口+一方通行パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :鉄道 (非電化) 信号付線路 (出口+コンボ) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :鉄道 (非電化) 信号付線路 (出口+パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :鉄道 (非電化) 信号付線路 (出口+一方通行パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :鉄道 (非電化) 信号付線路 (コンボ+パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :鉄道 (非電化) 信号付線路 (コンボ+一方通行パス) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :鉄道 (非電化) 信号付線路 (パス+一方通行パス) +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :鉄道 (非電化) 列車庫 STR_LAI_ROAD_DESCRIPTION_ROAD :道路 STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :街灯付道路 diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 35a771e090..73b51d21b1 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :들판 STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :눈덮인 땅 STR_LAI_CLEAR_DESCRIPTION_DESERT :사막 -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :일반 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :입구 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :출구 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :복합 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :단방향 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :일반 신호기와 입구 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :일반 신호기와 출구 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :일반 신호기와 복합 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :일반 신호기와 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :일반 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :입구 신호기와 출구 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :입구 신호기와 복합 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :입구 신호기와 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :입구 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :출구 신호기와 복합 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :출구 신호기와 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :출구 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :복합 신호기와 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :복합 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :경로 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로 -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} 차량기지 +STR_LAI_RAIL_DESCRIPTION_TRACK :철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :일반 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :입구 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :출구 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :복합 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :단방향 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :일반 신호기와 입구 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :일반 신호기와 출구 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :일반 신호기와 복합 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :일반 신호기와 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :일반 신호기와 단방향 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :입구 신호기와 출구 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :입구 신호기와 복합 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :입구 신호기와 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :입구 신호기와 단방향 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :출구 신호기와 복합 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :출구 신호기와 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :출구 신호기와 단방향 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :복합 신호기와 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :복합 신호기와 단방향 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :경로 신호기와 단방향 경로 신호기가 설치된 철도 선로 +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :철도 차량기지 STR_LAI_ROAD_DESCRIPTION_ROAD :도로 STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :가로등이 있는 도로 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 1505333ce2..c7b2dac9db 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2803,29 +2803,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Agri STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terra Nivea STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserta -STR_LAI_RAIL_DESCRIPTION_TRACK :Astarium {STRING.gen} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Astarium {STRING.gen} cum signalibus zonalibus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Astarium {STRING.gen} cum signalibus aditus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Astarium {STRING.gen} cum signalibus exitus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Astarium {STRING.gen} cum signalibus compositis -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Astarium {STRING.gen} cum signalibus itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Astarium {STRING.gen} cum signalibus itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Astarium {STRING.gen} cum signalibus zonalibus et aditus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Astarium {STRING.gen} cum signalibus zonalibus et exitus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Astarium {STRING.gen} cum signalibus zonalibus et compositis -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Astarium {STRING.gen} cum signalibus zonalibus et itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Astarium {STRING.gen} cum signalibus zonalibus et itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Astarium {STRING.gen} cum signalibus aditus et exitus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Astarium {STRING.gen} cum signalibus aditus et compositis -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Astarium {STRING.gen} cum signalibus aditus et itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Astarium {STRING.gen} cum signalibus aditus et itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Astarium {STRING.gen} cum signalibus exitus et compositis -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Astarium {STRING.gen} cum signalibus exitus et itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Astarium {STRING.gen} cum signalibus exitus et itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Astarium {STRING.gen} cum signalibus compositis et itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Astarium {STRING.gen} cum signalibus compositis et itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Astarium {STRING.gen} cum signalibus itineris et unius cursus itineris -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Receptaculum {STRING.gen} +STR_LAI_RAIL_DESCRIPTION_TRACK :Astarium Ferrivia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Astarium Ferrivia cum signalibus zonalibus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Astarium Ferrivia cum signalibus aditus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Astarium Ferrivia cum signalibus exitus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Astarium Ferrivia cum signalibus compositis +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Astarium Ferrivia cum signalibus itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Astarium Ferrivia cum signalibus zonalibus et aditus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Astarium Ferrivia cum signalibus zonalibus et exitus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Astarium Ferrivia cum signalibus zonalibus et compositis +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Astarium Ferrivia cum signalibus zonalibus et itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus zonalibus et itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Astarium Ferrivia cum signalibus aditus et exitus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Astarium Ferrivia cum signalibus aditus et compositis +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Astarium Ferrivia cum signalibus aditus et itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus aditus et itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Astarium Ferrivia cum signalibus exitus et compositis +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Astarium Ferrivia cum signalibus exitus et itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus exitus et itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Astarium Ferrivia cum signalibus compositis et itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus compositis et itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus itineris et unius cursus itineris +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Receptaculum Ferrivia STR_LAI_ROAD_DESCRIPTION_ROAD :Via STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Via cum lampadibus diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 323ce383ec..5b89a0091f 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -2542,29 +2542,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Lauki STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Apsnigusi zeme STR_LAI_CLEAR_DESCRIPTION_DESERT :Tuksnesis -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} sliedes -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} ceļš ar bloķēšanas signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} sliedes ar pirmssignālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} sliedes ar izejas signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} sliedes ar kombinētajām signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} sliedes ar ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} sliedes ar vienvirziena ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} sliedes ar bloka un pirmssignālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} sliedes ar bloka un izejas signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} sliedes ar bloka un kombinētajām signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} sliedes ar bloka un ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} sliedes ar bloka un vienvirziena ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} sliedes ar izejas un pirmssignālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} sliedes ar kombinētajām un pirmssignālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} sliedes ar ceļu un pirmssignālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} sliedes ar vienvirziena ceļu un pirmssignālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} sliedes ar izejas un kombinētajām signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} sliedes ar izejas un ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} sliedes ar izejas un vienvirziena ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} sliedes ar kombinētajām un ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} sliedes ar kombinētajām un vienvirziena ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} sliedes ar ceļa un vienvirziena ceļa signālierīcēm -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} vilcienu depo +STR_LAI_RAIL_DESCRIPTION_TRACK :Dzelzceļš sliedes +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Dzelzceļš ceļš ar bloķēšanas signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Dzelzceļš sliedes ar pirmssignālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Dzelzceļš sliedes ar izejas signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Dzelzceļš sliedes ar kombinētajām signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Dzelzceļš sliedes ar ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Dzelzceļš sliedes ar vienvirziena ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Dzelzceļš sliedes ar bloka un pirmssignālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Dzelzceļš sliedes ar bloka un izejas signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Dzelzceļš sliedes ar bloka un kombinētajām signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Dzelzceļš sliedes ar bloka un ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Dzelzceļš sliedes ar bloka un vienvirziena ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Dzelzceļš sliedes ar izejas un pirmssignālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Dzelzceļš sliedes ar kombinētajām un pirmssignālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Dzelzceļš sliedes ar ceļu un pirmssignālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Dzelzceļš sliedes ar vienvirziena ceļu un pirmssignālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Dzelzceļš sliedes ar izejas un kombinētajām signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Dzelzceļš sliedes ar izejas un ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Dzelzceļš sliedes ar izejas un vienvirziena ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Dzelzceļš sliedes ar kombinētajām un ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Dzelzceļš sliedes ar kombinētajām un vienvirziena ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Dzelzceļš sliedes ar ceļa un vienvirziena ceļa signālierīcēm +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Dzelzceļš vilcienu depo STR_LAI_ROAD_DESCRIPTION_ROAD :Ceļš STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Ceļš ar ielu apgaismojumu diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 341978705d..8017930187 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -2820,29 +2820,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Laukai STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Užpustyta žemė STR_LAI_CLEAR_DESCRIPTION_DESERT :Dykuma -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} bėgiai -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} bėgiai su paprastais šviesoforais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} ebgiai su prie signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} bėgiai su išvažiavimo signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} bėgiai su kombinuotais signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} bėgiai su trasos signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} bėgiai su vienpusiais trasos signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} begiai su paprastais ir prie signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} bėgiai su paprastais ir išvažiavimo signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} bėgiai su paprastais ir kombinuotais signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} bėgiai su paprastais ir trasos signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} bėgiai su paprastais ir vienpusiais trasos signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} bėgiai su pre ir išvažiavimo signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} bėgiai su prie ir kombinuotais signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} bėgiai su prie ir trasos signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} bėgiai su prie ir vienpusiais trasos signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} bėgiai su išvažiavimo ir kombinuotais signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} bėgiai su išvažiavimo ir trasos signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} bėgiai su išvažiavimo ir vienpusiais signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} bėgiai su kombinuotais ir trasos signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} bėgiai su kombinuotais ir vienpusiais signalais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} bėgiai su trasos ir vienpusiais signalais -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} traukinių depas +STR_LAI_RAIL_DESCRIPTION_TRACK :Geležinkelis bėgiai +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Geležinkelis bėgiai su paprastais šviesoforais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Geležinkelis ebgiai su prie signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Geležinkelis bėgiai su išvažiavimo signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Geležinkelis bėgiai su kombinuotais signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Geležinkelis bėgiai su trasos signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Geležinkelis bėgiai su vienpusiais trasos signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Geležinkelis begiai su paprastais ir prie signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Geležinkelis bėgiai su paprastais ir išvažiavimo signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Geležinkelis bėgiai su paprastais ir kombinuotais signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Geležinkelis bėgiai su paprastais ir trasos signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Geležinkelis bėgiai su paprastais ir vienpusiais trasos signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Geležinkelis bėgiai su pre ir išvažiavimo signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Geležinkelis bėgiai su prie ir kombinuotais signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Geležinkelis bėgiai su prie ir trasos signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Geležinkelis bėgiai su prie ir vienpusiais trasos signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Geležinkelis bėgiai su išvažiavimo ir kombinuotais signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Geležinkelis bėgiai su išvažiavimo ir trasos signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Geležinkelis bėgiai su išvažiavimo ir vienpusiais signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Geležinkelis bėgiai su kombinuotais ir trasos signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Geležinkelis bėgiai su kombinuotais ir vienpusiais signalais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Geležinkelis bėgiai su trasos ir vienpusiais signalais +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Geležinkelis traukinių depas STR_LAI_ROAD_DESCRIPTION_ROAD :Kelias STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Kelias su žibintais diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 72390e8759..9e06375981 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Felder STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Schnéibedeckt Land STR_LAI_CLEAR_DESCRIPTION_DESERT :Wüst -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} Schinn -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} Schinn mat Blocksignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} Schinn mat Presignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} Schinn mat Ausgangs-Signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} Schinn mat Kombo-Signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} Schinn mat Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} Schinn mat Einbahnsignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} Schinn mat Block- an Presignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} Schinn mat Block- an Ausgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} Schinn mat Block- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} Schinn mat Block- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} Schinn mat Block- a Einbahnsignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} Schinn mat Pre- an Ausgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} Schinn mat Pre- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} Schinn mat Pre- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} Schinn mat Pre- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} Schinn mat Ausgangs- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} Schinn mat Ausgangs- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} Schinn mat Ausgang- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} Schinn mat Kombo- an Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} Schinn mat Kombo- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} Schinn mat Wee- and Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} Zuchschapp +STR_LAI_RAIL_DESCRIPTION_TRACK :Schinnen Schinn +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Schinnen Schinn mat Blocksignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Schinnen Schinn mat Presignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Schinnen Schinn mat Ausgangs-Signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Schinnen Schinn mat Kombo-Signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Schinnen Schinn mat Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Schinnen Schinn mat Einbahnsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Schinnen Schinn mat Block- an Presignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Schinnen Schinn mat Block- an Ausgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Schinnen Schinn mat Block- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Schinnen Schinn mat Block- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Schinnen Schinn mat Block- a Einbahnsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Schinnen Schinn mat Pre- an Ausgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schinnen Schinn mat Pre- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Schinnen Schinn mat Pre- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Schinnen Schinn mat Pre- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Schinnen Schinn mat Ausgangs- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Schinnen Schinn mat Ausgangs- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Schinnen Schinn mat Ausgang- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Schinnen Schinn mat Kombo- an Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Schinnen Schinn mat Kombo- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Schinnen Schinn mat Wee- and Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Schinnen Zuchschapp STR_LAI_ROAD_DESCRIPTION_ROAD :Strooss STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Strooss mat Luuchten diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 60b1dc0d98..7e0740b5da 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2308,29 +2308,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Ladang STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tanah diliputi salji STR_LAI_CLEAR_DESCRIPTION_DESERT :Padang pasir -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} landasan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} landasan dengan isyarat sekatan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} landasan dengan pra-isyarat -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} landasan dengan isyarat keluar -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} landasan dengan isyarat kombo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} landasan dengan isyarat laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} landasan dengan isyarat satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} landasan dengan isyarat sekatan dan pra-isyarat -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} landasan dengan isyarat sekatan dan keluar -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} landasan dengan isyarat sekatan dan kombo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} landasan dengan isyarat sekatan dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} landasan dengan isyarat sekatan dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} landasan dengan isyarat pra- dan keluar -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} landasan dengan isyarat pra- dan kombo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} landasan dengan isyarat pra- dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} landasan dengan isyarat pra- dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} landasan dengan isyarat keluar dan kombo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} landasan dengan isyarat keluar dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} landasan dengan isyarat keluar dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} landasan dengan isyarat kombo dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} landasan dengan isyarat kombo dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} landasan dengan isyarat laluan dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} depoh keretapi +STR_LAI_RAIL_DESCRIPTION_TRACK :Keretapi landasan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Keretapi landasan dengan isyarat sekatan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Keretapi landasan dengan pra-isyarat +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Keretapi landasan dengan isyarat keluar +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Keretapi landasan dengan isyarat kombo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Keretapi landasan dengan isyarat laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Keretapi landasan dengan isyarat satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Keretapi landasan dengan isyarat sekatan dan pra-isyarat +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Keretapi landasan dengan isyarat sekatan dan keluar +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Keretapi landasan dengan isyarat sekatan dan kombo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Keretapi landasan dengan isyarat sekatan dan laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Keretapi landasan dengan isyarat sekatan dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Keretapi landasan dengan isyarat pra- dan keluar +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Keretapi landasan dengan isyarat pra- dan kombo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Keretapi landasan dengan isyarat pra- dan laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Keretapi landasan dengan isyarat pra- dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Keretapi landasan dengan isyarat keluar dan kombo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Keretapi landasan dengan isyarat keluar dan laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Keretapi landasan dengan isyarat keluar dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Keretapi landasan dengan isyarat kombo dan laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Keretapi landasan dengan isyarat kombo dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Keretapi landasan dengan isyarat laluan dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Keretapi depoh keretapi STR_LAI_ROAD_DESCRIPTION_ROAD :Jalanraya STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Jalan raya berlampu diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index eb9fbdfe6c..210b7e9e36 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -2605,29 +2605,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Jorder STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snødekket land STR_LAI_CLEAR_DESCRIPTION_DESERT :Ørken -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING}spor -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING}spor med blokksignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING}spor med forsignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING}spor med utgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING}spor med kombinasjonssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING}spor med avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spor med enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spor med blokk- og forsignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spor med blokk- og utgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spor med blokk- og kombinasjonssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spor med blokk- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spor med blokk- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spor med for- og utgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spor med for- og kombinasjonssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spor med for- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spor med for- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spor med utgangs- og kombinasjonssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spor med utgangs- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spor med utgangs- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spor med kombinasjon- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} spor med kombinasjon- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spor med avanserte- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} togstall +STR_LAI_RAIL_DESCRIPTION_TRACK :Jernbanespor +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Jernbanespor med blokksignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Jernbanespor med forsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Jernbanespor med utgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Jernbanespor med kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Jernbanespor med avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbane spor med enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbane spor med blokk- og forsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Jernbane spor med blokk- og utgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbane spor med blokk- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Jernbane spor med blokk- og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbane spor med blokk- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbane spor med for- og utgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Jernbane spor med for- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Jernbane spor med for- og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Jernbane spor med for- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbane spor med utgangs- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbane spor med utgangs- og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbane spor med utgangs- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbane spor med kombinasjon- og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbane spor med kombinasjon- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbane spor med avanserte- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane togstall STR_LAI_ROAD_DESCRIPTION_ROAD :Vei STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Vei med gatelykter diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 59b12849fd..b018790894 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -2522,29 +2522,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Jorde STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snødekt land STR_LAI_CLEAR_DESCRIPTION_DESERT :Ørken -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spor -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spor med blokksignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spor med startsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spor med sluttsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spor med kombinerte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spor med avanserte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spor med einvegssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spor med blokk- og startsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spor med blokk- og sluttsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spor med blokk- og kombinerte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spor med blokk- og avanserte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spor med blokk- og einvegssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spor med start- og sluttsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spor med start- og kombinerte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spor med start- og avanserte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spor med start- og einvegssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spor med slutt- og kombinerte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spor med slutt- og avanserte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spor med slutt- og einvegssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spor med kombinerte og avanserte signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} spor med kombinerte og einvegssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spor med avanserte og einvegssignal -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} togstall +STR_LAI_RAIL_DESCRIPTION_TRACK :Jernbane spor +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Jernbane spor med blokksignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Jernbane spor med startsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Jernbane spor med sluttsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Jernbane spor med kombinerte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Jernbane spor med avanserte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbane spor med einvegssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbane spor med blokk- og startsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Jernbane spor med blokk- og sluttsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbane spor med blokk- og kombinerte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Jernbane spor med blokk- og avanserte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbane spor med blokk- og einvegssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbane spor med start- og sluttsignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Jernbane spor med start- og kombinerte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Jernbane spor med start- og avanserte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Jernbane spor med start- og einvegssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbane spor med slutt- og kombinerte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbane spor med slutt- og avanserte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbane spor med slutt- og einvegssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbane spor med kombinerte og avanserte signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbane spor med kombinerte og einvegssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbane spor med avanserte og einvegssignal +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane togstall STR_LAI_ROAD_DESCRIPTION_ROAD :Veg STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Veg med gatelykter diff --git a/src/lang/polish.txt b/src/lang/polish.txt index edc48f749c..1e24704f7d 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2981,29 +2981,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Pola STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zaśnieżony teren STR_LAI_CLEAR_DESCRIPTION_DESERT :Pustynia -STR_LAI_RAIL_DESCRIPTION_TRACK :{G=m}{STRING} odcinek -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} tor z semaforam blokowymi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} tor z semaforami wejściowymi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} tor z semaforem wyjściowym -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} tor z semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} tor z semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} tor z jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} tor z semaforami blokowymi i semaforami wejścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} tor z semaforami blokowymi i semaforami wyjścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} tor z semaforami blokowymi i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} tor z semaforami blokowymi i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} tor z semaforami blokowymi i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} tor z semaforami wejścia i wyjścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} tor z semaforami wejścia i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} tor z semaforami wejścia i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} tor z semaforami wejścia i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} tor z semaforami wyjścia i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} tor z semaforami wyjścia i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} tor z semaforami wyjścia i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} tor z semaforami złożonymi (combo) i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} tor z semaforami złożonymi (combo) i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} tor z semaforami trasy i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{G=f}Warsztaty - {STRING} +STR_LAI_RAIL_DESCRIPTION_TRACK :{G=m}Kolej odcinek +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Kolej tor z semaforam blokowymi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Kolej tor z semaforami wejściowymi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Kolej tor z semaforem wyjściowym +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Kolej tor z semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Kolej tor z semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Kolej tor z jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Kolej tor z semaforami blokowymi i semaforami wejścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Kolej tor z semaforami blokowymi i semaforami wyjścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Kolej tor z semaforami blokowymi i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Kolej tor z semaforami blokowymi i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Kolej tor z semaforami blokowymi i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Kolej tor z semaforami wejścia i wyjścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Kolej tor z semaforami wejścia i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Kolej tor z semaforami wejścia i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Kolej tor z semaforami wejścia i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Kolej tor z semaforami wyjścia i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Kolej tor z semaforami wyjścia i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Kolej tor z semaforami wyjścia i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Kolej tor z semaforami złożonymi (combo) i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Kolej tor z semaforami złożonymi (combo) i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Kolej tor z semaforami trasy i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{G=f}Warsztaty - Kolej STR_LAI_ROAD_DESCRIPTION_ROAD :Droga STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Droga z oświetleniem ulicznym diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index c54e0a948e..1b515c4e66 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Neve STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} linha -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} linha com sinais de bloqueio -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} linha com pre-sinais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} linha com sinais de saída -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} linha com sinais combinados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} linha com sinais de caminho -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} linha com sinais de sentido único -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} linha com bloqueio e pré-sinais -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} linha com bloqueio e sinais de saida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} linha com bloqueio e sinais combinados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} linha com bloqueio e sinais de rota -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} linha com bloqueio e sinais de sentido único -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} linha com pré-sinais e sinais de saida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} linha com pré-sinais e sinais combinados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} linha com pré-sinais e sinais de rota -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} linha com pré-sinais e sinais de sentido único -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} linha com sinais de saida e sinais combinados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} linha com sinais de saida e sinais de rota -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} linha com sinais de saida e de sentido único -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} linha com sinais combinados e sinais de rota -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} linha com sinais combinados e sentido unico -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} linha com sinais de rota e de sentido unico -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} depósito de comboios +STR_LAI_RAIL_DESCRIPTION_TRACK :Caminhos-de-ferro linha +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Caminhos-de-ferro linha com sinais de bloqueio +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Caminhos-de-ferro linha com pre-sinais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Caminhos-de-ferro linha com sinais de saída +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Caminhos-de-ferro linha com sinais combinados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Caminhos-de-ferro linha com sinais de caminho +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Caminhos-de-ferro linha com sinais de sentido único +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Caminhos-de-ferro linha com bloqueio e pré-sinais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Caminhos-de-ferro linha com bloqueio e sinais de saida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Caminhos-de-ferro linha com bloqueio e sinais combinados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Caminhos-de-ferro linha com bloqueio e sinais de rota +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Caminhos-de-ferro linha com bloqueio e sinais de sentido único +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Caminhos-de-ferro linha com pré-sinais e sinais de saida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Caminhos-de-ferro linha com pré-sinais e sinais combinados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Caminhos-de-ferro linha com pré-sinais e sinais de rota +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Caminhos-de-ferro linha com pré-sinais e sinais de sentido único +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Caminhos-de-ferro linha com sinais de saida e sinais combinados +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Caminhos-de-ferro linha com sinais de saida e sinais de rota +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Caminhos-de-ferro linha com sinais de saida e de sentido único +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Caminhos-de-ferro linha com sinais combinados e sinais de rota +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Caminhos-de-ferro linha com sinais combinados e sentido unico +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Caminhos-de-ferro linha com sinais de rota e de sentido unico +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Caminhos-de-ferro depósito de comboios STR_LAI_ROAD_DESCRIPTION_ROAD :Estrada STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Estrada com iluminação diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 403bddfc17..9da29ce106 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -2566,29 +2566,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Teren agricol STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Teren înzăpezit STR_LAI_CLEAR_DESCRIPTION_DESERT :Deşert -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} cale ferată -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} cale ferată cu semafoare -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} cale ferată cu presemafoare -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} cale ferată cu semafoare de ieșire -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} cale ferată cu semafoare combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} cale ferată cu semafoare de direcționare -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} cale ferată cu semafoare de direcționare unidirecționale -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} cale ferată cu semafoare și presemafoare -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} cale ferată cu semafoare și semafoare de ieșire -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} cale ferată cu semafoare și semafoare combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} cale ferată cu semafoare și semafoare de direcționare -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} cale ferată cu semafoare și semafoare de direcționare unidirecționale -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} cale ferată cu presemafoare și semafoare de ieșire -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} cale ferată cu presemafoare și semafoare combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} cale ferată cu presemafoare și semafoare de direcționare -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} cale ferată cu presemafoare și semafoare de direcționare unidirecționale -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} cale ferată cu semafoare de ieșire și semafoare combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} cale ferată cu semafoare de ieșire și semafoare direcționale -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} cale ferată cu semafoare de ieșire și semafoare direcționale unidirecționale -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} cale ferată cu semafoare combo și semafoare direcționale -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} cale ferată cu semafoare combo și semafoare direcționale unidirecționale -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} cale ferată cu semafoare direcționale şi semafoare directionale unidirecționale -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} depou trenuri +STR_LAI_RAIL_DESCRIPTION_TRACK :Cale ferată cale ferată +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Cale ferată cale ferată cu semafoare +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Cale ferată cale ferată cu presemafoare +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Cale ferată cale ferată cu semafoare de ieșire +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Cale ferată cale ferată cu semafoare combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Cale ferată cale ferată cu semafoare de direcționare +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Cale ferată cale ferată cu semafoare de direcționare unidirecționale +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Cale ferată cale ferată cu semafoare și presemafoare +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Cale ferată cale ferată cu semafoare și semafoare de ieșire +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Cale ferată cale ferată cu semafoare și semafoare combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Cale ferată cale ferată cu semafoare și semafoare de direcționare +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Cale ferată cale ferată cu semafoare și semafoare de direcționare unidirecționale +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Cale ferată cale ferată cu presemafoare și semafoare de ieșire +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Cale ferată cale ferată cu presemafoare și semafoare combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Cale ferată cale ferată cu presemafoare și semafoare de direcționare +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Cale ferată cale ferată cu presemafoare și semafoare de direcționare unidirecționale +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Cale ferată cale ferată cu semafoare de ieșire și semafoare combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Cale ferată cale ferată cu semafoare de ieșire și semafoare direcționale +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Cale ferată cale ferată cu semafoare de ieșire și semafoare direcționale unidirecționale +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Cale ferată cale ferată cu semafoare combo și semafoare direcționale +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Cale ferată cale ferată cu semafoare combo și semafoare direcționale unidirecționale +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Cale ferată cale ferată cu semafoare direcționale şi semafoare directionale unidirecționale +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Cale ferată depou trenuri STR_LAI_ROAD_DESCRIPTION_ROAD :Şosea STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Stradă iluminată diff --git a/src/lang/russian.txt b/src/lang/russian.txt index c8a6156bef..10ef2f28c8 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2781,29 +2781,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Поля STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Заснеженная земля STR_LAI_CLEAR_DESCRIPTION_DESERT :Пустыня -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} путь -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} путь с сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} путь с входными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} путь с выходными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} путь с комбинированными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} путь с маршрутными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} путь с односторонними маршрутными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} путь с обычными и входными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} путь с обычными и выходными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} путь с обычными и комбиниров. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} путь с обычными и маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} путь с обычными и одностор. маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} путь с входными и выходными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} путь с входными и комбинир. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} путь с входными и маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} путь с входными и одностор. маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} путь с выходными и комбиниров. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} путь с выходными и маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} путь с выходными и односторонн. маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} путь с комбинир. и маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} путь с комбинир. и односторонн. маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} путь с маршрутным и одностор. маршрутным сигналами -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING.n} депо +STR_LAI_RAIL_DESCRIPTION_TRACK :Ж/д путь +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ж/д путь с сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ж/д путь с входными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ж/д путь с выходными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ж/д путь с комбинированными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ж/д путь с маршрутными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ж/д путь с односторонними маршрутными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ж/д путь с обычными и входными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ж/д путь с обычными и выходными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ж/д путь с обычными и комбиниров. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ж/д путь с обычными и маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ж/д путь с обычными и одностор. маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ж/д путь с входными и выходными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ж/д путь с входными и комбинир. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ж/д путь с входными и маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ж/д путь с входными и одностор. маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ж/д путь с выходными и комбиниров. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ж/д путь с выходными и маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ж/д путь с выходными и односторонн. маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ж/д путь с комбинир. и маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ж/д путь с комбинир. и односторонн. маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ж/д путь с маршрутным и одностор. маршрутным сигналами +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ж/д депо STR_LAI_ROAD_DESCRIPTION_ROAD :Дорога STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Дорога с уличным освещением diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 7734db34dd..d4c253e00d 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2796,29 +2796,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Polja STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snegom prekrivena zemlja STR_LAI_CLEAR_DESCRIPTION_DESERT :Pustinja -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} kolosek -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} kolosek sa blok signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} kolosek sa predsignalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} kolosek sa izlaznom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} kolosek sa kombinovanom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} kolosek sa putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} kolosek sa jednosmernom putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} kolosek sa blok i predsignalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} kolosek sa blok i izlaznom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} kolosek sa blok i kombinovanom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} kolosek sa blok i putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} kolosek sa blok i jednosmernom putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} kolosek sa pred i izlaznom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} kolosek sa pred i kombinovanom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} kolosek sa pred i putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} kolosek sa pred i jednosmernom putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} kolosek sa izlaznom i kombinovanom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} kolosek sa izlaznom i putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} kolosek sa izlaznom i jednosmernom putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} kolosek sa kombinovanom i putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} kolosek sa kombinovanom i jednosmernom putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} kolosek sa putnom i jednosmernom putnom signalizacijom -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} železnički depo +STR_LAI_RAIL_DESCRIPTION_TRACK :Železnica kolosek +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železnica kolosek sa blok signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železnica kolosek sa predsignalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železnica kolosek sa izlaznom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železnica kolosek sa kombinovanom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železnica kolosek sa putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železnica kolosek sa jednosmernom putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železnica kolosek sa blok i predsignalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železnica kolosek sa blok i izlaznom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železnica kolosek sa blok i kombinovanom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železnica kolosek sa blok i putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železnica kolosek sa blok i jednosmernom putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železnica kolosek sa pred i izlaznom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železnica kolosek sa pred i kombinovanom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železnica kolosek sa pred i putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železnica kolosek sa pred i jednosmernom putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železnica kolosek sa izlaznom i kombinovanom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železnica kolosek sa izlaznom i putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železnica kolosek sa izlaznom i jednosmernom putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železnica kolosek sa kombinovanom i putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železnica kolosek sa kombinovanom i jednosmernom putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železnica kolosek sa putnom i jednosmernom putnom signalizacijom +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železnica železnički depo STR_LAI_ROAD_DESCRIPTION_ROAD :Put STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Kolovoz sa uličnom rasvetom diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 53157afbfe..4e6f49d799 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :田地 STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :雪地 STR_LAI_CLEAR_DESCRIPTION_DESERT :沙漠 -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} 轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :有通过信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :有入口信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :有出口信号灯的{STRING} 轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :有复合信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :有路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} 有单向路径信号灯的轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :有通过信号灯和入口信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :有通过信号灯和出口信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :有通过信号灯和复合信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :有通过信号灯和路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :有通过信号灯和单向路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :有入口信号灯和出口信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :有入口信号灯和复合信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :有入口信号灯和路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :有入口信号灯和单向路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :有出口信号灯和复合信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :有出口信号灯和路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :有出口信号灯和单向路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :有复合信号灯和路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :有复合信号灯和单向路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :有路径信号灯和单向路径信号灯的{STRING}轨道 -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} 列车车库 +STR_LAI_RAIL_DESCRIPTION_TRACK :铁路 轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :有通过信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :有入口信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :有出口信号灯的铁路 轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :有复合信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :有路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :铁路 有单向路径信号灯的轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :有通过信号灯和入口信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :有通过信号灯和出口信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :有通过信号灯和复合信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :有通过信号灯和路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :有通过信号灯和单向路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :有入口信号灯和出口信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :有入口信号灯和复合信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :有入口信号灯和路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :有入口信号灯和单向路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :有出口信号灯和复合信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :有出口信号灯和路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :有出口信号灯和单向路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :有复合信号灯和路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :有复合信号灯和单向路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :有路径信号灯和单向路径信号灯的铁路轨道 +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :铁路 列车车库 STR_LAI_ROAD_DESCRIPTION_ROAD :公路 STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :带路灯的公路 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index b755e4771b..7245e0e5a8 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -2669,29 +2669,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Polia STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zasnežený terén STR_LAI_CLEAR_DESCRIPTION_DESERT :Púšť -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} trať -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} trať so signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} trať s pre-signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} trať s exit-signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} trať s combo-signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} trať s path signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} trať s jednosmernými signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} trať s block a pre-signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} trať s block a exit-signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} trať s block a combo-signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} trať s BLOCK a PATH signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} trať s block a jednosmernými signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} trať s pre- and exit-signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} trať s pre- a combo-signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} trať s pre- a path signálmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} trať s pred- a jednosmernými semafórmy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} trať s výstupnémi a kombinovanými semafórmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} trať s výstupnými semafórmi a semafórmi cesty -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} trať s výstupnými a jednosmernými semafórmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} trať s kombinovanými semafórmi a semafórmi cesty -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} trať s kombinovanými a jednosmernými semafórmi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} trať so semáfórmi cesty a jednosmernými -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} vlakové depo +STR_LAI_RAIL_DESCRIPTION_TRACK :Železnica trať +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železnica trať so signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železnica trať s pre-signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železnica trať s exit-signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železnica trať s combo-signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železnica trať s path signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železnica trať s jednosmernými signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železnica trať s block a pre-signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železnica trať s block a exit-signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železnica trať s block a combo-signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železnica trať s BLOCK a PATH signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železnica trať s block a jednosmernými signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železnica trať s pre- and exit-signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železnica trať s pre- a combo-signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železnica trať s pre- a path signálmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železnica trať s pred- a jednosmernými semafórmy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železnica trať s výstupnémi a kombinovanými semafórmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železnica trať s výstupnými semafórmi a semafórmi cesty +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železnica trať s výstupnými a jednosmernými semafórmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železnica trať s kombinovanými semafórmi a semafórmi cesty +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železnica trať s kombinovanými a jednosmernými semafórmi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železnica trať so semáfórmi cesty a jednosmernými +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železnica vlakové depo STR_LAI_ROAD_DESCRIPTION_ROAD :Cesta STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Cesta s lampami diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 4160d74fcd..6fac63eb35 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -2754,29 +2754,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Polja STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zasnežen teren STR_LAI_CLEAR_DESCRIPTION_DESERT :Puščava -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} tiri -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING}tiri s signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} tiri s pred-signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} tiri z izhodnimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} tiri s kombiniranimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} tiri s signali steze -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} tiri s signali za enosmerno stezo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} tiri z normalnimi in pred-signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} tiri z normalnimi in izhodnimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} tiri z normalnimi in kombiniranimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} tiri z normalnimi in steznimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} tiri z normalnimi in enosmernimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} tiri s pred in izhodnimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} tiri s pred in kombiniranimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} tiri s pred in steznimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} tiri s pred in enosmernimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} tiri z izhodnimi in kombiniranimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} tiri z izhodnimi in steznimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} tiri z izhodnimi in enosmernimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} tiri s kombiniranimi in steznimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} tiri s kombiniranimi in enosmernimi signali -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} tiri s steznimi in enosmernimi signali -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} železniška garaža +STR_LAI_RAIL_DESCRIPTION_TRACK :Železnica tiri +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železnicatiri s signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železnica tiri s pred-signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železnica tiri z izhodnimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železnica tiri s kombiniranimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železnica tiri s signali steze +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železnica tiri s signali za enosmerno stezo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železnica tiri z normalnimi in pred-signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železnica tiri z normalnimi in izhodnimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železnica tiri z normalnimi in kombiniranimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železnica tiri z normalnimi in steznimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železnica tiri z normalnimi in enosmernimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železnica tiri s pred in izhodnimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železnica tiri s pred in kombiniranimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železnica tiri s pred in steznimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železnica tiri s pred in enosmernimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železnica tiri z izhodnimi in kombiniranimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železnica tiri z izhodnimi in steznimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železnica tiri z izhodnimi in enosmernimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železnica tiri s kombiniranimi in steznimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železnica tiri s kombiniranimi in enosmernimi signali +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železnica tiri s steznimi in enosmernimi signali +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železnica železniška garaža STR_LAI_ROAD_DESCRIPTION_ROAD :Cesta STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Cesta z razsvetljavo diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 78dd86f2ef..3e1bd085d2 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tierra cubierta por nieve STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto -STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de {STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} con señales de bloque -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} con señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} con señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} con señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} con señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} con señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} con señales de bloque y señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} con señales de bloque y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} con señales de bloque y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} con señales de bloque y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} con señales de bloque y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} con señales de entrada y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} con señales de entrada y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} con señales de entrada y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} con señales de entrada y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} con señales de salida y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} con señales de salida y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} con señales de salida y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} con señales combo y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} con señales combo y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} con señales de ruta y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} depósito de tren +STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril con señales de bloque +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrocarril con señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ferrocarril con señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ferrocarril con señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril con señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril con señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ferrocarril con señales de bloque y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrocarril con señales de bloque y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrocarril con señales de bloque y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ferrocarril con señales de entrada y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ferrocarril con señales de entrada y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ferrocarril con señales de salida y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrocarril con señales de salida y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrocarril con señales de salida y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ferrocarril con señales combo y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ferrocarril con señales combo y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ferrocarril con señales de ruta y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril depósito de tren STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera con farolas diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 17d46f0ace..7eb5f0a0cf 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terreno nevado STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto -STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de {STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de {STRING} con señales de bloqueo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de {STRING} con señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de {STRING} con señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de {STRING} con señales de combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de {STRING} con señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de {STRING} con señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de {STRING} con señales de bloqueo y señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de {STRING} con señales de bloqueo y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de {STRING} con señales de bloqueo y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de {STRING} con señales de bloqueo y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de {STRING} con señales de bloqueo y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de {STRING} con señales de entrada y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de {STRING} con señales de entrada y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de {STRING} con señales de entrada y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de {STRING} con señales de entrada y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de {STRING} con señales de salida y señales de combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de {STRING} con señales de salida y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de {STRING} con señales de salida y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de {STRING} con señales de combo y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de {STRING} con señales de combo y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de {STRING} con señales de ruta y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito ({STRING}) +STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de Ferrocarril con señales de bloqueo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de Ferrocarril con señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de Ferrocarril con señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con señales de combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de Ferrocarril con señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de Ferrocarril con señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de Ferrocarril con señales de entrada y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de Ferrocarril con señales de entrada y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de Ferrocarril con señales de entrada y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de Ferrocarril con señales de entrada y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de Ferrocarril con señales de salida y señales de combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de Ferrocarril con señales de salida y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de Ferrocarril con señales de salida y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con señales de combo y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con señales de combo y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con señales de ruta y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito (Ferrocarril) STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera con alumbrado diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 56ed2db467..ba10283262 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fält STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snötäckt mark STR_LAI_CLEAR_DESCRIPTION_DESERT :Öken -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} järnvägsspår -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} järnvägsspår med normal signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} järnvägsspår med försignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} järnvägsspår med utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} järnvägsspår med kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} järnvägsspår med avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} järnvägsspår med avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} järnvägsspår med normal signal och försignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} järnvägsspår med normal signal och utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} järnvägsspår med normal signal och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} järnvägsspår med normal signal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} järnvägsspår med normal signal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} järnvägsspår med för- och utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} järnvägsspår med för- och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} järnvägsspår med försignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} järnvägsspår med försignal och envägs avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} järnvägsspår med utfarts- och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} järnvägsspår med utfartssignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} järnvägsspår med utfartssignal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} järnvägsspår med kombinationssignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} järnvägsspår med kombinationssignal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} järnvägsspår med avancerad signal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} järvägsdepå +STR_LAI_RAIL_DESCRIPTION_TRACK :Järnväg järnvägsspår +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Järnväg järnvägsspår med normal signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Järnväg järnvägsspår med försignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Järnväg järnvägsspår med utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Järnväg järnvägsspår med kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Järnväg järnvägsspår med avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Järnväg järnvägsspår med avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Järnväg järnvägsspår med normal signal och försignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Järnväg järnvägsspår med normal signal och utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Järnväg järnvägsspår med normal signal och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Järnväg järnvägsspår med normal signal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Järnväg järnvägsspår med normal signal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Järnväg järnvägsspår med för- och utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Järnväg järnvägsspår med för- och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Järnväg järnvägsspår med försignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Järnväg järnvägsspår med försignal och envägs avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Järnväg järnvägsspår med utfarts- och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Järnväg järnvägsspår med utfartssignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Järnväg järnvägsspår med utfartssignal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Järnväg järnvägsspår med kombinationssignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Järnväg järnvägsspår med kombinationssignal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Järnväg järnvägsspår med avancerad signal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Järnväg järvägsdepå STR_LAI_ROAD_DESCRIPTION_ROAD :Väg STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Väg med gatubelysning diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index c8275e04de..14885c8fe9 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2292,29 +2292,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :வயல்வ STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :பனி-படர்ந்த நிலம் STR_LAI_CLEAR_DESCRIPTION_DESERT :பாலைவனம் -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} தடம் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} தடம் கட்ட சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} தடம் முன் சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} தடம் வெளியேறு சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} தடம் இணைந்த சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} தடம் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} தடம் ஒருவழிப் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} தடம் கட்டம் மற்றும் முன் சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} தடம் கட்டம் மற்றும் வெளியேறு சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} தடம் கட்டம் மற்றும் இணைந்த சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} தடம் கட்டம் மற்றும் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} தடம் கட்டம் மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} தடம் முன் மற்றும் வெளியேறு சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} தடம் முன் மற்றும் இணைந்த சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} தடம் முன் மற்றும் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} தடம் முன் மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} தடம் வெளியேறு மற்றும் இணைந்த சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} தடம் வெளியேறு மற்றும் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} தடம் வெளியேறு மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} தடம் இணைந்த மற்றும் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} தடம் இணைந்த மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} தடம் பாதை மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} இரயில் பணிமனை +STR_LAI_RAIL_DESCRIPTION_TRACK :இரயில்வே தடம் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :இரயில்வே தடம் கட்ட சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :இரயில்வே தடம் முன் சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :இரயில்வே தடம் வெளியேறு சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :இரயில்வே தடம் இணைந்த சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :இரயில்வே தடம் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :இரயில்வே தடம் ஒருவழிப் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :இரயில்வே தடம் கட்டம் மற்றும் முன் சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :இரயில்வே தடம் கட்டம் மற்றும் வெளியேறு சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :இரயில்வே தடம் கட்டம் மற்றும் இணைந்த சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :இரயில்வே தடம் கட்டம் மற்றும் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :இரயில்வே தடம் கட்டம் மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :இரயில்வே தடம் முன் மற்றும் வெளியேறு சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :இரயில்வே தடம் முன் மற்றும் இணைந்த சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :இரயில்வே தடம் முன் மற்றும் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :இரயில்வே தடம் முன் மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :இரயில்வே தடம் வெளியேறு மற்றும் இணைந்த சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :இரயில்வே தடம் வெளியேறு மற்றும் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :இரயில்வே தடம் வெளியேறு மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :இரயில்வே தடம் இணைந்த மற்றும் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :இரயில்வே தடம் இணைந்த மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :இரயில்வே தடம் பாதை மற்றும் ஒருவழிப் பாதை சிக்னல்களுடன் +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :இரயில்வே இரயில் பணிமனை STR_LAI_ROAD_DESCRIPTION_ROAD :சாலை STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :தெரு விளக்குகளுடன் சாலை diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 47c0208292..5de52200b7 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -2549,29 +2549,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :ทุ่งห STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :พื้นที่หิมะปกคลุม STR_LAI_CLEAR_DESCRIPTION_DESERT :ทะเลทราย -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} ราง -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING}ทางรถไฟกับ Block Signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING}ทางรถไฟกับ Pre-Signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING}ทางรถไฟกับ Exit-Signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING}ทางรถไฟกับ Combo-Signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING}ทางรถไฟกับ Path Signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING}ทางรถไฟกับ Path Signal แบบเดินทางเดียว -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING}ทางรถไฟกับ Block และ Pre-Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING}ทางรถไฟกับ Block และ Exit-Signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING}ทางรถไฟกับ Block และ Combo-Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING}ทางรถไฟกับ Block และ Path Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING}ทางรถไฟกับ Block และ Path Signals แบบเดินรถทางเดียว -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING}ทางรถไฟกับ Pre- และ Exit-Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING}ทางรถไฟกับ Pre- และ Combo-Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING}ทางรถไฟกับ Pre- และ Path Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING}ทางรถไฟและ Pre- และ Path Signals แบบเดินรถทางเดียว -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING}ทางรถไฟกับ Exit- และ Combo-Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING}ทางรถไฟกับ Exit- และ Path Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING}ทางรถไฟและ Exit- และ Path Signals แบบเดินรถทางเดียว -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING}ทางรถไฟและ Combo- และ Path Signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING}ทางรถไฟและ Combo- และ Path Signals แบบเดินรถทางเดียว -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING}ทางรถไฟกับ Path และ Path Signals แบบเดินรถทางเดียว -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} โรงซ่อมบำรุงรถไฟ +STR_LAI_RAIL_DESCRIPTION_TRACK :รางรถไฟ ราง +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :รางรถไฟทางรถไฟกับ Block Signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :รางรถไฟทางรถไฟกับ Pre-Signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :รางรถไฟทางรถไฟกับ Exit-Signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :รางรถไฟทางรถไฟกับ Combo-Signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :รางรถไฟทางรถไฟกับ Path Signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :รางรถไฟทางรถไฟกับ Path Signal แบบเดินทางเดียว +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :รางรถไฟทางรถไฟกับ Block และ Pre-Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :รางรถไฟทางรถไฟกับ Block และ Exit-Signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :รางรถไฟทางรถไฟกับ Block และ Combo-Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :รางรถไฟทางรถไฟกับ Block และ Path Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :รางรถไฟทางรถไฟกับ Block และ Path Signals แบบเดินรถทางเดียว +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :รางรถไฟทางรถไฟกับ Pre- และ Exit-Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :รางรถไฟทางรถไฟกับ Pre- และ Combo-Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :รางรถไฟทางรถไฟกับ Pre- และ Path Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :รางรถไฟทางรถไฟและ Pre- และ Path Signals แบบเดินรถทางเดียว +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :รางรถไฟทางรถไฟกับ Exit- และ Combo-Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :รางรถไฟทางรถไฟกับ Exit- และ Path Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :รางรถไฟทางรถไฟและ Exit- และ Path Signals แบบเดินรถทางเดียว +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :รางรถไฟทางรถไฟและ Combo- และ Path Signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :รางรถไฟทางรถไฟและ Combo- และ Path Signals แบบเดินรถทางเดียว +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :รางรถไฟทางรถไฟกับ Path และ Path Signals แบบเดินรถทางเดียว +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :รางรถไฟ โรงซ่อมบำรุงรถไฟ STR_LAI_ROAD_DESCRIPTION_ROAD :ถนน STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :ถนนพร้อมไฟถนน diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index d720830dde..3985ee3206 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :田地 STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :覆雪地 STR_LAI_CLEAR_DESCRIPTION_DESERT :沙漠 -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} 鐵軌 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :設有閉塞號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :設有預警號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :設有出口號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :設有預警-出口複合號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :設有路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :設有單向路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :設有閉塞與預警號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :設有閉塞與出口號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :設有閉塞與複合號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :設有閉塞與路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :設有閉塞與單向路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :分別設有預警與出口號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :分別設有預警與複合號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :設有預警與路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :設有預警與單向路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :分別設有出口與複合號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :設有出口與路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :設有出口與單向路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :設有複合與路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :設有複合與單向路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :分別設有一般路徑與單向路徑號誌的{STRING}軌道 -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING}機廠 +STR_LAI_RAIL_DESCRIPTION_TRACK :鐵路 鐵軌 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :設有閉塞號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :設有預警號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :設有出口號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :設有預警-出口複合號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :設有路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :設有單向路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :設有閉塞與預警號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :設有閉塞與出口號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :設有閉塞與複合號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :設有閉塞與路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :設有閉塞與單向路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :分別設有預警與出口號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :分別設有預警與複合號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :設有預警與路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :設有預警與單向路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :分別設有出口與複合號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :設有出口與路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :設有出口與單向路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :設有複合與路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :設有複合與單向路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :分別設有一般路徑與單向路徑號誌的鐵路軌道 +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :鐵路機廠 STR_LAI_ROAD_DESCRIPTION_ROAD :公路 STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :有路燈的公路 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 11a9a66216..09e8f83c10 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Mera STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Karlı arazi STR_LAI_CLEAR_DESCRIPTION_DESERT :Çöl -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} blok sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} ön sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} blok ve ön sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} blok ve çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} blok ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} blok ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} blok ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} ön ve çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} ön ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} ön ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} ön ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} çıkış ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} çıkış ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} çıkış ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} karışık ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} karışık ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} yol ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} tren garajı +STR_LAI_RAIL_DESCRIPTION_TRACK :Demiryolu ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Demiryolu blok sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Demiryolu ön sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Demiryolu çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Demiryolu karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Demiryolu yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Demiryolu tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Demiryolu blok ve ön sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Demiryolu blok ve çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Demiryolu blok ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Demiryolu blok ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Demiryolu blok ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Demiryolu ön ve çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Demiryolu ön ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Demiryolu ön ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Demiryolu ön ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Demiryolu çıkış ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Demiryolu çıkış ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Demiryolu çıkış ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Demiryolu karışık ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Demiryolu karışık ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Demiryolu yol ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Demiryolu tren garajı STR_LAI_ROAD_DESCRIPTION_ROAD :Yol STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Sokak lambalı yol diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 2b8f879f5d..5a49f84566 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -2732,29 +2732,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Поле STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Засніжена земля STR_LAI_CLEAR_DESCRIPTION_DESERT :Пустеля -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} з блок-сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} з пресигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} з вихідними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} з комбосигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} з маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} з односторонніми маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} з блок-сигналами і пресигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} з блок-сигналами і вихідними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} з блок-сигналами і комбосигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} з блок-сигналами та маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} з блок-сигналами та одност. маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} з пресигналами і вихідними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} з пресигналами і комбосигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} з пресигналами і маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} з пресигналами і одност. маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} з вихідними сигналами та комбосигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} з вихідними та маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} з вихідними та одност. маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} з комбосигналами і маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} з комбосигналами та одност. маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} з маршрутними та одност. маршрутними сигналами -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} залізничне депо +STR_LAI_RAIL_DESCRIPTION_TRACK :Звичайна колія +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Звичайна колія з блок-сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Звичайна колія з пресигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Звичайна колія з вихідними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Звичайна колія з комбосигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Звичайна колія з маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Звичайна колія з односторонніми маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Звичайна колія з блок-сигналами і пресигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Звичайна колія з блок-сигналами і вихідними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Звичайна колія з блок-сигналами і комбосигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Звичайна колія з блок-сигналами та маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Звичайна колія з блок-сигналами та одност. маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Звичайна колія з пресигналами і вихідними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Звичайна колія з пресигналами і комбосигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Звичайна колія з пресигналами і маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Звичайна колія з пресигналами і одност. маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Звичайна колія з вихідними сигналами та комбосигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Звичайна колія з вихідними та маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Звичайна колія з вихідними та одност. маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Звичайна колія з комбосигналами і маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Звичайна колія з комбосигналами та одност. маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Звичайна колія з маршрутними та одност. маршрутними сигналами +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Звичайна колія залізничне депо STR_LAI_ROAD_DESCRIPTION_ROAD :Дорога STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Дорога з вуличними ліхтарями diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 7f077e244b..cd9e18ad37 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2389,29 +2389,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fjilden STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snie STR_LAI_CLEAR_DESCRIPTION_DESERT :Woastine -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spoarbaan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spoarbaan mei blokseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spoarbaan mei foar-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spoarbaan mei útgong-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spoarbaan mei kombi-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spoarbaan mei paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spoarbaan mei ienrjochtings paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spoarbaan mei blok- en foar-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spoarbaan mei blok- en útgong-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spoarbaan mei blok- en kombi-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spoarbaan mei blok- en paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spoarbaan mei blok- en ienrjochtings paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spoarbaan mei foar- en útgong-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spoarbaan mei foar- en kombi-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spoarbaan mei foar- en paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spoarbaan mei foar en ienrjochtings paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spoarbaan mei útgong- en kombi-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spoarbaan mei útgong- en paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spoarbaan mei útgong en ienrjochtings paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spoarbaan mei kombi- en paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} spoarbaan mei kombi- en ienrjochtings paadseinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spoarbaan mei paad- en ienrjochtings paadseinen -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} treindepot +STR_LAI_RAIL_DESCRIPTION_TRACK :Spoarwei spoarbaan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Spoarwei spoarbaan mei blokseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Spoarwei spoarbaan mei foar-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Spoarwei spoarbaan mei útgong-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Spoarwei spoarbaan mei kombi-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Spoarwei spoarbaan mei paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Spoarwei spoarbaan mei ienrjochtings paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Spoarwei spoarbaan mei blok- en foar-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Spoarwei spoarbaan mei blok- en útgong-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Spoarwei spoarbaan mei blok- en kombi-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Spoarwei spoarbaan mei blok- en paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Spoarwei spoarbaan mei blok- en ienrjochtings paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Spoarwei spoarbaan mei foar- en útgong-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Spoarwei spoarbaan mei foar- en kombi-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Spoarwei spoarbaan mei foar- en paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Spoarwei spoarbaan mei foar en ienrjochtings paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Spoarwei spoarbaan mei útgong- en kombi-seinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoarwei spoarbaan mei útgong- en paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Spoarwei spoarbaan mei útgong en ienrjochtings paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Spoarwei spoarbaan mei kombi- en paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Spoarwei spoarbaan mei kombi- en ienrjochtings paadseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Spoarwei spoarbaan mei paad- en ienrjochtings paadseinen +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Spoarwei treindepot STR_LAI_ROAD_DESCRIPTION_ROAD :Wei STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Wei mei strjitteljochten diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 6e5335f7d1..f70fdc53ce 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2303,29 +2303,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :زمین ها STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :زمین پوشیده از برف STR_LAI_CLEAR_DESCRIPTION_DESERT :صحرا -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} ریل -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} ریل با نشانگر توقف -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} ریل با پیش نشانگر -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} ریل با نشانگر خروج -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} ریل با نشانگر چندگانه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} ریل با نشانگر مسیر -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} ریل با نشانگر مسیر یکطرفه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} ریل با نشانگرهای توقف و پیش نشانگر -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} ریل با نشانگرهای توقف و خروج -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} ریل با نشانگرهای توقف و چندگانه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} ریل با نشانگرهای توقف و مسیر -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} ریل با نشانگرهای توقف و مسیر یکطرفه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} ریل با پیش نشانگر و نشانگرخروج -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} ریل با پیش نشانگر و نشانگرچندگانه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} ریل با پیش نشانگر و نشانگز مسیر -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} ریل با پیش نشانگر و نشانگر مسیر یکطرفه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} ریل با نشانگرهای خروج و چندگانه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} ریل با نشانگرهای خروج و مسیر -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} ریل با نشانگرهای خروج و مسیر یکطرفه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} ریل با نشانگرهای چندگانه و مسیر -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} ریل با نشانگرهای چندگانه و مسیر یکطرفه -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} ریل با نشانگرهای مسیر و مسیر یکطرفه -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} گاراژ قطار +STR_LAI_RAIL_DESCRIPTION_TRACK :راه‌آهن ریل +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :راه‌آهن ریل با نشانگر توقف +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :راه‌آهن ریل با پیش نشانگر +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :راه‌آهن ریل با نشانگر خروج +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :راه‌آهن ریل با نشانگر چندگانه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :راه‌آهن ریل با نشانگر مسیر +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :راه‌آهن ریل با نشانگر مسیر یکطرفه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :راه‌آهن ریل با نشانگرهای توقف و پیش نشانگر +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :راه‌آهن ریل با نشانگرهای توقف و خروج +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :راه‌آهن ریل با نشانگرهای توقف و چندگانه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :راه‌آهن ریل با نشانگرهای توقف و مسیر +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :راه‌آهن ریل با نشانگرهای توقف و مسیر یکطرفه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :راه‌آهن ریل با پیش نشانگر و نشانگرخروج +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :راه‌آهن ریل با پیش نشانگر و نشانگرچندگانه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :راه‌آهن ریل با پیش نشانگر و نشانگز مسیر +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :راه‌آهن ریل با پیش نشانگر و نشانگر مسیر یکطرفه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :راه‌آهن ریل با نشانگرهای خروج و چندگانه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :راه‌آهن ریل با نشانگرهای خروج و مسیر +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :راه‌آهن ریل با نشانگرهای خروج و مسیر یکطرفه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :راه‌آهن ریل با نشانگرهای چندگانه و مسیر +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :راه‌آهن ریل با نشانگرهای چندگانه و مسیر یکطرفه +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :راه‌آهن ریل با نشانگرهای مسیر و مسیر یکطرفه +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :راه‌آهن گاراژ قطار STR_LAI_ROAD_DESCRIPTION_ROAD :جاده STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :جاده با چراغ راهنمایی رانندگی diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 20e48aefff..ecd554c42c 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Cánh đồng STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Đất tuyết phủ STR_LAI_CLEAR_DESCRIPTION_DESERT :Hoang mạc -STR_LAI_RAIL_DESCRIPTION_TRACK :Đường ray {STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Đường ray {STRING} với đèn hiệu khóa -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Đường ray {STRING} với đèn tín hiệu báo trước -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Đường ray {STRING} với đèn tín hiệu cửa thoát -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Đường ray {STRING} với đèn tín hiệu kết hợp -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Đường ray {STRING} với đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Đường ray {STRING} với đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Đường ray {STRING} với đèn hiệu khóa và đèn tín hiệu báo trước -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Đường ray {STRING} với đèn hiệu khóa và đèn tín hiệu cửa thoát -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Đường ray {STRING} với đèn hiệu khóa và đèn tín hiệu kết hợp -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Đường ray {STRING} với đèn hiệu khóa và đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Đường ray {STRING} với đèn hiệu khóa và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Đường ray {STRING} với đèn tín hiệu báo trước và đèn tín hiệu cửa thoát -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Đường ray {STRING} với đèn tín hiệu báo trước và đèn tín hiệu kết hợp -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Đường ray {STRING} với đèn tín hiệu báo trước và đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Đường ray {STRING} với đèn tín hiệu báo trước và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Đường ray {STRING} với đèn tín hiệu cửa thoát và đèn tín hiệu kết hợp -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Đường ray {STRING} với đèn tín hiệu cửa thoát và đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Đường ray {STRING} với đèn tín hiệu cửa thoát và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Đường ray {STRING} với đèn tín hiệu kết hợp và đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Đường ray {STRING} với đèn tín hiệu kết hợp và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Đường ray {STRING} với đèn dẫn đường và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Xưởng tàu hỏa {STRING} +STR_LAI_RAIL_DESCRIPTION_TRACK :Đường ray Đường ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Đường ray Đường ray với đèn hiệu khóa +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Đường ray Đường ray với đèn tín hiệu cửa thoát +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Đường ray Đường ray với đèn tín hiệu kết hợp +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Đường ray Đường ray với đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Đường ray Đường ray với đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn tín hiệu báo trước +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn tín hiệu cửa thoát +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn tín hiệu kết hợp +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước và đèn tín hiệu cửa thoát +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước và đèn tín hiệu kết hợp +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước và đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Đường ray Đường ray với đèn tín hiệu cửa thoát và đèn tín hiệu kết hợp +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Đường ray Đường ray với đèn tín hiệu cửa thoát và đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Đường ray Đường ray với đèn tín hiệu cửa thoát và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Đường ray Đường ray với đèn tín hiệu kết hợp và đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Đường ray Đường ray với đèn tín hiệu kết hợp và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Đường ray Đường ray với đèn dẫn đường và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Xưởng tàu hỏa Đường ray STR_LAI_ROAD_DESCRIPTION_ROAD :Đường bộ STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Đường phố có đèn diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index d322dcf76e..fd1fc5923f 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Caeau STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tir ag eira STR_LAI_CLEAR_DESCRIPTION_DESERT :Anialdir -STR_LAI_RAIL_DESCRIPTION_TRACK :Cledrau {STRING} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Cledrau {STRING} gyda signalau bloc -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Cledrau {STRING} gyda rhagsignalau -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Cledrau {STRING} gyda signalau gadael -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Cledrau {STRING} gyda signalau cyfun -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Cledrau {STRING} gyda signalau llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Cledrau {STRING} gyda signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Cledrau {STRING} gyda signalau bloc a rhagsignalau -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Cledrau {STRING} gyda signalau bloc a signalau gadael -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Cledrau {STRING} gyda signalau bloc a signalau cyfun -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Cledrau {STRING} gyda signalau bloc a signalau llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Cledrau {STRING} gyda signalau bloc a signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Cledrau {STRING} gyda rhagsignalau a signalau gadael -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Cledrau {STRING} gyda rhagsignalau a signalau cyfun -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Cledrau {STRING} gyda rhagsignalau a signalau llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Cledrau {STRING} gyda rhag-signalau a signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Cledrau {STRING} gyda signalau gadael a signalau cyfun -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Cledrau {STRING} gyda signalau gadael a signalau llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Cledrau {STRING} gyda signalau gadael a signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Cledrau {STRING} gyda signalau cyfun a llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Cledrau {STRING} gyda signalau cyfun a signalau llwybr unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Cledrau {STRING} gyda signalau llwybro a signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depo trên {STRING} +STR_LAI_RAIL_DESCRIPTION_TRACK :Cledrau Rheilffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Cledrau Rheilffordd gyda signalau bloc +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Cledrau Rheilffordd gyda rhagsignalau +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Cledrau Rheilffordd gyda signalau gadael +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Cledrau Rheilffordd gyda signalau cyfun +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Cledrau Rheilffordd gyda signalau llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Cledrau Rheilffordd gyda signalau bloc a rhagsignalau +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Cledrau Rheilffordd gyda signalau bloc a signalau gadael +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Cledrau Rheilffordd gyda signalau bloc a signalau cyfun +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Cledrau Rheilffordd gyda signalau bloc a signalau llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau bloc a signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Cledrau Rheilffordd gyda rhagsignalau a signalau gadael +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Cledrau Rheilffordd gyda rhagsignalau a signalau cyfun +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Cledrau Rheilffordd gyda rhagsignalau a signalau llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Cledrau Rheilffordd gyda rhag-signalau a signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Cledrau Rheilffordd gyda signalau gadael a signalau cyfun +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Cledrau Rheilffordd gyda signalau gadael a signalau llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau gadael a signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Cledrau Rheilffordd gyda signalau cyfun a llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau cyfun a signalau llwybr unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau llwybro a signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depo trên Rheilffordd STR_LAI_ROAD_DESCRIPTION_ROAD :Ffordd STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Ffordd gyda goleuadau stryd From 4753097c3db314c5efff6032b8acc380441a4901 Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 9 Dec 2016 21:27:22 +0000 Subject: [PATCH 180/417] (svn r27686) -Change: List railtype of rail tiles explicitly in the tile info window. --- src/lang/english.txt | 47 ++++++++++++++++++++-------------------- src/misc_gui.cpp | 8 +++++++ src/rail_cmd.cpp | 2 +- src/road_cmd.cpp | 1 + src/station_cmd.cpp | 1 + src/tile_cmd.h | 1 + src/tunnelbridge_cmd.cpp | 1 + 7 files changed, 37 insertions(+), 24 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 508bfbb22c..0b8406e24e 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2589,6 +2589,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Airport STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{RAW_STRING} 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_RAIL_SPEED_LIMIT :{BLACK}Rail speed limit: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Road speed limit: {LTBLUE}{VELOCITY} @@ -2601,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fields STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snow-covered land STR_LAI_CLEAR_DESCRIPTION_DESERT :Desert -STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} track -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} track with block signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} track with pre-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} track with exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} track with combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} track with path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} track with one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} track with block and pre-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} track with block and exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} track with block and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} track with block and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} track with block and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} track with pre- and exit-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} track with pre- and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} track with pre- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} track with pre- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} track with exit- and combo-signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} track with exit- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} track with exit- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} track with combo- and path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} track with combo- and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} track with path and one-way path signals -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} train depot +STR_LAI_RAIL_DESCRIPTION_TRACK :Railway track +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Railway track with block signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Railway track with pre-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Railway track with exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Railway track with combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Railway track with path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Railway track with one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Railway track with block and pre-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Railway track with block and exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Railway track with block and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Railway track with block and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Railway track with block and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Railway track with pre- and exit-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Railway track with pre- and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Railway track with pre- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Railway track with pre- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Railway track with exit- and combo-signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Railway track with exit- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Railway track with exit- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Railway track with combo- and path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Railway track with combo- and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Railway track with path and one-way path signals +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Railway train depot STR_LAI_ROAD_DESCRIPTION_ROAD :Road STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Road with street lights diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index b751407e22..2d3871ffbd 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -162,6 +162,7 @@ public: td.airport_class = STR_NULL; td.airport_name = STR_NULL; td.airport_tile_name = STR_NULL; + td.railtype = STR_NULL; td.rail_speed = 0; td.road_speed = 0; @@ -272,6 +273,13 @@ public: line_nr++; } + /* Rail type name */ + if (td.railtype != STR_NULL) { + SetDParam(0, td.railtype); + GetString(this->landinfo_data[line_nr], STR_LANG_AREA_INFORMATION_RAIL_TYPE, lastof(this->landinfo_data[line_nr])); + line_nr++; + } + /* Rail speed limit */ if (td.rail_speed != 0) { SetDParam(0, td.rail_speed); diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index eda02481c5..d6c9194deb 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -2720,8 +2720,8 @@ static void GetTileDesc_Track(TileIndex tile, TileDesc *td) { const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile)); td->rail_speed = rti->max_speed; + td->railtype = rti->strings.name; td->owner[0] = GetTileOwner(tile); - SetDParamX(td->dparam, 0, rti->strings.name); switch (GetRailTileType(tile)) { case RAIL_TILE_NORMAL: td->str = STR_LAI_RAIL_DESCRIPTION_TRACK; diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index ddd8bd0e9b..6482a14b19 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1684,6 +1684,7 @@ static void GetTileDesc_Road(TileIndex tile, TileDesc *td) if (HasBit(rts, ROADTYPE_TRAM)) tram_owner = GetRoadOwner(tile, ROADTYPE_TRAM); const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile)); + td->railtype = rti->strings.name; td->rail_speed = rti->max_speed; break; diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 65be42d858..610cf7216a 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2995,6 +2995,7 @@ static void GetTileDesc_Station(TileIndex tile, TileDesc *td) const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile)); td->rail_speed = rti->max_speed; + td->railtype = rti->strings.name; } if (IsAirport(tile)) { diff --git a/src/tile_cmd.h b/src/tile_cmd.h index 966694bfb9..6b8d6c69f4 100644 --- a/src/tile_cmd.h +++ b/src/tile_cmd.h @@ -62,6 +62,7 @@ struct TileDesc { StringID airport_tile_name; ///< Name of the airport tile const char *grf; ///< newGRF used for the tile contents uint64 dparam[2]; ///< Parameters of the \a str string + StringID railtype; ///< Type of rail on the tile. uint16 rail_speed; ///< Speed limit of rail (bridges and track) uint16 road_speed; ///< Speed limit of road (bridges) }; diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 677cf99752..9ba9b26e31 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -1612,6 +1612,7 @@ static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td) if (tt == TRANSPORT_RAIL) { const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile)); td->rail_speed = rti->max_speed; + td->railtype = rti->strings.name; if (!IsTunnel(tile)) { uint16 spd = GetBridgeSpec(GetBridgeType(tile))->speed; From 00b422712e28b495da0dbfd0254912f78aed6153 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 10 Dec 2016 13:26:29 +0000 Subject: [PATCH 181/417] (svn r27687) -Fix: RailtypeInfo::alternate_labels leaked when reloading NewGRF. (adf88) --- src/rail.h | 3 ++- src/rail_cmd.cpp | 15 +++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/rail.h b/src/rail.h index 320d24a9a0..1bc403d7fd 100644 --- a/src/rail.h +++ b/src/rail.h @@ -113,7 +113,8 @@ typedef SmallVector RailTypeLabelList; /** * This struct contains all the info that is needed to draw and construct tracks. */ -struct RailtypeInfo { +class RailtypeInfo { +public: /** * Struct containing the main sprites. @note not all sprites are listed, but only * the ones used directly in the code diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index d6c9194deb..8348d7da97 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -47,8 +47,6 @@ RailtypeInfo _railtypes[RAILTYPE_END]; RailType _sorted_railtypes[RAILTYPE_END]; uint8 _sorted_railtypes_size; -assert_compile(sizeof(_original_railtypes) <= sizeof(_railtypes)); - /** Enum holding the signal offset in the sprite sheet according to the side it is representing. */ enum SignalOffsets { SIGNAL_TO_SOUTHWEST, @@ -66,8 +64,11 @@ enum SignalOffsets { */ void ResetRailTypes() { - memset(_railtypes, 0, sizeof(_railtypes)); - memcpy(_railtypes, _original_railtypes, sizeof(_original_railtypes)); + assert_compile(lengthof(_original_railtypes) <= lengthof(_railtypes)); + + uint i = 0; + for (; i < lengthof(_original_railtypes); i++) _railtypes[i] = _original_railtypes[i]; + for (; i < lengthof(_railtypes); i++) _railtypes[i] = RailtypeInfo(); // zero-init } void ResolveRailTypeGUISprites(RailtypeInfo *rti) @@ -151,11 +152,9 @@ RailType AllocateRailType(RailTypeLabel label) if (rti->label == 0) { /* Set up new rail type */ - memcpy(rti, &_railtypes[RAILTYPE_RAIL], sizeof(*rti)); + *rti = _railtypes[RAILTYPE_RAIL]; rti->label = label; - /* Clear alternate label list. Can't use Reset() here as that would free - * the data pointer of RAILTYPE_RAIL and not our new rail type. */ - new (&rti->alternate_labels) RailTypeLabelList; + rti->alternate_labels.Clear(); /* Make us compatible with ourself. */ rti->powered_railtypes = (RailTypes)(1 << rt); From 0360e61daee62ce23922d55559fb8d53e68f70f8 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 10 Dec 2016 13:28:47 +0000 Subject: [PATCH 182/417] (svn r27688) -Fix-ish: Initialise new railtypes with the original railtype data, though strictly NewGRF could only have modified 'label' and 'alternate_labels' at the time AllocateRailType is called, which are reset anyway. --- src/rail_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 8348d7da97..511f5abc73 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -152,7 +152,7 @@ RailType AllocateRailType(RailTypeLabel label) if (rti->label == 0) { /* Set up new rail type */ - *rti = _railtypes[RAILTYPE_RAIL]; + *rti = _original_railtypes[RAILTYPE_RAIL]; rti->label = label; rti->alternate_labels.Clear(); From 1db921bedbd93cb8c8a8092674749b2ccbb21ba1 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 10 Dec 2016 14:33:58 +0000 Subject: [PATCH 183/417] (svn r27689) -Fix: MSVC warnings. --- src/aircraft_gui.cpp | 2 +- src/roadveh_gui.cpp | 2 +- src/train_gui.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/aircraft_gui.cpp b/src/aircraft_gui.cpp index 20fca9fc5d..6693b1f8ad 100644 --- a/src/aircraft_gui.cpp +++ b/src/aircraft_gui.cpp @@ -98,7 +98,7 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s int heli_offs = 0; PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); - seq.Draw(x, y + y_offs, pal, v->vehstatus & VS_CRASHED); + seq.Draw(x, y + y_offs, pal, (v->vehstatus & VS_CRASHED) != 0); if (helicopter) { const Aircraft *a = Aircraft::From(v); VehicleSpriteSeq rotor_seq; diff --git a/src/roadveh_gui.cpp b/src/roadveh_gui.cpp index c446db5109..63e0549582 100644 --- a/src/roadveh_gui.cpp +++ b/src/roadveh_gui.cpp @@ -151,7 +151,7 @@ void DrawRoadVehImage(const Vehicle *v, int left, int right, int y, VehicleID se PaletteID pal = (u->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(u); VehicleSpriteSeq seq; u->GetImage(dir, image_type, &seq); - seq.Draw(px + (rtl ? -offset.x : offset.x), ScaleGUITrad(6) + offset.y, pal, u->vehstatus & VS_CRASHED); + seq.Draw(px + (rtl ? -offset.x : offset.x), ScaleGUITrad(6) + offset.y, pal, (u->vehstatus & VS_CRASHED) != 0); } px += rtl ? -width : width; diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 513f57fbba..4724fb98ab 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -126,7 +126,7 @@ void DrawTrainImage(const Train *v, int left, int right, int y, VehicleID select PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); VehicleSpriteSeq seq; v->GetImage(dir, image_type, &seq); - seq.Draw(px + (rtl ? -offset.x : offset.x), height / 2 + offset.y, pal, v->vehstatus & VS_CRASHED); + seq.Draw(px + (rtl ? -offset.x : offset.x), height / 2 + offset.y, pal, (v->vehstatus & VS_CRASHED) != 0); } if (!v->IsArticulatedPart()) sel_articulated = false; @@ -387,7 +387,7 @@ void DrawTrainDetails(const Train *v, int left, int right, int y, int vscroll_po PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); VehicleSpriteSeq seq; u->GetImage(dir, EIT_IN_DETAILS, &seq); - seq.Draw(px + (rtl ? -offset.x : offset.x), y - line_height * vscroll_pos + sprite_y_offset + pitch, pal, v->vehstatus & VS_CRASHED); + seq.Draw(px + (rtl ? -offset.x : offset.x), y - line_height * vscroll_pos + sprite_y_offset + pitch, pal, (v->vehstatus & VS_CRASHED) != 0); } px += rtl ? -width : width; dx += width; From 4e2ecbb5a159ed8bcae3ea872bd05e6904e64035 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 10 Dec 2016 15:49:25 +0000 Subject: [PATCH 184/417] (svn r27690) -Fix: Old compilers do not zero-initialise POD members when explicitly calling implicitly created default constructors. --- src/rail_cmd.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 511f5abc73..a8c20e3394 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -68,7 +68,16 @@ void ResetRailTypes() uint i = 0; for (; i < lengthof(_original_railtypes); i++) _railtypes[i] = _original_railtypes[i]; - for (; i < lengthof(_railtypes); i++) _railtypes[i] = RailtypeInfo(); // zero-init + + static const RailtypeInfo empty_railtype = { + {0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,{}}, + {0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0}, + 0, RAILTYPES_NONE, RAILTYPES_NONE, 0, 0, 0, RTFB_NONE, 0, 0, 0, 0, 0, + RailTypeLabelList(), 0, 0, RAILTYPES_NONE, RAILTYPES_NONE, 0, + {}, {} }; + for (; i < lengthof(_railtypes); i++) _railtypes[i] = empty_railtype; } void ResolveRailTypeGUISprites(RailtypeInfo *rti) From 7c7913c986b116cdb993fc5521946763f7e1a9cd Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 10 Dec 2016 18:45:38 +0000 Subject: [PATCH 185/417] (svn r27691) -Update from Eints: italian: 9 changes by lorenzodv --- src/lang/italian.txt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 2113ca70c5..9e7e3695e4 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1424,11 +1424,11 @@ STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Mostra gli arri STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Mostra gli orari di arrivo e partenza previsti nelle tabelle orarie STR_CONFIG_SETTING_QUICKGOTO :Creazione rapida degli ordini dei veicoli: {STRING} STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Pre-seleziona il comando 'Vai a' quando si apre la finestra degli ordini -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Ferrovia predefinita (a inizio/ripresa partita): {STRING} -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo di ferrovia da selezionare dopo l'inizio o il caricamento di una partita. 'La prima disponibile' seleziona il tipo più vecchio di binari, 'L'ultima disponibile' seleziona il tipo più vecchio di binari, e 'La più usata' seleziona il tipo più utilizzato al momento -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :La prima disponibile -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :L'ultima disponibile -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :La più usata +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Tipo di rotaie predefinito (a inizio/ripresa partita): {STRING} +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo di rotaie da selezionare dopo l'inizio o il caricamento di una partita. 'Il primo disponibile' seleziona il tipo più vecchio di binari, 'L'ultimo disponibile' seleziona il tipo più nuovo di binari, e 'Il più usato' seleziona il tipo più utilizzato al momento +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Il primo disponibile +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :L'ultimo disponibile +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Il più usato STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Mostra i percorsi riservati sui binari: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Dà ai binari riservati un colore differente, aiutando a correggere problemi di treni che si rifiutano di entrare in blocchi protetti con segnali a percorso STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Mantieni aperte le finestre di costruzione dopo l'uso: {STRING} @@ -2619,6 +2619,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nome blo STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} 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_RAIL_SPEED_LIMIT :{BLACK}Limite di velocità rotaie: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Limite di velocità strada: {LTBLUE}{VELOCITY} @@ -2653,7 +2654,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrovia con se STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ferrovia con segnali combinati e a percorso STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ferrovia con segnali combinati e a percorso s.u. STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ferrovia con segnali a percorso e a percorso s.u. -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Deposito Ferrovia +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Deposito ferroviario STR_LAI_ROAD_DESCRIPTION_ROAD :Strada STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Strada con lampioni @@ -2891,7 +2892,7 @@ STR_NEWGRF_INSPECT_PARENT_TOOLTIP :{BLACK}Ispezion STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT :{STRING} a {HEX} STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT :Oggetto -STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Tipo rotaia +STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Tipo di rotaie STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parametro variabile NewGRF 60+x (esadecimale) @@ -3592,7 +3593,7 @@ STR_REPLACE_ENGINES :Locomotive STR_REPLACE_WAGONS :Vagoni STR_REPLACE_ALL_RAILTYPE :Tutti i veicoli ferroviari -STR_REPLACE_HELP_RAILTYPE :{BLACK}Selezionare il tipo di rotaia per la quale si desidera rimpiazzare le locomotive +STR_REPLACE_HELP_RAILTYPE :{BLACK}Selezionare il tipo di rotaie per il quale si desidera rimpiazzare le locomotive 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 From 3f78d271b26d1999c0796f3d92fa5602a58eba52 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 11 Dec 2016 18:45:39 +0000 Subject: [PATCH 186/417] (svn r27692) -Update from Eints: croatian: 25 changes by VoyagerOne english (us): 2 changes by Supercheese russian: 1 change by Lone_Wolf latin: 25 changes by Supercheese --- src/lang/croatian.txt | 48 +++++++++++++++++++++-------------------- src/lang/english_US.txt | 2 ++ src/lang/latin.txt | 48 +++++++++++++++++++++-------------------- src/lang/russian.txt | 1 + 4 files changed, 53 insertions(+), 46 deletions(-) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 2ad789c78c..a6ebbea4a0 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -2685,6 +2685,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Naziv po STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} 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_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} @@ -2697,29 +2698,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Polja STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zemlja pokrivena snijegom STR_LAI_CLEAR_DESCRIPTION_DESERT :Pustinja -STR_LAI_RAIL_DESCRIPTION_TRACK :Pruga pruga -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Pruga pruga sa blok-signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Pruga pruga sa pred-signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Pruga pruga sa izlaznim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Pruga pruga sa kombiniranim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Pruga pruga sa putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Pruga pruga sa jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Pruga pruga sa blok-signalima i pred-signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Pruga pruga sa blok-signalima i izlaznim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Pruga pruga sa blok-signalima i kombiniranim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Pruga pruga sa blok-signalima i putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Pruga pruga sa blok-signalima i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Pruga pruga sa pred-signalima i izlaznim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Pruga pruga sa pred-signalima i kombiniranim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Pruga pruga sa pred-signalima i putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Pruga pruga sa pred-signalima i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Pruga pruga sa izlaznim i kombiniranim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Pruga pruga sa izlaznim i putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Pruga pruga sa izlaznim i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Pruga pruga sa kombiniranim i putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Pruga pruga sa kombiniranim i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Pruga pruga sa putnim i jednosmjernim putnim signalima -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Pruga spremište vlaka +STR_LAI_RAIL_DESCRIPTION_TRACK :Pruga +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Pruga sa blok-signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Pruga sa pred-signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Pruga sa izlaznim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Pruga sa kombiniranim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Pruga sa putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Pruga sa jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Pruga sa blok-signalima i pred-signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Pruga sa blok-signalima i izlaznim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Pruga sa blok-signalima i kombiniranim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Pruga sa blok-signalima i putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Pruga sa blok-signalima i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Pruga sa pred-signalima i izlaznim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Pruga sa pred-signalima i kombiniranim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Pruga sa pred-signalima i putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Pruga sa pred-signalima i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Pruga sa izlaznim i kombiniranim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Pruga sa izlaznim i putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Pruga sa izlaznim i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Pruga sa kombiniranim i putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Pruga sa kombiniranim i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Pruga sa putnim i jednosmjernim putnim signalima +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Spremište vlakova STR_LAI_ROAD_DESCRIPTION_ROAD :Cesta STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Cesta s javnom rasvjetom @@ -3656,6 +3657,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikni z STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Prebaci između prozora za izmjenu lokomotiva i vagona STR_REPLACE_ENGINES :Lokomotive STR_REPLACE_WAGONS :Vagoni +STR_REPLACE_ALL_RAILTYPE :Sva pružna vozila STR_REPLACE_HELP_RAILTYPE :{BLACK}Odaberite vrstu željeznice za koju želite zamijeniti lokomotive STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Prikazuje sa kojom se lokomotivom zamjenjuje lijevo odabrana lokomotiva, ako postoji koji diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 842f870e69..9d70f8f6ae 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2589,6 +2589,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Airport STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} 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_RAIL_SPEED_LIMIT :{BLACK}Rail speed limit: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Road speed limit: {LTBLUE}{VELOCITY} @@ -3560,6 +3561,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Press to STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch between engine and car replacement windows STR_REPLACE_ENGINES :Engines STR_REPLACE_WAGONS :Cars +STR_REPLACE_ALL_RAILTYPE :All rail vehicles STR_REPLACE_HELP_RAILTYPE :{BLACK}Choose the rail 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 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index c7b2dac9db..aeb813652d 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2791,6 +2791,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nomen te STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Onera accepta: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Typus ferriviae: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Velocitas maxima ferriviae: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Velocitas maxima viae: {LTBLUE}{VELOCITY} @@ -2803,29 +2804,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Agri STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terra Nivea STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserta -STR_LAI_RAIL_DESCRIPTION_TRACK :Astarium Ferrivia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Astarium Ferrivia cum signalibus zonalibus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Astarium Ferrivia cum signalibus aditus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Astarium Ferrivia cum signalibus exitus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Astarium Ferrivia cum signalibus compositis -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Astarium Ferrivia cum signalibus itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Astarium Ferrivia cum signalibus zonalibus et aditus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Astarium Ferrivia cum signalibus zonalibus et exitus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Astarium Ferrivia cum signalibus zonalibus et compositis -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Astarium Ferrivia cum signalibus zonalibus et itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus zonalibus et itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Astarium Ferrivia cum signalibus aditus et exitus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Astarium Ferrivia cum signalibus aditus et compositis -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Astarium Ferrivia cum signalibus aditus et itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus aditus et itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Astarium Ferrivia cum signalibus exitus et compositis -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Astarium Ferrivia cum signalibus exitus et itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus exitus et itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Astarium Ferrivia cum signalibus compositis et itineris -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus compositis et itineris unius cursus -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Astarium Ferrivia cum signalibus itineris et unius cursus itineris -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Receptaculum Ferrivia +STR_LAI_RAIL_DESCRIPTION_TRACK :Astarium Ferriviae +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrivia cum signalibus zonalibus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrivia cum signalibus aditus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ferrivia cum signalibus exitus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ferrivia cum signalibus compositis +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrivia cum signalibus itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrivia cum signalibus itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrivia cum signalibus zonalibus et aditus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrivia cum signalibus zonalibus et exitus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ferrivia cum signalibus zonalibus et compositis +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrivia cum signalibus zonalibus et itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrivia cum signalibus zonalibus et itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrivia cum signalibus aditus et exitus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ferrivia cum signalibus aditus et compositis +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ferrivia cum signalibus aditus et itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrivia cum signalibus aditus et itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ferrivia cum signalibus exitus et compositis +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrivia cum signalibus exitus et itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrivia cum signalibus exitus et itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ferrivia cum signalibus compositis et itineris +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ferrivia cum signalibus compositis et itineris unius cursus +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ferrivia cum signalibus itineris et unius cursus itineris +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Receptaculum ferriviarium STR_LAI_ROAD_DESCRIPTION_ROAD :Via STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Via cum lampadibus @@ -3762,6 +3763,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Preme ut STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Mutare inter mutationem hamaxarum curruumque STR_REPLACE_ENGINES :Hamaxarum STR_REPLACE_WAGONS :Curruum +STR_REPLACE_ALL_RAILTYPE :Omnia vehicula ferriviaria STR_REPLACE_HELP_RAILTYPE :{BLACK}Eligere typum astarii cui est hamaxas commutandas STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Haec monstrat novum vehiculum desideratum, si adest diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 10ef2f28c8..9322c3d5ce 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2769,6 +2769,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Зона STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Принимает: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Тип рельсов: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Макс. скорость ж/д: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Макс. скорость авто: {LTBLUE}{VELOCITY} From 01059a7f755c5c06429e3046958df9155b0442ba Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 12 Dec 2016 18:45:37 +0000 Subject: [PATCH 187/417] (svn r27693) -Update from Eints: korean: 2 changes by telk5093 spanish: 21 changes by SilverSurferZzZ russian: 14 changes by Lone_Wolf --- src/lang/korean.txt | 2 ++ src/lang/russian.txt | 27 ++++++++++++++------------- src/lang/spanish.txt | 42 +++++++++++++++++++++--------------------- 3 files changed, 37 insertions(+), 34 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 73b51d21b1..a86ae6d541 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}공항 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}받을 수 있는 화물: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}철도 종류: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}선로의 제한 속력: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}도로 속도 제한: {LTBLUE}{VELOCITY} @@ -3561,6 +3562,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}왼쪽 STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}기관차/화물차 교체 창으로 전환합니다. STR_REPLACE_ENGINES :기관차 STR_REPLACE_WAGONS :화물차 +STR_REPLACE_ALL_RAILTYPE :모든 철도 차량 STR_REPLACE_HELP_RAILTYPE :{BLACK}교체할 기관차의 철도 종류를 고르세요 STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}왼쪽의 선택한 기관차가 어떤 기관차로 교체되고 있는지 표시합니다. diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 9322c3d5ce..38857fa94e 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2769,7 +2769,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Зона STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Принимает: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) -STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Тип рельсов: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Тип ж/д полотна: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Макс. скорость ж/д: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Макс. скорость авто: {LTBLUE}{VELOCITY} @@ -2790,20 +2790,20 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ж/д путь STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ж/д путь с маршрутными сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ж/д путь с односторонними маршрутными сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ж/д путь с обычными и входными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ж/д путь с обычными и выходными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ж/д путь с обычными и комбиниров. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ж/д путь с обычными и маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ж/д путь с обычными и одностор. маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ж/д путь с входными и выходными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ж/д путь с входными и комбинир. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ж/д путь с входными и маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ж/д путь с входными и одностор. маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ж/д путь с выходными и комбиниров. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ж/д путь с обычным и выходным сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ж/д путь с обычными и комбинированными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ж/д путь с обычными и маршрутными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ж/д путь с обычным и односторонним маршрутным сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ж/д путь с входным и выходным сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ж/д путь с входным и комбинированным сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ж/д путь с входными и маршрутными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ж/д путь с входным и односторонним маршрутным сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ж/д путь с выходными и комбинированными сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ж/д путь с выходными и маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ж/д путь с выходными и односторонн. маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ж/д путь с выходным и односторонним маршрутным сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ж/д путь с комбинир. и маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ж/д путь с комбинир. и односторонн. маршрутн. сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ж/д путь с маршрутным и одностор. маршрутным сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ж/д путь с комбинированным и односторонним маршрутным сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ж/д путь с маршрутным и односторонним маршрутным сигналами STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ж/д депо STR_LAI_ROAD_DESCRIPTION_ROAD :Дорога @@ -3751,6 +3751,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Прек STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Переключение между окнами замены локомотивов и вагонов STR_REPLACE_ENGINES :Локомотивы STR_REPLACE_WAGONS :Вагоны +STR_REPLACE_ALL_RAILTYPE :Весь ж/д транспорт STR_REPLACE_HELP_RAILTYPE :{BLACK}Тип ж/д транспорта, подлежащего замене STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Транспорт, на который происходит замена diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3e1bd085d2..f62f53466a 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -468,7 +468,7 @@ STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Historial de me ############ range ends here ############ range for about menu starts -STR_ABOUT_MENU_LAND_BLOCK_INFO :Información sobre terreno +STR_ABOUT_MENU_LAND_BLOCK_INFO :Información del terreno STR_ABOUT_MENU_SEPARATOR : STR_ABOUT_MENU_TOGGLE_CONSOLE :Activar consola STR_ABOUT_MENU_AI_DEBUG :Depuración de Script de Juego / IA @@ -1431,7 +1431,7 @@ STR_CONFIG_SETTING_SOUND_AMBIENT :Ambiental: {STR STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Reproducir sonidos ambientales de terreno, industrias y municipios STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Deshabilitar construcción de infraestructuras cuando no haya vehículos apropiados disponibles: {STRING} -STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Cuando se activa, solamente se pueden construir infraestructuras si hay vehículos disponibles para ellas, previniendo un gasto innecesario de tiempo y dinero +STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Cuando se activa, solo pueden construirse infraestructuras si hay vehículos disponibles para ellas, previniendo un gasto innecesario de tiempo y dinero STR_CONFIG_SETTING_MAX_TRAINS :Número máximo de trenes por empresa: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Número máximo de trenes que una compañía puede tener STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Número máximo de automóviles por empresa: {STRING} @@ -1444,7 +1444,7 @@ STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Número máximo STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desactivar trenes para el ordenador: {STRING} STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activar esta opción deshabilita la construcción de trenes para las IA STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Desactivar vehículos de carretera para el ordenador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activar esta opción deshabilita la construcción de vehículos de carretra para las IA +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activar esta opción deshabilita la construcción de vehículos de carretera para las IA STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactivar aeroplanos para el ordenador: {STRING} STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Activar esta opción deshabilita la construcción de aeronaves para las IA STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactivar barcos para el ordenador: {STRING} @@ -1602,7 +1602,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS :Proporción de STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Número de pueblos que se convertirán en ciudades. Las ciudades comienzan siendo más grandes y crecen más rápido STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 de cada {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ninguna -STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial tamaño de ciudad: {STRING} +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial del tamaño de ciudad: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamaño medio de las ciudades en relación a los pueblos normales al comienzo de la partida STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualizar el grafo de distribución cada {STRING}{NBSP}día{P 0:2 "" s} @@ -1713,11 +1713,11 @@ STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... igno STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... ignorando NewGRF inválido '{STRING}': {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :no encontrado STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :inseguro para uso estático -STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :NewGRF de sistema +STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :NewGRF del sistema STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :incompatible con esta versión de OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :desconocido STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... el nivel de compresión '{STRING}' no es válido -STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... el formato de guardado '{STRING}' no está disponible. Revertiendo a '{STRING}' +STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... el formato de guardado '{STRING}' no está disponible. Revirtiendo a '{STRING}' STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... ignorando conjunto de gráficos base '{STRING}': no encontrado STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... ignorando conjunto de sonidos base '{STRING}': no encontrado STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ignorando conjunto de música base '{STRING}': no encontrado @@ -2524,7 +2524,7 @@ STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Click pa STR_FOUND_TOWN_NAME_RANDOM_BUTTON :{BLACK}Nombre aleatorio STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Generar nuevo nombre -STR_FOUND_TOWN_INITIAL_SIZE_TITLE :{YELLOW}Tamaño municipio: +STR_FOUND_TOWN_INITIAL_SIZE_TITLE :{YELLOW}Tamaño del municipio: STR_FOUND_TOWN_INITIAL_SIZE_SMALL_BUTTON :{BLACK}Pequeña STR_FOUND_TOWN_INITIAL_SIZE_MEDIUM_BUTTON :{BLACK}Mediana STR_FOUND_TOWN_INITIAL_SIZE_LARGE_BUTTON :{BLACK}Grande @@ -2569,7 +2569,7 @@ STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}Seleccio STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Permite seleccionar la industria a mostrar # Land area window -STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Información sobre el terreno +STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Información del terreno STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK}Coste de despeje: {LTBLUE}N/D STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}Coste de despeje: {RED}{CURRENCY_LONG} STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}Beneficio cuando es limpiado: {LTBLUE}{CURRENCY_LONG} @@ -2606,7 +2606,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril con señales de bloque STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrocarril con señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ferrocarril con señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ferrocarril con señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril con señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril con señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada @@ -2621,8 +2621,8 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ferrocarril con señales de salida y señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrocarril con señales de salida y señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrocarril con señales de salida y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ferrocarril con señales combo y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ferrocarril con señales combo y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con señales combo y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con señales combo y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ferrocarril con señales de ruta y señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril depósito de tren @@ -4076,7 +4076,7 @@ STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Archivo no legi STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :No se puede escribir en el archivo STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Comprobación de integridad de los datos fallida STR_GAME_SAVELOAD_NOT_AVAILABLE : -STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}El juego ha sido guardado en una versión sin soporte para tranvías. Todos los tranvías serán eliminados +STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}El juego se ha guardado en una versión sin soporte para tranvías. Todos los tranvías han sido eliminados # Map generation messages STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generación de mapa abortada...{}... no hay localizaciones apropiadas para municipios @@ -4093,7 +4093,7 @@ STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... no s STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... la imagen es demasiado grande STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Alerta de escala -STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Cambiar demasiado el tamaño del mapa de origen no está recomendado. ¿Desea continuar con la generación? +STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}No es recomendable cambiar en exceso el tamaño del mapa original. ¿Desea continuar con la generación? # Soundset messages STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Solamente se encontró un conjunto de sonidos vacío. Si lo desea, instale un conjunto de sonidos a través del 'Contenido Online' @@ -4614,10 +4614,10 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_KELLING_3100_DIESEL :Kelling 3100 (D STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_TURNER_TURBO_DIESEL :Turner Turbo (Diésel) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MJS_1000_DIESEL :MJS 1000 (Diésel) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_125_DIESEL :SH '125' (Diésel) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_30_ELECTRIC :SH '30' (Eléctrica) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_40_ELECTRIC :SH '40' (Eléctrica) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_T_I_M_ELECTRIC :'T.I.M.' (Eléctrica) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_ASIASTAR_ELECTRIC :'AsiaStar' (Eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_30_ELECTRIC :SH '30' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_40_ELECTRIC :SH '40' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_T_I_M_ELECTRIC :'T.I.M.' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_ASIASTAR_ELECTRIC :'AsiaStar' (Eléctrico) STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PASSENGER_CAR :Vagón de Pasajeros STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_MAIL_VAN :Furgón de Correos STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :Vagón de Carbón @@ -4675,10 +4675,10 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :Vagón de Jugue STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :Vagón de Pilas STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :Vagón de Refrescos STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PLASTIC_TRUCK :Vagón de Plásticos -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Eléctrica) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cyclops' (Eléctrica) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Eléctrica) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera' (Eléctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cyclops' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera' (Eléctrico) STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :Vagón de Pasajeros STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :Furgón de Correos From 1808557b45c6a63c3e2e6d6919d34d30048b87a3 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 13 Dec 2016 18:45:35 +0000 Subject: [PATCH 188/417] (svn r27694) -Update from Eints: spanish: 4 changes by SilverSurferZzZ --- src/lang/spanish.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index f62f53466a..1e6a5d3171 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nombre d STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceptada: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de ferrocarril: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidad del ferrocarril: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límite de velocidad de carretera: {LTBLUE}{VELOCITY} @@ -2611,7 +2612,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril con STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril con señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ferrocarril con señales de bloque y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de Ferrocarril con señales de bloque y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrocarril con señales de bloque y señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrocarril con señales de bloque y señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y señales de salida @@ -2623,7 +2624,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrocarril con STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrocarril con señales de salida y señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con señales combo y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con señales combo y de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ferrocarril con señales de ruta y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con señales de dirección y de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril depósito de tren STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera @@ -3561,6 +3562,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre las ventanas de cambio de vagón y locomotora STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagones +STR_REPLACE_ALL_RAILTYPE :Todos los vehículos ferroviarios STR_REPLACE_HELP_RAILTYPE :{BLACK}Seleccione tipo de ferrocarril para el que desea reemplazar locomotoras STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Muestra con qué vehículo está siendo reemplazado el vehículo de la izquierda From 8a41b36cd855890db9e2e898b99c0ca31ec5c0ec Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 14 Dec 2016 18:45:37 +0000 Subject: [PATCH 189/417] (svn r27695) -Update from Eints: spanish: 4 changes by SilverSurferZzZ french: 26 changes by glx --- src/lang/french.txt | 50 +++++++++++++++++++++++--------------------- src/lang/spanish.txt | 8 +++---- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/src/lang/french.txt b/src/lang/french.txt index e2bcfdcf54..b883918239 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2322,7 +2322,7 @@ STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Construi STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Alterner entre construire et retirer des voies, des signaux, des points de contrôle et des gares.{}Ctrl pour retirer également la voie lors du retrait des points de contrôle et des gares. STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Convertir/Améliorer le type de rail.{}Shift pour afficher seulement le coût estimé. -STR_RAIL_NAME_RAILROAD :Voie ferrée simple +STR_RAIL_NAME_RAILROAD :Voie ferrée STR_RAIL_NAME_ELRAIL :Voie ferrée électrifiée STR_RAIL_NAME_MONORAIL :Monorail STR_RAIL_NAME_MAGLEV :Maglev @@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nom de l STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF{NBSP}: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargaison acceptée{NBSP}: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Type de rail{NBSP}: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Vitesse limite de la voie{NBSP}: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Vitesse limite de la route{NBSP}: {LTBLUE}{VELOCITY} @@ -2602,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Champs STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terre enneigée STR_LAI_CLEAR_DESCRIPTION_DESERT :Désert -STR_LAI_RAIL_DESCRIPTION_TRACK :Voie ferrée simple{NBSP} -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Voie ferrée simple avec signaux de bloc -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Voie ferrée simple avec pré-signaux -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Voie ferrée simple avec signaux de sortie -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Voie ferrée simple avec signaux combinés -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Voie ferrée simple avec signaux de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Voie ferrée simple avec signaux de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Voie ferrée simple avec signal de bloc et pré-signaux -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Voie ferrée simple avec signal de bloc et signaux de sortie -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Voie ferrée simple avec signal de bloc et signaux combinés -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Voie ferrée simple avec signaux de bloc et de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Voie ferrée simple avec signaux de bloc et de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Voie ferrée simple avec pré-signal et signal de sortie -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Voie ferrée simple avec pré-signal et signal combiné -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Voie ferrée simple avec pré-signal et signal de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Voie ferrée simple avec pré-signal et signal de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Voie ferrée simple avec signal de sortie et signal combiné -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Voie ferrée simple avec signal de sortie et signal de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Voie ferrée simple avec signal de sortie et signal de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Voie ferrée simple avec signal combiné et signal de chemin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Voie ferrée simple avec signal combiné et signal de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Voie ferrée simple avec signal de chemin et signal de chemin à sens unique -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Dépôt de trains de Voie ferrée simple +STR_LAI_RAIL_DESCRIPTION_TRACK :Voie ferrée +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Voie ferrée avec signaux de bloc +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Voie ferrée avec pré-signaux +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Voie ferrée avec signaux de sortie +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Voie ferrée avec signaux combinés +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Voie ferrée avec signaux de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Voie ferrée avec signaux de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Voie ferrée avec signal de bloc et pré-signaux +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Voie ferrée avec signal de bloc et signaux de sortie +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Voie ferrée avec signal de bloc et signaux combinés +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Voie ferrée avec signaux de bloc et de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Voie ferrée avec signaux de bloc et de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Voie ferrée avec pré-signal et signal de sortie +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Voie ferrée avec pré-signal et signal combiné +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Voie ferrée avec pré-signal et signal de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Voie ferrée avec pré-signal et signal de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Voie ferrée avec signal de sortie et signal combiné +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Voie ferrée avec signal de sortie et signal de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Voie ferrée avec signal de sortie et signal de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Voie ferrée avec signal combiné et signal de chemin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Voie ferrée avec signal combiné et signal de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Voie ferrée avec signal de chemin et signal de chemin à sens unique +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Dépôt ferroviaire STR_LAI_ROAD_DESCRIPTION_ROAD :Route STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Route avec lampadaires @@ -3561,6 +3562,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Appuyer STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Alterner entre les fenêtres de remplacement des locomotives ou des wagons STR_REPLACE_ENGINES :Locomotives STR_REPLACE_WAGONS :Wagons +STR_REPLACE_ALL_RAILTYPE :Tous le véhicules sur rail STR_REPLACE_HELP_RAILTYPE :{BLACK}Choisir un type de rail pour le remplacement de locomotives STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Ceci affiche par quel type de véhicule sera remplacé celui sélectionné à gauche, si possible diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1e6a5d3171..3f10f193e4 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -660,7 +660,7 @@ STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Saltar a STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Saltar a la siguiente pista de la selección STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Detener música STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Comenzar música -STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Mueva los cursores para fijar volumen de música y efectos +STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Arrastre los controles deslizantes para ajustar el volumen de música y efectos STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Seleccionar programa 'todas las pistas' STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo antiguo' STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo moderno' @@ -2282,7 +2282,7 @@ STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Poner ob STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Leyenda de Movimientos de Carga STR_LINKGRAPH_LEGEND_ALL :{BLACK}Todas STR_LINKGRAPH_LEGEND_NONE :{BLACK}Ninguna -STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Seleccione las compañías a ser mostradas +STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Seleccione las compañías a mostrar # Linkgraph legend window and linkgraph legend in smallmap STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}sin uso @@ -2603,10 +2603,10 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tierra cubierta por nieve STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto -STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de ferrocarril STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril con señales de bloque STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrocarril con señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ferrocarril con señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de ferrocarril con señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril con señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril con señales de ruta de un solo sentido From 5d5d020103b9e03e7f4ed12cedbb7288c1fbe23b Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 16 Dec 2016 18:45:36 +0000 Subject: [PATCH 190/417] (svn r27696) -Update from Eints: urdu: 11 changes by siphr spanish: 6 changes by SilverSurferZzZ russian: 10 changes by Lone_Wolf --- src/lang/russian.txt | 20 ++++++++++---------- src/lang/spanish.txt | 12 ++++++------ src/lang/unfinished/urdu.txt | 11 +++++++++++ 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 38857fa94e..e2c39fe020 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2789,7 +2789,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ж/д путь STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ж/д путь с комбинированными сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ж/д путь с маршрутными сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ж/д путь с односторонними маршрутными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ж/д путь с обычными и входными сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ж/д путь с обычным и входным сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ж/д путь с обычным и выходным сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ж/д путь с обычными и комбинированными сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ж/д путь с обычными и маршрутными сигналами @@ -3875,8 +3875,8 @@ STR_QUERY_RENAME_SHIP_CAPTION :{WHITE}Назв STR_QUERY_RENAME_AIRCRAFT_CAPTION :{WHITE}Название возд. судна # Extra buttons for train details windows -STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE :{LTBLUE}{ENGINE}{BLACK} Построен в {LTBLUE}{NUM} г.{BLACK} Стоимость: {LTBLUE}{CURRENCY_LONG} -STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE :{LTBLUE}{ENGINE}{BLACK} Стоимость: {LTBLUE}{CURRENCY_LONG} +STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE :{LTBLUE}{ENGINE}{BLACK} Построен в {LTBLUE}{NUM} г. {BLACK}Стоимость: {LTBLUE}{CURRENCY_LONG} +STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE :{LTBLUE}{ENGINE}{BLACK} Стоимость: {LTBLUE}{CURRENCY_LONG} STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY_TEXT :{BLACK}Общая загруженность состава: STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY :{LTBLUE}- {CARGO_LONG} (Всего: {CARGO_SHORT}) @@ -4364,7 +4364,7 @@ STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... не STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Города не будут строить дороги сами. Вы можете включить строительство дорог в разделе «Настройки -> Окр.{NBSP}среда -> Города». 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}... слишком много предприятий @@ -4420,7 +4420,7 @@ 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_THERE_IS_NO_STATION :{WHITE}... здесь нет станции STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}Сначала снесите ж/д станцию STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}Сначала снесите автобусную остановку @@ -4486,8 +4486,8 @@ STR_ERROR_CAN_T_BUILD_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}Здесь невозможно преобразовать тип рельса... @@ -4498,8 +4498,8 @@ 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_THERE_IS_NO_ROAD :{WHITE}... здесь нет дороги +STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... здесь нет трамвайных путей # Waterway construction errors STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Здесь невозможно построить канал... @@ -4632,7 +4632,7 @@ STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Не у STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}Не удалось перейти к выделенному заданию... STR_ERROR_CAN_T_COPY_SHARE_ORDER :{WHITE}... ТС не может достигнуть всех станций STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... ТС не может достигнуть этой станции -STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}...ТС с общим маршрутом не может достигнуть этой станции +STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... ТС с общим маршрутом не может достигнуть этой станции STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}Невозможно использовать общий маршрут... STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}Невозможно создать индивидуальный маршрут... diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3f10f193e4..af38e0b944 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2607,23 +2607,23 @@ STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril con señales de bloque STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrocarril con señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de ferrocarril con señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de ferrocarril con señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril con señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril con señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de Ferrocarril con señales de bloque y combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrocarril con señales de bloque y señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrocarril con señales de bloque y señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ferrocarril con señales de entrada y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de ferrocarril con señales de entrada y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ferrocarril con señales de entrada y señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ferrocarril con señales de salida y señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de ferrocarril con señales de salida y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrocarril con señales de salida y señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrocarril con señales de salida y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con señales combo y de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con señales combo y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de ferrocarril con señales combo y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con señales combo y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con señales de dirección y de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril depósito de tren diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 3864e74d2b..b5b0bcdc31 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2125,6 +2125,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{G=f}{BLACK}ک # About OpenTTD window STR_ABOUT_OPENTTD :{WHITE}اوپن ٹی ٹی ڈی کے متعلق +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} ٢٠٠٢ - ٢٠١٦ OpenTTD ٹیم # Save/load game/scenario @@ -2264,6 +2265,7 @@ STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}منظو ############ range for rating starts +STR_CARGO_RATING_APPALLING :انتہائی خراب ############ range for rating ends @@ -2276,6 +2278,7 @@ STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOIN # Finances window STR_FINANCES_YEAR :{WHITE}{NUM} +STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}پراپرٹی کی بحالی STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG} STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG} @@ -2342,6 +2345,7 @@ STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}فہرس # Build vehicle window +STR_BUY_VEHICLE_AIRCRAFT_CAPTION :نیا طیارہ STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}پہنچ: {GOLD}{COMMA} ٹائلیں @@ -2449,6 +2453,7 @@ STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}حد ر +STR_VEHICLE_DETAIL_TAB_CARGO :{BLACK}سامان # Vehicle refit @@ -2548,6 +2553,7 @@ STR_TEXTFILE_VIEW_LICENCE :{BLACK}لائس # Vehicle loading indicators +STR_PERCENT_NONE :{WHITE}{NUM}% # Income 'floats' @@ -2591,6 +2597,7 @@ STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}{TOWN} # Town related errors +STR_ERROR_CAN_T_RENAME_TOWN :{WHITE} شہر کا نام تبدیل نہی کیا جاسکتا # Industry related errors STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{G=m}{WHITE}... صرف ان شہروں میں بن سکتا ہے جن کی آبادی ۱۲۰۰ سے زیادہ ہے @@ -2627,6 +2634,8 @@ STR_ERROR_CAN_T_RENAME_DEPOT :{WHITE} ڈیپ STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE} ۔۔۔ طرزِ پیڑ کے لیئے غلط طرزِ زپین # Bridge related errors +STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}اسی جگہ شروع اور ختم نہیں کر سکتے +STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}شروع اور ختم سیدھ میں ہو STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... پل کے دونوں کنارے زمین پر ہونے چاہییں STR_ERROR_BRIDGE_TOO_LONG :{WHITE} ۔۔۔ پل زیادھ لمبی ھے @@ -2734,7 +2743,9 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_PLODDYPHUT_CHOO_CHOO :Ploddyphut Choo STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_POWERNAUT_CHOO_CHOO :Powernaut Choo-Choo STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MIGHTYMOVER_CHOO_CHOO :MightyMover Choo-Choo STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_WIZZOWOW_Z99 :Wizzowow Z99 +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :کوئلے کا ٹرک STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FRUIT_TRUCK :پھلوں کا ٹرک STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_COAL_TRUCK :Balogh کوئلے کا ٹرک STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COAL_TRUCK :Uhl کوئلے کا ٹرک STR_VEHICLE_NAME_ROAD_VEHICLE_DW_COAL_TRUCK :DW کوئلے کا ٹرک From 37b6bd570222141f74e3db4836d8d4883eeff682 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 17 Dec 2016 18:45:36 +0000 Subject: [PATCH 191/417] (svn r27697) -Update from Eints: urdu: 9 changes by siphr spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 6 +++--- src/lang/unfinished/urdu.txt | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index af38e0b944..ff6d9c6959 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2608,7 +2608,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril con STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrocarril con señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de ferrocarril con señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de ferrocarril con señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril con señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de ferrocarril con señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril con señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida @@ -2621,10 +2621,10 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ferrocarril con STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de ferrocarril con señales de salida y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrocarril con señales de salida y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrocarril con señales de salida y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de ferrocarril con señales de salida y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de ferrocarril con señales combo y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con señales combo y de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con señales de dirección y de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de ferrocarril con señales de dirección y de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril depósito de tren STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index b5b0bcdc31..a2bae741d3 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -1049,6 +1049,7 @@ STR_CITY_APPROVAL_HOSTILE :مخالفان # Settings tree window STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(کوئی وضاحت موجود نہیں) +STR_CONFIG_SETTING_TYPE :{LTBLUE}ترتیب قسم: {ORANGE}{STRING} @@ -1200,6 +1201,7 @@ STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :مخصوص پٹ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :تعمیراتی ٹول کو استعمال کے بعد فعال رکھیں: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT :کمپنی کی مالیاتی ونڈو میں اخراجات کو اکٹھا دکھائیں: {STRING} +STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :وسیع آواز چلایں STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :موزوں گاڑیاں نہ ہونے کی صورت میں عمارت کو غیر فعال کر دیں: {STRING} STR_CONFIG_SETTING_MAX_TRAINS :کمپنی کی زیادہ سے زیادہ ریل گاڑیاں: {STRING} @@ -2184,6 +2186,7 @@ STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE} جای # NewGRF (self) generated warnings/errors STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING} +STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :غیر متوقع سپرائٹ (sprite {3:NUM}) # NewGRF related 'general' warnings @@ -2313,6 +2316,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC # Industry directory # Industry view +STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}گزشتہ ماہ کی پیداوار: ############ range for requires starts ############ range for requires ends @@ -2339,6 +2343,7 @@ STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}فہرس # Group window +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}گروپ ۔ اس گروپ ک تمام گاڑیاں دیکھنے کے لیے اسے دبایں۔ پکڑ کے اوپر نیچے بھی کر سکتے ہیں۔ @@ -2533,6 +2538,7 @@ STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK} وقف # AI configuration window +STR_AI_CONFIG_GAMESCRIPT :{SILVER}کھیل کا سکرپٹ STR_AI_CONFIG_CHANGE_NONE : @@ -2605,6 +2611,7 @@ STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{G=m}{WHITE}... # Station construction related errors +STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :ایک اور گودی کے قریب # Station destruction related errors @@ -2722,9 +2729,11 @@ STR_DESKTOP_SHORTCUT_COMMENT :Transport Tycoo ##id 0x2000 # Town building names +STR_TOWN_BUILDING_NAME_CHURCH_1 :چرچ ##id 0x4800 # industry names +STR_INDUSTRY_NAME_POWER_STATION :بجلی گھر ############ WARNING, using range 0x6000 for strings that are stored in the savegame ############ These strings may never get a new id, or savegames will break! From 2171a56c15d731f3501ffe98c7d1ee04c5e30757 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 18 Dec 2016 18:45:38 +0000 Subject: [PATCH 192/417] (svn r27698) -Update from Eints: spanish: 3 changes by SilverSurferZzZ russian: 3 changes by Lone_Wolf --- src/lang/russian.txt | 6 +++--- src/lang/spanish.txt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index e2c39fe020..dbee77cfce 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2799,9 +2799,9 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ж/д путь STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ж/д путь с входными и маршрутными сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ж/д путь с входным и односторонним маршрутным сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ж/д путь с выходными и комбинированными сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ж/д путь с выходными и маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ж/д путь с выходным и маршрутным сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ж/д путь с выходным и односторонним маршрутным сигналами -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ж/д путь с комбинир. и маршрутн. сигналами +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ж/д путь с комбинированным и маршрутным сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ж/д путь с комбинированным и односторонним маршрутным сигналами STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ж/д путь с маршрутным и односторонним маршрутным сигналами STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ж/д депо @@ -2954,7 +2954,7 @@ STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Изме STR_GENERATION_WORLD :{WHITE}Создание мира... STR_GENERATION_ABORT :{BLACK}Прервать STR_GENERATION_ABORT_CAPTION :{WHITE}Прервать создание игрового мира -STR_GENERATION_ABORT_MESSAGE :{YELLOW}Вы серьезно хотите прервать создание мира? +STR_GENERATION_ABORT_MESSAGE :{YELLOW}Вы действительно хотите прервать создание мира? STR_GENERATION_PROGRESS :{WHITE}{NUM}% готово STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM} STR_GENERATION_WORLD_GENERATION :{BLACK}Создание мира diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index ff6d9c6959..d6f7f8f8dd 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2605,7 +2605,7 @@ STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de ferrocarril STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril con señales de bloque -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrocarril con señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de ferrocarril con señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de ferrocarril con señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de ferrocarril con señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de ferrocarril con señales de ruta @@ -2617,10 +2617,10 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrocarril con STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrocarril con señales de bloque y señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de ferrocarril con señales de entrada y combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ferrocarril con señales de entrada y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de ferrocarril con señales de entrada y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de ferrocarril con señales de salida y combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrocarril con señales de salida y señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de ferrocarril con señales de salida y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de ferrocarril con señales de salida y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de ferrocarril con señales combo y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con señales combo y de ruta de un solo sentido From be21109989cae55d859eabe2052f11d64d0b8d3a Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 19 Dec 2016 18:45:38 +0000 Subject: [PATCH 193/417] (svn r27699) -Update from Eints: russian: 1 change by Lone_Wolf --- src/lang/russian.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index dbee77cfce..8e4a3dc0c8 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -4948,7 +4948,7 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_DW_COAL_TRUCK :Грузови STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_MAIL_TRUCK :Почтовый фургон MPS STR_VEHICLE_NAME_ROAD_VEHICLE_REYNARD_MAIL_TRUCK :Почтовый фургон Reynard STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_MAIL_TRUCK :Почтовый фургон Perry -STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_MAIL_TRUCK :Почтовый фургон «MightyMover» +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_MAIL_TRUCK :Почтовый фургон MightyMover STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_MAIL_TRUCK :Почтовый фургон Powernaught STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_MAIL_TRUCK :Почтовый фургон Wizzowow STR_VEHICLE_NAME_ROAD_VEHICLE_WITCOMBE_OIL_TANKER :Цистерна Witcombe (нефть) From 1522558cf7bb6f76834a5391ff41efda8fb846a9 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 20 Dec 2016 12:35:36 +0000 Subject: [PATCH 194/417] (svn r27700) -Codechange: Simplify railtype date introduction. A check that is safe to run every day before the last railtype has been introduced, is also safe to run after the last railtype has been introduced. --- src/engine.cpp | 46 ++++------------------------------------------ 1 file changed, 4 insertions(+), 42 deletions(-) diff --git a/src/engine.cpp b/src/engine.cpp index 56fab3e65f..3e69c4ac85 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -48,11 +48,6 @@ EngineOverrideManager _engine_mngr; */ static Year _year_engine_aging_stops; -/** - * The railtypes that have been or never will be introduced, or - * an inverse bitmap of rail types that have to be introduced. */ -static uint16 _introduced_railtypes; - /** Number of engines of each vehicle type in original engine data */ const uint8 _engine_counts[4] = { lengthof(_orig_rail_vehicle_info), @@ -543,29 +538,6 @@ void SetupEngines() const Engine *e = new Engine(eid->type, eid->internal_id); assert(e->index == index); } - - _introduced_railtypes = 0; -} - -/** - * Check whether the railtypes should be introduced. - */ -static void CheckRailIntroduction() -{ - /* All railtypes have been introduced. */ - if (_introduced_railtypes == UINT16_MAX || Company::GetPoolSize() == 0) return; - - /* We need to find the railtypes that are known to all companies. */ - RailTypes rts = (RailTypes)UINT16_MAX; - - /* We are at, or past the introduction date of the rail. */ - Company *c; - FOR_ALL_COMPANIES(c) { - c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes, _date); - rts &= c->avail_railtypes; - } - - _introduced_railtypes |= rts; } void ShowEnginePreviewWindow(EngineID engine); @@ -711,19 +683,6 @@ void StartupEngines() c->avail_roadtypes = GetCompanyRoadtypes(c->index); } - /* Rail types that are invalid or never introduced are marked as - * being introduced upon start. That way we can easily check whether - * there is any date related introduction that is still going to - * happen somewhere in the future. */ - for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { - const RailtypeInfo *rti = GetRailTypeInfo(rt); - if (rti->label != 0 && IsInsideMM(rti->introduction_date, 0, MAX_DAY)) continue; - - SetBit(_introduced_railtypes, rt); - } - - CheckRailIntroduction(); - /* Invalidate any open purchase lists */ InvalidateWindowClassesData(WC_BUILD_VEHICLE); } @@ -820,7 +779,10 @@ static bool IsVehicleTypeDisabled(VehicleType type, bool ai) /** Daily check to offer an exclusive engine preview to the companies. */ void EnginesDailyLoop() { - CheckRailIntroduction(); + Company *c; + FOR_ALL_COMPANIES(c) { + c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes, _date); + } if (_cur_year >= _year_engine_aging_stops) return; From ca65ea003ddc2d51518c96ec34f47efba55c6fa7 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 20 Dec 2016 18:45:37 +0000 Subject: [PATCH 195/417] (svn r27701) -Update from Eints: russian: 37 changes by Lone_Wolf --- src/lang/russian.txt | 74 ++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 8e4a3dc0c8..4de2d72167 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -4035,7 +4035,7 @@ STR_ORDER_IMPLICIT :(Автомат STR_ORDER_FULL_LOAD :(Полная погрузка) STR_ORDER_FULL_LOAD_ANY :(Полная погрузка любым грузом) -STR_ORDER_NO_LOAD :(Не грузиться) +STR_ORDER_NO_LOAD :(Не загружаться) STR_ORDER_UNLOAD :(Разгрузиться и забрать груз) STR_ORDER_UNLOAD_FULL_LOAD :(Разгрузиться и ждать полной загрузки) STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Разгрузиться и ждать полной загрузки любым грузом) @@ -4270,7 +4270,7 @@ STR_GAME_SAVELOAD_NOT_AVAILABLE :<недосту STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}Игра была сохранена в версии без поддержки трамваев. Все трамваи удалены. # Map generation messages -STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Генерация карты остановлена...{}... нет доступных мест для размещения городов +STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Создание карты прекращено...{}... нет доступных мест для размещения городов STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... в этом сценарии нет городов STR_ERROR_PNGMAP :{WHITE}Не удалось загрузить ландшафт из PNG... @@ -4324,7 +4324,7 @@ STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}Запр STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}... администрация города {TOWN} запрещает вам это делать STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}Администрация г.{NBSP}{TOWN} запрещает постройку ещё одного аэропорта в городе STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}Администрация г.{NBSP}{TOWN} не разрешает строительство аэропорта из-за высокого уровня шума. -STR_ERROR_BRIBE_FAILED :{WHITE}Ваша попытка дать взятку была раскрыта местным следователем +STR_ERROR_BRIBE_FAILED :{WHITE}Ваша попытка дать взятку была раскрыта следователем # Levelling errors STR_ERROR_CAN_T_RAISE_LAND_HERE :{WHITE}Здесь невозможно повысить уровень земли... @@ -4440,7 +4440,7 @@ 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_BUOY_IN_THE_WAY :{WHITE}... буй мешает STR_ERROR_BUOY_IS_IN_USE :{WHITE}... этот буй используется другой компанией! # Depot related errors @@ -4472,7 +4472,7 @@ 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_AUTOREPLACE_MONEY_LIMIT :(недостаточно денег) # Rail construction errors STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Недопустимая комбинация путей @@ -4489,7 +4489,7 @@ STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}Нево STR_ERROR_THERE_IS_NO_RAILROAD_TRACK :{WHITE}... здесь нет железной дороги STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}... сигналы отсутствуют -STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Здесь невозможно преобразовать тип рельса... +STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Здесь невозможно преобразовать тип рельсов... # Road construction errors STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}Сначала удалите дорогу @@ -4542,30 +4542,30 @@ STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... ту # Object related errors STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... слишком много объектов STR_ERROR_CAN_T_BUILD_OBJECT :{WHITE}Невозможно построить объект... -STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Объект на пути -STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... штаб-квартира компании на пути +STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Объект мешает +STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... штаб-квартира компании мешает STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Невозможно купить эту землю... STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... вы и так уже владеете этим! # Group related errors -STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Не удалось создать группу... -STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Не удалось удалить группу... -STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Не удалось переименовать группу... -STR_ERROR_GROUP_CAN_T_SET_PARENT :{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}Не удалось добавить транспорт с общим маршрутом в группу... +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_REMOVE_ALL_VEHICLES :{WHITE}Невозможно удалить весь транспорт из группы... +STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Невозможно добавить транспорт в группу... +STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Невозможно добавить транспорт с общим маршрутом в группу... # Generic vehicle errors STR_ERROR_TRAIN_IN_THE_WAY :{WHITE}Поезд мешает -STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Автомобиль на пути -STR_ERROR_SHIP_IN_THE_WAY :{WHITE}Корабль на пути -STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}ОН ЛЕТИТ! +STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Автомобиль мешает +STR_ERROR_SHIP_IN_THE_WAY :{WHITE}Корабль мешает +STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}Воздушное судно мешает STR_ERROR_CAN_T_REFIT_TRAIN :{WHITE}Невозможно переоборудовать поезд... STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}Невозможно переоборудовать автомобиль... -STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}Не удалось переоборудовать корабль... -STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}Не удалось переоборудовать самолёт... +STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}Невозможно переоборудовать корабль... +STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}Невозможно переоборудовать самолёт... STR_ERROR_CAN_T_RENAME_TRAIN :{WHITE}Невозможно переименовать поезд... STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Невозможно переименовать автомобиль... @@ -4574,28 +4574,28 @@ STR_ERROR_CAN_T_RENAME_AIRCRAFT :{WHITE}Нево STR_ERROR_CAN_T_STOP_START_TRAIN :{WHITE}Невозможно остановить/запустить поезд... STR_ERROR_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}Невозможно остановить/запустить автомобиль... -STR_ERROR_CAN_T_STOP_START_SHIP :{WHITE}Не удалось остановить/запустить корабль... -STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}Не удалось остановить/запустить авиатранспорт... +STR_ERROR_CAN_T_STOP_START_SHIP :{WHITE}Невозможно остановить/запустить корабль... +STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}Невозможно остановить/запустить авиатранспорт... -STR_ERROR_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Не удалось отправить поезд в депо... +STR_ERROR_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Невозможно отправить поезд в депо... STR_ERROR_CAN_T_SEND_ROAD_VEHICLE_TO_DEPOT :{WHITE}Невозможно отправить автомобиль в гараж... -STR_ERROR_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}Не удалось отправить корабль в док... -STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}Не удалось отправить самолёт в ангар... +STR_ERROR_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}Невозможно отправить корабль в док... +STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}Невозможно отправить самолёт в ангар... -STR_ERROR_CAN_T_BUY_TRAIN :{WHITE}Не удалось купить ж/д транспорт... +STR_ERROR_CAN_T_BUY_TRAIN :{WHITE}Невозможно купить ж/д транспорт... 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_BUY_SHIP :{WHITE}Невозможно купить корабль... +STR_ERROR_CAN_T_BUY_AIRCRAFT :{WHITE}Невозможно купить воздушное судно... STR_ERROR_CAN_T_RENAME_TRAIN_TYPE :{WHITE}Невозможно изменить название модели поезда... STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Невозможно изменить название модели автомобиля... STR_ERROR_CAN_T_RENAME_SHIP_TYPE :{WHITE}Невозможно изменить название модели корабля... STR_ERROR_CAN_T_RENAME_AIRCRAFT_TYPE :{WHITE}Невозможно изменить название модели возд. судна... -STR_ERROR_CAN_T_SELL_TRAIN :{WHITE}Не удалось продать поезд... -STR_ERROR_CAN_T_SELL_ROAD_VEHICLE :{WHITE}Не удалось продать автомобиль... -STR_ERROR_CAN_T_SELL_SHIP :{WHITE}Не удалось продать корабль... -STR_ERROR_CAN_T_SELL_AIRCRAFT :{WHITE}Не удалось продать самолёт... +STR_ERROR_CAN_T_SELL_TRAIN :{WHITE}Невозможно продать поезд... +STR_ERROR_CAN_T_SELL_ROAD_VEHICLE :{WHITE}Невозможно продать автомобиль... +STR_ERROR_CAN_T_SELL_SHIP :{WHITE}Невозможно продать корабль... +STR_ERROR_CAN_T_SELL_AIRCRAFT :{WHITE}Невозможно продать самолёт... STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Локомотив и/или вагон недоступен STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Автотранспорт недоступен @@ -4603,7 +4603,7 @@ STR_ERROR_SHIP_NOT_AVAILABLE :{WHITE}Кора STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Авиатранспорт недоступен STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Слишком много транспорта в игре -STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Не удалось изменить частоту обслуживания... +STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Невозможно изменить частоту обслуживания... STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... транспортное средство уничтожено @@ -4614,7 +4614,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Начн # Specific vehicle errors STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Невозможно игнорировать светофор. Опасно... -STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Не удалось развернуть поезд... +STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Невозможно развернуть поезд... STR_ERROR_TRAIN_START_NO_POWER :У поезда нет тяги STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}Невозможно развернуть автомобиль... @@ -4627,9 +4627,9 @@ STR_ERROR_TOO_MANY_ORDERS :{WHITE}Слиш STR_ERROR_CAN_T_INSERT_NEW_ORDER :{WHITE}Невозможно вставить новое задание... STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}Невозможно удалить это задание... STR_ERROR_CAN_T_MODIFY_THIS_ORDER :{WHITE}Невозможно изменить это задание... -STR_ERROR_CAN_T_MOVE_THIS_ORDER :{WHITE}Не удалось переместить это задание... -STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Не удалось пропустить текущее задание... -STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}Не удалось перейти к выделенному заданию... +STR_ERROR_CAN_T_MOVE_THIS_ORDER :{WHITE}Невозможно переместить это задание... +STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Невозможно пропустить текущее задание... +STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}Невозможно перейти к выделенному заданию... STR_ERROR_CAN_T_COPY_SHARE_ORDER :{WHITE}... ТС не может достигнуть всех станций STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... ТС не может достигнуть этой станции STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... ТС с общим маршрутом не может достигнуть этой станции From 6de1225894ed2674e8eb057c61c32d7c6026b41c Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 21 Dec 2016 18:45:40 +0000 Subject: [PATCH 196/417] (svn r27702) -Update from Eints: russian: 16 changes by Lone_Wolf --- src/lang/russian.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 4de2d72167..6eeb4f280c 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -363,7 +363,7 @@ STR_BUTTON_LOCATION :{BLACK}Обзо STR_BUTTON_RENAME :{BLACK}Переименовать STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Закрыть окно -STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Заголовок окна - тащите его для перемещения окна +STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Окна можно перетаскивать, схватив за заголовок STR_TOOLTIP_SHADE :{BLACK}Свернуть окно, оставив заголовок STR_TOOLTIP_DEBUG :{BLACK}Показать отладочную информацию NewGRF STR_TOOLTIP_DEFSIZE :{BLACK}Изменить размеры окна на значения по умолчанию. Ctrl+щелчок сохранит текущий размер как значение по умолчанию. @@ -565,12 +565,12 @@ STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Строите ############ range ends here ############ range for road construction menu starts -STR_ROAD_MENU_ROAD_CONSTRUCTION :Строительство автомобильных коммуникаций -STR_ROAD_MENU_TRAM_CONSTRUCTION :Строительство трамвайных коммуникаций +STR_ROAD_MENU_ROAD_CONSTRUCTION :Строительство автомобильной инфраструктуры +STR_ROAD_MENU_TRAM_CONSTRUCTION :Строительство трамвайной инфраструктуры ############ range ends here ############ range for waterways construction menu starts -STR_WATERWAYS_MENU_WATERWAYS_CONSTRUCTION :Строительство водных коммуникаций +STR_WATERWAYS_MENU_WATERWAYS_CONSTRUCTION :Строительство инфраструктуры водного транспорта ############ range ends here ############ range for airport construction menu starts @@ -593,7 +593,7 @@ STR_NEWS_MENU_MESSAGE_HISTORY_MENU :История ############ range ends here ############ range for about menu starts -STR_ABOUT_MENU_LAND_BLOCK_INFO :Информация о земле +STR_ABOUT_MENU_LAND_BLOCK_INFO :Информация об участке земли STR_ABOUT_MENU_SEPARATOR : STR_ABOUT_MENU_TOGGLE_CONSOLE :Консоль STR_ABOUT_MENU_AI_DEBUG :Отладка ИИ / скриптов @@ -715,7 +715,7 @@ STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Стои STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Оплата за перевозку грузов STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Дней в пути -STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Оплата за доставку 10 единиц (10 000 литров) груза на расстояние в 20 клеток +STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Оплата за доставку 10 единиц (10{NBSP}000 литров) груза на расстояние в 20 клеток STR_GRAPH_CARGO_ENABLE_ALL :{TINY_FONT}{BLACK}Показать все STR_GRAPH_CARGO_DISABLE_ALL :{TINY_FONT}{BLACK}Спрятать все STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL :{BLACK}Показать все виды грузов на графике @@ -750,7 +750,7 @@ STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA} STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}% STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP :{BLACK}Подробная информация о компании ############ Those following lines need to be in this order!! -STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}Кол-во ТС: +STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}Количество ТС: STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}Станции: STR_PERFORMANCE_DETAIL_MIN_PROFIT :{BLACK}Мин. прибыль: STR_PERFORMANCE_DETAIL_MIN_INCOME :{BLACK}Мин. доход: @@ -758,15 +758,15 @@ 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_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}Наименьший квартальный доход за последние 3 года STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Наибольший квартальный доход за последние 3 года -STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Кол-во груза, доставленного за последние 4 квартала +STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Количество груза, доставленного за последние 4 квартала STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}Количество типов груза, доставленного за последний квартал STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Количество денег на банковском счету компании STR_PERFORMANCE_DETAIL_LOAN_TOOLTIP :{BLACK}Размер займа, полученного этой компанией в банке @@ -775,9 +775,9 @@ STR_PERFORMANCE_DETAIL_TOTAL_TOOLTIP :{BLACK}Всег # Music window STR_MUSIC_JAZZ_JUKEBOX_CAPTION :{WHITE}Музыкальный автомат STR_MUSIC_PLAYLIST_ALL :{TINY_FONT}{BLACK}Все -STR_MUSIC_PLAYLIST_OLD_STYLE :{TINY_FONT}{BLACK}Старый Стиль -STR_MUSIC_PLAYLIST_NEW_STYLE :{TINY_FONT}{BLACK}Новый Стиль -STR_MUSIC_PLAYLIST_EZY_STREET :{TINY_FONT}{BLACK}Уличный Стиль +STR_MUSIC_PLAYLIST_OLD_STYLE :{TINY_FONT}{BLACK}Старый стиль +STR_MUSIC_PLAYLIST_NEW_STYLE :{TINY_FONT}{BLACK}Новый стиль +STR_MUSIC_PLAYLIST_EZY_STREET :{TINY_FONT}{BLACK}Уличный стиль STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLACK}Пользоват. 1 STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Пользоват. 2 STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Громкость музыки @@ -801,7 +801,7 @@ STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Пере STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Выбор программы «Все треки» STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Выбор программы «Старый стиль музыки» STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Выбор программы «Новый стиль музыки» -STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Выбрать музыкальную программу +STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Выбор программы «Ezy Street» STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Выбор программы «Пользоват. 1» STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Выбор программы «Пользоват. 2» STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Вкл./Выкл. случайный выбор программы @@ -838,7 +838,7 @@ STR_HIGHSCORE_PERFORMANCE_TITLE_MOGUL.abl :транспо STR_HIGHSCORE_PERFORMANCE_TITLE_TYCOON_OF_THE_CENTURY :Магнат Века STR_HIGHSCORE_PERFORMANCE_TITLE_TYCOON_OF_THE_CENTURY.abl :Магнатом Века STR_HIGHSCORE_NAME :{PRESIDENT_NAME}, {COMPANY} -STR_HIGHSCORE_STATS :{BIG_FONT}«{STRING}» ({COMMA}) +STR_HIGHSCORE_STATS :{BIG_FONT}«{STRING}» ({COMMA}) STR_HIGHSCORE_COMPANY_ACHIEVES_STATUS :{BIG_FONT}{BLACK}Директора компании «{COMPANY}» называют {STRING.abl}! STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS :{BIG_FONT}{WHITE}{PRESIDENT_NAME}, президент компании «{COMPANY}», заслужил титул «{STRING}»! @@ -943,7 +943,7 @@ STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLAC STR_NEWS_DISASTER_AIRPLANE_OIL_REFINERY :{BIG_FONT}{BLACK}Взрыв нефтеперегонного завода вблизи г.{NBSP}{TOWN}! STR_NEWS_DISASTER_HELICOPTER_FACTORY :{BIG_FONT}{BLACK}Взрыв завода при подозрительных обстоятельствах вблизи г.{NBSP}{TOWN}! STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}НЛО приземлилось возле г.{NBSP}{TOWN}! -STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}Обвал на угольной шахте вызывает оползень в районе г.{NBSP}{TOWN}! +STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}Обвал на угольной шахте вызвал оползень в районе г.{NBSP}{TOWN}! STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}Потоп!{}По крайней мере {COMMA} человек{P "" а ""} признан{P "" о о} пропавшим{P "" и и} без вести в результате наводнения! STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}Транспортная компания в опасном положении! From ab3d5305a5308cf8caeb140d813bff48f242cb2e Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 22 Dec 2016 12:59:46 +0000 Subject: [PATCH 197/417] (svn r27703) -Change [FS#6532]: [gcc] Wnarrowing and Wfree-nonheap-object do no longer trigger in gcc 4.9.2, so reenable them. --- config.lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.lib b/config.lib index a144b9e3ea..bf52a94c15 100644 --- a/config.lib +++ b/config.lib @@ -1399,7 +1399,7 @@ make_compiler_cflags() { flags="$flags -fno-tree-vrp" fi - if [ $cc_version -ge 407 ]; then + if [ $cc_version -eq 407 ]; then # Disable -Wnarrowing which gives many warnings, such as: # warning: narrowing conversion of '...' from 'unsigned int' to 'int' inside { } [-Wnarrowing] # They are valid according to the C++ standard, but useless. From 2507487877bbb2b960057d222f598da9f1ae2f47 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 22 Dec 2016 18:45:38 +0000 Subject: [PATCH 198/417] (svn r27704) -Update from Eints: welsh: 29 changes by kazzie spanish: 2 changes by SilverSurferZzZ russian: 13 changes by Lone_Wolf --- src/lang/russian.txt | 26 ++++++++++---------- src/lang/spanish.txt | 4 ++-- src/lang/welsh.txt | 56 +++++++++++++++++++++++--------------------- 3 files changed, 44 insertions(+), 42 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 6eeb4f280c..d320a2bd74 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -396,9 +396,9 @@ STR_OSK_KEYBOARD_LAYOUT_CAPS :~!@#$%^&*()_+|Q # Measurement tooltip STR_MEASURE_LENGTH :{BLACK}Длина: {NUM} -STR_MEASURE_AREA :{BLACK}Площадь: {NUM} x {NUM} +STR_MEASURE_AREA :{BLACK}Площадь: {NUM} × {NUM} STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Длина: {NUM}{}Разница высот: {HEIGHT} -STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Площадь: {NUM} x {NUM}{}Разница высот: {HEIGHT} +STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Площадь: {NUM} × {NUM}{}Разница высот: {HEIGHT} # These are used in buttons @@ -944,7 +944,7 @@ STR_NEWS_DISASTER_AIRPLANE_OIL_REFINERY :{BIG_FONT}{BLAC STR_NEWS_DISASTER_HELICOPTER_FACTORY :{BIG_FONT}{BLACK}Взрыв завода при подозрительных обстоятельствах вблизи г.{NBSP}{TOWN}! STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}НЛО приземлилось возле г.{NBSP}{TOWN}! STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}Обвал на угольной шахте вызвал оползень в районе г.{NBSP}{TOWN}! -STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}Потоп!{}По крайней мере {COMMA} человек{P "" а ""} признан{P "" о о} пропавшим{P "" и и} без вести в результате наводнения! +STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}Потоп!{}По крайней мере {COMMA} человек{P "" а ""} пропал{P "" о о} без вести в результате наводнения! STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}Транспортная компания в опасном положении! STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} будет продана или объявлена банкротом, если не улучшит финансовые показатели! @@ -964,7 +964,7 @@ STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLAC STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIG_FONT}{BLACK}Предприятие «{STRING}» объявляет о скором закрытии! STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS :{BIG_FONT}{BLACK}{STRING} закрывается из-за проблем с поставками сырья! -STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLACK}«{STRING}» объявляет о закрытии в связи с отсутствием деревьев в округе! +STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLACK}«{STRING}» объявляет о закрытии в связи с полной вырубкой близлежащих лесов! STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}Создана зона евро!{}{}Теперь в вашей стране в качестве единой валюты используется евро! STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLACK}Мировой спад{}{}Финансовые эксперты дают ужасные прогнозы в связи с кризисом экономики! @@ -989,7 +989,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}У ТС 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} направлен{G 0 "" а о ы} в аэропорт со слишком короткой полосой +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} направлен{G 0 "" а о ы} в аэропорт со слишком короткой взлётно-посадочной полосой STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}ТС «{VEHICLE}» устарело STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}ТС «{VEHICLE}» сильно устарело @@ -2065,7 +2065,7 @@ STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP :{BLACK}Назв STR_NETWORK_SERVER_LIST_GENERAL_ONLINE :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA} STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Клиенты STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Клиентов сейчас/макс.{}Компаний сейчас/макс. -STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA} +STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}×{COMMA} STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Размер карты STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Размер карты игры{}Нажмите для сортировки по площади STR_NETWORK_SERVER_LIST_DATE_CAPTION :{BLACK}Дата @@ -2082,7 +2082,7 @@ STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}ИНФ STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Клиенты: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA} STR_NETWORK_SERVER_LIST_LANGUAGE :{SILVER}Язык: {WHITE}{STRING} STR_NETWORK_SERVER_LIST_LANDSCAPE :{SILVER}Ландшафт: {WHITE}{STRING} -STR_NETWORK_SERVER_LIST_MAP_SIZE :{SILVER}Размер карты: {WHITE}{COMMA}x{COMMA} +STR_NETWORK_SERVER_LIST_MAP_SIZE :{SILVER}Размер карты: {WHITE}{COMMA}×{COMMA} STR_NETWORK_SERVER_LIST_SERVER_VERSION :{SILVER}Версия сервера: {WHITE}{STRING} STR_NETWORK_SERVER_LIST_SERVER_ADDRESS :{SILVER}Адрес сервера: {WHITE}{STRING} STR_NETWORK_SERVER_LIST_START_DATE :{SILVER}Дата начала: {WHITE}{DATE_SHORT} @@ -2661,7 +2661,7 @@ STR_OBJECT_BUILD_CAPTION :{WHITE}Выбо STR_OBJECT_BUILD_TOOLTIP :{BLACK}Выберите создаваемый объект. При нажатом Shift - оценка стоимости постройки. STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Выберите класс объекта для строительства STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Предварительный просмотр объекта -STR_OBJECT_BUILD_SIZE :{BLACK}Размер: {GOLD}{NUM} x {NUM} клеток +STR_OBJECT_BUILD_SIZE :{BLACK}Размер: {GOLD}{NUM} × {NUM} клеток STR_OBJECT_CLASS_LTHS :Маяки STR_OBJECT_CLASS_TRNS :Передатчики @@ -2759,7 +2759,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Влад STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Владелец ж/д пути: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Администрация: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :Нет -STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Координаты: {LTBLUE}{NUM}x{NUM}x{NUM} ({STRING}) +STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Координаты: {LTBLUE}{NUM} × {NUM} × {NUM} ({STRING}) STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Построено: {LTBLUE}{DATE_LONG} STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Класс станции: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Тип станции: {LTBLUE}{STRING} @@ -2933,7 +2933,7 @@ STR_MAPGEN_BORDER_MANUAL :{BLACK}Вруч STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Поворот карты: STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Название карты: STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Размер: -STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} +STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} × {NUM} STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Максимальная высота карты STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Изменить высоту снеговой линии @@ -3854,7 +3854,7 @@ STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Надё STR_VEHICLE_INFO_BUILT_VALUE :{LTBLUE}{ENGINE} {BLACK}Построен в {LTBLUE}{NUM} г.{BLACK} Стоимость: {LTBLUE}{CURRENCY_LONG} STR_VEHICLE_INFO_NO_CAPACITY :{BLACK}Ёмкость: {LTBLUE}отсутствует{STRING} STR_VEHICLE_INFO_CAPACITY :{BLACK}Ёмкость: {LTBLUE}{CARGO_LONG}{3:STRING} -STR_VEHICLE_INFO_CAPACITY_MULT :{BLACK}Ёмкость: {LTBLUE}{CARGO_LONG}{3:STRING} (x{4:NUM}) +STR_VEHICLE_INFO_CAPACITY_MULT :{BLACK}Ёмкость: {LTBLUE}{CARGO_LONG}{3:STRING} (×{4:NUM}) STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}Ёмкость: {LTBLUE}{CARGO_LONG}, {CARGO_LONG}{STRING} STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Выручка перевозки: {LTBLUE}{CURRENCY_LONG} @@ -3880,11 +3880,11 @@ STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE :{LTBLUE}{ENGINE STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY_TEXT :{BLACK}Общая загруженность состава: STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY :{LTBLUE}- {CARGO_LONG} (Всего: {CARGO_SHORT}) -STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY_MULT :{LTBLUE}- {CARGO_LONG} ({CARGO_SHORT}) (x{NUM}) +STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY_MULT :{LTBLUE}- {CARGO_LONG} ({CARGO_SHORT}) (×{NUM}) STR_VEHICLE_DETAILS_CARGO_EMPTY :{LTBLUE}Пусто STR_VEHICLE_DETAILS_CARGO_FROM :{LTBLUE}{CARGO_LONG} из {STATION} -STR_VEHICLE_DETAILS_CARGO_FROM_MULT :{LTBLUE}{CARGO_LONG} из {STATION} (x{NUM}) +STR_VEHICLE_DETAILS_CARGO_FROM_MULT :{LTBLUE}{CARGO_LONG} из {STATION} (×{NUM}) STR_VEHICLE_DETAIL_TAB_CARGO :{BLACK}Груз STR_VEHICLE_DETAILS_TRAIN_CARGO_TOOLTIP :{BLACK}Показать сведения о перевозимых грузах diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index d6f7f8f8dd..db7f1cbcac 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2604,12 +2604,12 @@ STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tierra cubierta STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de ferrocarril -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril con señales de bloque +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de ferrocarril con señales de bloque STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de ferrocarril con señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de ferrocarril con señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de ferrocarril con señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de ferrocarril con señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril con señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferrocarril con señales de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index fd1fc5923f..9fb7aca766 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2312,7 +2312,7 @@ STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Adeiladu Maglef STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Adeiladu trac rheilffordd. Mae Ctrl yn toglo adeiladu/codi'r rheilffordd, tra fo Shift yn toglo adeiladu/dangos amcangyfrif o'r gost STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Adeiladu trac yn defnyddio'r modd Awtoreilffordd. Mae Ctrl yn toglo adeiladu/codi'r rheilffordd, tra fo Shift yn toglo adeiladu/dangos amcangyfrif o'r gost -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Adeiladu trên depo (ar gyfer adeiladu a rhoi gwasanaeth i drenau). Mae Shift yn toglo adeiladu/dangos amcangyfrif o'r gost +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Adeiladu depo trenau (ar gyfer adeiladu a rhoi gwasanaeth i drenau). Mae Shift yn toglo adeiladu/dangos amcangyfrif o'r gost STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Newid rheilffordd yn bwynt llwybro. Mae Ctrl yn galluogi uno pwyntiau llwybro, tra fod Shift yn toglo adeiladu/dangos amcangyfrif o'r gost STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Adeiladu gorsaf reilffordd. Mae Ctrl yn galluogi uno gorsafoedd, tra fo Shift yn toglo adeiladu/dangos amcangyfrif o'r gost STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Adeiladu signalau rheilffordd. Mae Ctrl yn toglo signalau semafor/golau lliw{}Mae llusgo'n adeiladu signalau ar hyd trac syth. Mae Ctrl yn adeiladu signalau hyd y gyffordd nesaf{}Mae Ctrl+Clic yn toglo agor y ffenestr dewis signalau. Mae Shift yn toglo adeiladu/amcangyfrif y gost @@ -2323,7 +2323,7 @@ STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Trosi/Di STR_RAIL_NAME_RAILROAD :Rheilffordd STR_RAIL_NAME_ELRAIL :rheilffordd drydan -STR_RAIL_NAME_MONORAIL :monoreilffordd +STR_RAIL_NAME_MONORAIL :Monoreilffordd STR_RAIL_NAME_MAGLEV :maglef # Rail depot construction window @@ -2589,6 +2589,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Enw teil STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Llwythi a dderbynir: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Math rheilffordd: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Terfyn cyflymder rheilffordd: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Terfyn cyflymder ffordd: {LTBLUE}{VELOCITY} @@ -2601,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Caeau STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tir ag eira STR_LAI_CLEAR_DESCRIPTION_DESERT :Anialdir -STR_LAI_RAIL_DESCRIPTION_TRACK :Cledrau Rheilffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Cledrau Rheilffordd gyda signalau bloc -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Cledrau Rheilffordd gyda rhagsignalau -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Cledrau Rheilffordd gyda signalau gadael -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Cledrau Rheilffordd gyda signalau cyfun -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Cledrau Rheilffordd gyda signalau llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Cledrau Rheilffordd gyda signalau bloc a rhagsignalau -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Cledrau Rheilffordd gyda signalau bloc a signalau gadael -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Cledrau Rheilffordd gyda signalau bloc a signalau cyfun -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Cledrau Rheilffordd gyda signalau bloc a signalau llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau bloc a signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Cledrau Rheilffordd gyda rhagsignalau a signalau gadael -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Cledrau Rheilffordd gyda rhagsignalau a signalau cyfun -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Cledrau Rheilffordd gyda rhagsignalau a signalau llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Cledrau Rheilffordd gyda rhag-signalau a signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Cledrau Rheilffordd gyda signalau gadael a signalau cyfun -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Cledrau Rheilffordd gyda signalau gadael a signalau llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau gadael a signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Cledrau Rheilffordd gyda signalau cyfun a llwybro -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau cyfun a signalau llwybr unffordd -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Cledrau Rheilffordd gyda signalau llwybro a signalau llwybro unffordd -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depo trên Rheilffordd +STR_LAI_RAIL_DESCRIPTION_TRACK :Cledrau rheilffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Cledrau rheilffordd gyda signalau bloc +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Cledrau rheilffordd gyda rhagsignalau +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Cledrau rheilffordd gyda signalau gadael +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Cledrau rheilffordd gyda signalau cyfun +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Cledrau rheilffordd gyda signalau llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Cledrau rheilffordd gyda signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Cledrau rheilffordd gyda signalau bloc a rhagsignalau +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Cledrau rheilffordd gyda signalau bloc a signalau gadael +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Cledrau rheilffordd gyda signalau bloc a signalau cyfun +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Cledrau rheilffordd gyda signalau bloc a signalau llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Cledrau rheilffordd gyda signalau bloc a signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Cledrau rheilffordd gyda rhagsignalau a signalau gadael +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Cledrau rheilffordd gyda rhagsignalau a signalau cyfun +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Cledrau rheilffordd gyda rhagsignalau a signalau llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Cledrau rheilffordd gyda rhag-signalau a signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Cledrau rheilffordd gyda signalau gadael a signalau cyfun +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Cledrau rheilffordd gyda signalau gadael a signalau llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Cledrau rheilffordd gyda signalau gadael a signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Cledrau rheilffordd gyda signalau cyfun a llwybro +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Cledrau rheilffordd gyda signalau cyfun a signalau llwybr unffordd +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Cledrau rheilffordd gyda signalau llwybro a signalau llwybro unffordd +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depo trenau rheilffordd STR_LAI_ROAD_DESCRIPTION_ROAD :Ffordd STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Ffordd gyda goleuadau stryd @@ -3369,7 +3370,7 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Cerbydau Rheilf STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Cerbydau Monoreilffordd Newydd STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Cerbydau Maglef Newydd -STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Cerbydau Rheilffordd +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Cerbydau Rheilffordd Newydd STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Cerbydau Ffordd Newydd STR_BUY_VEHICLE_SHIP_CAPTION :Llongau Newydd STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Awyrennau Newydd @@ -3560,6 +3561,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Gwasgwch STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Newid rhwng y ffenest disodli wagenni a'r un injanau STR_REPLACE_ENGINES :Injanau STR_REPLACE_WAGONS :Wagenni +STR_REPLACE_ALL_RAILTYPE :Pob cerbyd rheilffordd STR_REPLACE_HELP_RAILTYPE :{BLACK}Dewiswch y math o reilffordd yr hoffech chi ddisodli injans ar ei gyfer STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Dangoswch pa injan (os unrhyw) y mae'r injan ar y chwith yn cael ei disodli gyda @@ -4252,7 +4254,7 @@ STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... bwï STR_ERROR_BUOY_IS_IN_USE :{WHITE}... bwï mewn defnydd gan cwmni arall! # Depot related errors -STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}Methu adeiladu trên depo yma... +STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}Methu adeiladu depo trenau yma... STR_ERROR_CAN_T_BUILD_ROAD_DEPOT :{WHITE}Methu adeiladu depo cerbydau ffordd yma... STR_ERROR_CAN_T_BUILD_TRAM_DEPOT :{WHITE}Methu adeiladu depo cerbyd tramiau yma... STR_ERROR_CAN_T_BUILD_SHIP_DEPOT :{WHITE}Methu adeiladu depo llong yma... From 124f386fd183d8e31e53dba332c290f9fdd2ff91 Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 22 Dec 2016 20:47:40 +0000 Subject: [PATCH 199/417] (svn r27705) -Doc: Add the hex codes to the SCC_NEWGRF_ enum entries. --- src/table/control_codes.h | 58 +++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/table/control_codes.h b/src/table/control_codes.h index 81f9950d5f..944f923114 100644 --- a/src/table/control_codes.h +++ b/src/table/control_codes.h @@ -118,35 +118,35 @@ enum StringControlCode { * It uses a "stack" of bytes and reads from there. */ SCC_NEWGRF_FIRST, - SCC_NEWGRF_PRINT_DWORD_SIGNED = SCC_NEWGRF_FIRST, ///< Read 4 bytes from the stack - SCC_NEWGRF_PRINT_WORD_SIGNED, ///< Read 2 bytes from the stack as signed value - SCC_NEWGRF_PRINT_BYTE_SIGNED, ///< Read 1 byte from the stack as signed value - SCC_NEWGRF_PRINT_WORD_UNSIGNED, ///< Read 2 bytes from the stack as unsigned value - SCC_NEWGRF_PRINT_DWORD_CURRENCY, ///< Read 4 bytes from the stack as currency - SCC_NEWGRF_PRINT_WORD_STRING_ID, ///< Read 2 bytes from the stack as String ID - SCC_NEWGRF_PRINT_WORD_DATE_LONG, ///< Read 2 bytes from the stack as base 1920 date - SCC_NEWGRF_PRINT_WORD_DATE_SHORT, ///< Read 2 bytes from the stack as base 1920 date - SCC_NEWGRF_PRINT_WORD_SPEED, ///< Read 2 bytes from the stack as signed speed - SCC_NEWGRF_PRINT_WORD_VOLUME_LONG, ///< Read 2 bytes from the stack as long signed volume - SCC_NEWGRF_PRINT_WORD_WEIGHT_LONG, ///< Read 2 bytes from the stack as long unsigned weight - SCC_NEWGRF_PRINT_WORD_STATION_NAME, ///< Read 2 bytes from the stack as station name - SCC_NEWGRF_PRINT_QWORD_CURRENCY, ///< Read 8 bytes from the stack as currency - SCC_NEWGRF_PRINT_BYTE_HEX, ///< Read 1 byte from the stack and print it as hex - SCC_NEWGRF_PRINT_WORD_HEX, ///< Read 2 bytes from the stack and print it as hex - SCC_NEWGRF_PRINT_DWORD_HEX, ///< Read 4 bytes from the stack and print it as hex - SCC_NEWGRF_PRINT_QWORD_HEX, ///< Read 8 bytes from the stack and print it as hex - SCC_NEWGRF_PRINT_DWORD_DATE_LONG, ///< Read 4 bytes from the stack as base 0 date - SCC_NEWGRF_PRINT_DWORD_DATE_SHORT, ///< Read 4 bytes from the stack as base 0 date - SCC_NEWGRF_PRINT_WORD_POWER, ///< Read 2 bytes from the stack as unsigned power - SCC_NEWGRF_PRINT_WORD_VOLUME_SHORT, ///< Read 2 bytes from the stack as short signed volume - SCC_NEWGRF_PRINT_WORD_WEIGHT_SHORT, ///< Read 2 bytes from the stack as short unsigned weight - SCC_NEWGRF_PRINT_WORD_CARGO_LONG, ///< Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount - SCC_NEWGRF_PRINT_WORD_CARGO_SHORT, ///< Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount - SCC_NEWGRF_PRINT_WORD_CARGO_TINY, ///< Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount - SCC_NEWGRF_PUSH_WORD, ///< Pushes 2 bytes onto the stack - SCC_NEWGRF_UNPRINT, ///< "Unprints" the given number of bytes from the string - SCC_NEWGRF_DISCARD_WORD, ///< Discard the next two bytes - SCC_NEWGRF_ROTATE_TOP_4_WORDS, ///< Rotate the top 4 words of the stack (W4 W1 W2 W3) + SCC_NEWGRF_PRINT_DWORD_SIGNED = SCC_NEWGRF_FIRST, ///< 7B: Read 4 bytes from the stack + SCC_NEWGRF_PRINT_WORD_SIGNED, ///< 7C: Read 2 bytes from the stack as signed value + SCC_NEWGRF_PRINT_BYTE_SIGNED, ///< 7D: Read 1 byte from the stack as signed value + SCC_NEWGRF_PRINT_WORD_UNSIGNED, ///< 7E: Read 2 bytes from the stack as unsigned value + SCC_NEWGRF_PRINT_DWORD_CURRENCY, ///< 8F: Read 4 bytes from the stack as currency + SCC_NEWGRF_PRINT_WORD_STRING_ID, ///< 81: Read 2 bytes from the stack as String ID + SCC_NEWGRF_PRINT_WORD_DATE_LONG, ///< 82: Read 2 bytes from the stack as base 1920 date + SCC_NEWGRF_PRINT_WORD_DATE_SHORT, ///< 83: Read 2 bytes from the stack as base 1920 date + SCC_NEWGRF_PRINT_WORD_SPEED, ///< 84: Read 2 bytes from the stack as signed speed + SCC_NEWGRF_PRINT_WORD_VOLUME_LONG, ///< 87: Read 2 bytes from the stack as long signed volume + SCC_NEWGRF_PRINT_WORD_WEIGHT_LONG, ///< 9A 0D: Read 2 bytes from the stack as long unsigned weight + SCC_NEWGRF_PRINT_WORD_STATION_NAME, ///< 9A 0C: Read 2 bytes from the stack as station name + SCC_NEWGRF_PRINT_QWORD_CURRENCY, ///< 9A 01: Read 8 bytes from the stack as currency + SCC_NEWGRF_PRINT_BYTE_HEX, ///< 9A 06: Read 1 byte from the stack and print it as hex + SCC_NEWGRF_PRINT_WORD_HEX, ///< 9A 07: Read 2 bytes from the stack and print it as hex + SCC_NEWGRF_PRINT_DWORD_HEX, ///< 9A 08: Read 4 bytes from the stack and print it as hex + SCC_NEWGRF_PRINT_QWORD_HEX, ///< 9A 0B: Read 8 bytes from the stack and print it as hex + SCC_NEWGRF_PRINT_DWORD_DATE_LONG, ///< 9A 16: Read 4 bytes from the stack as base 0 date + SCC_NEWGRF_PRINT_DWORD_DATE_SHORT, ///< 9A 17: Read 4 bytes from the stack as base 0 date + SCC_NEWGRF_PRINT_WORD_POWER, ///< 9A 18: Read 2 bytes from the stack as unsigned power + SCC_NEWGRF_PRINT_WORD_VOLUME_SHORT, ///< 9A 19: Read 2 bytes from the stack as short signed volume + SCC_NEWGRF_PRINT_WORD_WEIGHT_SHORT, ///< 9A 1A: Read 2 bytes from the stack as short unsigned weight + SCC_NEWGRF_PRINT_WORD_CARGO_LONG, ///< 9A 1B: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount + SCC_NEWGRF_PRINT_WORD_CARGO_SHORT, ///< 9A 1C: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount + SCC_NEWGRF_PRINT_WORD_CARGO_TINY, ///< 9A 1D: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount + SCC_NEWGRF_PUSH_WORD, ///< 9A 03: Pushes 2 bytes onto the stack + SCC_NEWGRF_UNPRINT, ///< 9A 04: "Unprints" the given number of bytes from the string + SCC_NEWGRF_DISCARD_WORD, ///< 85: Discard the next two bytes + SCC_NEWGRF_ROTATE_TOP_4_WORDS, ///< 86: Rotate the top 4 words of the stack (W4 W1 W2 W3) SCC_NEWGRF_LAST = SCC_NEWGRF_ROTATE_TOP_4_WORDS, SCC_NEWGRF_STRINL, ///< Inline another string at the current position, StringID is encoded in the string From 9145e5d2b589d09329db99a58e0a7fb797e89f07 Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 23 Dec 2016 13:38:50 +0000 Subject: [PATCH 200/417] (svn r27706) -Feature: [NewGRF] String command 9A 1E to print the name of a cargo type. --- src/newgrf_text.cpp | 9 +++++++++ src/table/control_codes.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index daf9db4433..2c9fe65797 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -527,6 +527,7 @@ char *TranslateTTDPatchCodes(uint32 grfid, uint8 language_id, bool allow_newline case 0x1B: case 0x1C: case 0x1D: + case 0x1E: d += Utf8Encode(d, SCC_NEWGRF_PRINT_DWORD_DATE_LONG + code - 0x16); break; @@ -996,6 +997,7 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const case SCC_NEWGRF_PRINT_WORD_WEIGHT_SHORT: case SCC_NEWGRF_PRINT_WORD_POWER: case SCC_NEWGRF_PRINT_WORD_STATION_NAME: + case SCC_NEWGRF_PRINT_WORD_CARGO_NAME: if (argv_size < 1) { DEBUG(misc, 0, "Too many NewGRF string parameters."); return 0; @@ -1059,6 +1061,10 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const case SCC_NEWGRF_PRINT_WORD_STRING_ID: *argv = MapGRFStringID(_newgrf_textrefstack.grffile->grfid, _newgrf_textrefstack.PopUnsignedWord()); break; + + case SCC_NEWGRF_PRINT_WORD_CARGO_NAME: + *argv = 1 << GetCargoTranslation(_newgrf_textrefstack.PopUnsignedWord(), _newgrf_textrefstack.grffile); + break; } } else { /* Consume additional parameter characters */ @@ -1128,6 +1134,9 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const case SCC_NEWGRF_PRINT_WORD_CARGO_TINY: return SCC_CARGO_TINY; + case SCC_NEWGRF_PRINT_WORD_CARGO_NAME: + return SCC_CARGO_LIST; + case SCC_NEWGRF_PRINT_WORD_STATION_NAME: return SCC_STATION_NAME; diff --git a/src/table/control_codes.h b/src/table/control_codes.h index 944f923114..d6b1ad6f4e 100644 --- a/src/table/control_codes.h +++ b/src/table/control_codes.h @@ -143,6 +143,7 @@ enum StringControlCode { SCC_NEWGRF_PRINT_WORD_CARGO_LONG, ///< 9A 1B: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount SCC_NEWGRF_PRINT_WORD_CARGO_SHORT, ///< 9A 1C: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount SCC_NEWGRF_PRINT_WORD_CARGO_TINY, ///< 9A 1D: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount + SCC_NEWGRF_PRINT_WORD_CARGO_NAME, ///< 9A 1E: Read 2 bytes from the stack as cargo name SCC_NEWGRF_PUSH_WORD, ///< 9A 03: Pushes 2 bytes onto the stack SCC_NEWGRF_UNPRINT, ///< 9A 04: "Unprints" the given number of bytes from the string SCC_NEWGRF_DISCARD_WORD, ///< 85: Discard the next two bytes From 2be42dadea926a291b9a1c37e8e3df391f9fffce Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 23 Dec 2016 22:13:38 +0000 Subject: [PATCH 201/417] (svn r27707) -Fix: Make the result of NewGRF's CARGO_NAME string code reliably print 'Nothing', if an invalid type is provided. --- src/newgrf_text.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 2c9fe65797..df00ef3419 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -1062,9 +1062,11 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const *argv = MapGRFStringID(_newgrf_textrefstack.grffile->grfid, _newgrf_textrefstack.PopUnsignedWord()); break; - case SCC_NEWGRF_PRINT_WORD_CARGO_NAME: - *argv = 1 << GetCargoTranslation(_newgrf_textrefstack.PopUnsignedWord(), _newgrf_textrefstack.grffile); + case SCC_NEWGRF_PRINT_WORD_CARGO_NAME: { + CargoID cargo = GetCargoTranslation(_newgrf_textrefstack.PopUnsignedWord(), _newgrf_textrefstack.grffile); + *argv = cargo < NUM_CARGO ? 1 << cargo : 0; break; + } } } else { /* Consume additional parameter characters */ From c917ed211245720f4b3ba41c7f3b654577142863 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 24 Dec 2016 18:45:38 +0000 Subject: [PATCH 202/417] (svn r27708) -Update from Eints: catalan: 26 changes by juanjo russian: 9 changes by Lone_Wolf --- src/lang/catalan.txt | 50 +++++++++++++++++++++++--------------------- src/lang/russian.txt | 18 ++++++++-------- 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 0a85f8869d..cdd9b29dc4 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1407,7 +1407,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :El més antic d STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :El més modern disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :El més utilitzat disponible STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Mostra els camins reservats: {STRING} -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Dóna a les vies reservades un color diferent per ajudar en problemes de trens que refusen entrar en blocs basats en camí +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Dóna a les vies reservades un color diferent per visualitzar problemes d'encaminament de trens STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Mantingues les eines de construcció actives després del seu ús: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantingues les eines de construcció pels ponts, túnels, etc. obertes després d'utilitzar-les STR_CONFIG_SETTING_EXPENSES_LAYOUT :Agrupa les despeses a la finestra de finances de la companyia: {STRING} @@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nom de l STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Càrrega acceptada: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipus de via ferroviària: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límit de velocitat de la via: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límit de velocitat de la carretera: {LTBLUE}{VELOCITY} @@ -2602,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Camps de conreu STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terreny nevat STR_LAI_CLEAR_DESCRIPTION_DESERT :Desert -STR_LAI_RAIL_DESCRIPTION_TRACK :Via de Ferrocarril -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Ferrocarril via amb senyals de bloc -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ferrocarril via amb pre-senyals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Ferrocarril via amb senyals de sortida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Ferrocarril via amb senyals combinats -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril via amb senyals de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Ferrocarril via amb senyals de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarrilvia amb senyals de bloc i pre-senyals -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril via amb senyals de bloc i de sortida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Ferrocarril via amb senyals de bloc i combinats -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrocarril via amb senyals de bloc i de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrocarril via amb senyals de bloc i de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril via amb pre-senyals i senyals de sortida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ferrocarril via amb pre-senyals i senyals combinats -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ferrocarril via amb pre-senyals i senyals de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril via amb pre-senyals i senyals de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Ferrocarril via amb senyals de sortida i combinats -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Ferrocarril via amb senyals de sortida i de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Ferrocarril via amb senyals de sortida i de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Ferrocarril via amb senyals combinats i de camí -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Ferrocarril via amb senyals combinats i de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Ferrocarril via amb senyals de camí i de camí d'un sentit -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril cotxeres de tren +STR_LAI_RAIL_DESCRIPTION_TRACK :Via ferroviària +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Via ferroviària amb senyals de secció +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Via ferroviària amb senyals d'entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Via ferroviària amb senyals de sortida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Via ferroviària amb senyals combinats +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Ferrocarril via amb senyals de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Via ferroviària amb senyals de ruta d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Via ferroviària amb senyals de secció i d'entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Via ferroviària amb senyals de secció i de sortida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Via ferroviària amb senyals de secció i combinats +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Via ferroviària amb senyals de secció i de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Via ferroviària amb senyals de secció i de ruta d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Via ferroviària amb senyals d'entrada i de sortida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Via ferroviària amb senyals d'entrada i combinats +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Via ferroviària amb senyals d'entrada i senyals de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Via ferroviària amb senyals d'entrada i de ruta d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Via ferroviària amb senyals combinats i de sortida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Via ferroviària amb senyals de sortida i de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Via ferroviària amb senyals de sortida i de ruta d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Via ferroviària amb senyals combinats i de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Via ferroviària amb senyals combinats i de ruta d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Via ferroviària amb senyals de ruta i de ruta d'un sentit +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Cotxeres de vehicles ferroviaris STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera amb fanals @@ -3561,6 +3562,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Prem per STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Canvia entre finestres de substitució de vagons i de motors STR_REPLACE_ENGINES :Motors STR_REPLACE_WAGONS :Vagons +STR_REPLACE_ALL_RAILTYPE :Tots els vehicles ferroviaris STR_REPLACE_HELP_RAILTYPE :{BLACK}Tria el tipus de via dels models de vehicle que vols substituir STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra quin model dels seleccionats a l'esquerra es substitueix, si n'hi ha diff --git a/src/lang/russian.txt b/src/lang/russian.txt index d320a2bd74..43f75fa3c9 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3162,9 +3162,9 @@ STR_TOWN_POPULATION :{BLACK}Насе # Town view window STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN} STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Мегаполис) -STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Население: {ORANGE}{COMMA}{BLACK} Зданий: {ORANGE}{COMMA} -STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пассажиров за прошлый месяц: {ORANGE}{COMMA}{BLACK} макс.: {ORANGE}{COMMA} -STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Почты за прошлый месяц: {ORANGE}{COMMA}{BLACK} макс.: {ORANGE}{COMMA} +STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Население: {ORANGE}{COMMA}{BLACK} Зданий: {ORANGE}{COMMA} +STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пассажиров за прошлый месяц: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} +STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Почты за прошлый месяц: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} STR_TOWN_VIEW_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 е е е ю}тся зимой @@ -3176,8 +3176,8 @@ STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{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_LOCAL_AUTHORITY_BUTTON :{BLACK}Местные власти -STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Информация о местных властях +STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Администрация +STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Взаимодействие с администрацией города STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}Переименовать город STR_TOWN_VIEW_EXPAND_BUTTON :{BLACK}Расширить @@ -3192,9 +3192,9 @@ STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Адми STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Рейтинг транспортных компаний STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Доступные действия: -STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Список возможных действий в этом городе - щёлкните для получения доп. сведений -STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Применить -STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Выполнить выделенное действие в списке выше +STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Список возможных действий в этом городе. Описание выбранного действия приводится ниже. +STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Выполнить +STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Выполнить выбранное действие STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Малая рекламная кампания STR_LOCAL_AUTHORITY_ACTION_MEDIUM_ADVERTISING_CAMPAIGN :Средняя рекламная кампания @@ -3437,7 +3437,7 @@ STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Прод STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Компания STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Имя директора -STR_BUY_COMPANY_MESSAGE :{WHITE}Мы ищем транспортную компанию для присоединения к ней.{}{}Вы хотите купить {COMPANY} за {CURRENCY_LONG}? +STR_BUY_COMPANY_MESSAGE :{WHITE}Мы ищем потенциального покупателя для нашей компании.{}{}Не желаете ли Вы приобрести {COMPANY} за {CURRENCY_LONG}? # Company infrastructure window STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Инфраструктура «{COMPANY}» From d8a316d7c58ce8eda53e2d98aaec09f105748a2d Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 25 Dec 2016 13:26:15 +0000 Subject: [PATCH 203/417] (svn r27709) -Fix-ish: Silence some warnings. (adf88) --- config.lib | 3 +++ src/saveload/saveload.cpp | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/config.lib b/config.lib index bf52a94c15..196e908f5f 100644 --- a/config.lib +++ b/config.lib @@ -1404,6 +1404,9 @@ make_compiler_cflags() { # warning: narrowing conversion of '...' from 'unsigned int' to 'int' inside { } [-Wnarrowing] # They are valid according to the C++ standard, but useless. cxxflags="$cxxflags -Wno-narrowing" + fi + + if [ $cc_version -ge 407 ]; then # Disable bogus 'attempt to free a non-heap object' warning flags="$flags -Wno-free-nonheap-object" fi diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 87df2c3a65..fcda489fae 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1484,6 +1484,8 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) return 0; } +#ifdef OTTD_ASSERT + /** * Check whether the variable size of the variable in the saveload configuration * matches with the actual variable size. @@ -1524,9 +1526,13 @@ static bool IsVariableSizeRight(const SaveLoad *sld) } } +#endif /* OTTD_ASSERT */ + bool SlObjectMember(void *ptr, const SaveLoad *sld) { +#ifdef OTTD_ASSERT assert(IsVariableSizeRight(sld)); +#endif VarType conv = GB(sld->conv, 0, 8); switch (sld->cmd) { From 14dba9764b2da215c97ca528e87cddd06687039c Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 25 Dec 2016 14:59:53 +0000 Subject: [PATCH 204/417] (svn r27710) -Change: Limit waypoint area by maximum station spread already when dragging. (adf88) --- src/rail_gui.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index e1602db0cb..73fe29da0d 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -161,7 +161,8 @@ static void PlaceRail_Waypoint(TileIndex tile) Axis axis = GetAxisForNewWaypoint(tile); if (IsValidAxis(axis)) { /* Valid tile for waypoints */ - VpStartPlaceSizing(tile, axis == AXIS_X ? VPM_FIX_X : VPM_FIX_Y, DDSP_BUILD_STATION); + VpStartPlaceSizing(tile, axis == AXIS_X ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_STATION); + VpSetPlaceSizingLimit(_settings_game.station.station_spread); } else { /* Tile where we can't build rail waypoints. This is always going to fail, * but provides the user with a proper error message. */ @@ -728,7 +729,7 @@ struct BuildRailToolbarWindow : Window { DoCommandP(end_tile, start_tile, _ctrl_pressed ? 0 : 1, CMD_REMOVE_FROM_RAIL_WAYPOINT | CMD_MSG(STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT), CcPlaySound_SPLAT_RAIL); } else { TileArea ta(start_tile, end_tile); - uint32 p1 = _cur_railtype | (select_method == VPM_FIX_X ? AXIS_X : AXIS_Y) << 4 | ta.w << 8 | ta.h << 16 | _ctrl_pressed << 24; + uint32 p1 = _cur_railtype | (select_method == VPM_X_LIMITED ? AXIS_X : AXIS_Y) << 4 | ta.w << 8 | ta.h << 16 | _ctrl_pressed << 24; uint32 p2 = STAT_CLASS_WAYP | _cur_waypoint_type << 8 | INVALID_STATION << 16; CommandContainer cmdcont = { ta.tile, p1, p2, CMD_BUILD_RAIL_WAYPOINT | CMD_MSG(STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT), CcPlaySound_SPLAT_RAIL, "" }; From 60a79b599e22ce3a8c9cc45483f2f593ddef6b03 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 25 Dec 2016 17:55:10 +0000 Subject: [PATCH 205/417] (svn r27711) -Doc: Fontsizes (adf88) --- src/gfx_func.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gfx_func.h b/src/gfx_func.h index 973e15f2bb..566f91b2da 100644 --- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -161,16 +161,16 @@ void GetBroadestDigit(uint *front, uint *next, FontSize size = FS_NORMAL); int GetCharacterHeight(FontSize size); -/** Height of characters in the small (#FS_SMALL) font. */ +/** Height of characters in the small (#FS_SMALL) font. @note Some characters may be oversized. */ #define FONT_HEIGHT_SMALL (GetCharacterHeight(FS_SMALL)) -/** Height of characters in the normal (#FS_NORMAL) font. */ +/** Height of characters in the normal (#FS_NORMAL) font. @note Some characters may be oversized. */ #define FONT_HEIGHT_NORMAL (GetCharacterHeight(FS_NORMAL)) -/** Height of characters in the large (#FS_LARGE) font. */ +/** Height of characters in the large (#FS_LARGE) font. @note Some characters may be oversized. */ #define FONT_HEIGHT_LARGE (GetCharacterHeight(FS_LARGE)) -/** Height of characters in the large (#FS_MONO) font. */ +/** Height of characters in the large (#FS_MONO) font. @note Some characters may be oversized. */ #define FONT_HEIGHT_MONO (GetCharacterHeight(FS_MONO)) extern DrawPixelInfo *_cur_dpi; From dbe969087db491c5db1d6e78395a55aee077546f Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 25 Dec 2016 17:56:57 +0000 Subject: [PATCH 206/417] (svn r27712) -Codechange: Reduce recursions in DrawOverlappedWindow by limiting the area to the window bounds first. (adf88) --- src/window.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/window.cpp b/src/window.cpp index 24683d0a6a..0ffbf8bf1b 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -942,7 +942,7 @@ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom) left < w->left + w->width && top < w->top + w->height) { /* Window w intersects with the rectangle => needs repaint */ - DrawOverlappedWindow(w, left, top, right, bottom); + DrawOverlappedWindow(w, max(left, w->left), max(top, w->top), min(right, w->left + w->width), min(bottom, w->top + w->height)); } } } From d1c64315cd43319aa4a25b3a8975f59846753797 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 25 Dec 2016 17:57:47 +0000 Subject: [PATCH 207/417] (svn r27713) -Fix [FS#6527]: Setup clipping areas for individual widgets when drawing. (adf88) --- src/widget.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/widget.cpp b/src/widget.cpp index d59ca020e0..2c06cfe29b 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -2393,15 +2393,22 @@ void NWidgetLeaf::Draw(const Window *w) { if (this->current_x == 0 || this->current_y == 0) return; + /* Setup a clipping rectangle... */ + DrawPixelInfo new_dpi; + if (!FillDrawPixelInfo(&new_dpi, this->pos_x, this->pos_y, this->current_x, this->current_y)) return; + /* ...but keep coordinates relative to the window. */ + new_dpi.left += this->pos_x; + new_dpi.top += this->pos_y; + + DrawPixelInfo *old_dpi = _cur_dpi; + _cur_dpi = &new_dpi; + Rect r; r.left = this->pos_x; r.right = this->pos_x + this->current_x - 1; r.top = this->pos_y; r.bottom = this->pos_y + this->current_y - 1; - const DrawPixelInfo *dpi = _cur_dpi; - if (dpi->left > r.right || dpi->left + dpi->width <= r.left || dpi->top > r.bottom || dpi->top + dpi->height <= r.top) return; - bool clicked = this->IsLowered(); switch (this->type) { case WWT_EMPTY: @@ -2512,6 +2519,8 @@ void NWidgetLeaf::Draw(const Window *w) if (this->IsDisabled()) { GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, _colour_gradient[this->colour & 0xF][2], FILLRECT_CHECKER); } + + _cur_dpi = old_dpi; } /** From 1c7e978b09e1b484b17caa02dafd4607f1974af0 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 25 Dec 2016 18:45:37 +0000 Subject: [PATCH 208/417] (svn r27714) -Update from Eints: catalan: 2 changes by juanjo russian: 1 change by Lone_Wolf --- src/lang/catalan.txt | 4 ++-- src/lang/russian.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index cdd9b29dc4..9a9f050124 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2590,7 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nom de l STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Càrrega acceptada: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) -STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipus de via ferroviària: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipus de via: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límit de velocitat de la via: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límit de velocitat de la carretera: {LTBLUE}{VELOCITY} @@ -3393,7 +3393,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacita STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagons Automotrius: {GOLD}+{POWER}{BLACK} Pes: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Remodelable a: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Totes les càrregues -STR_PURCHASE_INFO_ALL_BUT :Tots menys {CARGO_LIST} +STR_PURCHASE_INFO_ALL_BUT :Qualsevol excepte {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforç de tracció màxim: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Abast: {GOLD}{COMMA} cel·les diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 43f75fa3c9..fa46ef8e8d 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2416,7 +2416,7 @@ STR_CONTENT_TYPE_GS_LIBRARY :Библиот # Content downloading progress window STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Загрузка контента... STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Запрашиваем файлы... -STR_CONTENT_DOWNLOAD_FILE :{WHITE}Сейчас скачивается {STRING} ({NUM} из {NUM}) +STR_CONTENT_DOWNLOAD_FILE :{WHITE}Идёт загрузка {STRING} ({NUM} из {NUM}) STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Загрузка завершена STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} из {BYTES} загружено ({NUM}%) From db6e65f4f38a8b46404dcfdc541300adee767944 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 26 Dec 2016 18:45:38 +0000 Subject: [PATCH 209/417] (svn r27715) -Update from Eints: spanish: 2 changes by SilverSurferZzZ --- src/lang/spanish.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index db7f1cbcac..67e2677fe9 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2613,8 +2613,8 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrocarril con señales de bloque y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrocarril con señales de bloque y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con señales de bloque y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de ferrocarril con señales de bloque y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de ferrocarril con señales de entrada y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de ferrocarril con señales de entrada y de ruta From 9bbc6e7ab54b6f0ba61ae52dbe76311c6cf5b04f Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 27 Dec 2016 18:45:39 +0000 Subject: [PATCH 210/417] (svn r27716) -Update from Eints: catalan: 1 change by juanjo --- src/lang/catalan.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 9a9f050124..c864f63c36 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3885,7 +3885,7 @@ STR_ORDER_CONDITIONAL_UNCONDITIONAL :salta a l'ordre STR_ORDER_CONDITIONAL_NUM :Salta a l'ordre {COMMA} quan {STRING} {STRING} {COMMA} STR_ORDER_CONDITIONAL_TRUE_FALSE :Salta a l'ordre {COMMA} quan {STRING} {STRING} -STR_INVALID_ORDER :{RED} (Ordre incorrecte) +STR_INVALID_ORDER :{RED} (Ordre incorrecta) # Time table window STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Horari) From 151956d471f16351f2a1ab6abd938c2e909f5dd8 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 29 Dec 2016 18:45:38 +0000 Subject: [PATCH 211/417] (svn r27717) -Update from Eints: spanish: 2 changes by SilverSurferZzZ --- src/lang/spanish.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 67e2677fe9..8b5f8988cc 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2610,8 +2610,8 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de ferrocarril con señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de ferrocarril con señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferrocarril con señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de ferrocarril con señales de bloque y de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de ferrocarril con señales de bloque y de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con señales de bloque y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de ferrocarril con señales de bloque y de ruta de un solo sentido From a8496153d6aa239c263ef273e1753a2424c05cb9 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 30 Dec 2016 18:45:38 +0000 Subject: [PATCH 212/417] (svn r27718) -Update from Eints: spanish (mexican): 25 changes by Absay --- src/lang/spanish_MX.txt | 48 +++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 7eb5f0a0cf..d7f635d93a 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nombre d STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargamento recibido: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de vía: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidad de ferrocarril: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límite de velocidad de carretera: {LTBLUE}{VELOCITY} @@ -2602,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terreno nevado STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto -STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferrocarril -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de Ferrocarril con señales de bloqueo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de Ferrocarril con señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de Ferrocarril con señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con señales de combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de Ferrocarril con señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de Ferrocarril con señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de Ferrocarril con señales de entrada y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de Ferrocarril con señales de entrada y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de Ferrocarril con señales de entrada y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de Ferrocarril con señales de entrada y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de Ferrocarril con señales de salida y señales de combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de Ferrocarril con señales de salida y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de Ferrocarril con señales de salida y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con señales de combo y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con señales de combo y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con señales de ruta y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito (Ferrocarril) +STR_LAI_RAIL_DESCRIPTION_TRACK :Vías férreas +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vías férreas con señales de bloqueo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vías férreas con señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vías férreas con señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vías férreas con señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vías férreas con señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vías férreas con señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vías férreas con señales de bloqueo y de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vías férreas con señales de bloqueo y de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vías férreas con señales de bloqueo y combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vías férreas con señales de bloqueo y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vías férreas con señales de bloqueo y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vías férreas con señales de entrada y de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vías férreas con señales de entrada y combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vías férreas con señales de entrada y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vías férreas con señales de entrada y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vías férreas con señales de salida y combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vías férreas con señales de salida y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vías férreas con señales de salida y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vías férreas con señales combo y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vías férreas con señales combo y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vías férreas con señales de ruta y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito (trenes) STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera con alumbrado @@ -3561,6 +3562,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambiar entre reemplazo de vagón y locomotora STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagones +STR_REPLACE_ALL_RAILTYPE :Todos los vehículos ferroviarios STR_REPLACE_HELP_RAILTYPE :{BLACK}Elegir el tipo de vías férreas para las que se desea reemplazar locomotoras STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostrar el vehículo que reemplazará al otro de la izquierda From 12d17ed62bed155b3da2cb62c7c023a89e392fd2 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 31 Dec 2016 18:45:36 +0000 Subject: [PATCH 213/417] (svn r27719) -Update from Eints: polish: 25 changes by nouwak --- src/lang/polish.txt | 48 +++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 1e24704f7d..fbf9dce13c 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2969,6 +2969,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nazwa po STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akceptowany ładunek: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Typ torów: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limit prędkości linii kolejowej: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Drogowe ograniczenie prędkości: {LTBLUE}{VELOCITY} @@ -2981,29 +2982,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Pola STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zaśnieżony teren STR_LAI_CLEAR_DESCRIPTION_DESERT :Pustynia -STR_LAI_RAIL_DESCRIPTION_TRACK :{G=m}Kolej odcinek -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Kolej tor z semaforam blokowymi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Kolej tor z semaforami wejściowymi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Kolej tor z semaforem wyjściowym -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Kolej tor z semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Kolej tor z semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Kolej tor z jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Kolej tor z semaforami blokowymi i semaforami wejścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Kolej tor z semaforami blokowymi i semaforami wyjścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Kolej tor z semaforami blokowymi i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Kolej tor z semaforami blokowymi i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Kolej tor z semaforami blokowymi i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Kolej tor z semaforami wejścia i wyjścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Kolej tor z semaforami wejścia i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Kolej tor z semaforami wejścia i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Kolej tor z semaforami wejścia i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Kolej tor z semaforami wyjścia i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Kolej tor z semaforami wyjścia i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Kolej tor z semaforami wyjścia i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Kolej tor z semaforami złożonymi (combo) i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Kolej tor z semaforami złożonymi (combo) i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Kolej tor z semaforami trasy i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{G=f}Warsztaty - Kolej +STR_LAI_RAIL_DESCRIPTION_TRACK :{G=m}Tor kolejowy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Tor kolejowy z semaforam blokowymi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Tor kolejowy z semaforami wejściowymi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Tor kolejowy z semaforem wyjściowym +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Tor kolejowy z semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Tor kolejowy z semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Tor kolejowy z jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Tor kolejowy z semaforami blokowymi i semaforami wejścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Tor kolejowy z semaforami blokowymi i semaforami wyjścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Tor kolejowy z semaforami blokowymi i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Tor kolejowy z semaforami blokowymi i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Tor kolejowy z semaforami blokowymi i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Tor kolejowy z semaforami wejścia i wyjścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Tor kolejowy z semaforami wejścia i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Tor kolejowy z semaforami wejścia i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Tor kolejowy z semaforami wejścia i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Tor kolejowy z semaforami wyjścia i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Tor kolejowy z semaforami wyjścia i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Tor kolejowy z semaforami wyjścia i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Tor kolejowy z semaforami złożonymi (combo) i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Tor kolejowy z semaforami złożonymi (combo) i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Tor kolejowy z semaforami trasy i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{G=f}Warsztaty kolejowe STR_LAI_ROAD_DESCRIPTION_ROAD :Droga STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Droga z oświetleniem ulicznym @@ -3946,6 +3947,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Wciśnij STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Przejdź pomiędzy oknami zamiany lokomotyw i wagonów STR_REPLACE_ENGINES :Lokomotywy STR_REPLACE_WAGONS :Wagony +STR_REPLACE_ALL_RAILTYPE :Wszystkie pojazdy szynowe STR_REPLACE_HELP_RAILTYPE :{BLACK}Wybierz dla jakiego typu torów chcesz zastąpić lokomotywy STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Wyświetla typ pojazdu na jaki będzie zastąpiony pojazd zaznaczony po lewej stronie From 43ee8e8d38c494d31cc8ec75c114e653eb59868e Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 7 Jan 2017 18:45:37 +0000 Subject: [PATCH 214/417] (svn r27720) -Update from Eints: turkish: 25 changes by barisdemirdelen --- src/lang/turkish.txt | 48 +++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 09e8f83c10..e9993fb3da 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Havalima STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}İstenen: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Ray türü: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Ray hız sınırı: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Yol hız sınırı: {LTBLUE}{VELOCITY} @@ -2602,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Mera STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Karlı arazi STR_LAI_CLEAR_DESCRIPTION_DESERT :Çöl -STR_LAI_RAIL_DESCRIPTION_TRACK :Demiryolu ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Demiryolu blok sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Demiryolu ön sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Demiryolu çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Demiryolu karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Demiryolu yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Demiryolu tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Demiryolu blok ve ön sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Demiryolu blok ve çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Demiryolu blok ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Demiryolu blok ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Demiryolu blok ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Demiryolu ön ve çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Demiryolu ön ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Demiryolu ön ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Demiryolu ön ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Demiryolu çıkış ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Demiryolu çıkış ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Demiryolu çıkış ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Demiryolu karışık ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Demiryolu karışık ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Demiryolu yol ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Demiryolu tren garajı +STR_LAI_RAIL_DESCRIPTION_TRACK :Ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Blok sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ön sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Blok ve ön sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Blok ve çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Blok ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Blok ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Blok ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ön ve çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ön ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ön ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ön ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Çıkış ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Çıkış ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Çıkış ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Karışık ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Karışık ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Yol ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Tren garajı STR_LAI_ROAD_DESCRIPTION_ROAD :Yol STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Sokak lambalı yol @@ -3561,6 +3562,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Değişt STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Lokomotif ve vagon değişimi pencereleri arasında geçiş yap. STR_REPLACE_ENGINES :Lokomotifler STR_REPLACE_WAGONS :Vagon +STR_REPLACE_ALL_RAILTYPE :Tüm demiryolu araçları STR_REPLACE_HELP_RAILTYPE :{BLACK}Lokomatiflerini değiştireceğiniz ray türünü seçin STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Soldaki değiştiriliyorsa neyle değiştirildiğini göster From 4955e71ee0354cf87a8c9333aea7b337c25bfe8e Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:18:17 +0000 Subject: [PATCH 215/417] (svn r27721) -Fix: Testing GRFs for static-safety (when reloading the config) invalidated file slot 62, which may be in use by an active GRF. --- src/newgrf_config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 19ac4d4a7e..5e3d294392 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -425,7 +425,7 @@ bool FillGRFDetails(GRFConfig *config, bool is_static, Subdirectory subdir) if (is_static) { /* Perform a 'safety scan' for static GRFs */ - LoadNewGRFFile(config, 62, GLS_SAFETYSCAN, subdir); + LoadNewGRFFile(config, CONFIG_SLOT, GLS_SAFETYSCAN, subdir); /* GCF_UNSAFE is set if GLS_SAFETYSCAN finds unsafe actions */ if (HasBit(config->flags, GCF_UNSAFE)) return false; From ca329cd275202498a575ce31feeac9d60d9004df Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:20:02 +0000 Subject: [PATCH 216/417] (svn r27722) -Fix (r7490): GCF_SYSTEM was never set correctly. --- src/newgrf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 3f4a8db6f3..8577cb40e2 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -6199,7 +6199,7 @@ static void ScanInfo(ByteReader *buf) } /* GRF IDs starting with 0xFF are reserved for internal TTDPatch use */ - if (GB(grfid, 24, 8) == 0xFF) SetBit(_cur.grfconfig->flags, GCF_SYSTEM); + if (GB(grfid, 0, 8) == 0xFF) SetBit(_cur.grfconfig->flags, GCF_SYSTEM); AddGRFTextToList(&_cur.grfconfig->name->text, 0x7F, grfid, false, name); From 373a6d3497026b709d1cc757d434cb0f69486d05 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:22:26 +0000 Subject: [PATCH 217/417] (svn r27723) -Codechange: Simplify tests by using GCF_SYSTEM. --- src/newgrf_config.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 5e3d294392..0f6623f64c 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -420,8 +420,8 @@ bool FillGRFDetails(GRFConfig *config, bool is_static, Subdirectory subdir) config->SetSuitablePalette(); config->FinalizeParameterInfo(); - /* Skip if the grfid is 0 (not read) or 0xFFFFFFFF (ttdp system grf) */ - if (config->ident.grfid == 0 || config->ident.grfid == 0xFFFFFFFF || config->IsOpenTTDBaseGRF()) return false; + /* Skip if the grfid is 0 (not read) or if it is an internal GRF */ + if (config->ident.grfid == 0 || HasBit(config->flags, GCF_SYSTEM)) return false; if (is_static) { /* Perform a 'safety scan' for static GRFs */ From dc024f0e3ad25e303bab60b979b0db8e2b24d742 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:28:03 +0000 Subject: [PATCH 218/417] (svn r27724) -Cleanup: Remove pointless usage of IsOpenTTDBaseGRF. System GRFs are never listed in the NewGRF GUI. --- src/newgrf_gui.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index cc63f7b577..eac36c3cf5 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -1279,7 +1279,6 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { /* All widgets are now enabled, so disable widgets we can't use */ if (this->active_sel == this->actives) this->DisableWidget(WID_NS_MOVE_UP); if (this->active_sel->next == NULL) this->DisableWidget(WID_NS_MOVE_DOWN); - if (this->active_sel->IsOpenTTDBaseGRF()) this->DisableWidget(WID_NS_REMOVE); } this->SetWidgetDisabledState(WID_NS_PRESET_DELETE, this->preset == -1); From a76847f36204b83e7318f57191ffda80184103e4 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:36:25 +0000 Subject: [PATCH 219/417] (svn r27725) -Codechange: Remove IsOpenTTDBaseGRF and test for GCF_CONFIG instead, which does the same in all use-cases. --- src/newgrf.cpp | 3 +-- src/newgrf.h | 1 - src/newgrf_config.cpp | 9 --------- src/newgrf_config.h | 2 -- 4 files changed, 1 insertion(+), 14 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 8577cb40e2..8d85b383da 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5621,7 +5621,7 @@ static void GraphicsNew(ByteReader *buf) uint16 offset = HasBit(type, 7) ? buf->ReadExtendedByte() : 0; ClrBit(type, 7); // Clear the high bit as that only indicates whether there is an offset. - if ((type == 0x0D) && (num == 10) && _cur.grffile->is_ottdfile) { + if ((type == 0x0D) && (num == 10) && HasBit(_cur.grfconfig->flags, GCF_SYSTEM)) { /* Special not-TTDP-compatible case used in openttd.grf * Missing shore sprites and initialisation of SPR_SHORE_BASE */ grfmsg(2, "GraphicsNew: Loading 10 missing shore sprites from extra grf."); @@ -8858,7 +8858,6 @@ void LoadNewGRFFile(GRFConfig *config, uint file_index, GrfLoadingStage stage, S if (_cur.grffile == NULL) usererror("File '%s' lost in cache.\n", filename); if (stage == GLS_RESERVE && config->status != GCS_INITIALISED) return; if (stage == GLS_ACTIVATION && !HasBit(config->flags, GCF_RESERVED)) return; - _cur.grffile->is_ottdfile = config->IsOpenTTDBaseGRF(); } if (file_index > LAST_GRF_SLOT) { diff --git a/src/newgrf.h b/src/newgrf.h index 752873a60e..51b00da7c6 100644 --- a/src/newgrf.h +++ b/src/newgrf.h @@ -103,7 +103,6 @@ struct GRFLabel { /** Dynamic data of a loaded NewGRF */ struct GRFFile : ZeroedMemoryAllocator { char *filename; - bool is_ottdfile; uint32 grfid; byte grf_version; diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 0f6623f64c..b970e0a80b 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -915,15 +915,6 @@ char *GRFBuildParamList(char *dst, const GRFConfig *c, const char *last) /** Base GRF ID for OpenTTD's base graphics GRFs. */ static const uint32 OPENTTD_GRAPHICS_BASE_GRF_ID = BSWAP32(0xFF4F5400); -/** - * Checks whether this GRF is a OpenTTD base graphic GRF. - * @return true if and only if it is a base GRF. - */ -bool GRFConfig::IsOpenTTDBaseGRF() const -{ - return (this->ident.grfid & 0x00FFFFFF) == OPENTTD_GRAPHICS_BASE_GRF_ID; -} - /** * Search a textfile file next to this NewGRF. * @param type The type of the textfile to search for. diff --git a/src/newgrf_config.h b/src/newgrf_config.h index e19d8d6085..73ab243cf0 100644 --- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -179,8 +179,6 @@ struct GRFConfig : ZeroedMemoryAllocator { void CopyParams(const GRFConfig &src); - bool IsOpenTTDBaseGRF() const; - const char *GetTextfile(TextfileType type) const; const char *GetName() const; const char *GetDescription() const; From b276dd7c638919aa57727cf0bc3df839725da963 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 8 Jan 2017 11:45:08 +0000 Subject: [PATCH 220/417] (svn r27726) -Fix: Improve error message when trying to build rail track over a depot. (adf88) --- src/rail_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index a8c20e3394..a5face14c5 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -455,7 +455,7 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u CommandCost ret = CheckTileOwnership(tile); if (ret.Failed()) return ret; - if (!IsPlainRail(tile)) return CMD_ERROR; + if (!IsPlainRail(tile)) return DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); // just get appropriate error message if (!IsCompatibleRail(GetRailType(tile), railtype)) return_cmd_error(STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION); From 3e7bdb0c735bee6a1eab672843c9afa54c7c8e30 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Sun, 8 Jan 2017 17:00:18 +0000 Subject: [PATCH 221/417] (svn r27727) -Fix(-or-not) [FS#6295]: [OSX] Out-of-the-box compilation on newer OSX versions (dunn). --- config.lib | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/config.lib b/config.lib index 196e908f5f..3d10aaa3fd 100644 --- a/config.lib +++ b/config.lib @@ -1611,23 +1611,6 @@ make_cflags_and_ldflags() { CFLAGS="$OSX_SYSROOT $CFLAGS" LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS" fi - - if [ "$enable_universal" = "0" ] && [ $cc_version -gt 400 ]; then - # Only set the min version when not doing an universal build. - # Universal builds set the version elsewhere. - if [ "$cpu_type" = "64" ]; then - CFLAGS="$CFLAGS -mmacosx-version-min=10.5" - else - gcc_cpu=`$cc_host -dumpmachine` - if [ "`echo $gcc_cpu | cut -c 1-3`" = "ppc" -o "`echo $gcc_cpu | cut -c 1-7`" = "powerpc" ]; then - # PowerPC build can run on 10.3 - CFLAGS="$CFLAGS -mmacosx-version-min=10.3" - else - # Intel is only available starting from 10.4 - CFLAGS="$CFLAGS -mmacosx-version-min=10.4" - fi - fi - fi fi if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ]; then From 9f858cefd1bf9b45049900144898d404c677ad0f Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 8 Jan 2017 18:45:37 +0000 Subject: [PATCH 222/417] (svn r27728) -Update from Eints: latin: 1 change by Supercheese --- src/lang/latin.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/latin.txt b/src/lang/latin.txt index aeb813652d..36df900c60 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2890,7 +2890,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terra societati STR_ABOUT_OPENTTD :{WHITE}De OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Privilegium impressorium originale {COPYRIGHT} MCMXCV Chris Sawyer, Omnia proprietatis iura reservantur STR_ABOUT_VERSION :{BLACK}OpenTTD editio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} MMII-MMXVI Manus OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} MMII-MMXVII Manus OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Servare Ludum From 8bd3a8a99165a45e96d6bd663742d26cd9c1d991 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 14 Jan 2017 13:12:49 +0000 Subject: [PATCH 223/417] (svn r27729) -Codechange: Do not count static NewGRF when checking for the maximum number of NewGRFs in a game. -Codechange: Remove LAST_GRF_SLOT and MAX_NEWGRFS. Now NETWORK_MAX_GRF_COUNT is the only constant to specify the maximum number of non-static NewGRF. -Codechange: Increase the number of file slots, effectively increasing the maximum number of static NewGRF and baseset GRFs. --- src/fios.h | 11 ++++------- src/network/core/config.h | 3 +-- src/newgrf.cpp | 15 +++++++++++++-- src/newgrf_gui.cpp | 10 +++------- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/fios.h b/src/fios.h index 51e0c275a6..5e17e8ee17 100644 --- a/src/fios.h +++ b/src/fios.h @@ -81,20 +81,17 @@ extern LoadCheckData _load_check_data; enum FileSlots { /** - * Slot used for the GRF scanning and such. This slot cannot be reused - * as it will otherwise cause issues when pressing "rescan directories". - * It can furthermore not be larger than LAST_GRF_SLOT as that complicates - * the testing for "too much NewGRFs". + * Slot used for the GRF scanning and such. + * This slot is used for all temporary accesses to files when scanning/testing files, + * and thus cannot be used for files, which are continuously accessed during a game. */ CONFIG_SLOT = 0, /** Slot for the sound. */ SOUND_SLOT = 1, /** First slot usable for (New)GRFs used during the game. */ FIRST_GRF_SLOT = 2, - /** Last slot usable for (New)GRFs used during the game. */ - LAST_GRF_SLOT = 63, /** Maximum number of slots. */ - MAX_FILE_SLOTS = 64 + MAX_FILE_SLOTS = 128, }; /** Deals with finding savegames */ diff --git a/src/network/core/config.h b/src/network/core/config.h index 93f75e3776..f5e73dd12d 100644 --- a/src/network/core/config.h +++ b/src/network/core/config.h @@ -55,8 +55,7 @@ static const uint NETWORK_GRF_NAME_LENGTH = 80; ///< Maximum l /** * Maximum number of GRFs that can be sent. - * This value is related to number of handles (files) OpenTTD can open. - * This is currently 64. Two are used for configuration and sound. + * This limit is reached when PACKET_UDP_SERVER_RESPONSE reaches the maximum size of SEND_MTU bytes. */ static const uint NETWORK_MAX_GRF_COUNT = 62; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 8d85b383da..7b862149d4 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -8860,8 +8860,8 @@ void LoadNewGRFFile(GRFConfig *config, uint file_index, GrfLoadingStage stage, S if (stage == GLS_ACTIVATION && !HasBit(config->flags, GCF_RESERVED)) return; } - if (file_index > LAST_GRF_SLOT) { - DEBUG(grf, 0, "'%s' is not loaded as the maximum number of GRFs has been reached", filename); + if (file_index >= MAX_FILE_SLOTS) { + DEBUG(grf, 0, "'%s' is not loaded as the maximum number of file slots has been reached", filename); config->status = GCS_DISABLED; config->error = new GRFError(STR_NEWGRF_ERROR_MSG_FATAL, STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED); return; @@ -9263,6 +9263,7 @@ void LoadNewGRF(uint load_index, uint file_index) } uint slot = file_index; + uint num_non_static = 0; _cur.stage = stage; for (GRFConfig *c = _grfconfig; c != NULL; c = c->next) { @@ -9277,6 +9278,16 @@ void LoadNewGRF(uint load_index, uint file_index) } if (stage == GLS_LABELSCAN) InitNewGRFFile(c); + + if (!HasBit(c->flags, GCF_STATIC) && !HasBit(c->flags, GCF_SYSTEM)) { + if (num_non_static == NETWORK_MAX_GRF_COUNT) { + DEBUG(grf, 0, "'%s' is not loaded as the maximum number of non-static GRFs has been reached", c->filename); + c->status = GCS_DISABLED; + c->error = new GRFError(STR_NEWGRF_ERROR_MSG_FATAL, STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED); + continue; + } + num_non_static++; + } LoadNewGRFFile(c, slot++, stage, subdir); if (stage == GLS_RESERVE) { SetBit(c->flags, GCF_RESERVED); diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index eac36c3cf5..c3007ac42d 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -39,10 +39,6 @@ #include #include "safeguards.h" -/* Maximum number of NewGRFs that may be loaded. Six reserved slots are: - * 0 - config, 1 - sound, 2 - base, 3 - logos, 4 - climate, 5 - extra */ -static const int MAX_NEWGRFS = MAX_FILE_SLOTS - 6; - /** * Show the first NewGRF error we can find. */ @@ -1509,7 +1505,7 @@ private: { if (this->avail_sel == NULL || !this->editable || HasBit(this->avail_sel->flags, GCF_INVALID)) return false; - int count = 0; + uint count = 0; GRFConfig **entry = NULL; GRFConfig **list; /* Find last entry in the list, checking for duplicate grfid on the way */ @@ -1519,10 +1515,10 @@ private: ShowErrorMessage(STR_NEWGRF_DUPLICATE_GRFID, INVALID_STRING_ID, WL_INFO); return false; } - count++; + if (!HasBit((*list)->flags, GCF_STATIC)) count++; } if (entry == NULL) entry = list; - if (count >= MAX_NEWGRFS) { + if (count >= NETWORK_MAX_GRF_COUNT) { ShowErrorMessage(STR_NEWGRF_TOO_MANY_NEWGRFS, INVALID_STRING_ID, WL_INFO); return false; } From 79027cbf9d4fa60506455e13e817fce5fdec23b9 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 14 Jan 2017 15:48:19 +0000 Subject: [PATCH 224/417] (svn r27730) -Change: Split openttd.grf into openttd.grf and orig_extra.grf openttd.grf is now always loaded and provides all extra graphics in case the (possibly outdated) baseset does not. orig_extra.grf contains graphics specific to the original baseset only. --- .gitignore | 1 + Makefile.grf.in | 24 ++++++--- Makefile.in | 2 +- bin/baseset/openttd.grf | Bin 825852 -> 523136 bytes bin/baseset/orig_dos.obg | 28 +++++------ bin/baseset/orig_dos_de.obg | 28 +++++------ bin/baseset/orig_extra.grf | Bin 0 -> 303149 bytes bin/baseset/orig_win.obg | 28 +++++------ media/baseset/orig_dos.obg | 28 +++++------ media/baseset/orig_dos_de.obg | 28 +++++------ media/baseset/orig_win.obg | 28 +++++------ media/extra_grf/openttd.nfo | 12 ++--- media/extra_grf/orig_extra.nfo | 84 +++++++++++++++++++++++++++++++ os/windows/installer/install.nsi | 1 + src/gfxinit.cpp | 26 +++++++--- src/newgrf.cpp | 5 +- src/newgrf.h | 2 +- 17 files changed, 212 insertions(+), 113 deletions(-) create mode 100644 bin/baseset/orig_extra.grf create mode 100644 media/extra_grf/orig_extra.nfo diff --git a/.gitignore b/.gitignore index cb1e9d1599..2b298a14a9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ bin/ai/* bin/baseset/* !bin/baseset/openttd.grf !bin/baseset/opntitle.dat +!bin/baseset/orig_extra.grf !bin/baseset/orig_*.obg !bin/baseset/orig_*.obs !bin/baseset/no_sound.obs diff --git a/Makefile.grf.in b/Makefile.grf.in index 1cc2642320..1625b9e4c0 100644 --- a/Makefile.grf.in +++ b/Makefile.grf.in @@ -44,22 +44,18 @@ PNG_FILES := $(GRF_DIR)/*.png $(GRF_DIR)/rivers/*.png # Build the GRF. ifdef GRFCODEC -all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_dos.obg $(BIN_DIR)/orig_dos_de.obg $(BIN_DIR)/orig_win.obg $(BIN_DIR)/orig_dos.obs $(BIN_DIR)/orig_win.obs $(BIN_DIR)/no_sound.obs $(BIN_DIR)/orig_win.obm $(BIN_DIR)/no_music.obm +all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_extra.grf $(BIN_DIR)/orig_dos.obg $(BIN_DIR)/orig_dos_de.obg $(BIN_DIR)/orig_win.obg $(BIN_DIR)/orig_dos.obs $(BIN_DIR)/orig_win.obs $(BIN_DIR)/no_sound.obs $(BIN_DIR)/orig_win.obm $(BIN_DIR)/no_music.obm else all: endif -# Make sure the sprites directory exists. -$(OBJS_DIR)/sprites: - $(Q)-mkdir "$@" - $(OBJS_DIR)/langfiles.tmp: $(LANG_DIR)/*.txt $(E) '$(STAGE) Collecting baseset translations' $(Q) cat $^ > $@ -$(BIN_DIR)/%.obg: $(BASESET_DIR)/%.obg $(BIN_DIR)/openttd.grf $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk +$(BIN_DIR)/%.obg: $(BASESET_DIR)/%.obg $(BIN_DIR)/orig_extra.grf $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk $(E) '$(STAGE) Updating $(notdir $@)' - $(Q) sed 's/^OPENTTD.GRF = *[0-9a-f]*$$/OPENTTD.GRF = '`$(MD5SUM) $(BIN_DIR)/openttd.grf | sed 's@ .*@@'`'/' $< > $@.tmp + $(Q) sed 's/^ORIG_EXTRA.GRF = *[0-9a-f]*$$/ORIG_EXTRA.GRF = '`$(MD5SUM) $(BIN_DIR)/orig_extra.grf | sed 's@ .*@@'`'/' $< > $@.tmp $(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $@.tmp >$@ $(Q) rm $@.tmp @@ -72,8 +68,9 @@ $(BIN_DIR)/%.obm: $(BASESET_DIR)/%.obm $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/ $(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $< >$@ # Compile extra grf -$(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites $(GRF_DIR)/assemble_nfo.awk +$(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(GRF_DIR)/assemble_nfo.awk $(E) '$(STAGE) Assembling openttd.nfo' + $(Q)-mkdir -p $(OBJS_DIR)/sprites $(Q)-cp $(PNG_FILES) $(OBJS_DIR)/sprites 2> /dev/null $(Q) awk -f $(GRF_DIR)/assemble_nfo.awk $(GRF_DIR)/openttd.nfo > $(OBJS_DIR)/sprites/openttd.nfo $(Q) $(NFORENUM) -s $(OBJS_DIR)/sprites/openttd.nfo @@ -81,6 +78,17 @@ $(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites $(GRF_DIR) $(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/openttd.grf $(Q)cp $(OBJS_DIR)/openttd.grf $(BIN_DIR)/openttd.grf +# The copy operation of PNG_FILES is duplicated from the target 'openttd.grf', thus those targets may not run in parallel. +$(BIN_DIR)/orig_extra.grf: $(PNG_FILES) $(NFO_FILES) $(GRF_DIR)/assemble_nfo.awk | $(BIN_DIR)/openttd.grf + $(E) '$(STAGE) Assembling orig_extra.nfo' + $(Q)-mkdir -p $(OBJS_DIR)/sprites + $(Q)-cp $(PNG_FILES) $(OBJS_DIR)/sprites 2> /dev/null + $(Q) awk -f $(GRF_DIR)/assemble_nfo.awk $(GRF_DIR)/orig_extra.nfo > $(OBJS_DIR)/sprites/orig_extra.nfo + $(Q) $(NFORENUM) -s $(OBJS_DIR)/sprites/orig_extra.nfo + $(E) '$(STAGE) Compiling orig_extra.grf' + $(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/orig_extra.grf + $(Q)cp $(OBJS_DIR)/orig_extra.grf $(BIN_DIR)/orig_extra.grf + # Clean up temporary files. clean: $(Q)rm -f *.bak *.grf diff --git a/Makefile.in b/Makefile.in index 0d50fc1b1e..d33d8a0d2a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -152,7 +152,7 @@ mrproper: distclean: mrproper maintainer-clean: distclean - $(Q)rm -f $(BIN_DIR)/baseset/openttd.grf $(BIN_DIR)/baseset/*.obg $(BIN_DIR)/baseset/*.obs $(BIN_DIR)/baseset/*.obm + $(Q)rm -f $(BIN_DIR)/baseset/openttd.grf $(BIN_DIR)/baseset/orig_extra.grf $(BIN_DIR)/baseset/*.obg $(BIN_DIR)/baseset/*.obs $(BIN_DIR)/baseset/*.obm depend: @for dir in $(SRC_DIRS); do \ diff --git a/bin/baseset/openttd.grf b/bin/baseset/openttd.grf index efe35ffd3897113f03b34162f7b177b8375010bf..6f2921f272a89628f47f34f5155b5e4b4ada42d7 100644 GIT binary patch delta 109 zcmeyf*{I>WJSz*s|GV51S+AJ|Gydn``2YX^KmUT%ypRwV^|1h=wVQ&4yvh@!u7i0T@LRKJV+kT*s NJ#_K*H_ki)VE`Z!F5>_I delta 293350 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 rY?OdvbolE+?Myd2)SwrbB literal 0 HcmV?d00001 diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index 65a97c4770..fc4740fbac 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -63,21 +63,21 @@ description.zh_CN = 运输大亨Windows豪华版原版图形包. description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的圖形。 [files] -base = TRG1R.GRF -logos = TRGIR.GRF -arctic = TRGCR.GRF -tropical = TRGHR.GRF -toyland = TRGTR.GRF -extra = OPENTTD.GRF +base = TRG1R.GRF +logos = TRGIR.GRF +arctic = TRGCR.GRF +tropical = TRGHR.GRF +toyland = TRGTR.GRF +extra = ORIG_EXTRA.GRF [md5s] -TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 -TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 -TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b -TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 -TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -OPENTTD.GRF = 505d96061556d3bb5cec6234096ec5bc +TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 +TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 +TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b +TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 +TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 +ORIG_EXTRA.GRF = 2f214be226d04af78c3afb961ccdd08d [origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -OPENTTD.GRF = This file was part of your OpenTTD installation. +default = You can find it on your Transport Tycoon Deluxe CD-ROM. +ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/media/baseset/orig_dos.obg b/media/baseset/orig_dos.obg index b4cde64007..f9db843af1 100644 --- a/media/baseset/orig_dos.obg +++ b/media/baseset/orig_dos.obg @@ -11,21 +11,21 @@ palette = DOS !! description STR_BASEGRAPHICS_DOS_DESCRIPTION [files] -base = TRG1.GRF -logos = TRGI.GRF -arctic = TRGC.GRF -tropical = TRGH.GRF -toyland = TRGT.GRF -extra = OPENTTD.GRF +base = TRG1.GRF +logos = TRGI.GRF +arctic = TRGC.GRF +tropical = TRGH.GRF +toyland = TRGT.GRF +extra = ORIG_EXTRA.GRF [md5s] -TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 -TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 -TRGC.GRF = ed446637e034104c5559b32c18afe78d -TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 -TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6 -OPENTTD.GRF = +TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 +TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 +TRGC.GRF = ed446637e034104c5559b32c18afe78d +TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 +TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6 +ORIG_EXTRA.GRF = [origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -OPENTTD.GRF = This file was part of your OpenTTD installation. +default = You can find it on your Transport Tycoon Deluxe CD-ROM. +ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/media/baseset/orig_dos_de.obg b/media/baseset/orig_dos_de.obg index 8cfcc27074..4e12582727 100644 --- a/media/baseset/orig_dos_de.obg +++ b/media/baseset/orig_dos_de.obg @@ -11,21 +11,21 @@ palette = DOS !! description STR_BASEGRAPHICS_DOS_DE_DESCRIPTION [files] -base = TRG1.GRF -logos = TRGI.GRF -arctic = TRGC.GRF -tropical = TRGH.GRF -toyland = TRGT.GRF -extra = OPENTTD.GRF +base = TRG1.GRF +logos = TRGI.GRF +arctic = TRGC.GRF +tropical = TRGH.GRF +toyland = TRGT.GRF +extra = ORIG_EXTRA.GRF [md5s] -TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 -TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 -TRGC.GRF = ed446637e034104c5559b32c18afe78d -TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 -TRGT.GRF = fcde1d7e8a74197d72a62695884b909e -OPENTTD.GRF = +TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 +TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 +TRGC.GRF = ed446637e034104c5559b32c18afe78d +TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 +TRGT.GRF = fcde1d7e8a74197d72a62695884b909e +ORIG_EXTRA.GRF = [origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -OPENTTD.GRF = This file was part of your OpenTTD installation. +default = You can find it on your Transport Tycoon Deluxe CD-ROM. +ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/media/baseset/orig_win.obg b/media/baseset/orig_win.obg index 82a5c2a616..393b5d3013 100644 --- a/media/baseset/orig_win.obg +++ b/media/baseset/orig_win.obg @@ -11,21 +11,21 @@ palette = Windows !! description STR_BASEGRAPHICS_WIN_DESCRIPTION [files] -base = TRG1R.GRF -logos = TRGIR.GRF -arctic = TRGCR.GRF -tropical = TRGHR.GRF -toyland = TRGTR.GRF -extra = OPENTTD.GRF +base = TRG1R.GRF +logos = TRGIR.GRF +arctic = TRGCR.GRF +tropical = TRGHR.GRF +toyland = TRGTR.GRF +extra = ORIG_EXTRA.GRF [md5s] -TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 -TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 -TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b -TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 -TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -OPENTTD.GRF = +TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 +TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 +TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b +TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 +TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 +ORIG_EXTRA.GRF = [origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -OPENTTD.GRF = This file was part of your OpenTTD installation. +default = You can find it on your Transport Tycoon Deluxe CD-ROM. +ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/media/extra_grf/openttd.nfo b/media/extra_grf/openttd.nfo index 66149a37e5..7ece5c7149 100644 --- a/media/extra_grf/openttd.nfo +++ b/media/extra_grf/openttd.nfo @@ -60,10 +60,11 @@ 00 // GRF ID, must start with FF so it gets ignored - -1 * 0 08 08 FF "OTT" +//@@WARNING DISABLE 101 + -1 * 0 08 08 FF FF FF FE // Name of the GRF - "OpenTTD's base graphics " 00 + "OpenTTD's default and fallback extra graphics" 00 // Description of the GRF. "License: GNU General Public License version 2" 0D @@ -86,7 +87,6 @@ #include "canals.nfo" #include "oneway.nfo" #include "tramtracks.nfo" -#include "shore.nfo" #include "sloped_tracks.nfo" #include "airports.nfo" #include "roadstops.nfo" @@ -97,11 +97,5 @@ #include "airport_preview.nfo" #include "chars.nfo" #include "mono.nfo" -#include "fix_graphics.nfo" -#include "rivers/rapids.nfo" -#include "rivers/temperate.nfo" -#include "rivers/arctic.nfo" -#include "rivers/tropic.nfo" -#include "rivers/toyland.nfo" #include "tunnel_portals.nfo" #include "palette.nfo" diff --git a/media/extra_grf/orig_extra.nfo b/media/extra_grf/orig_extra.nfo new file mode 100644 index 0000000000..228aa2841c --- /dev/null +++ b/media/extra_grf/orig_extra.nfo @@ -0,0 +1,84 @@ +// Automatically generated by GRFCODEC. Do not modify! +// (Info version 32) +// Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags +// +// $Id$ +// +// This file is part of OpenTTD. +// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . +// +// Sources for extra graphics to complement the original graphics. +// Checks whether the correct version of OpenTTD is used before +// allowing it to be used. +// + +// +// Number of sprites, it is wrong, but GRFcodec automagically gets it right. +// + 0 * 4 00 00 00 00 + + +// +// Check whether we are running OTTD or not. +// + -1 * 0 07 9D 04 \7= 01 00 00 00 01 + -1 * 0 0B 03 7F FF 80 " is not for TTDPatch. Use ttdpatch(w).grf." 00 + + +// +// Check for OTTD's version number +// + +// First step... Variable A1 might not exist. If that's the case it always +// skips. As we do not want to skip out of the whole testing, we skip over +// the real version check. + -1 * 0 07 A1 04 \7= FF FF FF FF 02 + +// Real version check. + -1 * 0 07 A1 04 \7> \w20304 01 01 03 + +// If the version check is supported, the string is translateable via OpenTTD +// itself. Use it!. + + -1 * 0 0B 03 7F 06 "1.1 (or trunk r20304)" 00 + +// Some OTTD versions before r11130 did support Action B, so use the English +// phrase there + -1 * 0 0B 03 7F FF "Requires OpenTTD version 1.1 (or trunk r20304) or better." 00 + +// Final fallback. No Action B support, just skip to the end of the file. + -1 * 0 07 A1 04 \7= FF FF FF FF 00 + +// We are a DOS paletted NewGRF, so tell OpenTTD that. Then it can actually +// do the right thing. Yay for that feature as that means no duplicate NewGRF! + -1 * 0 14 + "C" "INFO" + "B" "PALS" \w1 "D" + 00 + 00 + +// GRF ID, must start with FF so it gets ignored +//@@WARNING DISABLE 101 + -1 * 0 08 08 FF "OTT" + +// Name of the GRF + "Original baseset extra graphics" 00 + +// Description of the GRF. + "License: GNU General Public License version 2" 0D + "Andrew Parkhouse: rivers" 0D + "Addi and PaulC: original graphics fixes" 0D + "OpenTTD developers: other graphics" 00 + +// +// The real data of the GRF is acquired from several subfiles. +// +#include "shore.nfo" +#include "fix_graphics.nfo" +#include "rivers/rapids.nfo" +#include "rivers/temperate.nfo" +#include "rivers/arctic.nfo" +#include "rivers/tropic.nfo" +#include "rivers/toyland.nfo" diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi index 9eb869f2d3..c7b8c82af4 100644 --- a/os/windows/installer/install.nsi +++ b/os/windows/installer/install.nsi @@ -408,6 +408,7 @@ Section "Uninstall" ; Baseset files Delete "$INSTDIR\baseset\opntitle.dat" Delete "$INSTDIR\baseset\openttd.grf" + Delete "$INSTDIR\baseset\orig_extra.grf" Delete "$INSTDIR\baseset\orig_win.obg" Delete "$INSTDIR\baseset\orig_dos.obg" Delete "$INSTDIR\baseset\orig_dos_de.obg" diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 10bc0afa17..23172bdd5e 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -197,31 +197,41 @@ static void LoadSpriteTables() InitializeUnicodeGlyphMap(); /* - * Load the base NewGRF with OTTD required graphics as first NewGRF. + * Load the base and extra NewGRF with OTTD required graphics as first NewGRF. * However, we do not want it to show up in the list of used NewGRFs, * so we have to manually add it, and then remove it later. */ GRFConfig *top = _grfconfig; - GRFConfig *master = new GRFConfig(used_set->files[GFT_EXTRA].filename); + + /* Default extra graphics */ + GRFConfig *master = new GRFConfig("OPENTTD.GRF"); + master->palette |= GRFP_GRF_DOS; + FillGRFDetails(master, false, BASESET_DIR); + ClrBit(master->flags, GCF_INIT_ONLY); + + /* Baseset extra graphics */ + GRFConfig *extra = new GRFConfig(used_set->files[GFT_EXTRA].filename); /* We know the palette of the base set, so if the base NewGRF is not * setting one, use the palette of the base set and not the global * one which might be the wrong palette for this base NewGRF. * The value set here might be overridden via action14 later. */ switch (used_set->palette) { - case PAL_DOS: master->palette |= GRFP_GRF_DOS; break; - case PAL_WINDOWS: master->palette |= GRFP_GRF_WINDOWS; break; + case PAL_DOS: extra->palette |= GRFP_GRF_DOS; break; + case PAL_WINDOWS: extra->palette |= GRFP_GRF_WINDOWS; break; default: break; } - FillGRFDetails(master, false, BASESET_DIR); + FillGRFDetails(extra, false, BASESET_DIR); + ClrBit(extra->flags, GCF_INIT_ONLY); - ClrBit(master->flags, GCF_INIT_ONLY); - master->next = top; + extra->next = top; + master->next = extra; _grfconfig = master; - LoadNewGRF(SPR_NEWGRFS_BASE, i); + LoadNewGRF(SPR_NEWGRFS_BASE, i, 2); /* Free and remove the top element. */ + delete extra; delete master; _grfconfig = top; } diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 7b862149d4..e0246bdf67 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -9203,8 +9203,9 @@ static void AfterLoadGRFs() * Load all the NewGRFs. * @param load_index The offset for the first sprite to add. * @param file_index The Fio index of the first NewGRF to load. + * @param num_baseset Number of NewGRFs at the front of the list to look up in the baseset dir instead of the newgrf dir. */ -void LoadNewGRF(uint load_index, uint file_index) +void LoadNewGRF(uint load_index, uint file_index, uint num_baseset) { /* In case of networking we need to "sync" the start values * so all NewGRFs are loaded equally. For this we use the @@ -9270,7 +9271,7 @@ void LoadNewGRF(uint load_index, uint file_index) if (c->status == GCS_DISABLED || c->status == GCS_NOT_FOUND) continue; if (stage > GLS_INIT && HasBit(c->flags, GCF_INIT_ONLY)) continue; - Subdirectory subdir = slot == file_index ? BASESET_DIR : NEWGRF_DIR; + Subdirectory subdir = slot < file_index + num_baseset ? BASESET_DIR : NEWGRF_DIR; if (!FioCheckFileExists(c->filename, subdir)) { DEBUG(grf, 0, "NewGRF file is missing '%s'; disabling", c->filename); c->status = GCS_NOT_FOUND; diff --git a/src/newgrf.h b/src/newgrf.h index 51b00da7c6..1ab55dd044 100644 --- a/src/newgrf.h +++ b/src/newgrf.h @@ -183,7 +183,7 @@ extern GRFLoadedFeatures _loaded_newgrf_features; byte GetGRFContainerVersion(); void LoadNewGRFFile(struct GRFConfig *config, uint file_index, GrfLoadingStage stage, Subdirectory subdir); -void LoadNewGRF(uint load_index, uint file_index); +void LoadNewGRF(uint load_index, uint file_index, uint num_baseset); void ReloadNewGRFData(); // in saveload/afterload.cpp void ResetNewGRFData(); void ResetPersistentNewGRFData(); From c72f21e410f69fb731ef368095b6e49c39f9a15f Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 14 Jan 2017 18:00:02 +0000 Subject: [PATCH 225/417] (svn r27731) -Fix (r27730): Missed some sprites which also belong into orig_extra.grf --- bin/baseset/openttd.grf | Bin 523136 -> 508098 bytes bin/baseset/orig_dos.obg | 2 +- bin/baseset/orig_dos_de.obg | 2 +- bin/baseset/orig_extra.grf | Bin 303149 -> 318212 bytes bin/baseset/orig_win.obg | 2 +- media/extra_grf/canals.nfo | 94 +--------------------------- media/extra_grf/canals_extra.nfo | 101 +++++++++++++++++++++++++++++++ media/extra_grf/orig_extra.nfo | 1 + 8 files changed, 106 insertions(+), 96 deletions(-) create mode 100644 media/extra_grf/canals_extra.nfo diff --git a/bin/baseset/openttd.grf b/bin/baseset/openttd.grf index 6f2921f272a89628f47f34f5155b5e4b4ada42d7..168d00fbd858c29245a6d8f029e5f9d342502cb7 100644 GIT binary patch delta 55 zcmZqpE`O*|o`r?se}5xOD+^;Q3)5B><~4H}C8uwk%PhV9%3S8t&F!HvEI`Z(#BAF` JW7xIl0{|>$6SM#T delta 7779 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 delta 36 rcmZqKCcO555GxDA|6?qTtgWn!TUnWAM6{PoW&&d7?In|0Cb$Ct@S_bD diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index fc4740fbac..049a3dca9b 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -76,7 +76,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -ORIG_EXTRA.GRF = 2f214be226d04af78c3afb961ccdd08d +ORIG_EXTRA.GRF = 73b921a42814c47a84945b7e9add5d9f [origin] default = You can find it on your Transport Tycoon Deluxe CD-ROM. diff --git a/media/extra_grf/canals.nfo b/media/extra_grf/canals.nfo index c0d0275f35..e464762ee6 100644 --- a/media/extra_grf/canals.nfo +++ b/media/extra_grf/canals.nfo @@ -6,7 +6,7 @@ // OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . // - -1 * 0 0C "Canal graphics by George / PaulC" + -1 * 0 0C "Canal graphics by George" -1 * 3 05 08 41 // Canal slopes -1 sprites/canal_locks.png 8bpp 66 8 64 23 -31 0 normal @@ -77,95 +77,3 @@ -1 sprites/canals.png 8bpp 446 10 24 16 -11 -6 normal // Canal icon -1 sprites/canal_locks.png 8bpp 50 232 20 20 0 0 normal - -// Differentiation for the climates starts here - -// Canal edges (arctic snowy) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 40 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 40 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 40 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 40 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 40 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 40 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 40 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 40 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 40 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 40 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 40 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 40 24 16 -11 -6 normal - -1 * 7 02 05 10 01 00 00 00 - -// Canal edges (arctic normal) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 70 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 70 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 70 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 70 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 70 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 70 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 70 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 70 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 70 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 70 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 70 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 70 24 16 -11 -6 normal - -1 * 7 02 05 11 01 00 00 00 -// Choose the right arctic canal edges - -1 * 14 02 05 12 81 81 00 FF 01 10 00 04 04 11 00 - -1 * 6 07 83 01 \7! 01 01 - -1 * 7 03 05 01 02 00 12 00 - -// Canal edges (tropic desert) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 100 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 100 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 100 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 100 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 100 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 100 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 100 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 100 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 100 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 100 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 100 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 100 24 16 -11 -6 normal - -1 * 7 02 05 13 01 00 00 00 - -// Canal edges (tropic rainforest) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 130 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 130 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 130 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 130 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 130 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 130 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 130 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 130 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 130 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 130 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 130 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 130 24 16 -11 -6 normal - -1 * 7 02 05 14 01 00 00 00 -// Choose the right tropic canal edges - -1 * 14 02 05 15 81 81 00 FF 01 13 00 01 01 14 00 - -1 * 6 07 83 01 \7! 02 01 - -1 * 7 03 05 01 02 00 15 00 - -// Canal edges (toyland) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 160 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 160 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 160 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 160 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 160 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 160 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 160 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 160 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 160 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 160 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 160 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 160 24 16 -11 -6 normal - -1 * 7 02 05 16 01 00 00 00 - -1 * 6 07 83 01 \7! 03 01 - -1 * 7 03 05 01 02 00 16 00 diff --git a/media/extra_grf/canals_extra.nfo b/media/extra_grf/canals_extra.nfo new file mode 100644 index 0000000000..3103886233 --- /dev/null +++ b/media/extra_grf/canals_extra.nfo @@ -0,0 +1,101 @@ +// +// $Id$ +// +// This file is part of OpenTTD. +// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . +// + -1 * 0 0C "Extra canal graphics by PaulC" + +// Differentiation for the climates starts here + +// Canal edges (arctic snowy) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 40 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 40 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 40 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 40 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 40 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 40 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 40 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 40 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 40 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 40 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 40 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 40 24 16 -11 -6 normal + -1 * 7 02 05 10 01 00 00 00 + +// Canal edges (arctic normal) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 70 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 70 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 70 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 70 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 70 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 70 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 70 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 70 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 70 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 70 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 70 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 70 24 16 -11 -6 normal + -1 * 7 02 05 11 01 00 00 00 +// Choose the right arctic canal edges + -1 * 14 02 05 12 81 81 00 FF 01 10 00 04 04 11 00 + -1 * 6 07 83 01 \7! 01 01 + -1 * 7 03 05 01 02 00 12 00 + +// Canal edges (tropic desert) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 100 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 100 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 100 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 100 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 100 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 100 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 100 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 100 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 100 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 100 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 100 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 100 24 16 -11 -6 normal + -1 * 7 02 05 13 01 00 00 00 + +// Canal edges (tropic rainforest) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 130 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 130 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 130 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 130 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 130 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 130 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 130 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 130 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 130 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 130 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 130 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 130 24 16 -11 -6 normal + -1 * 7 02 05 14 01 00 00 00 +// Choose the right tropic canal edges + -1 * 14 02 05 15 81 81 00 FF 01 13 00 01 01 14 00 + -1 * 6 07 83 01 \7! 02 01 + -1 * 7 03 05 01 02 00 15 00 + +// Canal edges (toyland) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 160 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 160 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 160 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 160 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 160 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 160 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 160 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 160 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 160 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 160 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 160 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 160 24 16 -11 -6 normal + -1 * 7 02 05 16 01 00 00 00 + -1 * 6 07 83 01 \7! 03 01 + -1 * 7 03 05 01 02 00 16 00 diff --git a/media/extra_grf/orig_extra.nfo b/media/extra_grf/orig_extra.nfo index 228aa2841c..03a8ff6741 100644 --- a/media/extra_grf/orig_extra.nfo +++ b/media/extra_grf/orig_extra.nfo @@ -77,6 +77,7 @@ // #include "shore.nfo" #include "fix_graphics.nfo" +#include "canals_extra.nfo" #include "rivers/rapids.nfo" #include "rivers/temperate.nfo" #include "rivers/arctic.nfo" From 050271ed2d6aa4995998ce356b6e5328f30fe5df Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 14 Jan 2017 18:30:26 +0000 Subject: [PATCH 226/417] (svn r27732) -Change: Turn the message about 'missing baseset sprites' from a popup into a static message that only shows in non-release versions, just like the 'missing translations' message. --- src/gfxinit.cpp | 8 +++++ src/intro_gui.cpp | 50 ++++++++++++++++++-------- src/lang/afrikaans.txt | 2 -- src/lang/arabic_egypt.txt | 1 - src/lang/basque.txt | 2 -- src/lang/belarusian.txt | 2 -- src/lang/brazilian_portuguese.txt | 2 -- src/lang/bulgarian.txt | 2 -- src/lang/catalan.txt | 2 -- src/lang/croatian.txt | 2 -- src/lang/czech.txt | 2 -- src/lang/danish.txt | 2 -- src/lang/dutch.txt | 2 -- src/lang/english.txt | 3 +- src/lang/english_AU.txt | 2 -- src/lang/english_US.txt | 2 -- src/lang/esperanto.txt | 1 - src/lang/estonian.txt | 2 -- src/lang/finnish.txt | 2 -- src/lang/french.txt | 2 -- src/lang/gaelic.txt | 2 -- src/lang/galician.txt | 2 -- src/lang/german.txt | 2 -- src/lang/greek.txt | 2 -- src/lang/hebrew.txt | 2 -- src/lang/hungarian.txt | 2 -- src/lang/icelandic.txt | 2 -- src/lang/indonesian.txt | 2 -- src/lang/irish.txt | 2 -- src/lang/italian.txt | 2 -- src/lang/japanese.txt | 2 -- src/lang/korean.txt | 2 -- src/lang/latin.txt | 2 -- src/lang/latvian.txt | 2 -- src/lang/lithuanian.txt | 2 -- src/lang/luxembourgish.txt | 2 -- src/lang/malay.txt | 1 - src/lang/norwegian_bokmal.txt | 2 -- src/lang/norwegian_nynorsk.txt | 2 -- src/lang/polish.txt | 2 -- src/lang/portuguese.txt | 2 -- src/lang/romanian.txt | 2 -- src/lang/russian.txt | 2 -- src/lang/serbian.txt | 2 -- src/lang/simplified_chinese.txt | 2 -- src/lang/slovak.txt | 2 -- src/lang/slovenian.txt | 2 -- src/lang/spanish.txt | 2 -- src/lang/spanish_MX.txt | 2 -- src/lang/swedish.txt | 2 -- src/lang/thai.txt | 2 -- src/lang/traditional_chinese.txt | 2 -- src/lang/turkish.txt | 2 -- src/lang/ukrainian.txt | 2 -- src/lang/unfinished/frisian.txt | 1 - src/lang/unfinished/macedonian.txt | 1 - src/lang/unfinished/persian.txt | 1 - src/lang/vietnamese.txt | 2 -- src/lang/welsh.txt | 2 -- src/newgrf.cpp | 29 --------------- src/newgrf_config.cpp | 1 + src/newgrf_config.h | 2 +- src/openttd.cpp | 1 - src/script/api/game/game_window.hpp.sq | 2 ++ src/script/api/script_window.hpp | 4 ++- src/spritecache.cpp | 19 ++++++++++ src/spritecache.h | 1 + src/widgets/intro_widget.h | 4 ++- 68 files changed, 75 insertions(+), 155 deletions(-) diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 23172bdd5e..6dea627dd0 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -230,6 +230,14 @@ static void LoadSpriteTables() LoadNewGRF(SPR_NEWGRFS_BASE, i, 2); + uint total_extra_graphics = SPR_NEWGRFS_BASE - SPR_OPENTTD_BASE; + _missing_extra_graphics = GetSpriteCountForSlot(i, SPR_OPENTTD_BASE, SPR_NEWGRFS_BASE); + DEBUG(sprite, 1, "%u extra sprites, %u from baseset, %u from fallback", total_extra_graphics, total_extra_graphics - _missing_extra_graphics, _missing_extra_graphics); + + /* The original baseset extra graphics intentionally make use of the fallback graphics. + * Let's say everything which provides less than 500 sprites misses the rest intentionally. */ + if (500 + _missing_extra_graphics > total_extra_graphics) _missing_extra_graphics = 0; + /* Free and remove the top element. */ delete extra; delete master; diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp index a09a59a10d..3659b033cf 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -60,13 +60,21 @@ struct SelectGameWindow : public Window { virtual void OnInit() { - bool missing = _current_language->missing >= _settings_client.gui.missing_strings_threshold && !IsReleasedVersion(); - this->GetWidget(WID_SGI_TRANSLATION_SELECTION)->SetDisplayedPlane(missing ? 0 : SZSP_NONE); + bool missing_sprites = _missing_extra_graphics > 0 && !IsReleasedVersion(); + this->GetWidget(WID_SGI_BASESET_SELECTION)->SetDisplayedPlane(missing_sprites ? 0 : SZSP_NONE); + + bool missing_lang = _current_language->missing >= _settings_client.gui.missing_strings_threshold && !IsReleasedVersion(); + this->GetWidget(WID_SGI_TRANSLATION_SELECTION)->SetDisplayedPlane(missing_lang ? 0 : SZSP_NONE); } virtual void DrawWidget(const Rect &r, int widget) const { switch (widget) { + case WID_SGI_BASESET: + SetDParam(0, _missing_extra_graphics); + DrawStringMultiLine(r.left, r.right, r.top, r.bottom, STR_INTRO_BASESET, TC_FROMSTRING, SA_CENTER); + break; + case WID_SGI_TRANSLATION: SetDParam(0, _current_language->missing); DrawStringMultiLine(r.left, r.right, r.top, r.bottom, STR_INTRO_TRANSLATION, TC_FROMSTRING, SA_CENTER); @@ -76,20 +84,29 @@ struct SelectGameWindow : public Window { virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) { + StringID str = 0; switch (widget) { - case WID_SGI_TRANSLATION: { - SetDParam(0, _current_language->missing); - int height = GetStringHeight(STR_INTRO_TRANSLATION, size->width); - if (height > 3 * FONT_HEIGHT_NORMAL) { - /* Don't let the window become too high. */ - Dimension textdim = GetStringBoundingBox(STR_INTRO_TRANSLATION); - textdim.height *= 3; - textdim.width -= textdim.width / 2; - *size = maxdim(*size, textdim); - } else { - size->height = height + padding.height; - } + case WID_SGI_BASESET: + SetDParam(0, _missing_extra_graphics); + str = STR_INTRO_BASESET; break; + + case WID_SGI_TRANSLATION: + SetDParam(0, _current_language->missing); + str = STR_INTRO_TRANSLATION; + break; + } + + if (str != 0) { + int height = GetStringHeight(str, size->width); + if (height > 3 * FONT_HEIGHT_NORMAL) { + /* Don't let the window become too high. */ + Dimension textdim = GetStringBoundingBox(str); + textdim.height *= 3; + textdim.width -= textdim.width / 2; + *size = maxdim(*size, textdim); + } else { + size->height = height + padding.height; } } } @@ -199,6 +216,11 @@ static const NWidgetPart _nested_select_game_widgets[] = { EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 7), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_SGI_BASESET_SELECTION), + NWidget(NWID_VERTICAL), + NWidget(WWT_EMPTY, COLOUR_ORANGE, WID_SGI_BASESET), SetMinimalSize(316, 12), SetFill(1, 0), SetPadding(0, 10, 7, 10), + EndContainer(), + EndContainer(), NWidget(NWID_SELECTION, INVALID_COLOUR, WID_SGI_TRANSLATION_SELECTION), NWidget(NWID_VERTICAL), NWidget(WWT_EMPTY, COLOUR_ORANGE, WID_SGI_TRANSLATION), SetMinimalSize(316, 12), SetFill(1, 0), SetPadding(0, 10, 7, 10), diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 541b8262fe..3bef69ef75 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Poging on 'n on STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bevat 'n korrupte prent. Korrupte prente sal as 'n rooi vraagteken gewys word (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Bevat veelvoudige Aksie 8 inskrywings (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lees verby die einde van die pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :WHITE}Die huidige basis-grafikastel ontbreek sommige sprites.{}Opdateer die basis-grafikastel. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Die huidige basis-grafikastel ontbreek sommige sprites.{}Opdateer die basis-grafikastel.{}Aangesien jy 'n {YELLOW}ontwikkelingsweergawe van OpenTTD{WHITE} het, mag jy dalk 'n {YELLOW}ontwikkelingsweergawe{WHITE} van die basis-grafikastel benodig{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Aangevraagde GRF hulpbronne is nie beskikbaar nie (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} was gedeaktiveer deur {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ongeldige/onbekende sprite uitleg formaat (sprite {3:NUM}) diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index bbc6322275..5f463a22f5 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2524,7 +2524,6 @@ STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :تم تصميم STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :العديد من NewGRF تم تحميلها STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :تحميل {1:STRING}كملف ثابت مع NewGRF {STRING}قد يتسبب بمشكلة توافق. STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} يحتوي على خصائص غير صالحة. جميع الخصائص الغير صالحة سوف يشار لها بعلامة استفهام حمراء. -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}ملف الرسوم المستخدم حاليا يفتقد لبعض الرسوم الاساسية.{}الرجاء حدث ملف الرسوم. STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}تم تعطيلة بواسطة{STRING} # NewGRF related 'general' warnings diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 83d22fcfb4..eee84eb0ad 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2786,8 +2786,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Identifikazio b STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sprite baliogabea dauka. Sprite baliogabeak galdera ikur gorria bezala ikusiko dira (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Action 8 sarrera asko ditu (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Pseudo spritea baino hurrunago irakurri (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Aukeratuta daukazun oinarrizko grafiko paketean "sprite" batzuk falta dira.{}Mesedez eguneratu oinarrizko grafiko paketea -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Erabiltzen ari den grafiko baseari sprite batzuk falta zaizkio.{}Mesedez zure grafiko basea eguneratu ezazu.{}OpenTTD-ren {YELLOW}garapen bertsio bat erabiltzen ari zarenez{WHITE}, grafiko basearen {YELLOW}garapen bertsio bat behar izango duzu{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Eskatutako GRFa ez dago eskuragarri (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} desgaitua izan da {STRING}(en)gatik STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Grafiko deseinu formatu ezezaguna/baliogabea (sprite {3:NUM}) diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 3507e8bffb..a179b30ac2 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3239,8 +3239,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Спроба в STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} утрымлiвае пашкоджаны спрайт. Усе пашкоджаныя спрайты будуць паказаны чырвоным знакам пытаньня (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Утрымлiвае некалькі блёкаў «Action 8» (спрайт {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Чытаньне па-за канцом псэўда-спрайту (спрайт {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}У бягучым наборы базавай ґрафікі адсутнічаюць выявы некаторых аб'ектаў.{}Калі ласка, абнавіце модуль базавай ґрафікі. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}У выкарыстаным наборы базавай ґрафікі адсутнічаюць некаторыя малюнкі.{}Калі ласка, абнавіце набор малюнкаў.{}Вам можа спатрэбіцца {YELLOW}тэставая вэрсія ґрафічнага набору{WHITE}, таму што ў вас {YELLOW}тэставая вэрсія OpenTTD{WHITE}. STR_NEWGRF_ERROR_GRM_FAILED :Запытаныя рэсурсы GRF недаступныя (спрайт {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} быў адключаны з-за {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Недапушчальны/невядомы фармат размяшчэньня спрайтаў (спрайт {3:NUM}) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index ec65763fdf..6da939d664 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Tentativa de us STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contém um sprite corrupto. Todos os sprites corruptos serão exibidos como um "?" vermelho STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contém multiplas entradas de Ação 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Leitura após o final do pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Estão faltando alguns sprites na base de gráficos em uso.{}Por favor atualize a base de gráficos -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}O pacote de gráficos base atuais está faltando alguns sprites.{}Favor atualizar o pacote de gráficos base.{}Já que você está usando um {YELLOW}snapshot em desenvolvimento do OpenTTD{WHITE}, você também precisa do {YELLOW}Snapshot do pacote de gráficos base em desenvolvimento{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF requeridos indisponíveis (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desativado por {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de layout de sprite inválido/desconhecido (sprite {3:NUM}) diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 4d6f20445c..2922780761 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2838,8 +2838,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Опит за STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} съдържа повреден обект. Вскички повредени обекти ще бъдат показани като червена въпросителна (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contains multiple Action 8 entries (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Текущите основни графики имат празни картинки.{}Моля обновете си основните графики. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Текущо използвания графичен сет има липсващи спрайтове.{}Моля обновете графичния сет.{}Тъй като играете {YELLOW}версия на OpenTTD в процес на разработка{WHITE}, може да се нуждаете и от {YELLOW}версията на графичния сет, която е в разработка{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Изискваните GRF resources не са на разположение (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} беше изключено от {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index c864f63c36..692c48c043 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Intent d'utilit STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} conté un sprite corrupte. Tots els sprites corruptes seran mostrats amb un interrogant vermell (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Conté múltiples entrades d'acció 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :S'ha llegit després del final d'un pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Al joc de gràfics base establert actualment li falten un nombre de sprites.{}Si us plau, actualitzeu el joc de gràfics base. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Als gràfics base actualment utilitzats els hi falta un nombre de sprites.{}Si us plau, actualitzeu el conjunt de gràfics base.{}Com que esteu jugant amb una {YELLOW}versió de desenvolupament de l'OpenTTD{WHITE}, pot ser que necessiteu una {YELLOW}versió de desenvolupament dels gràfics base{WHITE}. STR_NEWGRF_ERROR_GRM_FAILED :Els recursos GRF demanats no estan disponibles (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ha estat desactivat per {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de disposició de sprite no vàlid o desconegut (sprite {3:NUM}). diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index a6ebbea4a0..0d8b9a6a78 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3003,8 +3003,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Pokušaj koriš STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sadrži neispravan sprite. Svi neispravni grafički znakovi bit će pokazani kao crveni upitnik (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sadrži višestruke unose za Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Pročitaj nakon kraja od pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Baznom grafičkom setu u uporabi nedostaju neki spriteovi.{}Ažurirajte bazni grafički set -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Trenutno korištenom osnovnom grafičkom setu nedostaju pojedini crteži.{}Molimo da nadogradite osnovni grafički set.{}Pošto igrate {YELLOW}razvojnu inačicu OpenTTD-a{WHITE}, možda će vam trebati i {YELLOW}razvojna inačica osnovnog grafičkog seta{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Zatraženi GRF resursi nisu dostupni (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je isključen od strane {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Pogrešan/nepoznat format raspored sprite-a (sprite {3:NUM}) diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 88ba1559b4..4c5d796648 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2999,8 +2999,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Pokus o použit STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} obsahuje poškozený sprite. Všechny takové se zobrazí jako červený otazník (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Obsahuje vícero Akce 8 záznamů (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Čtení konce pseudo-spritu (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Právě používanému základnímu grafickému setu chybí obrázky.{}Prosím, updatujte ho -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Aktuálnímu grafickému setu chybí nějaké části.{}Aktualizuj prosím grafický set.{}Pokud hraješ{YELLOW}vývojovou verzi OpenTTD{WHITE}, možná potřebuješ {YELLOW}vývojovou verzi základních grafik{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Požadované zdroje GRF nejsou dostupné (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} byla vypnuta {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neplatný/neznámý sprite layout formát (sprite {3:NUM}) diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 9bd2a95a49..1a6577ed96 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Forsøg på at STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} indeholder en ødelagt sprite. Alle ødelagte sprites vil blive vist som et rødt spørgsmålstegn (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Indeholder adskillige handling 8 indgange (grafikelement {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Læs forbi slutningen af pseudo-grafikelement (grafikelement {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Det brugte basis grafiksæt mangler en række elementer.{}Opdater venligst grafiksættet. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Den grafikpakke som bruges er ufuldstændig.{}Opdater venligst grafikpakken.{}eftersom du spiller et{YELLOW} development snapshot of OpenTTD{WHITE},får du måske også brug for er{YELLOW}development snapshot of the base graphics{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :De ønskede GRF ressourcer er ikke tilgængelige (grafikelement {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} blev deaktiveret af {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldigt / ukendt grafikelement layoutformat (grafikelement {3:NUM}) diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 4053c578b6..20cedb565d 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Poging om ongel STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bevat een ongeldige afbeelding. Alle ongeldige afbeeldingen worden getoond als een rood vraagteken (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Bevat meerdere acties 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Voorbij het einde van pseudo-sprite gelezen (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}De huidige basis graphics-set mist een aantal sprites..{}Werk de graphics-set bij aub -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}De momenteel gebruikte basis graphics set mist een aantal sprites.{} Werk de ingestelde basis graphics bij.{} Aangezien u een {YELLOW} ontwikkeling momentopname van OpenTTD{WHITE} speelt, heeft u ook een {YELLOW} ontwikkeling snapshot van de basis graphics set{WHITE} nodig STR_NEWGRF_ERROR_GRM_FAILED :Gevraagde GRF middelen niet beschikbaar (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} is uitgeschakeld door {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ongeldig/onbekend sprite lay-out-formaat (sprite {3:NUM}) diff --git a/src/lang/english.txt b/src/lang/english.txt index 0b8406e24e..83b6591f6e 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1761,6 +1761,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Check fo STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Display AI/Game script settings STR_INTRO_TOOLTIP_QUIT :{BLACK}Exit 'OpenTTD' +STR_INTRO_BASESET :{BLACK}The currently selected base graphics set is missing {NUM} sprite{P "" s}. Please check for updates for the baseset. STR_INTRO_TRANSLATION :{BLACK}This translation misses {NUM} string{P "" s}. Please help make OpenTTD better by signing up as translator. See readme.txt for details. # Quit window @@ -2907,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Attempt to use STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{RAW_STRING} contains a corrupt sprite. All corrupt sprites will be shown as a red question mark (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contains multiple Action 8 entries (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set.{}Since you are playing a {YELLOW}development snapshot of OpenTTD{WHITE}, you might also need a {YELLOW}development snapshot of the base graphics{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:RAW_STRING} was disabled by {2:RAW_STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 9adc6d9314..6f4e7144f5 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2873,8 +2873,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Attempt to use STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contains a corrupt sprite. All corrupt sprites will be shown as a red question mark (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contians multiple Action 8 entries (sprite{3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of psuedo-sprite (sprite{3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set.{}Since you are playing a {YELLOW}development snapshot of OpenTTD{WHITE}, you might also need a {YELLOW}development snapshot of the base graphics{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite{3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} was disabled by {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 9d70f8f6ae..f5b199a125 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Attempt to use STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contains a corrupt sprite. All corrupt sprites will be shown as a red question mark (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contains multiple Action 8 entries (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set.{}Since you are playing a {YELLOW}development snapshot of OpenTTD{WHITE}, you might also need a {YELLOW}development snapshot of the base graphics{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} was disabled by {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 4163a31b65..4251151a8a 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2451,7 +2451,6 @@ STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} bezo STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :la GRF-dosiero estas farita por traduki STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Tro da NewGRF-oj estas ŝarĝataj STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} enhavas rompitan bildeton. Ĉiuj rompitaj bildetoj aspektos kiel ruĝaj demandsignoj (?) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}La nuntempe uza baza grafikaĵaro mankas kelkajn da bildetoj.{}Bonvolu renovigu la baza grafikaĵaro STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} estis malaktivata per {STRING} # NewGRF related 'general' warnings diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index d3283c128a..7cd7a571a4 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -2964,8 +2964,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Kasutati kõlbm STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sisaldab vigast pilti. Kõiki vigaseid pilte näidatakse punase küsimärgina (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sisaldab mitut Action 8 kirjet (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Loe pseudo-sprite lõpust edasi (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Praegune alusgraafika kogu ei sisalda mitmeid spraite.{}Palun uuenda alusgraafika kogu -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Praegune alusgraafika kogu ei sisalda mitmeid spraite.{}Palun uuenda alusgraafika kogu.{}Kuna sa mängid {YELLOW}OpenTTD arendusversiooniga{WHITE}, siis ilmselt pead sa kasutama {YELLOW}alusgraafika kogu arendusversiooni{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Soovitud GRFi ressursid ei ole saadaval (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} blokeeriti {STRING} poolt STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :«Sprite» paigutus kõlbmatus vormis («sprite» {3:NUM}) diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index b1dc16d17f..7c26474842 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Yritys käyttä STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sisältää korruptoituneen spriten. Kaikki korruptoituneet spritet näkyvät punaisina kysymysmerkkeinä (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sisältää useita Action 8-merkintöjä (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Luku pseudo-spriten ohi (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Käytössä olevasta perusgrafiikkapaketista puuttuu spritejä.{}Ole hyvä ja päivitä perusgrafiikkapaketti -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Käytössä olevasta perusgrafiikkapaketista puuttuu spritejä.{}Päivitä perusgrafiikkapaketti.{}Koska pelaat {YELLOW}OpenTTD:n kehitysversiota{WHITE}, saatat myös tarvita {YELLOW}kehitysversion perusgrafiikkapaketista{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Pyydetyt GRF-resurssit eivät ole saatavilla (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} poisti käytöstä NewGRF:n {1:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Virheellinen/tuntematon spriten asettelumuoto (sprite {3:NUM}) diff --git a/src/lang/french.txt b/src/lang/french.txt index b883918239..96a9724fe7 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Tentative d'uti STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contient un sprite corrompu. Tous les sprites corrompus seront remplacés par un point d'interrogation rouge (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Présence multiple de l'Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lecture après la fin des pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Il manque certains sprites dans les graphiques de base actuellement utilisés.{}Veuillez mettre à jour les graphiques de base. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Il manque un certain nombre de sprites dans les graphiques de base actuellement utilisés.{}Veuillez mettre à jour les graphiques de base.{}Comme vous jouez avec une {YELLOW}version de développement d'OpenTTD{WHITE}, vous devriez utiliser une {YELLOW}version de développement des graphiques de base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Indisponibilité de la ressource demandée (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} a été désactivé par {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de sprite invalide ou inconnu (sprite {3:NUM}) diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 64cb4d96d6..44e96cab07 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3135,8 +3135,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Chaidh feuchain STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}Tha sprite coirbte am broinn {STRING.gen}. Thèid a h-uile sprite coirbte a shealltainn na comharradh-ceiste dhearg (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Tha iomadh innteart gnìomh 8 ann (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Chaidh leughadh thar deireadh a' sprite mas fhìor (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Tha sprite no dhà a dhìth air an t-seata ghrafaigeachd bhunasach a tha thu a' cleachdadh an-dràsta.{}Feuch an ùraich thu an seata grafaigeachd bunasach -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Tha sprite no dhà a dhìth air an t-seata ghrafaigeachd bhunasach a tha thu a' cleachdadh an-dràsta.{}Feuch an ùraich thu an seata grafaigeachd bunasach.{}Bhon a tha thu a' cluich le {YELLOW}snapshot leasachaidh aig OpenTTD{WHITE}, ’S dòcha gu bheil {YELLOW} snapshot leasachaidh dhen t-seata grafaigeachd bunasach{WHITE} a dhìth ort cuideachd STR_NEWGRF_ERROR_GRM_FAILED :Chan eil na goireasan GRF a chaidh iarraidh ri làimh (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :Chaidh {1:STRING} a chur à comas le {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Fòrmat co-dhealbhachd sprite mì-dhligheach/neo-aithnichte (sprite {3:NUM}) diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 960f66ba8e..b16ddf43f6 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -2860,8 +2860,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Intento de usar STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contén un sprite corrupto. Tódolos sprites corruptos mostraranse coma unha interrogación vermella (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contén múltiples entradas de acción 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lectura máis aló da fin dun pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE} Ao conxunto de gráficos básicos empregado actualmente fáltalle un número de sprites.{}Por favor, actualiza o conxunto de gráficos básico -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE} Ao conxunto de gráficos básicos empregado actualmente fáltalle un número de sprites.{}Por favor, actualiza o conxunto de gráficos básico.{}Dado que estás a xogar unha {YELLOW}versión de desenrolo de OpenTTD{WHITE}, é posíbel que tamén necesites unha {YELLOW}versión de desenrolo do conjunto de gráficos base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Os recursos GRF solicitados non están disponíbeis (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desactivado por {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de colocación de sprites inválido ou descoñecido (sprite {3:NUM}) diff --git a/src/lang/german.txt b/src/lang/german.txt index ce4d80f282..68a9856a58 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Zugriff auf ein STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} enthält fehlerhafte Grafiken. Diese werden als Fragezeichen (?) dargestellt STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Enthält mehrere Action 8 - Einträge (Sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lesezugriff über das Ende des Pseudosprites hinaus (Sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Den momentan verwendeten Basisgrafiken fehlen Sprites.{}Durch ein Update der Basisgrafiken kann dieser Fehler behoben werden -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Den momentan verwendeten Basisgrafiken fehlen einige Sprites.{}Bitte update die Basisgrafiken.{}Weil dieses eine {YELLOW}Entwickler-Version von OpenTTD{WHITE} ist, ist es möglich, dass auch eine {YELLOW}Entwickler-Version der Basisgrafiken{WHITE} benötigt wird. STR_NEWGRF_ERROR_GRM_FAILED :Die angeforderte GRF-Ressource ist nicht verfügbar (Sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} wurde von {STRING} deaktiviert STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ungültiges oder unbekanntes Format für Spritelayout (Sprite {3:NUM}) diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 828e9d1196..0d06360366 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3015,8 +3015,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Προσπάθ STR_NEWGRF_ERROR_CORRUPT_SPRITE :Το {YELLOW}{STRING} περιέχει ένα αλλοιωμένο sprite. Όλα τα αλλοιωμένα sprites θα εμφανίζονται ως κόκκινα ερωτηματικά (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Περιέχει πολλαπλές καταχωρήσεις Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Διάβασε πέρα από το τέλος του ψευδό-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Λείπουν μερικά sprites από το τρέχον βασικό σετ γραφικών.{}Παρακαλώ ενημερώστε το βασικό σετ γραφικών -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Λείπουν μερικά sprites από το τρέχον βασικό σετ γραφικών.{}Παρακαλώ ενημερώστε το βασικό σετ γραφικών{}Επειδή παίζετε {YELLOW}δοκιμαστική έκδοση του OpenTTD{WHITE}, μπορεί να χρειάζεται να έχετε εγκατεστημένη {YELLOW}δοκιμαστική έκδοση των βασικών γραφικών{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Οι ζητημένοι πόροι GRF δεν είναι διαθέσιμοι (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :Το {1:STRING} απενεργοποιήθηκε από το {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Άκυρη/άγνωστη μορφή σχεδίου sprite (sprite {3:NUM}) diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 33441f910d..ffead604f3 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -2920,8 +2920,6 @@ STR_NEWGRF_ERROR_INVALID_ID :ניסיון ש STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} מכיל אלמנט גרפי שגוי. כל האלמנטים הגרפיים השגויים יוצגו כסימן שאלה אדום (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :מכיל מספר רשומות Action 8 (ספרייט {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :קראת אחר סוף הפסאודו-ספרייט (ספרייט {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}בערכת גרפיקה הבסיסית חסרים מספר ספרייטים.{}אנא עדכן את הערכה הגרפית הבסיסית -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}בערכת גרפיקה הבסיסית חסרים מספר ספרייטים.{}אנא עדכן את הערכה הגרפית הבסיסית.{}מכיוון שהינך משחק {YELLOW}גרסת פיתוח של OpenTTD{WHITE}, אולי תצטרך {YELLOW}גרסת פיתוח של ערכת הגרפיקה הבסיסית{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :משאב GRF המבוקש אינו זמין (ספרייט {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} נהפך ללא זמין ע"י {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :מבנה פורמט ספרייט לא תקין/לא ידוע (ספרייט {3:NUM}) diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 980c65f8a8..af5ebb055f 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2970,8 +2970,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Érvénytelen I STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} hibás sprite-ot tartalmaz. Minden hibás sprite piros kérdőjellel (?) kerül jelölésre STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Több Action 8 bejegyzést tartalmaz (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Ál-sprite távoli végének olvasása (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}A jelenleg használt grafikus alapcsomagból hiányzik számos sprite.{}Kérlek frissítsd a grafikus alapcsomagot -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}A használt alap grafikus csomagból néhány egység hiányzik.{}Kérjük frissítsd az alap grafikus csomagot.{}Mivel az {YELLOW}OpenTTD fejlesztői változatát{WHITE} használod, lehet, hogy a {YELLOW}fejlesztői alap grafikus csomagot{WHITE} kellene használnod STR_NEWGRF_ERROR_GRM_FAILED :Kért GRF források nem elérhetőek (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} kikapcsolva {STRING} által STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Érvénytelen/ismeretlen sprite szerkezet formátum (sprite {3:NUM}) diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 768479531b..d989692495 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2736,8 +2736,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Verið að reyn STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} inniheldur gallaða mynd. Allar gallaðar myndir munu birtast sem rauð spurningamerki (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Inniheldur margþættar aðgerðir, 8 innkomur (hreyfimynd {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Les fyrir endan af gervi-hreyfimynd (hreyfimynd {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Grunnteiknisafnið sem er í notkun vantar hluta af hreyfimyndunum.{}Vinsamlegast uppfærðu grunnteiknisafnið -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Í Grafíska safnið sem nú er í notkun vantar nokkrar myndir.{}Vinsamlegast uppfærið grafíska safnið.{}Þar sem þú ert að spila {YELLOW}þróunar útgáfu af OpenTTD{WHITE}, gæti verið að þú þyrftir líka {YELLOW} þróunar útgáfu af grafíska safninu{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Umbeðin GRF gögn ekki tiltæk (hreyfimynd {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} var óvirkjað af {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Rangt/óþekkt hreyfimyndar snið (hreyfimynd {3:NUM}) diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 3f584902d6..12cc31a6d5 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -2902,8 +2902,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Mencoba menggun STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} terdapat sprite yang rusak. Semua sprite rusak akan ditandai dengan tanda tanya merah (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Memuat beberapa entri Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Baca akhir sprite palsu (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Beberapa 'sprite' tidak terdapat pada Set Grafik Dasar yang sedang digunakan.{}Silahkan update Set Grafik Dasar -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Set grafis dasar kekurangan beberapa sprite.{}Tolong perbarui set grafis dasar.{}Karena anda memainkan {YELLOW}snapshot pengembangan OpenTTD{WHITE}, anda mungkin memerlukan{YELLOW}snapshot pengembangan set grafis dasar{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Sumber GRF yang diminta tidak tersedia (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} dinonaktifkan oleh {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format sprite salah/tidak diketahui (sprite {3:NUM}) diff --git a/src/lang/irish.txt b/src/lang/irish.txt index a64a876d54..026d6dac9a 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Iarracht ID nea STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}Tá sprite truaillithe in {STRING}. Taispeánfar gach sprite truaillithe mar chomhartha ceiste (?) dearg. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Tá iontrálacha iolraccha Ghníomhaíocht 8 ann (sprid {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Léadh tar éis deireadh an pseudo-sprid (sprid {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Tá roinnt sprite in easnamh sa tsraith bhunúsach grafaicí atá in úsáid faoi láthair.{}Déan úasghrádú ar an tsraith bhunúsach grafaicí le do thoil -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Tá roinnt sprideanna in easnamh sa tacar bunghraificí atá in úsáid faoi láthair.{}Nuashonraigh an tacar bunghraificí.{}Toisc go bhfuil tú ag imirt ar {YELLOW}roghbhlúire forbróirí (development snapshot) OpenTTD{WHITE}, seans go mbeidh {YELLOW}roghbhlúire forbróirí de na bunghraificí{WHITE} ag teastáil uait STR_NEWGRF_ERROR_GRM_FAILED :Níl na hacmhainní GRF a iarradh ar fáil (sprid {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :Bhí {1:STRING} díchumasaithe ag {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formáid neamhbhailí/anaithnid do leagan amach na spride (sprid {3:NUM}) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 9e7e3695e4..903f3738fd 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -2937,8 +2937,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Tentativo di ut STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contiene degli sprite corrotti. Tutti gli sprite corrotti saranno mostrati come punti interrogativi (?) rossi STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contiene occorrenze multiple dell'azione 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lettura oltre la fine dello pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Nel pacchetto grafico di base attualmente in uso mancano alcuni sprite.{}È consigliabile aggiornare il pacchetto grafico di base -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Nel pacchetto grafico di base attualmente in uso mancano alcuni sprite.{}È consigliabile aggiornare il pacchetto grafico di base.{}Poiché si sta giocando con uno {YELLOW}snapshot di sviluppo di OpenTTD{WHITE}, potrebbe essere necessario uno {YELLOW}snapshot di sviluppo del pacchetto grafico di base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Risorsa GRF richiesta non disponibile (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} è stato disabilitato da {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato di layout dello sprite sconosciuto o non valido (sprite {3:NUM}) diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index d4e2beedfc..7655620ff6 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :不正なIDが STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING}には破損スプライトがあります。破損スプライトは赤疑問符({RED}?{YELLOW})として表示されます STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :アクション8のエントリが複数含まれています (スプライト {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :疑似スプライトのデータが十分にありません (スプライト {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}使用中の基本グラフィックセットから複数のスプライトが欠落しています。{}セットを更新して下さいますよう、お願いします -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}使用中の基本グラフィックセットから複数のスプライトが欠落しています。{}セットを更新して下さいますよう、お願いします{}{YELLOW}OpenTTDの速報開発版{WHITE}をお使いの際は、{YELLOW}速報開発版に即したグラフィックセット{WHITE}が必要となる場合があります STR_NEWGRF_ERROR_GRM_FAILED :要求されたGRFのリソースは使用できません (スプライト {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}は{STRING}により無効にされました STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :不正なレイアウト書式です (スプライト {3:NUM}) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index a86ae6d541..e9834a27ae 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :유효하지 STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 에 손상된 객체가 있습니다. 모든 손상된 객체는 붉은 물음표로 보일 것입니다. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :여러 개의 액션 8 엔트리 포함 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :모조-스프라이트의 지나간 끝을 읽음 (스프라이트 {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}최근에 이용한 기본 그래픽 세트에 객체가 많이 손실되었습니다.{}기본 그래픽 세트를 업데이트 하십시오. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}현재 사용중인 기본 그래픽에 그래픽이 다수 존재하지 않습니다.{}기본 그래픽 세트를 업데이트해 주십시오.{}현재 당신이 {YELLOW}OpenTTD의 개발 버전{WHITE}을 사용하고 있기 때문에, {YELLOW}기본 그래픽의 개발 버전{WHITE}이 필요할 수 있습니다. STR_NEWGRF_ERROR_GRM_FAILED :요청한 GRF 자원을 사용할 수 없음 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}(은)는 {STRING} 때문에 사용할 수 없습니다 STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :유효하지 않은/알 수 없는 스프라이트 구조 유형 (스프라이트 {3:NUM}) diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 36df900c60..a143ab02ee 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3109,8 +3109,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Conatus agnosca STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} spiritum corruptum habet. Omnes spiritus corrupti monstrabuntur forma rubro puncto interrogativo - ? STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Continet plures Actiones 8 (spiritus {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lectio post terminum pseudospiritus (spiritus {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Fundamento graphico adhibito deest nonulli spiritus.{}Utinam arcessas novam editionem -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Fundamento graphico adhibito deest nonulli spiritus.{}Utinam arcessas novam editionem.{}Quoniam ludis {YELLOW}editionem OpenTTD adhuc in explicando{WHITE}, fortasse etiam tibi necesse est {YELLOW}editio fundamenti graphici OpenTTD in explicando{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Opes GRF desideratae non parabiles (spiritus {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} neglectus est a {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Irrita/ignota dispositio spiritus (spiritus {3:NUM}) diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 5b89a0091f..9abe75c426 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -2840,8 +2840,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Mēģinājums i STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} satur bojātu gariņu. Visi bojātie gariņi tiks parādīti ar sarkanu jautājuma zīmi (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Satur vairākus Action 8 ierakstus (gariņš {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lasīt aiz pseidogariņa beigām (gariņš {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Pašlaik lietotajai pamata grafikas kopai trūkst daļa gariņu.{}Lūdzu atjauniniet pamata grafikas kopu -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Pašlaik lietotajai pamata grafikas kopai trūkst daļa gariņu.{}Lūdzu atjauniniet pamata grafikas kopu.{}Tā kā jūs spēlējat {YELLOW}OpenTTD izstrādes momentuzņēmumu{WHITE}, jums varētu būt nepieciešams arī {YELLOW}pamata grafikas izstrādes momentuzņēmums{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Pieprasītie GRF resursi nav pieejami (gariņš {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ar {2:STRING} tika atspējots STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Nederīgs/nezināms gariņa izkārtojuma formāts (gariņš {3:NUM}) diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 8017930187..a62f42e6df 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3125,8 +3125,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Bandymas panaud STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} turi sugadintą spruklį. Visi sugadinti sprukliai bus rodomi kaip raudoni klaustukai (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Susideda iš keleto veiksmo 8 įrašų (spruklys {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Skaitymas už pseudospruklio pabaigos (spruklys {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Šiuo metu naudojamam grafikos rinkiniui trūksta keleto spruklių.{}Atnaujinkite pagrindinį grafikos rinkinį -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Šiuo metu naudojamam pagrindinės grafikos rinkiniui trūsta keleto spruklių.{}Atnaujinkite pagrindinės grafikos rinkinį.{} Kadangi žaidžiate {YELLOW} negalutinę, vis dar kuriamą OpenTTD versiją, {WHITE}, jums, ko gero, reikėtų įdiegti atitinkamą{YELLOW}naujausią, negalutinį pagrindinės grafikos rinkinį.{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Pageidautas GRF resursas yra neprieinamas (spruklys {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} buvo išjungtas {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neteisingas/nežinomas spruklio išdėstymo formatas (spruklys {3:NUM}) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 9e06375981..ba13c3a02e 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Versicht invali STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} huet eng korrupt Sprite. All korrupt Sprites ginn als Fragezeichen (?) duergestallt STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Huet eng Rei Action 8 Einträg (Sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lanscht d'Enn vum Pseudo-Sprite gelies (Sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}D'momentan benotzten Grafikset huet e puer Sprites ze mann.{}W.e.g d'Basisgrafikset updaten -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Am grad benotzten Basis-Grafikset fehlen e puer Sprites.{}W.e.g Basis-Grafikset updaten.{}Wellsde en {YELLOW}Development Snapshot vun OpenTTD spills{WHITE}, brauchsde och en {YELLOW}Development Snapshot vum Basis-Grafikset{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Ugefroten GRF Ressource net verfügbar (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} gouf ausgeschalt vun {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/onbekannten Sprite Layout Format (Sprite {3:NUM}) diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 7e0740b5da..afc99c19b0 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2602,7 +2602,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Cubaan untuk me STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} mengandungi peperi yang rosak. Semua peperi yang rosak akan ditunjukkan menggunakan tanda soal (?) merah. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Mengandungi pelbagai Tindakan 8 kemasukan (peperi {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Bacaan melepasi penghujung peperi-pseudo (peperi {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Set asas grafik yang sedang digunakan, hilang sebilangan sprites.{}Sila mengemaskini set asas grafik STR_NEWGRF_ERROR_GRM_FAILED :Sumber GRF yang diminta tidak diperolehi (peperi {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} telah dinyahaktifkan oleh {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Tidak sah/diketahui format susun atur (peperi {3:NUM}) diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 210b7e9e36..8125c58a90 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -2910,8 +2910,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Forsøk på å STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} inneholder en ødelagt sprite. Alle ødelagte spriter blir vist som røde spørsmålstegn (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Inneholder flere Handling 8-oppføringer (figur {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Leste forbi slutten av pseudo-sprite (figur {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Det benyttede grafikksettet mangler en del spriter.{}Du må oppdatere grafikksettet. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Den benyttede grafikkpakken mangler en mengde bildeelementer.{}Du må oppdatere grafikkpakken.{}Siden du spiller en {YELLOW}utviklingsversjon av OpenTTD{WHITE}, kan det være at du også trenger en {YELLOW}utviklingsversjon av grafikkpakken{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Etterspurte GRF-ressurser ikke tilgjengelig (figur {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ble deaktivert av {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldig/ukjent sprite layout-format (figur {3:NUM}) diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index b018790894..a30f8e028e 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -2823,8 +2823,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Forsøk på å STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} inneheld øydelagd grafikk. All øydelagd grafikk vil bli vist som raude spørsmålsteikn (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Inneheld fleire tilfelle av handling 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lest forbi slutten av pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Det nåværande grafikksettet manglar ein del bilete.{}Vennligst oppdater grafikksettet. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Det valde grafikksettet manglar nokre bilete.{}Vær venleg og forny grafikksettet.{}I og med at du spelar eit {YELLOW}utviklingsutkast av OpenTTD{WHITE} treng du òg eit {YELLOW}utviklingsutkast av grafikksettet{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Etterspurde GRF-ressursar ikkje tilgjengeleg (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} vart deaktivert av {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldig/ukjend sprite layout-format (sprite {3:NUM}) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index fbf9dce13c..5f93b98652 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3287,8 +3287,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Próba użycia STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} zawiera uszkodzoną teksturę. Wszystkie uszkodzone tekstury będą pokazane jako czerwony znak zapytania (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Zawiera wiele wpisów Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Odczyt poza obszar pseudo-sprite'u (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Aktualnie używany zestaw grafik jest niekompletny.{}Proszę zaktualizować podstawowy zestaw grafik -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}W aktualnie używanym podstawowym zestawie graficznym brakuje pewnej ilości sprite'ów.{}Proszę zaktualizowaćswój zestaw graficzny.{}Z powodu tego, że używasz {YELLOW}rozwojowej wersji OpenTTD{WHITE}, możesz potrzebować również {YELLOW}rozwojowej wersji podstawowego zestawu graficznego{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Potrzebne źródło GRF nie jest dostępne (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} został wyłączony przez {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Niepoprawny/nieznany format układu sprite'u (sprite {3:NUM}) diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 1b515c4e66..dbe540afca 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Tentativa de us STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contém um objecto gráfico corrompido. Todos os objectos gráficos corrompidos serão apresentados como um ponto de interrogação (?) vermelho. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contém múltiplas entradas Action 8 - (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Leitura além dos limites do pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}O conjunto de gráficos base actual tem objectos gráficos em falta.{}Por favor faça a sua actualização. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}O conjunto de gráficos base actualmente em uso tem um conjunto de gráficos em falta.{}Por favor actualize o conjunto de gráficos base.{}Visto que está a usar uma {YELLOW}imagem de desenvolvimento do OpenTTD{WHITE}, poderá também precisar de {YELLOW}uma imagem dos gráficos base de desenvolvimento{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF pedidos não disponíveis (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desactivado por {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de Gráfico Inválido ou desconhecido (sprite {3:NUM}) diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 9da29ce106..885c5ddf79 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -2866,8 +2866,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Încercare de a STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} conţine o imagine coruptă. Toate imaginile corupte vor fi afişate ca semne de întrebare (?) roşii STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Conține mai multe intrări pentru Acțiunea 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Citire după sfârşitul preudo-elementului grafic (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Unele imagini lipsesc din setul grafic de bază.{}Vă rugăm actualizaţi setul grafic de bază -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE} Pachetul grafic de bază folosit în acest moment este incomplet, un număr de sprite-uri lipsesc ..{}Trebuie să actualizezi acest pachet grafic de bază.{}Deoarece te joci o {YELLOW}versiune de dezvoltare a OpenTTD{WHITE}, este posibil să ai nevoie de o {YELLOW}versiune de dezvoltare a pachetului grafic de bază{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Resursele GRF solicitate nu sunt disponibile (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} a fost dezactivat de {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Structură necunoscută/invalidă pentru elementul grafic (sprite {3:NUM}) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index fa46ef8e8d..4aabacaa20 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3087,8 +3087,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Попытка STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} содержит повреждённый спрайт. Все повреждённые спрайты будут показаны красным знаком вопроса (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Содержит несколько блоков «Action 8» (спрайт {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Чтение за концом псевдо-спрайта (спрайт {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}В текущем наборе базовой графики отсутствуют изображения некоторых объектов.{}Пожалуйста, обновите модуль базовой графики. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}В используемом наборе базовой графики отсутствуют некоторые изображения.{}Пожалуйста, обновите набор изображений.{}Так как у вас {YELLOW}тестовая версия OpenTTD{WHITE}, вам может понадобиться {YELLOW}тестовая версия графического набора{WHITE}. STR_NEWGRF_ERROR_GRM_FAILED :Запрошенные ресурсы GRF недоступны (спрайт {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} был отключён из-за {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Недопустимый/неизвестный формат расположения спрайтов (спрайт {3:NUM}) diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index d4c253e00d..318caa8fd3 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3101,8 +3101,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Pokušaj koriš STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sadrži neispravan sprajt. Svi neispravni sprajtovi će biti prikazani kao crveni znakovi pitanja (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sadrži više Akcija 8 ulaza (sprajt {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Čitanje iza završetka pseudo-sprajta (sprajt {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Odabranom skupu osnovnih grafika nedostaje neki broj sprajtova.{}Molimo Vas da ga ažurirate -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Grafičkom setu koji je trenutno u upotrebi nedostaje određen broj sprajtova.{}Osvežite grafički set.{}S obzirom da igrate {YELLOW}razvojnu verziju OpenTTD-a{WHITE}, treba vam i {YELLOW}razvojna verzija grafičkog seta{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Traženi GRF resursi nisu dostupni (sprajt {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je isključen od strane {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neispravan/nepoznat format prikazivanja sprajta (sprajt {3:NUM}) diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 4e6f49d799..1dbfef8e2e 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :尝试使用非 STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 含有损坏的图形元素{}所有损坏的图形元素{}将显示为红色的问号(?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :具有多个Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :图像读取时发生越界错误 (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}当前基础图形组缺失部分图片。{}请升级图形组。 -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}当前使用的基础图形包参数有误。{}请更新基础图形包。{}如果你正在使用 {YELLOW}OPENTTD的开发测试版{WHITE},你需要 {YELLOW}相应配套的基础图形包。{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :GRF源文件不可访问 (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} 被 {STRING} 禁用 STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :错误/未知的sprite输出格式 (sprite {3:NUM}) diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 7245e0e5a8..63fdd2d317 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -2974,8 +2974,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Pokus o použit STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} obsahuje poškodený sprite. Všetky poškodené sprajty budú zobrazené ako červený otáznik (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Obsahuje viacnásobné záznamy Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Čítanie za koncom pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}V používanej základnej grafickej sade chýbajú niektoré grafické objekty.{}Aktualizujte prosím základnú grafickú sadu. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Aktuálne používanej základnej sade grafiky chýba niekoľko spritov.{}Prosím zaktualizujte základnú sadu grafiky.{}Keďže hráte {YELLOW}vývojovú verziu OpenTTD{WHITE}, môžete tiež potrebovať{YELLOW}vývojovú verziu základnej sady grafiky{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Požadované GRF prostriedky nie sú dosupné (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} bol vypnutý {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Nesprávny/neznámy formát rozloženia sprite(ov) (sprite {3:NUM}) diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 6fac63eb35..079d4661d6 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3059,8 +3059,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Poskus uporabe STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} vsebuje eno poškodovano sličico. Vse poškodovane sličice se bodo prikazale kot rdeči vprašaji (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Vsebuje več Ukaz 8 vnosov (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Prebrana datoteka preko meje za sličice (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}V uporabljenem osnovnem setu grafik manjkajo sličice.{}Prosim, posodobi osnovni set grafik -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Trenutni set osnovnih grafik ne vsebuje določenih sličic. Posodobi osnovni set.{}Odkar igraš {YELLOW} razvojni pogled OpenTTD{WHITE}, nogoče potrebuješ tudi {YELLOW}razvojni pogled osnovnih grafik{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Zahtevani viri GRF niso na voljo (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je bil izklopljen zaradi {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neveljaven/neznan format zapisa sličic (sprite {3:NUM}) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 8b5f8988cc..3d963eadc6 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Intento de usar STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contiene un sprite corrupto. Todos los sprites corruptos serán mostrados como un interrogante rojo (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contiene múltiples entradas de Acción 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lectura más allá del fin de un pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Al conjunto de gráficos base actualmente en uso le faltan algunos sprites.{}El conjunto de gráficos base debe ser actualizado -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Al conjunto de gráficos base actualmente en uso le faltan algunos sprites.{}El conjunto de gráficos base debe ser actualizado.{}Dado que estás jugando una {YELLOW}versión de desarrollo de OpenTTD{WHITE}, es posible que también necesites una {YELLOW}versión de desarrollo del conjunto de gráficos base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF solicitados no disponibles (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} fue desactivado por {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de colocación de sprites inválido o desconocido (sprite {3:NUM}) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index d7f635d93a..bd90ed8f63 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Intento de usar STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contiene un sprite con errores. Todos los sprites con errores se muestran como un símbolo de interrogación rojo (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contiene múltiples entradas de Acción 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :La lectura excedió el límite de pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}A los gráficos base actualmente en uso les faltan algunos sprites.{}Los gráficos base deben ser actualizados -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}A los gráficos base actualmente en uso les faltan algunos sprites.{}Los gráficos base deben ser actualizados.{}Dado que esta es una {YELLOW}versión de desarrollo de OpenTTD{WHITE}, es posible que también se requiera una {YELLOW}versión de desarrollo de los gráficos base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF solicitados no disponibles (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} fue desactivado por {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de colocación de sprites no válido o desconocido (sprite {3:NUM}) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index ba10283262..4ff38b2067 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Försökt att a STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} innehåller en skadad bild. Alla korrupta bilder kommer att visas som ett rött frågetecken (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Innehåller flera Action 8 (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Läste förbi slutet av pseudo-spriteobjekt (spriteobjekt {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Det aktiva grafikpaketet saknar ett antal bilder.{}Var vänlig och uppdatera grafikpaketet -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Det aktiva grafikpaketet saknar ett antal bilder.{}Var vänlig och uppdatera grafikpaketet.{}Eftersom du spelar en {YELLOW}utvecklings-version av OpenTTD{WHITE}, så kan du även behöva en {YELLOW}utvecklings-version av basgrafikpaketet{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Efterfrågade GRF-resurser är inte tillgängliga (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} har inaktiverats av {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Felaktig/okänd layout-format av spriteobjekt (spriteobjekt {3:NUM}) diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 5de52200b7..f3ef3c1e7c 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -2839,8 +2839,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Attempt to use STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} บรรจุ sprites ที่สูญหาย. สิ่งที่สูญหายจะแสดงเป็นเครื่องหมายตกใจสีแดง (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contains multiple Action 8 entries (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}กราฟิกพื้นฐานที่ใช้อยู่มี Sprite ไม่สมบูรณ์{}กรุณาปรับรุ่นของ Base Graphic -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}ไฟล์ในกราฟฟิคพื้นฐานหายไปบางส่วน{}กรุณาอัพเดตกราฟฟิคพื้นฐาน.{}ตั้งแต่คุณเริ่มเล่น {YELLOW}ภาพของ OpenTTD{WHITE},คุณอาจต้องการ {YELLOW}ภาพของกราฟฟิคพื้นฐาน{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :ต้นแบบ GRF ที่ต้องการสามารถใช้การได้(sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ถูกยกเลิกโดย {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :ไม่ถูกต้อง/ไม่ทราบ รูปแบบ sprite (sprite {3:NUM}) diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 3985ee3206..471c491bb3 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :子畫面企圖 STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 包含了毀損的 sprite。所有毀損的 sprite 會以紅色問號 (?) 顯示。 STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :過多的 Action 8 資料 (發生於第 {3:NUM} 個子畫面) STR_NEWGRF_ERROR_READ_BOUNDS :子畫面資料不足 (發生於第 {3:NUM} 個子畫面) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}目前使用的基本圖形集少了某些 sprite。{}請更新基本圖形集。 -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}你正在使用的圖形集缺少了一些圖形.{}請更新圖形集.{}因為你正在使用一個{YELLOW}開發中的OpenTTD{WHITE},你可能需要一個{YELLOW}開發中的圖形集{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :要求的 GRF 資料不存在或無法讀取 (發生於第 {3:NUM} 個子畫面) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} 使 {1:STRING} 被停用 STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :無效或無法識別的子畫面配置格式 (發生於第 {3:NUM} 個子畫面) diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index e9993fb3da..b69a01822e 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Geçersiz ID ku STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bozuk bir nesne içeriyor. Tüm bozuk nesneler kırmızı bir soru işareti (?) olarak görünecektir STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Birden çok Action 8 girişi içeriyor (nesne {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Pseudo-nesne bitiminden sonrasını okudu (nesne {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Kullanımda olan temel grafik kümesi bazı nesneleri içermiyor.{}Lütfen temel grafik kümesini güncelleyin -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Kullanımdaki temel grafik kümesi bazı nesneleri içermiyor.{}Lütfen temel grafik setinizi güncelleyin .{}{YELLOW}OpenTTD'nin geliştirme kopyasını {WHITE}kullandığınız için, {YELLOW}temel grafiklerin de{WHITE} geliştirme kopyasını kullanmalısınız. STR_NEWGRF_ERROR_GRM_FAILED :İstenen GRF kaynakları mevcut değil (nesne {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} {STRING} tarafından deaktive edildi STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Geçersiz/bilinmeyen nesne yerleşim biçimi (nesne {3:NUM}) diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 5a49f84566..b49a7f7faa 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3037,8 +3037,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Спроба в STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} містить зіпсований спрайт. Усі зіпсовані спрайти будуть показані як червоний знак питання (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Містить декілька записів Action 8 (спрайт {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Вихід за границю псевдо-спрайта при читанні (спрайт {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}У базовому наборі графіки, що зараз використовується не вистачає спрайтів.{}Будь-ласка оновіть базовий набір графіки -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}В наборі графіки, який використовується на даний момент відсутній ряд спрайтів.{}Будь ласка, поновіть базовий набір графіки.{}Оскільки ви граєте у {YELLOW} тестову версію OpenTTD{WHITE}, вам також може знадобитися {YELLOW}тестовий набір базової графіки{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Недоступні необхідні ресурси GRF (спрайт {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} був вимкнений {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Некоректний або невідомий формат розміщення спрайтів (спрайт {3:NUM}) diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index cd9e18ad37..6fddf2f8ab 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2689,7 +2689,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Hat besocht in STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} befettet in korrupte ôfbylding. Alle korrupte ôfbyldings sille mei in read fraachteken markearre wurde (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Befet meardere Aksje-8 fermeldings (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Ein fan pseudo-ôfbylding lêze (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}It hjoeddeiske basisôfbyldingspakket misset in oantal ôfbylding.{}Besykje dit ôfbyldingspakket te fernijen STR_NEWGRF_ERROR_GRM_FAILED :Oanfrege GRF-bron is net beskikber (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} wie útskeakele troch {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Unjildich/ûnbekind ôfbyldingsútlisformaat (sprite {3:NUM}) diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index fc40f3f32d..0e72f4f339 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1270,7 +1270,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT :Објекто # NewGRF (self) generated warnings/errors STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING} -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Во моментов се користат база графики поставени недостасува голем број на sprites.{}Надградете ја основата графика во собата. # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Внимание! diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index f70fdc53ce..df2824e434 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2593,7 +2593,6 @@ STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :فایل GRF ب STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :تعداد NewGRF بیشتر از حد می باشد STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :در حال بارگزاری {1:STRING} به عنوان NewGRF ایستا با {STRING} مشکل همخوانی دارد STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} دارای یک تصویر خراب می باشد. تصویرهای خراب با علامت سوال قرمز (؟) نشان داده شدند. -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}بسته گرافیک استفاده شده تعدادی از تصاوبر را ندارد.{}لطفا بسته گرافیکی را به روز کنید STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} غیر فعال گردیده توسط {STRING} # NewGRF related 'general' warnings diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index ecd554c42c..65167b54a9 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Sử dụng IT STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bị hỏng sprite. Tất cả các sprite sẽ hiện thị với dấu hỏi (?) màu đỏ. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Có nhiều mục thực thi 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Đọc quá giới hạn của sprite giả (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Gói đồ họa bạn đang dùng thiếu một số mẫu đồ họa.{}Hãy cập nhật gói đồ họa lên phiên bản mới. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Bộ file đồ họa hiện tại thiết một số sprites.{}Hãy cập nhật phiên bản mới.{}Bởi vì bạn chơi {YELLOW}một phiên bản thử nghiệm đang phát triển OpenTTD{WHITE}, bạn cần phải có cả {YELLOW}bộ file đồ họa đang được phát triển nữa{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Dữ liệu GRF theo yêu cầu không hợp lệ (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} bị tắt bởi {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Định dạng Sprite không hợp lệ hoặc chưa định nghĩa (sprite {3:NUM}) diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 9fb7aca766..50d9297ee0 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Ceisio defnyddi STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}Mae'r {STRING} yn cynnwys corlun llygredig. Bydd corluniau llygredig yn cael eu dynodi gan farc cwestiwn coch (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Yn cynnwys sawl cofnod Gweithred 8 (corlun {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Darllen heibio i ddiwedd llid-gorlun (corlun {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Mae'r set raffeg sylfaenol a ddefnyddir ar hyn o bryd yn brin o sawl corlun{}Diweddarwch y set raffeg sylfaenol i ddatrys hyn -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Mae nifer o gorluniau ar goll o'r set graffeg sylfaenol mewn defnydd.{}Diweddarwch y set graffeg sylfaenol.{}Gane eich bod yn chwarae {YELLOW}ciplun datblygiadol o OpenTTD{WHITE}, efallai y byddwch angen {YELLOW}ciplun ddatblygiadol o'r grafffeg sylfaenol{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Nid yw'r adnoddau GRF a geisiwyd ar gael (corlun {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :Fe analluogwyd {1:STRING} gan {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Fformat cynllun corlun annilys/anhysbys (corlun {3:NUM}) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index e0246bdf67..14593b7e30 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5693,35 +5693,6 @@ static void SkipAct5(ByteReader *buf) grfmsg(3, "SkipAct5: Skipping %d sprites", _cur.skip_sprites); } -/** - * Check whether we are (obviously) missing some of the extra - * (Action 0x05) sprites that we like to use. - * When missing sprites are found a warning will be shown. - */ -void CheckForMissingSprites() -{ - /* Don't break out quickly, but allow to check the other - * sprites as well, so we can give the best information. */ - bool missing = false; - for (uint8 i = 0; i < lengthof(_action5_types); i++) { - const Action5Type *type = &_action5_types[i]; - if (type->block_type == A5BLOCK_INVALID) continue; - - for (uint j = 0; j < type->max_sprites; j++) { - if (!SpriteExists(type->sprite_base + j)) { - DEBUG(grf, 0, "%s sprites are missing", type->name); - missing = true; - /* No need to log more of the same. */ - break; - } - } - } - - if (missing) { - ShowErrorMessage(IsReleasedVersion() ? STR_NEWGRF_ERROR_MISSING_SPRITES : STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE, INVALID_STRING_ID, WL_CRITICAL); - } -} - /** * Reads a variable common to VarAction2 and Action7/9/D. * diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index b970e0a80b..593851e288 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -192,6 +192,7 @@ GRFConfig *_all_grfs; GRFConfig *_grfconfig; GRFConfig *_grfconfig_newgame; GRFConfig *_grfconfig_static; +uint _missing_extra_graphics = 0; /** * Construct a new GRFError. diff --git a/src/newgrf_config.h b/src/newgrf_config.h index 73ab243cf0..dc3b884dd3 100644 --- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -202,6 +202,7 @@ extern GRFConfig *_all_grfs; ///< First item in list of all scanned New extern GRFConfig *_grfconfig; ///< First item in list of current GRF set up extern GRFConfig *_grfconfig_newgame; ///< First item in list of default GRF set up extern GRFConfig *_grfconfig_static; ///< First item in list of static GRF set up +extern uint _missing_extra_graphics; ///< Number of sprites provided by the fallback extra GRF, i.e. missing in the baseset. /** Callback for NewGRF scanning. */ struct NewGRFScanCallback { @@ -214,7 +215,6 @@ struct NewGRFScanCallback { size_t GRFGetSizeOfDataSection(FILE *f); void ScanNewGRFFiles(NewGRFScanCallback *callback); -void CheckForMissingSprites(); const GRFConfig *FindGRFConfig(uint32 grfid, FindGRFConfigMode mode, const uint8 *md5sum = NULL, uint32 desired_version = 0); GRFConfig *GetGRFConfig(uint32 grfid, uint32 mask = 0xFFFFFFFF); GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src, bool init_only); diff --git a/src/openttd.cpp b/src/openttd.cpp index 58f011b082..10c31e904e 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -339,7 +339,6 @@ static void LoadIntroGame(bool load_newgrfs = true) _pause_mode = PM_UNPAUSED; _cursor.fix_at = false; - if (load_newgrfs) CheckForMissingSprites(); CheckForMissingGlyphs(); /* Play main theme */ diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq index 533ba912b8..f52de827d9 100644 --- a/src/script/api/game/game_window.hpp.sq +++ b/src/script/api/game/game_window.hpp.sq @@ -582,6 +582,8 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_ARCTIC_LANDSCAPE, "WID_SGI_ARCTIC_LANDSCAPE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TROPIC_LANDSCAPE, "WID_SGI_TROPIC_LANDSCAPE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TOYLAND_LANDSCAPE, "WID_SGI_TOYLAND_LANDSCAPE"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_BASESET_SELECTION, "WID_SGI_BASESET_SELECTION"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_BASESET, "WID_SGI_BASESET"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TRANSLATION_SELECTION, "WID_SGI_TRANSLATION_SELECTION"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TRANSLATION, "WID_SGI_TRANSLATION"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_OPTIONS, "WID_SGI_OPTIONS"); diff --git a/src/script/api/script_window.hpp b/src/script/api/script_window.hpp index b07221943c..fbdffb54b7 100644 --- a/src/script/api/script_window.hpp +++ b/src/script/api/script_window.hpp @@ -1497,8 +1497,10 @@ public: WID_SGI_ARCTIC_LANDSCAPE = ::WID_SGI_ARCTIC_LANDSCAPE, ///< Select arctic landscape button. WID_SGI_TROPIC_LANDSCAPE = ::WID_SGI_TROPIC_LANDSCAPE, ///< Select tropic landscape button. WID_SGI_TOYLAND_LANDSCAPE = ::WID_SGI_TOYLAND_LANDSCAPE, ///< Select toyland landscape button. + WID_SGI_BASESET_SELECTION = ::WID_SGI_BASESET_SELECTION, ///< Baseset selection. + WID_SGI_BASESET = ::WID_SGI_BASESET, ///< Baseset errors. WID_SGI_TRANSLATION_SELECTION = ::WID_SGI_TRANSLATION_SELECTION, ///< Translation selection. - WID_SGI_TRANSLATION = ::WID_SGI_TRANSLATION, ///< Translation. + WID_SGI_TRANSLATION = ::WID_SGI_TRANSLATION, ///< Translation errors. WID_SGI_OPTIONS = ::WID_SGI_OPTIONS, ///< Options button. WID_SGI_HIGHSCORE = ::WID_SGI_HIGHSCORE, ///< Highscore button. WID_SGI_SETTINGS_OPTIONS = ::WID_SGI_SETTINGS_OPTIONS, ///< Settings button. diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 908e7599ab..70a8834a91 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -149,6 +149,25 @@ uint GetOriginFileSlot(SpriteID sprite) return GetSpriteCache(sprite)->file_slot; } +/** + * Count the sprites which originate from a specific file slot in a range of SpriteIDs. + * @param file_slot FIOS file slot. + * @param begin First sprite in range. + * @param end First sprite not in range. + * @return Number of sprites. + */ +uint GetSpriteCountForSlot(uint file_slot, SpriteID begin, SpriteID end) +{ + uint count = 0; + for (SpriteID i = begin; i != end; i++) { + if (SpriteExists(i)) { + SpriteCache *sc = GetSpriteCache(i); + if (sc->file_slot == file_slot) count++; + } + } + return count; +} + /** * Get a reasonable (upper bound) estimate of the maximum * SpriteID used in OpenTTD; there will be no sprites with diff --git a/src/spritecache.h b/src/spritecache.h index 803bdb32c2..8013105183 100644 --- a/src/spritecache.h +++ b/src/spritecache.h @@ -32,6 +32,7 @@ bool SpriteExists(SpriteID sprite); SpriteType GetSpriteType(SpriteID sprite); uint GetOriginFileSlot(SpriteID sprite); +uint GetSpriteCountForSlot(uint file_slot, SpriteID begin, SpriteID end); uint GetMaxSpriteID(); diff --git a/src/widgets/intro_widget.h b/src/widgets/intro_widget.h index 6a67fe64ca..ae48827ed1 100644 --- a/src/widgets/intro_widget.h +++ b/src/widgets/intro_widget.h @@ -24,8 +24,10 @@ enum SelectGameIntroWidgets { WID_SGI_ARCTIC_LANDSCAPE, ///< Select arctic landscape button. WID_SGI_TROPIC_LANDSCAPE, ///< Select tropic landscape button. WID_SGI_TOYLAND_LANDSCAPE, ///< Select toyland landscape button. + WID_SGI_BASESET_SELECTION, ///< Baseset selection. + WID_SGI_BASESET, ///< Baseset errors. WID_SGI_TRANSLATION_SELECTION, ///< Translation selection. - WID_SGI_TRANSLATION, ///< Translation. + WID_SGI_TRANSLATION, ///< Translation errors. WID_SGI_OPTIONS, ///< Options button. WID_SGI_HIGHSCORE, ///< Highscore button. WID_SGI_SETTINGS_OPTIONS, ///< Settings button. From a2e53d5ab4c3dee1bb095928fd72ec2bdbee11ae Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 15 Jan 2017 13:59:46 +0000 Subject: [PATCH 227/417] (svn r27733) -Codechange: Pass NPF user data as void* instead of as array of integers. --- src/pathfinder/npf/aystar.h | 2 +- src/pathfinder/npf/npf.cpp | 88 ++++++++++++++++++++----------------- 2 files changed, 48 insertions(+), 42 deletions(-) diff --git a/src/pathfinder/npf/aystar.h b/src/pathfinder/npf/aystar.h index f9dd1a4ff1..eaa70bf915 100644 --- a/src/pathfinder/npf/aystar.h +++ b/src/pathfinder/npf/aystar.h @@ -133,7 +133,7 @@ struct AyStar { * everything */ void *user_path; void *user_target; - uint user_data[10]; + void *user_data; byte loops_per_tick; ///< How many loops are there called before Main() gives control back to the caller. 0 = until done. uint max_path_cost; ///< If the g-value goes over this number, it stops searching, 0 = infinite. diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index bb705e5f4a..ebaf2ac574 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -38,11 +38,11 @@ struct NPFFindStationOrTileData { }; /** Indices into AyStar.userdata[] */ -enum AyStarUserDataType { - NPF_TYPE = 0, ///< Contains a TransportTypes value - NPF_SUB_TYPE, ///< Contains the sub transport type - NPF_OWNER, ///< Contains an Owner value - NPF_RAILTYPES, ///< Contains a bitmask the compatible RailTypes of the engine when NPF_TYPE == TRANSPORT_RAIL. Unused otherwise. +struct AyStarUserData { + Owner owner; + TransportType type; + RailTypes railtypes; + RoadTypes roadtypes; }; /** Indices into AyStarNode.userdata[] */ @@ -157,13 +157,14 @@ static int32 NPFCalcStationOrTileHeuristic(AyStar *as, AyStarNode *current, Open TileIndex from = current->tile; TileIndex to = fstd->dest_coords; uint dist; + AyStarUserData *user = (AyStarUserData *)as->user_data; /* for train-stations, we are going to aim for the closest station tile */ - if (as->user_data[NPF_TYPE] != TRANSPORT_WATER && fstd->station_index != INVALID_STATION) { + if (user->type != TRANSPORT_WATER && fstd->station_index != INVALID_STATION) { to = CalcClosestStationTile(fstd->station_index, from, fstd->station_type); } - if (as->user_data[NPF_TYPE] == TRANSPORT_ROAD) { + if (user->type == TRANSPORT_ROAD) { /* Since roads only have diagonal pieces, we use manhattan distance here */ dist = DistanceManhattan(from, to) * NPF_TILE_LENGTH; } else { @@ -532,9 +533,10 @@ static int32 NPFRailPathCost(AyStar *as, AyStarNode *current, OpenListNode *pare /* Will find any depot */ static int32 NPFFindDepot(AyStar *as, OpenListNode *current) { + AyStarUserData *user = (AyStarUserData *)as->user_data; /* It's not worth caching the result with NPF_FLAG_IS_TARGET here as below, * since checking the cache not that much faster than the actual check */ - return IsDepotTypeTile(current->path.node.tile, (TransportType)as->user_data[NPF_TYPE]) ? + return IsDepotTypeTile(current->path.node.tile, user->type) ? AYSTAR_FOUND_END_NODE : AYSTAR_DONE; } @@ -612,6 +614,7 @@ static void ClearPathReservation(const PathNode *start, const PathNode *end) */ static void NPFSaveTargetData(AyStar *as, OpenListNode *current) { + AyStarUserData *user = (AyStarUserData *)as->user_data; NPFFoundTargetData *ftd = (NPFFoundTargetData*)as->user_path; ftd->best_trackdir = (Trackdir)current->path.node.user_data[NPF_TRACKDIR_CHOICE]; ftd->best_path_dist = current->g; @@ -619,7 +622,7 @@ static void NPFSaveTargetData(AyStar *as, OpenListNode *current) ftd->node = current->path.node; ftd->res_okay = false; - if (as->user_target != NULL && ((NPFFindStationOrTileData*)as->user_target)->reserve_path && as->user_data[NPF_TYPE] == TRANSPORT_RAIL) { + if (as->user_target != NULL && ((NPFFindStationOrTileData*)as->user_target)->reserve_path && user->type == TRANSPORT_RAIL) { /* Path reservation is requested. */ const Train *v = Train::From(((NPFFindStationOrTileData *)as->user_target)->v); @@ -767,28 +770,25 @@ static inline bool ForceReverse(TileIndex tile, DiagDirection dir, TransportType * * @param tile The tile of interest. * @param dir The direction in which the vehicle drives onto a tile. - * @param type The transporttype of the vehicle. - * @param subtype For TRANSPORT_ROAD the compatible RoadTypes of the vehicle. - * @param railtypes For TRANSPORT_RAIL the compatible RailTypes of the vehicle. - * @param owner The owner of the vehicle. + * @param user Vehicle information. * @return true iff the vehicle can enter the tile. */ -static bool CanEnterTile(TileIndex tile, DiagDirection dir, TransportType type, uint subtype, RailTypes railtypes, Owner owner) +static bool CanEnterTile(TileIndex tile, DiagDirection dir, AyStarUserData *user) { /* Check tunnel entries and bridge ramps */ if (IsTileType(tile, MP_TUNNELBRIDGE) && GetTunnelBridgeDirection(tile) != dir) return false; /* Test ownership */ - if (!CanEnterTileOwnerCheck(owner, tile, dir)) return false; + if (!CanEnterTileOwnerCheck(user->owner, tile, dir)) return false; /* check correct rail type (mono, maglev, etc) */ - if (type == TRANSPORT_RAIL) { + if (user->type == TRANSPORT_RAIL) { RailType rail_type = GetTileRailType(tile); - if (!HasBit(railtypes, rail_type)) return false; + if (!HasBit(user->railtypes, rail_type)) return false; } /* Depots, standard roadstops and single tram bits can only be entered from one direction */ - DiagDirection single_entry = GetTileSingleEntry(tile, type, subtype); + DiagDirection single_entry = GetTileSingleEntry(tile, user->type, user->roadtypes); if (single_entry != INVALID_DIAGDIR && single_entry != ReverseDiagDir(dir)) return false; return true; @@ -849,6 +849,7 @@ static TrackdirBits GetDriveableTrackdirBits(TileIndex dst_tile, Trackdir src_tr * copy AyStarNode.user_data[NPF_NODE_FLAGS] from the parent */ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) { + AyStarUserData *user = (AyStarUserData *)aystar->user_data; /* We leave src_tile on track src_trackdir in direction src_exitdir */ Trackdir src_trackdir = current->path.node.direction; TileIndex src_tile = current->path.node.tile; @@ -860,8 +861,8 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) bool ignore_src_tile = (current->path.parent == NULL && NPFGetFlag(¤t->path.node, NPF_FLAG_IGNORE_START_TILE)); /* Information about the vehicle: TransportType (road/rail/water) and SubType (compatible rail/road types) */ - TransportType type = (TransportType)aystar->user_data[NPF_TYPE]; - uint subtype = aystar->user_data[NPF_SUB_TYPE]; + TransportType type = user->type; + uint subtype = user->roadtypes; /* Initialize to 0, so we can jump out (return) somewhere an have no neighbours */ aystar->num_neighbours = 0; @@ -889,7 +890,7 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) /* We leave src_tile in src_exitdir and reach dst_tile */ dst_tile = AddTileIndexDiffCWrap(src_tile, TileIndexDiffCByDiagDir(src_exitdir)); - if (dst_tile != INVALID_TILE && !CanEnterTile(dst_tile, src_exitdir, type, subtype, (RailTypes)aystar->user_data[NPF_RAILTYPES], (Owner)aystar->user_data[NPF_OWNER])) dst_tile = INVALID_TILE; + if (dst_tile != INVALID_TILE && !CanEnterTile(dst_tile, src_exitdir, user)) dst_tile = INVALID_TILE; if (dst_tile == INVALID_TILE) { /* We cannot enter the next tile. Road vehicles can reverse, others reach dead end */ @@ -960,7 +961,7 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) * multiple targets that are spread around, we should perform a breadth first * search by specifiying CalcZero as our heuristic. */ -static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start_tile1, AyStarNode *start2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStar_EndNodeCheck target_proc, AyStar_CalculateH heuristic_proc, TransportType type, uint sub_type, Owner owner, RailTypes railtypes, uint reverse_penalty) +static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start_tile1, AyStarNode *start2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStar_EndNodeCheck target_proc, AyStar_CalculateH heuristic_proc, AyStarUserData *user, uint reverse_penalty) { int r; NPFFoundTargetData result; @@ -970,7 +971,7 @@ static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start _npf_aystar.EndNodeCheck = target_proc; _npf_aystar.FoundEndNode = NPFSaveTargetData; _npf_aystar.GetNeighbours = NPFFollowTrack; - switch (type) { + switch (user->type) { default: NOT_REACHED(); case TRANSPORT_RAIL: _npf_aystar.CalculateG = NPFRailPathCost; break; case TRANSPORT_ROAD: _npf_aystar.CalculateG = NPFRoadPathCost; break; @@ -1002,10 +1003,7 @@ static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start _npf_aystar.user_target = target; /* Initialize user_data */ - _npf_aystar.user_data[NPF_TYPE] = type; - _npf_aystar.user_data[NPF_SUB_TYPE] = sub_type; - _npf_aystar.user_data[NPF_OWNER] = owner; - _npf_aystar.user_data[NPF_RAILTYPES] = railtypes; + _npf_aystar.user_data = user; /* GO! */ r = _npf_aystar.Main(); @@ -1026,7 +1024,7 @@ static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start /* Will search as below, but with two start nodes, the second being the * reverse. Look at the NPF_FLAG_REVERSE flag in the result node to see which * direction was taken (NPFGetFlag(result.node, NPF_FLAG_REVERSE)) */ -static NPFFoundTargetData NPFRouteToStationOrTileTwoWay(TileIndex tile1, Trackdir trackdir1, bool ignore_start_tile1, TileIndex tile2, Trackdir trackdir2, bool ignore_start_tile2, NPFFindStationOrTileData *target, TransportType type, uint sub_type, Owner owner, RailTypes railtypes) +static NPFFoundTargetData NPFRouteToStationOrTileTwoWay(TileIndex tile1, Trackdir trackdir1, bool ignore_start_tile1, TileIndex tile2, Trackdir trackdir2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStarUserData *user) { AyStarNode start1; AyStarNode start2; @@ -1040,15 +1038,15 @@ static NPFFoundTargetData NPFRouteToStationOrTileTwoWay(TileIndex tile1, Trackdi start2.direction = trackdir2; start2.user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; - return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindStationOrTile, NPFCalcStationOrTileHeuristic, type, sub_type, owner, railtypes, 0); + return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindStationOrTile, NPFCalcStationOrTileHeuristic, user, 0); } /* Will search from the given tile and direction, for a route to the given * station for the given transport type. See the declaration of * NPFFoundTargetData above for the meaning of the result. */ -static NPFFoundTargetData NPFRouteToStationOrTile(TileIndex tile, Trackdir trackdir, bool ignore_start_tile, NPFFindStationOrTileData *target, TransportType type, uint sub_type, Owner owner, RailTypes railtypes) +static NPFFoundTargetData NPFRouteToStationOrTile(TileIndex tile, Trackdir trackdir, bool ignore_start_tile, NPFFindStationOrTileData *target, AyStarUserData *user) { - return NPFRouteToStationOrTileTwoWay(tile, trackdir, ignore_start_tile, INVALID_TILE, INVALID_TRACKDIR, false, target, type, sub_type, owner, railtypes); + return NPFRouteToStationOrTileTwoWay(tile, trackdir, ignore_start_tile, INVALID_TILE, INVALID_TRACKDIR, false, target, user); } /* Search using breadth first. Good for little track choice and inaccurate @@ -1058,7 +1056,7 @@ static NPFFoundTargetData NPFRouteToStationOrTile(TileIndex tile, Trackdir track * reverse_penalty applied (NPF_TILE_LENGTH is the equivalent of one full * tile). */ -static NPFFoundTargetData NPFRouteToDepotBreadthFirstTwoWay(TileIndex tile1, Trackdir trackdir1, bool ignore_start_tile1, TileIndex tile2, Trackdir trackdir2, bool ignore_start_tile2, NPFFindStationOrTileData *target, TransportType type, uint sub_type, Owner owner, RailTypes railtypes, uint reverse_penalty) +static NPFFoundTargetData NPFRouteToDepotBreadthFirstTwoWay(TileIndex tile1, Trackdir trackdir1, bool ignore_start_tile1, TileIndex tile2, Trackdir trackdir2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStarUserData *user, uint reverse_penalty) { AyStarNode start1; AyStarNode start2; @@ -1074,7 +1072,7 @@ static NPFFoundTargetData NPFRouteToDepotBreadthFirstTwoWay(TileIndex tile1, Tra /* perform a breadth first search. Target is NULL, * since we are just looking for any depot...*/ - return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindDepot, NPFCalcZero, type, sub_type, owner, railtypes, reverse_penalty); + return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindDepot, NPFCalcZero, user, reverse_penalty); } void InitializeNPF() @@ -1123,7 +1121,8 @@ FindDepotData NPFRoadVehicleFindNearestDepot(const RoadVehicle *v, int max_penal { Trackdir trackdir = v->GetVehicleTrackdir(); - NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, v->tile, ReverseTrackdir(trackdir), false, NULL, TRANSPORT_ROAD, v->compatible_roadtypes, v->owner, INVALID_RAILTYPES, 0); + AyStarUserData user = { v->owner, TRANSPORT_ROAD, INVALID_RAILTYPES, v->compatible_roadtypes }; + NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, v->tile, ReverseTrackdir(trackdir), false, NULL, &user, 0); if (ftd.best_bird_dist != 0) return FindDepotData(); @@ -1142,7 +1141,8 @@ Trackdir NPFRoadVehicleChooseTrack(const RoadVehicle *v, TileIndex tile, DiagDir NPFFillWithOrderData(&fstd, v); Trackdir trackdir = DiagDirToDiagTrackdir(enterdir); - NPFFoundTargetData ftd = NPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, true, &fstd, TRANSPORT_ROAD, v->compatible_roadtypes, v->owner, INVALID_RAILTYPES); + AyStarUserData user = { v->owner, TRANSPORT_ROAD, INVALID_RAILTYPES, v->compatible_roadtypes }; + NPFFoundTargetData ftd = NPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, true, &fstd, &user); if (ftd.best_trackdir == INVALID_TRACKDIR) { /* We are already at our target. Just do something * @todo: maybe display error? @@ -1169,7 +1169,8 @@ Track NPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, NPFFillWithOrderData(&fstd, v); - NPFFoundTargetData ftd = NPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, true, &fstd, TRANSPORT_WATER, 0, v->owner, INVALID_RAILTYPES); + AyStarUserData user = { v->owner, TRANSPORT_WATER, INVALID_RAILTYPES, ROADTYPES_NONE }; + NPFFoundTargetData ftd = NPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, true, &fstd, &user); /* If ftd.best_bird_dist is 0, we found our target and ftd.best_trackdir contains * the direction we need to take to get there, if ftd.best_bird_dist is not 0, @@ -1192,7 +1193,8 @@ bool NPFShipCheckReverse(const Ship *v) assert(trackdir != INVALID_TRACKDIR); assert(trackdir_rev != INVALID_TRACKDIR); - ftd = NPFRouteToStationOrTileTwoWay(v->tile, trackdir, false, v->tile, trackdir_rev, false, &fstd, TRANSPORT_WATER, 0, v->owner, INVALID_RAILTYPES); + AyStarUserData user = { v->owner, TRANSPORT_WATER, INVALID_RAILTYPES, ROADTYPES_NONE }; + ftd = NPFRouteToStationOrTileTwoWay(v->tile, trackdir, false, v->tile, trackdir_rev, false, &fstd, &user); /* If we didn't find anything, just keep on going straight ahead, otherwise take the reverse flag */ return ftd.best_bird_dist == 0 && NPFGetFlag(&ftd.node, NPF_FLAG_REVERSE); } @@ -1209,7 +1211,8 @@ FindDepotData NPFTrainFindNearestDepot(const Train *v, int max_penalty) fstd.reserve_path = false; assert(trackdir != INVALID_TRACKDIR); - NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, last->tile, trackdir_rev, false, &fstd, TRANSPORT_RAIL, 0, v->owner, v->compatible_railtypes, NPF_INFINITE_PENALTY); + AyStarUserData user = { v->owner, TRANSPORT_RAIL, v->compatible_railtypes, ROADTYPES_NONE }; + NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, last->tile, trackdir_rev, false, &fstd, &user, NPF_INFINITE_PENALTY); if (ftd.best_bird_dist != 0) return FindDepotData(); /* Found target */ @@ -1241,7 +1244,8 @@ bool NPFTrainFindNearestSafeTile(const Train *v, TileIndex tile, Trackdir trackd /* perform a breadth first search. Target is NULL, * since we are just looking for any safe tile...*/ - return NPFRouteInternal(&start1, true, NULL, false, &fstd, NPFFindSafeTile, NPFCalcZero, TRANSPORT_RAIL, 0, v->owner, railtypes, 0).res_okay; + AyStarUserData user = { v->owner, TRANSPORT_RAIL, railtypes, ROADTYPES_NONE }; + return NPFRouteInternal(&start1, true, NULL, false, &fstd, NPFFindSafeTile, NPFCalcZero, &user, 0).res_okay; } bool NPFTrainCheckReverse(const Train *v) @@ -1257,7 +1261,8 @@ bool NPFTrainCheckReverse(const Train *v) assert(trackdir != INVALID_TRACKDIR); assert(trackdir_rev != INVALID_TRACKDIR); - ftd = NPFRouteToStationOrTileTwoWay(v->tile, trackdir, false, last->tile, trackdir_rev, false, &fstd, TRANSPORT_RAIL, 0, v->owner, v->compatible_railtypes); + AyStarUserData user = { v->owner, TRANSPORT_RAIL, v->compatible_railtypes, ROADTYPES_NONE }; + ftd = NPFRouteToStationOrTileTwoWay(v->tile, trackdir, false, last->tile, trackdir_rev, false, &fstd, &user); /* If we didn't find anything, just keep on going straight ahead, otherwise take the reverse flag */ return ftd.best_bird_dist == 0 && NPFGetFlag(&ftd.node, NPF_FLAG_REVERSE); } @@ -1270,7 +1275,8 @@ Track NPFTrainChooseTrack(const Train *v, TileIndex tile, DiagDirection enterdir PBSTileInfo origin = FollowTrainReservation(v); assert(IsValidTrackdir(origin.trackdir)); - NPFFoundTargetData ftd = NPFRouteToStationOrTile(origin.tile, origin.trackdir, true, &fstd, TRANSPORT_RAIL, 0, v->owner, v->compatible_railtypes); + AyStarUserData user = { v->owner, TRANSPORT_RAIL, v->compatible_railtypes, ROADTYPES_NONE }; + NPFFoundTargetData ftd = NPFRouteToStationOrTile(origin.tile, origin.trackdir, true, &fstd, &user); if (target != NULL) { target->tile = ftd.node.tile; From 2f5cc263c70be18f6fc89780397592bf6d4c1141 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 15 Jan 2017 14:27:54 +0000 Subject: [PATCH 228/417] (svn r27734) -Change: Hide the drive-in stops from the tram station picker. --- src/road_gui.cpp | 68 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/src/road_gui.cpp b/src/road_gui.cpp index 62c76bf90a..801d334351 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -956,15 +956,11 @@ struct BuildRoadStationWindow : public PickerWindowBase { if (_cur_roadtype == ROADTYPE_TRAM && _road_station_picker_orientation < DIAGDIR_END) { _road_station_picker_orientation = DIAGDIR_END; } - this->SetWidgetsDisabledState(_cur_roadtype == ROADTYPE_TRAM, - WID_BROS_STATION_NE, - WID_BROS_STATION_SE, - WID_BROS_STATION_SW, - WID_BROS_STATION_NW, - WIDGET_LIST_END); this->GetWidget(WID_BROS_CAPTION)->widget_data = _road_type_infos[_cur_roadtype].picker_title[rs]; - for (uint i = WID_BROS_STATION_NE; i < WID_BROS_LT_OFF; i++) this->GetWidget(i)->tool_tip = _road_type_infos[_cur_roadtype].picker_tooltip[rs]; + for (uint i = (_cur_roadtype == ROADTYPE_TRAM ? WID_BROS_STATION_X : WID_BROS_STATION_NE); i < WID_BROS_LT_OFF; i++) { + this->GetWidget(i)->tool_tip = _road_type_infos[_cur_roadtype].picker_tooltip[rs]; + } this->LowerWidget(_road_station_picker_orientation + WID_BROS_STATION_NE); this->LowerWidget(_settings_client.gui.station_show_coverage + WID_BROS_LT_OFF); @@ -1060,7 +1056,7 @@ struct BuildRoadStationWindow : public PickerWindowBase { }; /** Widget definition of the build road station window */ -static const NWidgetPart _nested_rv_station_picker_widgets[] = { +static const NWidgetPart _nested_road_station_picker_widgets[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN), NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_BROS_CAPTION), @@ -1069,17 +1065,17 @@ static const NWidgetPart _nested_rv_station_picker_widgets[] = { NWidget(NWID_SPACER), SetMinimalSize(0, 3), NWidget(NWID_HORIZONTAL), SetPIP(0, 2, 0), NWidget(NWID_SPACER), SetFill(1, 0), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_NW), SetMinimalSize(66, 50), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_NE), SetMinimalSize(66, 50), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_X), SetMinimalSize(66, 50), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_NW), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_NE), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_X), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), NWidget(NWID_SPACER), SetFill(1, 0), EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 2), NWidget(NWID_HORIZONTAL), SetPIP(0, 2, 0), NWidget(NWID_SPACER), SetFill(1, 0), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_SW), SetMinimalSize(66, 50), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_SE), SetMinimalSize(66, 50), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_Y), SetMinimalSize(66, 50), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_SW), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_SE), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_Y), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), NWidget(NWID_SPACER), SetFill(1, 0), EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 1), @@ -1099,16 +1095,54 @@ static const NWidgetPart _nested_rv_station_picker_widgets[] = { EndContainer(), }; -static WindowDesc _rv_station_picker_desc( +static WindowDesc _road_station_picker_desc( WDP_AUTO, NULL, 0, 0, WC_BUS_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, - _nested_rv_station_picker_widgets, lengthof(_nested_rv_station_picker_widgets) + _nested_road_station_picker_widgets, lengthof(_nested_road_station_picker_widgets) +); + +/** Widget definition of the build tram station window */ +static const NWidgetPart _nested_tram_station_picker_widgets[] = { + NWidget(NWID_HORIZONTAL), + NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN), + NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_BROS_CAPTION), + EndContainer(), + NWidget(WWT_PANEL, COLOUR_DARK_GREEN, WID_BROS_BACKGROUND), + NWidget(NWID_SPACER), SetMinimalSize(0, 3), + NWidget(NWID_HORIZONTAL), SetPIP(0, 2, 0), + NWidget(NWID_SPACER), SetFill(1, 0), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_X), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_Y), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(NWID_SPACER), SetFill(1, 0), + EndContainer(), + NWidget(NWID_SPACER), SetMinimalSize(0, 1), + NWidget(NWID_HORIZONTAL), SetPIP(2, 0, 2), + NWidget(WWT_LABEL, COLOUR_DARK_GREEN, WID_BROS_INFO), SetMinimalSize(140, 14), SetDataTip(STR_STATION_BUILD_COVERAGE_AREA_TITLE, STR_NULL), + NWidget(NWID_SPACER), SetFill(1, 0), + EndContainer(), + NWidget(NWID_HORIZONTAL), SetPIP(2, 0, 2), + NWidget(NWID_SPACER), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BROS_LT_OFF), SetMinimalSize(60, 12), + SetDataTip(STR_STATION_BUILD_COVERAGE_OFF, STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BROS_LT_ON), SetMinimalSize(60, 12), + SetDataTip(STR_STATION_BUILD_COVERAGE_ON, STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP), + NWidget(NWID_SPACER), SetFill(1, 0), + EndContainer(), + NWidget(NWID_SPACER), SetMinimalSize(0, 10), SetResize(0, 1), + EndContainer(), +}; + +static WindowDesc _tram_station_picker_desc( + WDP_AUTO, NULL, 0, 0, + WC_BUS_STATION, WC_BUILD_TOOLBAR, + WDF_CONSTRUCTION, + _nested_tram_station_picker_widgets, lengthof(_nested_tram_station_picker_widgets) ); static void ShowRVStationPicker(Window *parent, RoadStopType rs) { - new BuildRoadStationWindow(&_rv_station_picker_desc, parent, rs); + new BuildRoadStationWindow(_cur_roadtype == ROADTYPE_ROAD ? &_road_station_picker_desc : &_tram_station_picker_desc, parent, rs); } void InitializeRoadGui() From 140bb8409a7824fefa807b7df5b32605a3efcfb9 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 15 Jan 2017 18:45:39 +0000 Subject: [PATCH 229/417] (svn r27735) -Update from Eints: catalan: 1 change by juanjo --- src/lang/catalan.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 692c48c043..4d45a15519 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1762,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comprova STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostra els paràmetres de les IA/Script de la partida STR_INTRO_TOOLTIP_QUIT :{BLACK}Surt d'OpenTTD +STR_INTRO_BASESET :{WHITE}Al joc de gràfics base seleccionat li falten {NUM} sprite{P "" s}.{}Si us plau, comproveu-ne si hi ha actualitzacions disponibles. STR_INTRO_TRANSLATION :{BLACK}A aquesta traducció li falten {NUM} caden{P a es}. Si us plau ajuda a fer millor OpenTTD unint-te com a traductor. Veure readme.txt per més detalls. # Quit window From 2335acdc1617aad0a27b8c28762dce0d2dacc3f6 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 16 Jan 2017 18:45:36 +0000 Subject: [PATCH 230/417] (svn r27736) -Update from Eints: italian: 1 change by lorenzodv --- src/lang/italian.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 903f3738fd..762c2669f4 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1785,6 +1785,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Controll STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostra le impostazioni delle IA e degli Script STR_INTRO_TOOLTIP_QUIT :{BLACK}Esci da 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Nel pacchetto grafico di base attualmente selezionato mancano {NUM} sprite. È consigliabile controllare gli aggiornamenti del pacchetto. STR_INTRO_TRANSLATION :{BLACK}A questa traduzione mancano {NUM} string{P a he}. Aiutaci a migliorare OpenTTD iscrivendoti come traduttore. Vedi readme.txt per dettagli. # Quit window From 1d6f3fda8096cdd8795b4eb3113fc2c9661a7206 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 18 Jan 2017 18:45:37 +0000 Subject: [PATCH 231/417] (svn r27737) -Update from Eints: czech: 27 changes by djst --- src/lang/czech.txt | 51 ++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 4c5d796648..2643dd30ae 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1848,6 +1848,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Ukázat, STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Zobrazit nastavení AI a hry STR_INTRO_TOOLTIP_QUIT :{BLACK}Ukončit 'OpenTTD' +STR_INTRO_BASESET :{BLACK}V aktuálně zvolené základní sadě grafiky chybí {NUM} sprit{P "" y ů}. Zkuste, prosím, vyhledat aktualizovanou základní sadu. STR_INTRO_TRANSLATION :{BLACK}Tento překlad postrádá {NUM} řetěz{P ec ce ců}. Prosím pomozte OpenTTD udělat lepším a přihlaste se jako překladatel. Pro více informací, čtěte readme.txt. # Quit window @@ -2682,6 +2683,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Název d STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Přijímané zboží: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Druh kolejí: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rychlostní omezení tratě: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Rychlostní omezení silnice: {LTBLUE}{VELOCITY} @@ -2694,29 +2696,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Pole STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zasněžená země STR_LAI_CLEAR_DESCRIPTION_DESERT :Poušť -STR_LAI_RAIL_DESCRIPTION_TRACK :Železnice trať -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železnice trať s obyčejným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železnice trať s vjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železnice trať s výjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železnice trať s kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železnice trať s dokonalejším (PBS) návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železnice trať s dokonalejším (PBS) jednosměrným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železnice trať s obyčejným a vjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železnice trať s obyčejným a odjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železnice trať s obyčejným a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železnice trať s obyčejným a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železnice trať s obyčejným a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železnice trať s vjezdovým a odjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železnice trať s vjezdovým a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železnice trať s vjezdovým a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železnice trať s vjezdovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železnice trať s výjezdovým a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železnice trať s výjezdovým a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železnice trať s výjezdovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železnice trať s kombinovaným a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železnice trať s kombinovaným a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železnice trať s cestovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železnice železniční depo +STR_LAI_RAIL_DESCRIPTION_TRACK :Železniční trať +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železniční trať s obyčejnými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železniční trať s vjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železniční trať s odjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železniční trať s kombinovanými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železniční trať s dokonalejšími (PBS) návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železniční trať s jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železniční trať s obyčejnými a vjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železniční trať s obyčejnými a odjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železniční trať s obyčejnými a kombinovanými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železniční trať s obyčejnými a cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železniční trať s obyčejnými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železniční trať s vjezdovými a odjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železniční trať s vjezdovými a kombinovanými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železniční trať s vjezdovými a cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železniční trať s vjezdovými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železniční trať s odjezdovými a kombinovanými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železniční trať s odjezdovými a cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železniční trať s odjezdovými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železniční trať s kombinovanými a cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železniční trať s kombinovanými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železniční trať s cestovými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železniční depo STR_LAI_ROAD_DESCRIPTION_ROAD :Silnice STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Silnice s pouličním osvětlením @@ -3654,6 +3656,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Zmáčkn STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Přepne mezi okny na výměnu lokomotiv a vagonů STR_REPLACE_ENGINES :lokomotivy STR_REPLACE_WAGONS :vagony +STR_REPLACE_ALL_RAILTYPE :Všechna drážní vozidla STR_REPLACE_HELP_RAILTYPE :{BLACK}Vyber typ kolejí, pro které chceš měnit lokomotivy STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Tady je zobrazeno, za jakou lokomotivu se ta v levém seznamu vyměňuje @@ -4186,7 +4189,7 @@ STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... nelz STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... obrázek je příliš velký STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Varování kvůli velikosti -STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Tak velká zmena velikosti zdrojové mapy není doporučena. Pokračovat s generováním? +STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Tak velká změna velikosti zdrojové mapy není doporučena. Pokračovat v generování? # Soundset messages STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Byl nalezen pouze nouzový zvukový soubor. Pokud chcete zvuky, nainstalujte prosim zvukové soubory skrze systém stahování obsahu From 3245922407b0c9b75c249570401c3c7b73a3b115 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 20 Jan 2017 18:45:37 +0000 Subject: [PATCH 232/417] (svn r27738) -Update from Eints: croatian: 1 change by VoyagerOne --- src/lang/croatian.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 0d8b9a6a78..318f22d632 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1857,6 +1857,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Provjeri STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Prikaži postavke UI-ja/Skripte igre STR_INTRO_TOOLTIP_QUIT :{BLACK}Izzađi it 'OpenTTD'-a +STR_INTRO_BASESET :{BLACK}Trenutno odabranom osnovnom grafičkom setu nedostaje {NUM} sprite{P "" a a}. Potražite nadogradnju grafičkog seta. STR_INTRO_TRANSLATION :{BLACK}Ovom prijevodu nedostaje {NUM} slijed. Molimo, pomognite učiniti OpenTTD boljim tako da se prijavite kao prevoditelj. Pogledajte readme.txt za detalje. # Quit window From 6c573dc3b557cd6c96235111bc4c0bda938677b8 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 Jan 2017 13:13:15 +0000 Subject: [PATCH 233/417] (svn r27739) -Cleanup/Revert (r12162): Clearing MP_HOUSE with DC_EXEC always fails, so there is no effect in testing for houses first. (adf88) --- src/town_cmd.cpp | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 7479892c23..66092ff34f 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -2058,11 +2058,10 @@ static void MakeTownHouse(TileIndex t, Town *town, byte counter, byte stage, Hou * Checks if a house can be built here. Important is slope, bridge above * and ability to clear the land. * @param tile tile to check - * @param town town that is checking * @param noslope are slopes (foundations) allowed? * @return true iff house can be built here */ -static inline bool CanBuildHouseHere(TileIndex tile, TownID town, bool noslope) +static inline bool CanBuildHouseHere(TileIndex tile, bool noslope) { /* cannot build on these slopes... */ Slope slope = GetTileSlope(tile); @@ -2071,9 +2070,6 @@ static inline bool CanBuildHouseHere(TileIndex tile, TownID town, bool noslope) /* building under a bridge? */ if (IsBridgeAbove(tile)) return false; - /* do not try to build over house owned by another town */ - if (IsTileType(tile, MP_HOUSE) && GetTownIndex(tile) != town) return false; - /* can we clear the land? */ return DoCommand(tile, 0, 0, DC_AUTO | DC_NO_WATER, CMD_LANDSCAPE_CLEAR).Succeeded(); } @@ -2082,15 +2078,14 @@ static inline bool CanBuildHouseHere(TileIndex tile, TownID town, bool noslope) /** * Checks if a house can be built at this tile, must have the same max z as parameter. * @param tile tile to check - * @param town town that is checking * @param z max z of this tile so more parts of a house are at the same height (with foundation) * @param noslope are slopes (foundations) allowed? * @return true iff house can be built here * @see CanBuildHouseHere() */ -static inline bool CheckBuildHouseSameZ(TileIndex tile, TownID town, int z, bool noslope) +static inline bool CheckBuildHouseSameZ(TileIndex tile, int z, bool noslope) { - if (!CanBuildHouseHere(tile, town, noslope)) return false; + if (!CanBuildHouseHere(tile, noslope)) return false; /* if building on slopes is allowed, there will be flattening foundation (to tile max z) */ if (GetTileMaxZ(tile) != z) return false; @@ -2102,20 +2097,19 @@ static inline bool CheckBuildHouseSameZ(TileIndex tile, TownID town, int z, bool /** * Checks if a house of size 2x2 can be built at this tile * @param tile tile, N corner - * @param town town that is checking * @param z maximum tile z so all tile have the same max z * @param noslope are slopes (foundations) allowed? * @return true iff house can be built * @see CheckBuildHouseSameZ() */ -static bool CheckFree2x2Area(TileIndex tile, TownID town, int z, bool noslope) +static bool CheckFree2x2Area(TileIndex tile, int z, bool noslope) { /* we need to check this tile too because we can be at different tile now */ - if (!CheckBuildHouseSameZ(tile, town, z, noslope)) return false; + if (!CheckBuildHouseSameZ(tile, z, noslope)) return false; for (DiagDirection d = DIAGDIR_SE; d < DIAGDIR_END; d++) { tile += TileOffsByDiagDir(d); - if (!CheckBuildHouseSameZ(tile, town, z, noslope)) return false; + if (!CheckBuildHouseSameZ(tile, z, noslope)) return false; } return true; @@ -2202,10 +2196,10 @@ static bool CheckTownBuild2House(TileIndex *tile, Town *t, int maxz, bool noslop /* 'tile' is already checked in BuildTownHouse() - CanBuildHouseHere() and slope test */ TileIndex tile2 = *tile + TileOffsByDiagDir(second); - if (TownLayoutAllowsHouseHere(t, tile2) && CheckBuildHouseSameZ(tile2, t->index, maxz, noslope)) return true; + if (TownLayoutAllowsHouseHere(t, tile2) && CheckBuildHouseSameZ(tile2, maxz, noslope)) return true; tile2 = *tile + TileOffsByDiagDir(ReverseDiagDir(second)); - if (TownLayoutAllowsHouseHere(t, tile2) && CheckBuildHouseSameZ(tile2, t->index, maxz, noslope)) { + if (TownLayoutAllowsHouseHere(t, tile2) && CheckBuildHouseSameZ(tile2, maxz, noslope)) { *tile = tile2; return true; } @@ -2227,7 +2221,7 @@ static bool CheckTownBuild2x2House(TileIndex *tile, Town *t, int maxz, bool nosl TileIndex tile2 = *tile; for (DiagDirection d = DIAGDIR_SE;; d++) { // 'd' goes through DIAGDIR_SE, DIAGDIR_SW, DIAGDIR_NW, DIAGDIR_END - if (TownLayoutAllows2x2HouseHere(t, tile2) && CheckFree2x2Area(tile2, t->index, maxz, noslope)) { + if (TownLayoutAllows2x2HouseHere(t, tile2) && CheckFree2x2Area(tile2, maxz, noslope)) { *tile = tile2; return true; } @@ -2251,7 +2245,7 @@ static bool BuildTownHouse(Town *t, TileIndex tile) if (!TownLayoutAllowsHouseHere(t, tile)) return false; /* no house allowed at all, bail out */ - if (!CanBuildHouseHere(tile, t->index, false)) return false; + if (!CanBuildHouseHere(tile, false)) return false; Slope slope = GetTileSlope(tile); int maxz = GetTileMaxZ(tile); From cd18f2c10c5ce8df8f9648909a43c26c5cff42a5 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 25 Jan 2017 18:45:36 +0000 Subject: [PATCH 234/417] (svn r27740) -Update from Eints: korean: 1 change by telk5093 --- src/lang/korean.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index e9834a27ae..acf19e50f0 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1762,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}새로 STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}인공지능/게임 스크립트 설정창을 엽니다. STR_INTRO_TOOLTIP_QUIT :{BLACK}'OpenTTD'를 종료합니다. +STR_INTRO_BASESET :{BLACK}현재 선택된 기본 그래픽 세트에는 {NUM}개의 스프라이트가 빠져있습니다. 기본 세트를 업데이트하세요. STR_INTRO_TRANSLATION :{BLACK}이 버전의 OpenTTD는 {NUM}개의 문장이 한국어로 번역되지 않았습니다. OpenTTD가 더욱 발전할 수 있도록 번역에 참여하세요. 자세한 사항은 readme.txt를 참고하세요. # Quit window From 0fc88ade9ff038d3d215f33301ac3da349f78709 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 26 Jan 2017 18:45:36 +0000 Subject: [PATCH 235/417] (svn r27741) -Update from Eints: luxembourgish: 26 changes by Phreeze russian: 1 change by Lone_Wolf --- src/lang/luxembourgish.txt | 49 ++++++++++++++++++++------------------ src/lang/russian.txt | 1 + 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index ba13c3a02e..49e08b85ae 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1761,6 +1761,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Check op STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Weis KI an Spill-Script-Astellungen STR_INTRO_TOOLTIP_QUIT :{BLACK}Aus 'OpenTTD' eraus goen +STR_INTRO_BASESET :{BLACK}Dem grad ausgewielte Basis Grafikset fehlen {NUM} Srite{P "" s}. W.e.g. no Updates fir dëse Set sichen. STR_INTRO_TRANSLATION :{BLACK}Dës Iwwersetzung huet {NUM} String{P "" s}. Hëllef OpenTTD besser ze man andems du dech als Iwwersetzer mells! Lies readme.txt fir d'Detailer. # Quit window @@ -2589,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Fluchhaf STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akzeptéiert Wuer: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Schinnentyp: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Schinne-Geschw.-Limit: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Stroosse-Geschw.-Limit: {LTBLUE}{VELOCITY} @@ -2601,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Felder STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Schnéibedeckt Land STR_LAI_CLEAR_DESCRIPTION_DESERT :Wüst -STR_LAI_RAIL_DESCRIPTION_TRACK :Schinnen Schinn -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Schinnen Schinn mat Blocksignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Schinnen Schinn mat Presignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Schinnen Schinn mat Ausgangs-Signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Schinnen Schinn mat Kombo-Signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Schinnen Schinn mat Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Schinnen Schinn mat Einbahnsignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Schinnen Schinn mat Block- an Presignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Schinnen Schinn mat Block- an Ausgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Schinnen Schinn mat Block- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Schinnen Schinn mat Block- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Schinnen Schinn mat Block- a Einbahnsignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Schinnen Schinn mat Pre- an Ausgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schinnen Schinn mat Pre- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Schinnen Schinn mat Pre- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Schinnen Schinn mat Pre- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Schinnen Schinn mat Ausgangs- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Schinnen Schinn mat Ausgangs- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Schinnen Schinn mat Ausgang- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Schinnen Schinn mat Kombo- an Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Schinnen Schinn mat Kombo- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Schinnen Schinn mat Wee- and Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Schinnen Zuchschapp +STR_LAI_RAIL_DESCRIPTION_TRACK :Schinn +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Schinn mat Blocksignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Schinn mat Presignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Schinn mat Ausgangs-Signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Schinn mat Kombo-Signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Schinn mat Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Schinn mat Einbahnsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Schinn mat Block- an Presignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Schinn mat Block- an Ausgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Schinn mat Block- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Schinn mat Block- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Schinn mat Block- a Einbahnsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Schinn mat Pre- an Ausgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schinn mat Pre- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Schinn mat Pre- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Schinn mat Pre- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Schinn mat Ausgangs- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Schinn mat Ausgangs- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Schinn mat Ausgang- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Schinn mat Kombo- an Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Schinn mat Kombo- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Schinn mat Wee- and Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Zuchschapp STR_LAI_ROAD_DESCRIPTION_ROAD :Strooss STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Strooss mat Luuchten @@ -3558,6 +3560,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Drécken STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wiessel tëscht Maschin- an Waggonaustosch-Fënster STR_REPLACE_ENGINES :Lokomotiven STR_REPLACE_WAGONS :Waggonen +STR_REPLACE_ALL_RAILTYPE :All Zich STR_REPLACE_HELP_RAILTYPE :{BLACK}Wielt de Schinnentyp fir déi Lokomotiven ausgetosch ginn STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Weist un wellech Lokomotiv vun der lénks ugewielter Lokomotiv ausgetosch soll ginn, wann et zoutrëfft diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 4aabacaa20..ea32fc4535 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1913,6 +1913,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Найт STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Изменить настройки ИИ / игрового скрипта STR_INTRO_TOOLTIP_QUIT :{BLACK}Выйти из OpenTTD +STR_INTRO_BASESET :{BLACK}В выбранном наборе базовой графики отсутствует {NUM} спрайт{P "" а ов}. Пожалуйста, обновите набор графики. STR_INTRO_TRANSLATION :{BLACK}На этот язык не переведен{P 0 а ы о} {NUM} строк{P а и ""}. Вы можете помочь проекту, зарегистрировавшись как переводчик. Инструкции в файле readme.txt. # Quit window From 31d4b1e8d6d62ca1c913a27a748f5072a47482f6 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 3 Feb 2017 18:45:39 +0000 Subject: [PATCH 236/417] (svn r27742) -Update from Eints: spanish (mexican): 1 change by Absay --- src/lang/spanish_MX.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index bd90ed8f63..cdf03bb125 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1762,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Revisar STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' +STR_INTRO_BASESET :{BLACK}A los gráficos base elegidos les hace falta {NUM} spirte{P "" s}. Necesitan actualizarse. STR_INTRO_TRANSLATION :{BLACK}A esta traducción le falta{P 0 "" n} {NUM} cadena{P "" s}. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta el archivo readme.txt para más detalles. # Quit window From 30637d15807c34a93e8e70da69f86b5fdc5c0500 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Feb 2017 17:54:46 +0000 Subject: [PATCH 237/417] (svn r27743) -Fix [FS#6537]: Extra viewports did not center on the selected tile. (hackalittlebit) --- src/viewport_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/viewport_gui.cpp b/src/viewport_gui.cpp index 90b0e1468f..cbd300dec7 100644 --- a/src/viewport_gui.cpp +++ b/src/viewport_gui.cpp @@ -71,7 +71,7 @@ public: pt.x = w->viewport->scrollpos_x + w->viewport->virtual_width / 2; pt.y = w->viewport->scrollpos_y + w->viewport->virtual_height / 2; } else { - pt = RemapCoords(TileX(tile) * TILE_SIZE + TILE_SIZE / 2, TileY(tile) * TILE_SIZE + TILE_SIZE / 2, TileHeight(tile)); + pt = RemapCoords(TileX(tile) * TILE_SIZE + TILE_SIZE / 2, TileY(tile) * TILE_SIZE + TILE_SIZE / 2, TilePixelHeight(tile)); } this->viewport->scrollpos_x = pt.x - this->viewport->virtual_width / 2; From 8f3e0c4fe5e3f0f609eccdbf9451bc381b0abd6b Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 8 Feb 2017 21:46:50 +0000 Subject: [PATCH 238/417] Add a custom arena allocator utility. --- projects/openttd_vs100.vcxproj | 2 + projects/openttd_vs100.vcxproj.filters | 6 ++ projects/openttd_vs140.vcxproj | 2 + projects/openttd_vs140.vcxproj.filters | 6 ++ projects/openttd_vs80.vcproj | 8 +++ projects/openttd_vs90.vcproj | 8 +++ source.list | 1 + src/core/dyn_arena_alloc.hpp | 97 ++++++++++++++++++++++++++ 8 files changed, 130 insertions(+) create mode 100644 src/core/dyn_arena_alloc.hpp diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj index a7abe4d1ab..00c6f66811 100644 --- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -667,6 +667,8 @@ + + diff --git a/projects/openttd_vs100.vcxproj.filters b/projects/openttd_vs100.vcxproj.filters index d996963c06..54cd94e730 100644 --- a/projects/openttd_vs100.vcxproj.filters +++ b/projects/openttd_vs100.vcxproj.filters @@ -1230,6 +1230,12 @@ Core Source Code + + Core Source Code + + + Core Source Code + Core Source Code diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index 67acda0402..19760f468b 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -684,6 +684,8 @@ + + diff --git a/projects/openttd_vs140.vcxproj.filters b/projects/openttd_vs140.vcxproj.filters index d996963c06..54cd94e730 100644 --- a/projects/openttd_vs140.vcxproj.filters +++ b/projects/openttd_vs140.vcxproj.filters @@ -1230,6 +1230,12 @@ Core Source Code + + Core Source Code + + + Core Source Code + Core Source Code diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj index fcd9c0e3a3..afb125acf2 100644 --- a/projects/openttd_vs80.vcproj +++ b/projects/openttd_vs80.vcproj @@ -1946,6 +1946,14 @@ RelativePath=".\..\src\core\bitmath_func.hpp" > + + + + diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj index cd5eea9d4e..f35a14ece5 100644 --- a/projects/openttd_vs90.vcproj +++ b/projects/openttd_vs90.vcproj @@ -1943,6 +1943,14 @@ RelativePath=".\..\src\core\bitmath_func.hpp" > + + + + diff --git a/source.list b/source.list index b2c2f4d495..c88f322cd1 100644 --- a/source.list +++ b/source.list @@ -424,6 +424,7 @@ core/backup_type.hpp core/bitmath_func.cpp core/bitmath_func.hpp core/container_func.hpp +core/dyn_arena_alloc.hpp core/endian_func.hpp core/endian_type.hpp core/enum_type.hpp diff --git a/src/core/dyn_arena_alloc.hpp b/src/core/dyn_arena_alloc.hpp new file mode 100644 index 0000000000..2bc4978d14 --- /dev/null +++ b/src/core/dyn_arena_alloc.hpp @@ -0,0 +1,97 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ + +/** @file dyn_arena_alloc.hpp Dynamic chunk-size arena allocator. */ + +#include + +/** + * Custom arena allocator for uniform-size allocations of a variable size. + * The allocation and chunk sizes may only be changed when the arena is empty. + */ +class DynUniformArenaAllocator { + std::vector used_blocks; + + void *current_block = nullptr; + void *last_freed = nullptr; + size_t next_position = 0; + + size_t item_size = 0; + size_t items_per_chunk = 0; + + void NewBlock() + { + current_block = malloc(item_size * items_per_chunk); + assert(current_block != nullptr); + next_position = 0; + used_blocks.push_back(current_block); + } + + public: + DynUniformArenaAllocator() = default; + DynUniformArenaAllocator(const DynUniformArenaAllocator &other) = delete; + DynUniformArenaAllocator& operator=(const DynUniformArenaAllocator &other) = delete; + + ~DynUniformArenaAllocator() + { + EmptyArena(); + } + + void EmptyArena() + { + current_block = nullptr; + last_freed = nullptr; + next_position = 0; + for (void *block : used_blocks) { + free(block); + } + used_blocks.clear(); + } + + void ResetArena() + { + EmptyArena(); + item_size = 0; + items_per_chunk = 0; + } + + void *Allocate() { + assert(item_size != 0); + if (last_freed) { + void *ptr = last_freed; + last_freed = *reinterpret_cast(ptr); + return ptr; + } else { + if (current_block == nullptr || next_position == items_per_chunk) { + NewBlock(); + } + void *out = reinterpret_cast(current_block) + (item_size * next_position); + next_position++; + return out; + } + } + + void Free(void *ptr) { + if (!ptr) return; + assert(current_block != nullptr); + + *reinterpret_cast(ptr) = last_freed; + last_freed = ptr; + } + + void SetParameters(size_t item_size, size_t items_per_chunk) + { + if (item_size < sizeof(void *)) item_size = sizeof(void *); + if (this->item_size == item_size && this->items_per_chunk == items_per_chunk) return; + + assert(current_block == nullptr); + this->item_size = item_size; + this->items_per_chunk = items_per_chunk; + } +}; From 594b328c7ef2f944a4eeed8d62bbd77a31e0cb6d Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 9 Feb 2017 18:45:40 +0000 Subject: [PATCH 239/417] (svn r27744) -Update from Eints: basque: 20 changes by Thadah dutch: 4 changes by habell --- src/lang/basque.txt | 23 ++++++++++++++++++++--- src/lang/dutch.txt | 5 ++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/lang/basque.txt b/src/lang/basque.txt index eee84eb0ad..5ec7a52e82 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -319,6 +319,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Subsidio STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Erakutsi konpainien geltokien zerrenda STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Erakutsi konpaniaren finantza informazioa STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Erakutsi konpaniaren informazio generala +STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Helburu zerrenda erakutsi STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Grafikoak erakutsi STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Erakutsi konpanien ligako taula STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Eraiki industria berria edo industri guztien zerrenda erakutsi @@ -1097,6 +1098,8 @@ STR_CONFIG_SETTING_RESTRICT_ALL :Aditua (ezarpen STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :Ezarpenak lehenetsitakoen balio ezberdinarekin STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Balio ezberdinak dituzten ezarpenak zure joko berriaren ezarpenekin alderatuta +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Bezero ezarpenak (ez dira partidatan gordetzen; joko guztiei eragiten die) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Enpresa ezarpenak (partidan gordeta; bakarrik uneko enpresari eragiten dio) STR_CONFIG_SETTINGS_NONE :{WHITE}- Ezer ez - STR_CONFIG_SETTING_OFF :Itzalita @@ -1262,6 +1265,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grafikoen marre STR_CONFIG_SETTING_LAND_GENERATOR :Lur sortzailea: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Jatorrizkoa STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis bakarrik) Maparen menditsutasuna STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industria dentsitatea: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Petroleo findegietatik maparen ertzera dagoen gehienezko distantzia: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Petroleo findegiak bakarrik maparen ertzatik hurbil eraiki daitezke, kostan irla mapetan @@ -1278,6 +1282,7 @@ STR_CONFIG_SETTING_TREE_PLACER_NONE :Ezer ez STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Jatorrizkoa STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Hobetua STR_CONFIG_SETTING_ROAD_SIDE :Errepideko garraioak: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Gidatzeko aldea aukeratu STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Garaiera maparen norabidea: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Erlojuko orratzen kontrara STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Erlojuko orratzen erara @@ -1333,6 +1338,7 @@ STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Saguaren ezkerr STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Gaitu mapatik zehar mugitzea saguaren ezkerreko botoia mapan arrastratzerakoan. Oso erabilgarria da ukipen pantailak erabiltzerakoan STR_CONFIG_SETTING_AUTOSAVE :Auto-gordea: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Partida gordetze automatikoaren bitartea aukeratu STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Gordetako jokoen izenetan {STRING} data fomatua erabili STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Gordetako fitxeroen dataren formatoa @@ -1373,7 +1379,9 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Konpainiako gas STR_CONFIG_SETTING_SOUND_NEWS :Periodikoa: {STRING} STR_CONFIG_SETTING_SOUND_NEW_YEAR :Amaiera urtea: {STRING} STR_CONFIG_SETTING_SOUND_CONFIRM :Eraikuntza: {STRING} +STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Eraikuntza arrakastatsua edo beste akzioekin soinu bat egin STR_CONFIG_SETTING_SOUND_DISASTER :Desastreak/istripuak: {STRING} +STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Istripu edo desastreen soinu efektuak aktibatu STR_CONFIG_SETTING_SOUND_VEHICLE :Garraioak: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Azpiturak eraikitzea debekatu ibilgailu egokiak ez daudenean eskuragarri: {STRING} @@ -2105,6 +2113,7 @@ STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Egunerak STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Haukeratu dituzun edukiak berrituko dituzten edukiak deskargatuak izateko STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Guztia desmarkatu STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Dekargatuak izango ez diren eduki guztiak markatu +STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Kanpoko webguneak bilatu STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}OpenTTD uzten zaude! STR_CONTENT_FILTER_TITLE :{BLACK}Etiketa/izen iragazkia: STR_CONTENT_OPEN_URL :{BLACK}Webgunera joan @@ -2484,6 +2493,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Aireport STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Onartutako zama: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Errail mota: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Trenbidearen abiadura muga: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Bideko abiadura muga: {LTBLUE}{VELOCITY} @@ -2496,11 +2506,11 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Eremuak STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Elurrez estalitako paisaia STR_LAI_CLEAR_DESCRIPTION_DESERT :Desertua -STR_LAI_RAIL_DESCRIPTION_TRACK :Trenbidea Trenbidea +STR_LAI_RAIL_DESCRIPTION_TRACK :Trenbidea STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trenbidea Trenbidea blokeo seinalearekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trenbidea trenbidea aurre-seinalekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trenbidea trenbidea irteera seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trenbidea trenbidea konbo seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Konbo-seinaledun trenbidea STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trenbidea trenbidea bide seinaleekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trenbidea trenbidea norabide bakarreko bide seinaleekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trenbidea trenbidea blokeo seinale eta aurre-seinaleekin @@ -2516,7 +2526,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trenbidea trenb STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trenbidea trenbidea irteera seinale eta bide seinaleekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trenbidea trenbidea irteera seinale eta norabide bakarreko bide seinaleekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trenbidea trenbidea konbo seinale eta bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trenbidea trenbide konbo seinale eta norabide bakarreko bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Konbo-seinale eta norabide bakarreko bide seinaledun trenbidea STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trenbidea trenbidea bide seinale eta norabide bakarreko seinaleekina STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trenbidea tren gordailua @@ -2724,6 +2734,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}Desgaitua STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}OpenTTD-ren bertsio honekin bateraezina # NewGRF save preset window +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Ez aldatu berezko balioa # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}NewGRF parametroak aldatu @@ -2984,6 +2995,7 @@ STR_STATION_LIST_NO_WAITING_CARGO :{BLACK}Ez dago STR_STATION_VIEW_CAPTION :{WHITE}{STATION} {STATION_FEATURES} STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_LONG} STR_STATION_VIEW_EN_ROUTE_FROM :{YELLOW}({CARGO_SHORT} {STATION}-(e)tik garraiatua) +STR_STATION_VIEW_RESERVED :{YELLOW}({CARGO_SHORT} kargarako erreserbatua) STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Onartu STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Onartzen diren zamen zerrenda @@ -4050,6 +4062,7 @@ STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... Baso STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... bakarrik elur garaieratik gora eraiki daiteke STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... bakarrik elur garaieratik behera eraiki daiteke +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}Ez dago leku aproposik '{STRING}' industriarako # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Ezin da tren gordailua hemen eraiki... @@ -4315,7 +4328,11 @@ STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Ezin da STR_DESKTOP_SHORTCUT_COMMENT :Transport Tycoon Deluxe-ren simulazio bat # Translatable descriptions in media/baseset/*.ob* files +STR_BASEGRAPHICS_DOS_DESCRIPTION :Transport Tycoon Deluxe originaleko DOS edizioko grafikoak. +STR_BASESOUNDS_DOS_DESCRIPTION :Transport Tycoon Deluxe originaleko DOS edizioko soinuak. +STR_BASESOUNDS_WIN_DESCRIPTION :Transport Tycoon Deluxe originaleko Windows edizioko grafikoak. STR_BASESOUNDS_NONE_DESCRIPTION :Soinurik gabeko soinu pakete bat +STR_BASEMUSIC_NONE_DESCRIPTION :Musika gabeko musika paketea. ##id 0x2000 # Town building names diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 20cedb565d..7fba262cd0 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1761,6 +1761,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Zoeken n STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Toon AI/Game script instellingen STR_INTRO_TOOLTIP_QUIT :{BLACK}Verlaat 'OpenTTD' +STR_INTRO_BASESET :{BLACK}De huidige gekozen graphics set mist {NUM} afbeelding{P "" en}. Controleer of er updates zijn voor deze basisset. STR_INTRO_TRANSLATION :{BLACK}Deze vertaling mist {NUM} tekst{P "" en}. Help aub om OpenTTD beter te maken door je al vertaler aan te melden. Zie readme.txt voor details. # Quit window @@ -2589,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Vliegvel STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Geaccepteerde vracht: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Rail type: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Spoor snelheidslimiet: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Snelheidslimiet weg: {LTBLUE}{VELOCITY} @@ -2618,7 +2620,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Spoorweg spoor STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Spoorweg spoor met voor- en routeseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Spoorweg spoor met voor- en eenrichtingsseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Spoorweg spoor met exit- en combo-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoorweg spoor em exit- en routeseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoorweg spoor met exit- en routeseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Spoorweg spoor met exit- en eenrichtingsseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Spoorweg spoor met combo- en routeseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Spoorweg Spoor met combo- en eenrichtingssein @@ -3558,6 +3560,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klik op STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wissel tussen locomotief- en wagonvervangvensters STR_REPLACE_ENGINES :Motoren STR_REPLACE_WAGONS :Wagons +STR_REPLACE_ALL_RAILTYPE :Alle railvoertuigen STR_REPLACE_HELP_RAILTYPE :{BLACK}Selecteer een spoortype waar je locomotieven voor wilt vervangen STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Dit geeft weer waarmee de aan de linkerkant geselecteerde locomotief vervangen wordt From c46e51449e001e2b05dc9108a55809c937ab5b0d Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 12 Feb 2017 12:01:03 +0000 Subject: [PATCH 240/417] (svn r27745) -Update: Baseset translations --- bin/baseset/no_music.obm | 1 + bin/baseset/orig_dos.obg | 1 + bin/baseset/orig_dos.obs | 1 + bin/baseset/orig_win.obs | 1 + 4 files changed, 4 insertions(+) diff --git a/bin/baseset/no_music.obm b/bin/baseset/no_music.obm index 40c3f76060..12ba68a3a1 100644 --- a/bin/baseset/no_music.obm +++ b/bin/baseset/no_music.obm @@ -23,6 +23,7 @@ description.en_US = A music pack without actual music. description.es_ES = Un conjunto de música vacío. description.es_MX = Paquete de música vacío description.et_EE = Muusikakogu ilma muusikata. +description.eu_ES = Musika gabeko musika paketea. description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia. description.fr_FR = Un pack de musiques sans musiques. description.ga_IE = Pacáiste ceoil gan aon cheol iarbhír ann. diff --git a/bin/baseset/orig_dos.obg b/bin/baseset/orig_dos.obg index ad3b35c49f..7222400af0 100644 --- a/bin/baseset/orig_dos.obg +++ b/bin/baseset/orig_dos.obg @@ -24,6 +24,7 @@ description.en_US = Original Transport Tycoon Deluxe DOS edition graphics. description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS. description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS. description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni graafika. +description.eu_ES = Transport Tycoon Deluxe originaleko DOS edizioko grafikoak. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version grafiikat. description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS). description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS. diff --git a/bin/baseset/orig_dos.obs b/bin/baseset/orig_dos.obs index 71fa44baf6..ce2d6d22e6 100644 --- a/bin/baseset/orig_dos.obs +++ b/bin/baseset/orig_dos.obs @@ -23,6 +23,7 @@ description.en_US = Original Transport Tycoon Deluxe DOS edition sounds. description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS. description.es_MX = Sonidos originales de Transport Tycoon Deluxe para DOS. description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni helid. +description.eu_ES = Transport Tycoon Deluxe originaleko DOS edizioko soinuak. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version äänet. description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS). description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán DOS. diff --git a/bin/baseset/orig_win.obs b/bin/baseset/orig_win.obs index fa2178fd40..c3e5fb7693 100644 --- a/bin/baseset/orig_win.obs +++ b/bin/baseset/orig_win.obs @@ -23,6 +23,7 @@ description.en_US = Original Transport Tycoon Deluxe Windows edition sounds. description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windows. description.es_MX = Sonidos originales de Transport Tycoon Deluxe para Windows. description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni helid. +description.eu_ES = Transport Tycoon Deluxe originaleko Windows edizioko grafikoak. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version äänet. description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows). description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán Windows. From 9d85de4d3ef317b1ba03f6c9ed759e0cbc56e61d Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 12 Feb 2017 12:03:07 +0000 Subject: [PATCH 241/417] (svn r27746) -Fix [FS#6538]: PR_CLEAR_ROAD refers to cost per roadbit. Removing secondary roadtypes from bridges was too cheap. (JGR) --- src/road_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 6482a14b19..5e432a2e6b 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -224,7 +224,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec TileIndex other_end = GetOtherTunnelBridgeEnd(tile); /* Pay for *every* tile of the bridge or tunnel */ uint len = GetTunnelBridgeLength(other_end, tile) + 2; - cost.AddCost(len * _price[PR_CLEAR_ROAD]); + cost.AddCost(len * 2 * _price[PR_CLEAR_ROAD]); if (flags & DC_EXEC) { Company *c = Company::GetIfValid(GetRoadOwner(tile, rt)); if (c != NULL) { From 9eff17e66bea99ed47f068e1f3474201d6f06eae Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 17 Feb 2017 18:45:37 +0000 Subject: [PATCH 242/417] (svn r27747) -Update from Eints: korean: 7 changes by telk5093 --- src/lang/korean.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index acf19e50f0..059796013a 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1708,7 +1708,7 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}설정 STR_CONFIG_ERROR :{WHITE}설정 파일에서 오류 발생 STR_CONFIG_ERROR_ARRAY :{WHITE}... 배열 '{STRING}'에서 오류 발생 STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... '{1:STRING}'에 잘못된 값('{0:STRING}')이 지정되었습니다. -STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... 설정 '{STRING}' 끝에 후행문자(??) +STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... '{STRING}' 설정의 끝에 후행 문자가 있습니다. STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... NewGRF '{STRING}' 무시중: '{STRING}'{G 1 "과" "와"} GRF ID가 겹침 STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... 유효하지 않은 NewGRF '{STRING}' 무시중: {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :찾을 수 없음 @@ -1722,7 +1722,7 @@ STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... 기 STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... 기본 효과음 세트({STRING})가 무시되었습니다: 파일을 찾을 수 없습니다. STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... 기본 배경음 세트({STRING})가 무시되었습니다: 파일을 찾을 수 없습니다. STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}메모리 초과 -STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES}의 스프라이트 캐시 할당에 실패하였습니다. 스프라이트 캐시는 {BYTES} 만큼으로 감소합니다. 이는 OpenTTD의 성능을 저하시킬 것입니다. 메모리 요구사항을 낮추려면 32bpp를 비활성화하거나 화면 확대 옵션을 기본값에 가깝게 조절하십시오. +STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES}의 스프라이트 캐시 할당에 실패하였습니다. 스프라이트 캐시 용량이 {BYTES}로 감소합니다. 이는 OpenTTD의 성능을 저하시킬 것입니다. 메모리 요구사항을 낮추려면 32bpp를 비활성화하거나 화면 확대 설정을 기본값에 가깝게 조절하십시오. # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2871,12 +2871,12 @@ STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF # Sprite aligner window STR_SPRITE_ALIGNER_CAPTION :{WHITE}스프라이트 정렬 {COMMA} ({STRING}) STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}다음 스프라이트 -STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}(위조/재색상/글씨 스프라이트를 제외한) 다음 보통 스프라이트로 이동하고, 마지막 스프라이트에 다다르면 다시 처음으로 돌아갑니다. +STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}(유사/재색상/글씨 스프라이트를 제외한) 다음 보통 스프라이트로 이동하고, 마지막 스프라이트에 다다르면 다시 처음으로 돌아갑니다. STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}스프라이트 번호 입력 STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}입력한 스프라이트 번호로 이동합니다. 만약 입력한 번호의 스프라이트가 일반 스프라이트가 아닐경우, 그 다음으로 오는 일반 스프라이트로 이동합니다. STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}이전 스프라이트 -STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}(위조/재색상/글씨 스프라이트를 제외한) 이전 보통 스프라이트로 이동하고, 첫 번째 스프라이트에 다다르면 마지막으로 돌아갑니다. -STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}현재 선택된 스프라이트를 표시합니다. 이 스프라이트가 그려졌을때의 정렬은 무시합니다. +STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}(유사/재색상/글씨 스프라이트를 제외한) 이전 보통 스프라이트로 이동하고, 첫 번째 스프라이트에 다다르면 마지막으로 돌아갑니다. +STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}현재 선택된 스프라이트를 표현합니다. 이 스프라이트를 표현할 때, 정렬 상태는 무시하고 표현합니다. STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}X축이나 Y축 방향으로 스프라이트를 이동시킵니다. CTRL+클릭하면 한 번에 8씩 이동시킬 수 있습니다. STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}상대값 초기화 STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}현재 상대값 좌표를 초기화 @@ -2907,8 +2907,8 @@ STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :예기치 않 STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :알려지지 않은 액션 0 속성 {4:HEX} (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_INVALID_ID :유효하지 않은 ID 사용 시도 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 에 손상된 객체가 있습니다. 모든 손상된 객체는 붉은 물음표로 보일 것입니다. -STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :여러 개의 액션 8 엔트리 포함 (스프라이트 {3:NUM}) -STR_NEWGRF_ERROR_READ_BOUNDS :모조-스프라이트의 지나간 끝을 읽음 (스프라이트 {3:NUM}) +STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :여러 개의 Action 8 엔트리 포함 (스프라이트 {3:NUM}) +STR_NEWGRF_ERROR_READ_BOUNDS :유사 스프라이트의 끝이었던 부분을 읽으려고 시도함 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :요청한 GRF 자원을 사용할 수 없음 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}(은)는 {STRING} 때문에 사용할 수 없습니다 STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :유효하지 않은/알 수 없는 스프라이트 구조 유형 (스프라이트 {3:NUM}) From 04040a6a6d9c817e5ea66f872adb402900855af6 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 25 Feb 2017 18:45:38 +0000 Subject: [PATCH 243/417] (svn r27748) -Update from Eints: polish: 1 change by wojteks86 --- src/lang/polish.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 5f93b98652..8a9d653476 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2141,6 +2141,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Poszukaj STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Pokaż ustawienia SI / Game Script STR_INTRO_TOOLTIP_QUIT :{BLACK}Wyjdź z 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Aktualnie używany podstawowy zestaw graficzny nie posiada {NUM} wymagan{P ego ych ych} sprite{P 'u 'ów 'ów}. Proszę poszukać aktualizacji dla zestawu podstawowego. STR_INTRO_TRANSLATION :{BLACK}Tej wersji językowej brakuje jeszcze {NUM} wpis{P "" y ów}. Możesz pomóc ulepszyć nam OpenTTD rejestrując się jako tłumacz. Szczegóły znajdziesz w pliku readme.txt. # Quit window From c9a8360419059dbf4d614e7273d92cdbdbf9d093 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 26 Feb 2017 15:30:25 +0000 Subject: [PATCH 244/417] (svn r27749) -Codechange: Fold cb37 cargo suffix text in a structure. --- src/industry_gui.cpp | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index c160142249..5eae0b4c80 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -56,6 +56,11 @@ enum CargoSuffixType { CST_DIR, ///< Industry-directory window }; +/** Transfer storage of cargo suffix information. */ +struct CargoSuffix { + char text[512]; ///< Storage of the cargo suffix to print. +}; + static void ShowIndustryCargoesWindow(IndustryType id); /** @@ -71,11 +76,10 @@ static void ShowIndustryCargoesWindow(IndustryType id); * @param ind_type the industry type * @param indspec the industry spec * @param suffix is filled with the string to display - * @param suffix_last lastof(suffix) */ -static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, char *suffix, const char *suffix_last) +static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, CargoSuffix &suffix) { - suffix[0] = '\0'; + suffix.text[0] = '\0'; if (HasBit(indspec->callback_mask, CBM_IND_CARGO_SUFFIX)) { uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast(ind), ind_type, (cst != CST_FUND) ? ind->location.tile : INVALID_TILE); if (callback == CALLBACK_FAILED || callback == 0x400) return; @@ -83,7 +87,7 @@ static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind, ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_CARGO_SUFFIX, callback); } else if (indspec->grf_prop.grffile->grf_version >= 8 || GB(callback, 0, 8) != 0xFF) { StartTextRefStackUsage(indspec->grf_prop.grffile, 6); - GetString(suffix, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), suffix_last); + GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), lastof(suffix.text)); StopTextRefStackUsage(); } } @@ -105,9 +109,9 @@ static inline void GetAllCargoSuffixes(uint cb_offset, CargoSuffixType cst, cons assert_compile(lengthof(cargoes) <= lengthof(suffixes)); for (uint j = 0; j < lengthof(cargoes); j++) { if (cargoes[j] != CT_INVALID) { - GetCargoSuffix(cb_offset + j, cst, ind, ind_type, indspec, suffixes[j], lastof(suffixes[j])); + GetCargoSuffix(cb_offset + j, cst, ind, ind_type, indspec, suffixes[j]); } else { - suffixes[j][0] = '\0'; + suffixes[j].text[0] = '\0'; } } } @@ -313,7 +317,7 @@ public: const IndustrySpec *indsp = GetIndustrySpec(this->index[i]); - char cargo_suffix[3][512]; + CargoSuffix cargo_suffix[3]; GetAllCargoSuffixes(0, CST_FUND, NULL, this->index[i], indsp, indsp->accepts_cargo, cargo_suffix); StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; byte p = 0; @@ -323,7 +327,7 @@ public: if (indsp->accepts_cargo[j] == CT_INVALID) continue; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(indsp->accepts_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } d = maxdim(d, GetStringBoundingBox(str)); @@ -337,7 +341,7 @@ public: if (indsp->produced_cargo[j] == CT_INVALID) continue; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(indsp->produced_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } d = maxdim(d, GetStringBoundingBox(str)); } @@ -432,7 +436,7 @@ public: } /* Draw the accepted cargoes, if any. Otherwise, will print "Nothing". */ - char cargo_suffix[3][512]; + CargoSuffix cargo_suffix[3]; GetAllCargoSuffixes(0, CST_FUND, NULL, this->selected_type, indsp, indsp->accepts_cargo, cargo_suffix); StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; byte p = 0; @@ -442,7 +446,7 @@ public: if (indsp->accepts_cargo[j] == CT_INVALID) continue; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(indsp->accepts_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } DrawString(left, right, y, str); y += FONT_HEIGHT_NORMAL; @@ -457,7 +461,7 @@ public: if (indsp->produced_cargo[j] == CT_INVALID) continue; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(indsp->produced_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } DrawString(left, right, y, str); y += FONT_HEIGHT_NORMAL; @@ -713,15 +717,15 @@ public: int y = top + WD_FRAMERECT_TOP; bool first = true; bool has_accept = false; - char cargo_suffix[3][512]; if (i->prod_level == PRODLEVEL_CLOSURE) { DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE); y += 2 * FONT_HEIGHT_NORMAL; } + CargoSuffix cargo_suffix[3]; + GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); if (HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS)) { - GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { if (i->accepts_cargo[j] == CT_INVALID) continue; has_accept = true; @@ -732,12 +736,11 @@ public: } SetDParam(0, i->accepts_cargo[j]); SetDParam(1, i->incoming_cargo_waiting[j]); - SetDParamStr(2, cargo_suffix[j]); + SetDParamStr(2, cargo_suffix[j].text); DrawString(left + WD_FRAMETEXT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO); y += FONT_HEIGHT_NORMAL; } } else { - GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; byte p = 0; for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { @@ -745,7 +748,7 @@ public: has_accept = true; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(i->accepts_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } if (has_accept) { DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, str); @@ -767,7 +770,7 @@ public: SetDParam(0, i->produced_cargo[j]); SetDParam(1, i->last_month_production[j]); - SetDParamStr(2, cargo_suffix[j]); + SetDParamStr(2, cargo_suffix[j].text); SetDParam(3, ToPercent8(i->last_month_pct_transported[j])); uint x = left + WD_FRAMETEXT_LEFT + (this->editable == EA_RATE ? SETTING_BUTTON_WIDTH + 10 : 0); DrawString(x, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_TRANSPORTED); @@ -1204,7 +1207,7 @@ protected: /* Industry name */ SetDParam(p++, i->index); - static char cargo_suffix[lengthof(i->produced_cargo)][512]; + static CargoSuffix cargo_suffix[lengthof(i->produced_cargo)]; GetAllCargoSuffixes(3, CST_DIR, i, i->type, indsp, i->produced_cargo, cargo_suffix); /* Industry productions */ @@ -1212,7 +1215,7 @@ protected: if (i->produced_cargo[j] == CT_INVALID) continue; SetDParam(p++, i->produced_cargo[j]); SetDParam(p++, i->last_month_production[j]); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } /* Transported productions */ From 5bcca41ace58f3e662295ca161fd17c91e92d5ad Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 26 Feb 2017 15:33:39 +0000 Subject: [PATCH 245/417] (svn r27750) -Codechange: Add cb37 result type to the cargo suffix. --- src/industry_gui.cpp | 57 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 8 deletions(-) diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 5eae0b4c80..8a89183335 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -56,9 +56,18 @@ enum CargoSuffixType { CST_DIR, ///< Industry-directory window }; +/** Ways of displaying the cargo. */ +enum CargoSuffixDisplay { + CSD_CARGO, ///< Display the cargo without sub-type (cb37 result 401). + CSD_CARGO_AMOUNT, ///< Display the cargo and amount (if useful), but no sub-type (cb37 result 400 or fail). + CSD_CARGO_TEXT, ///< Display then cargo and supplied string (cb37 result 800-BFF). + CSD_CARGO_AMOUNT_TEXT, ///< Display then cargo, amount, and string (cb37 result 000-3FF). +}; + /** Transfer storage of cargo suffix information. */ struct CargoSuffix { - char text[512]; ///< Storage of the cargo suffix to print. + CargoSuffixDisplay display; ///< How to display the cargo and text. + char text[512]; ///< Cargo suffix text. }; static void ShowIndustryCargoesWindow(IndustryType id); @@ -80,15 +89,47 @@ static void ShowIndustryCargoesWindow(IndustryType id); static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, CargoSuffix &suffix) { suffix.text[0] = '\0'; + suffix.display = CSD_CARGO_AMOUNT; + if (HasBit(indspec->callback_mask, CBM_IND_CARGO_SUFFIX)) { - uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast(ind), ind_type, (cst != CST_FUND) ? ind->location.tile : INVALID_TILE); - if (callback == CALLBACK_FAILED || callback == 0x400) return; - if (callback > 0x400) { + TileIndex t = (cst != CST_FUND) ? ind->location.tile : INVALID_TILE; + uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast(ind), ind_type, t); + if (callback == CALLBACK_FAILED) return; + + if (indspec->grf_prop.grffile->grf_version < 8) { + if (GB(callback, 0, 8) == 0xFF) return; + if (callback < 0x400) { + StartTextRefStackUsage(indspec->grf_prop.grffile, 6); + GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), lastof(suffix.text)); + StopTextRefStackUsage(); + suffix.display = CSD_CARGO_AMOUNT_TEXT; + return; + } ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_CARGO_SUFFIX, callback); - } else if (indspec->grf_prop.grffile->grf_version >= 8 || GB(callback, 0, 8) != 0xFF) { - StartTextRefStackUsage(indspec->grf_prop.grffile, 6); - GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), lastof(suffix.text)); - StopTextRefStackUsage(); + return; + + } else { // GRF version 8 or higher. + if (callback == 0x400) return; + if (callback == 0x401) { + suffix.display = CSD_CARGO; + return; + } + if (callback < 0x400) { + StartTextRefStackUsage(indspec->grf_prop.grffile, 6); + GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), lastof(suffix.text)); + StopTextRefStackUsage(); + suffix.display = CSD_CARGO_AMOUNT_TEXT; + return; + } + if (callback >= 0x800 && callback < 0xC00) { + StartTextRefStackUsage(indspec->grf_prop.grffile, 6); + GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 - 0x800 + callback), lastof(suffix.text)); + StopTextRefStackUsage(); + suffix.display = CSD_CARGO_TEXT; + return; + } + ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_CARGO_SUFFIX, callback); + return; } } } From 34ca88c09889a2024853fb851832f948c688bb0c Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 26 Feb 2017 15:34:15 +0000 Subject: [PATCH 246/417] (svn r27751) -Feature: Display cargo suffix of accepted cargoes in industry view based on cb37 result type. Industry-sets that have no stockpiling get better control over the displayed accepted cargo information. - result 0401 only prints the accepted cargo - results 0800-0BFF prints the accepted cargo and a string (but not the amount) --- src/industry_gui.cpp | 66 +++++++++++++++++++++++++++----------------- src/lang/english.txt | 8 ++++-- 2 files changed, 46 insertions(+), 28 deletions(-) diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 8a89183335..b9077b9d77 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -766,35 +766,49 @@ public: CargoSuffix cargo_suffix[3]; GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); - if (HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS)) { - for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { - if (i->accepts_cargo[j] == CT_INVALID) continue; - has_accept = true; - if (first) { - DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING); - y += FONT_HEIGHT_NORMAL; - first = false; - } - SetDParam(0, i->accepts_cargo[j]); - SetDParam(1, i->incoming_cargo_waiting[j]); - SetDParamStr(2, cargo_suffix[j].text); - DrawString(left + WD_FRAMETEXT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO); + bool stockpiling = HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS); + + uint left_side = left + WD_FRAMERECT_LEFT * 4; // Indent accepted cargoes. + for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { + if (i->accepts_cargo[j] == CT_INVALID) continue; + has_accept = true; + if (first) { + DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_REQUIRES); y += FONT_HEIGHT_NORMAL; + first = false; } - } else { - StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; - byte p = 0; - for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { - if (i->accepts_cargo[j] == CT_INVALID) continue; - has_accept = true; - if (p > 0) str++; - SetDParam(p++, CargoSpec::Get(i->accepts_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j].text); - } - if (has_accept) { - DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, str); - y += FONT_HEIGHT_NORMAL; + switch (cargo_suffix[j].display) { + case CSD_CARGO_AMOUNT: + if (stockpiling) { + SetDParam(0, i->accepts_cargo[j]); + SetDParam(1, i->incoming_cargo_waiting[j]); + DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT); + break; + } + /* FALL THROUGH */ + + case CSD_CARGO: + SetDParam(0, CargoSpec::Get(i->accepts_cargo[j])->name); + DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO); + break; + + case CSD_CARGO_TEXT: + SetDParam(0, CargoSpec::Get(i->accepts_cargo[j])->name); + SetDParamStr(1, cargo_suffix[j].text); + DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT); + break; + + case CSD_CARGO_AMOUNT_TEXT: + SetDParam(0, i->accepts_cargo[j]); + SetDParam(1, i->incoming_cargo_waiting[j]); + SetDParamStr(2, cargo_suffix[j].text); + DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT); + break; + + default: + NOT_REACHED(); } + y += FONT_HEIGHT_NORMAL; } GetAllCargoSuffixes(3, CST_VIEW, i, i->type, ind, i->produced_cargo, cargo_suffix); diff --git a/src/lang/english.txt b/src/lang/english.txt index 83b6591f6e..8d931307af 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3294,9 +3294,13 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{RAW_STRING}, {STRING}{RAW_STRING}, {STRING}{RAW_STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}waiting +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{RAW_STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{RAW_STRING} + ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargo waiting to be processed: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{RAW_STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{RAW_STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{RAW_STRING}, {STRING}{RAW_STRING} ############ range for produces ends From fa81e20390e5d40fc8679351922349fc54c8620c Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 26 Feb 2017 15:34:57 +0000 Subject: [PATCH 247/417] (svn r27752) -Cleanup: Remove obsolete strings from other languages as well. --- src/lang/afrikaans.txt | 2 -- src/lang/arabic_egypt.txt | 2 -- src/lang/basque.txt | 2 -- src/lang/belarusian.txt | 2 -- src/lang/brazilian_portuguese.txt | 2 -- src/lang/bulgarian.txt | 2 -- src/lang/catalan.txt | 2 -- src/lang/croatian.txt | 2 -- src/lang/czech.txt | 2 -- src/lang/danish.txt | 2 -- src/lang/dutch.txt | 2 -- src/lang/english_AU.txt | 2 -- src/lang/english_US.txt | 2 -- src/lang/esperanto.txt | 2 -- src/lang/estonian.txt | 2 -- src/lang/faroese.txt | 2 -- src/lang/finnish.txt | 2 -- src/lang/french.txt | 2 -- src/lang/gaelic.txt | 2 -- src/lang/galician.txt | 2 -- src/lang/german.txt | 2 -- src/lang/greek.txt | 2 -- src/lang/hebrew.txt | 2 -- src/lang/hungarian.txt | 2 -- src/lang/icelandic.txt | 2 -- src/lang/indonesian.txt | 2 -- src/lang/irish.txt | 2 -- src/lang/italian.txt | 2 -- src/lang/japanese.txt | 2 -- src/lang/korean.txt | 2 -- src/lang/latin.txt | 2 -- src/lang/latvian.txt | 2 -- src/lang/lithuanian.txt | 2 -- src/lang/luxembourgish.txt | 2 -- src/lang/malay.txt | 2 -- src/lang/norwegian_bokmal.txt | 2 -- src/lang/norwegian_nynorsk.txt | 2 -- src/lang/polish.txt | 2 -- src/lang/portuguese.txt | 2 -- src/lang/romanian.txt | 2 -- src/lang/russian.txt | 2 -- src/lang/serbian.txt | 2 -- src/lang/simplified_chinese.txt | 2 -- src/lang/slovak.txt | 2 -- src/lang/slovenian.txt | 2 -- src/lang/spanish.txt | 2 -- src/lang/spanish_MX.txt | 2 -- src/lang/swedish.txt | 2 -- src/lang/tamil.txt | 2 -- src/lang/thai.txt | 2 -- src/lang/traditional_chinese.txt | 2 -- src/lang/turkish.txt | 2 -- src/lang/ukrainian.txt | 2 -- src/lang/unfinished/frisian.txt | 1 - src/lang/unfinished/marathi.txt | 1 - src/lang/vietnamese.txt | 2 -- src/lang/welsh.txt | 2 -- 57 files changed, 112 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 3bef69ef75..11ce6db1a0 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereis: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Vrag wag om geprosesseer te word: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produseer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produseer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 5f463a22f5..080659f96d 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2819,8 +2819,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}يحتا ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}البضاعة تنتظر التعامل معها: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}ينتج: {YELLOW}{STRING} {STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ينتج: {YELLOW}{STRING} {STRING}, {STRING} {STRING} ############ range for produces ends diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 5ec7a52e82..c3fae0e4cd 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3179,8 +3179,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Beharrez ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Prosezatzeko zain dagoen zama: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Ekoizpena: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Ekoizpena: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index a179b30ac2..0e242d9cf9 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3626,8 +3626,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Патр ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Груз, які чакае перапрацоўкі: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Вырабляе: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Вырабляе: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 6da939d664..14494fc59c 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requer: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carga aguardando processamento -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 2922780761..1f807833d0 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3215,8 +3215,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Нужд ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Товар чакащ до бъде преработен: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Произвежда: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Произвежда: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 4d45a15519..f1b2a95ad8 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3296,8 +3296,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessit ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Càrrega en espera de ser processada: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 318f22d632..e9ee53ac0d 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3391,8 +3391,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Teret koji čeka obradu: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 2643dd30ae..74b9c2cd07 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3388,8 +3388,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vyžaduj ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Náklad čekající na zpracování: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 1a6577ed96..b626cad813 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kræver: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Fragt der venter på forarbejdning: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 7fba262cd0..b9d48142af 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereist: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Vracht klaar om te worden verwerkt: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 6f4e7144f5..58bf09e0f0 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3260,8 +3260,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargo waiting to be processed: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index f5b199a125..4d291f95fd 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargo waiting to be processed: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 4251151a8a..f5cda2e24e 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2732,8 +2732,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Bezonas: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Kargo atendanta procedon: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produktas: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produktas: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 7cd7a571a4..7ea75d5a63 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3351,8 +3351,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vajab: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Käitlust ootav kaup: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toodab: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Toodab: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index c51b54e476..ee0ec8c7b7 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2924,8 +2924,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tørvar: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Farmur ið bíðar eftir at verða viðgjørdur: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Framleiður: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Framleiður: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 7c26474842..eb3afee75b 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tarvitse ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Käsittelyä odottava rahti: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/french.txt b/src/lang/french.txt index 96a9724fe7..f2dfeeb314 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nécessi ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Marchandise en attente d'être utilisée{NBSP}: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 44e96cab07..46992d4c1f 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3522,8 +3522,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Feum air ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carago a' feitheamh air giullachd: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/galician.txt b/src/lang/galician.txt index b16ddf43f6..6488a8a217 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3242,8 +3242,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carga esperando ser procesada: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/german.txt b/src/lang/german.txt index 68a9856a58..a47b43285e 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Benötig ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Zur Verarbeitung bereitstehende Fracht: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 0d06360366..5d8031b0c0 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3402,8 +3402,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Απαι ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Εμπόρευματα σε αναμονή: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index ffead604f3..7572d4ac49 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3307,8 +3307,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{YELLOW}{5:STRI ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}סחורה שמחכה לעיבוד: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{YELLOW}{1:STRING}{0:STRING}{BLACK} :מייצר STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{YELLOW}{3:STRING}{2:STRING},{1:STRING}{0:STRING}{BLACK} :מייצר ############ range for produces ends diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index af5ebb055f..ef1d2520b8 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3357,8 +3357,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhaszn ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Feldolgozásra váró rakomány: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index d989692495..d98bc62ea1 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3084,8 +3084,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Þarf: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Farmur sem bíður verkunar: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Framleiðir: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Framleiðir: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 12cc31a6d5..c5cebc41d6 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3289,8 +3289,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Membutuh ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Kargo yang sedang menunggu di proses: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 026d6dac9a..dcfe99950d 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Teastaí ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Lastas ag fanacht le próiseáil: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Táirgtear: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Táirgtear: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 762c2669f4..069d626956 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3325,8 +3325,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Richiede ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carico in attesa di lavorazione: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 7655620ff6..ed1d013671 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}必要 ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}加工待ちの貨物: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING}、{STRING}{STRING} ############ range for produces ends diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 059796013a..e0922d9438 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3296,8 +3296,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}필요 ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}생산되기 위해 대기 중인 화물량: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/latin.txt b/src/lang/latin.txt index a143ab02ee..20c16cb45a 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3496,8 +3496,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Onera utenda manentia: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for produces ends diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 9abe75c426..ef9d1d31c6 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3227,8 +3227,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nepiecie ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Krava, kuru ir jāapstrādā: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index a62f42e6df..f7ddcff849 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3512,8 +3512,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Reikalau ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Krovinys, kuris bus perdirbtas: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 49e08b85ae..bf868bb97c 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Luedunge déi nach verschafft musse ginn: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/malay.txt b/src/lang/malay.txt index afc99c19b0..1845edf295 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2943,8 +2943,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Memerluk ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Kargo yang sedang menunggu untuk diproses: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 8125c58a90..ad464a2f7c 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3297,8 +3297,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Trenger: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Varer som venter på behandling: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index a30f8e028e..4329b823a8 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3210,8 +3210,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treng: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Varer som ventar på å bli behandla: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Lagar: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Lagar: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 8a9d653476..f8912ba5a5 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3675,8 +3675,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Wymaga: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Ładunek oczekujący na przetworzenie: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index dbe540afca..46df4eecca 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessá ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carga aguardando processamento: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 885c5ddf79..537fddad9e 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3251,8 +3251,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Are nevo ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Incarcatura in asteaptarea procesarii: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/russian.txt b/src/lang/russian.txt index ea32fc4535..c578279b7f 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3475,8 +3475,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Треб ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Груз, ожидающий переработки: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 318caa8fd3..88dc8ff4c5 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3488,8 +3488,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potražu ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Tovar koji čeka na obradu: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 1dbfef8e2e..146bad1d2f 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要 ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}等待的货物: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 63fdd2d317..74a6e058f2 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3361,8 +3361,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potrebuj ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Náklad cakajúci na spracovanie: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 079d4661d6..759206e658 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3446,8 +3446,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potrebuj ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Tovor na čakanju obdelave: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvaja: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvaja: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3d963eadc6..1a2fda3186 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carga esperando a ser procesada: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index cdf03bb125..484eabd66c 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3296,8 +3296,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargamento esperando a ser procesado: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 4ff38b2067..e2077c5a76 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kräver: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Last som väntar på att bli behandlad: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 14885c8fe9..a56fc899de 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2913,8 +2913,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}தே ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}பதனிப்பட காத்திருக்கும் சரக்கு: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}தயாரிப்பு: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}தயாரிக்கிறது: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/thai.txt b/src/lang/thai.txt index f3ef3c1e7c..d9c6c5c0b2 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3225,8 +3225,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}มี ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}พัสดุและสิ่งของที่รอการผลิต: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}ผลผลิต: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ผลผลิต: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 471c491bb3..649ea702de 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要 ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}囤積的貨物: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}產出:{YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}產出:{YELLOW}{STRING}{STRING},{STRING}{STRING} ############ range for produces ends diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index b69a01822e..1f27838f51 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}İstenen ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}İşlenmeyi bekleyen kargo: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index b49a7f7faa..d60e26c738 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3424,8 +3424,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Потр ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Вантаж чекає на обробку: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Продукція: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Продукція: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 6fddf2f8ab..b8b3483ce4 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3044,7 +3044,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nedich: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produseart: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produseart: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index 3125899304..8698c6108e 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -1280,7 +1280,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}ला ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}बनव्त: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}बनव्त: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 65167b54a9..d674dec33e 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Yêu c ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Toa xe đợi để xử lý: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 50d9297ee0..3d8b2845c1 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Angen: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Llwythi yn aros i gael ei brosesu: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Cynhyrchu: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Cynhyrchu: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends From d5c6760c856b39535419f165ddaa1553d99ac465 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 26 Feb 2017 18:45:43 +0000 Subject: [PATCH 248/417] (svn r27753) -Update from Eints: --- src/lang/afrikaans.txt | 1 + src/lang/arabic_egypt.txt | 1 + src/lang/basque.txt | 1 + src/lang/belarusian.txt | 1 + src/lang/brazilian_portuguese.txt | 1 + src/lang/bulgarian.txt | 1 + src/lang/catalan.txt | 1 + src/lang/croatian.txt | 1 + src/lang/czech.txt | 1 + src/lang/danish.txt | 1 + src/lang/dutch.txt | 1 + src/lang/english_AU.txt | 1 + src/lang/english_US.txt | 1 + src/lang/esperanto.txt | 1 + src/lang/estonian.txt | 1 + src/lang/faroese.txt | 1 + src/lang/finnish.txt | 1 + src/lang/french.txt | 1 + src/lang/gaelic.txt | 1 + src/lang/galician.txt | 1 + src/lang/german.txt | 1 + src/lang/greek.txt | 1 + src/lang/hebrew.txt | 1 + src/lang/hungarian.txt | 1 + src/lang/icelandic.txt | 1 + src/lang/indonesian.txt | 1 + src/lang/irish.txt | 1 + src/lang/italian.txt | 1 + src/lang/japanese.txt | 1 + src/lang/korean.txt | 1 + src/lang/latin.txt | 1 + src/lang/latvian.txt | 1 + src/lang/lithuanian.txt | 1 + src/lang/luxembourgish.txt | 1 + src/lang/malay.txt | 1 + src/lang/norwegian_bokmal.txt | 1 + src/lang/norwegian_nynorsk.txt | 1 + src/lang/polish.txt | 1 + src/lang/portuguese.txt | 1 + src/lang/romanian.txt | 1 + src/lang/russian.txt | 1 + src/lang/serbian.txt | 1 + src/lang/simplified_chinese.txt | 1 + src/lang/slovak.txt | 1 + src/lang/slovenian.txt | 1 + src/lang/spanish.txt | 1 + src/lang/spanish_MX.txt | 1 + src/lang/swedish.txt | 1 + src/lang/tamil.txt | 1 + src/lang/thai.txt | 1 + src/lang/traditional_chinese.txt | 1 + src/lang/turkish.txt | 1 + src/lang/ukrainian.txt | 1 + src/lang/unfinished/chuvash.txt | 1 + src/lang/unfinished/frisian.txt | 1 + src/lang/unfinished/ido.txt | 1 + src/lang/unfinished/macedonian.txt | 1 + src/lang/unfinished/maltese.txt | 1 + src/lang/unfinished/marathi.txt | 1 + src/lang/unfinished/persian.txt | 1 + src/lang/unfinished/urdu.txt | 1 + src/lang/vietnamese.txt | 1 + src/lang/welsh.txt | 1 + 63 files changed, 63 insertions(+) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 11ce6db1a0..841392a09c 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vereis: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereis: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produseer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produseer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 080659f96d..b07dfcadec 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2818,6 +2818,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}يحتا STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}يحتاج: {YELLOW}{STRING}{STRING}, {STRING}{STRING} , {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}ينتج: {YELLOW}{STRING} {STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ينتج: {YELLOW}{STRING} {STRING}, {STRING} {STRING} diff --git a/src/lang/basque.txt b/src/lang/basque.txt index c3fae0e4cd..69c25f31a0 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3178,6 +3178,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Beharrez STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Beharrezkoa du: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Ekoizpena: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Ekoizpena: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 0e242d9cf9..50229c6ae9 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3625,6 +3625,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Патр STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Патрабуецца: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Вырабляе: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Вырабляе: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 14494fc59c..9ed5394684 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requer: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requer: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 1f807833d0..da6b52463e 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3214,6 +3214,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Нужд STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Нуждае се от: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Произвежда: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Произвежда: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index f1b2a95ad8..7fec96cb1b 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3295,6 +3295,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necessit STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessita: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index e9ee53ac0d..29f2a03402 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3390,6 +3390,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Treba: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 74b9c2cd07..128259ef0f 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3387,6 +3387,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vyžaduj STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vyžaduje: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index b626cad813..9fe61e00d8 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Kræver: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kræver: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index b9d48142af..7ae5817ddb 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vereist: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereist: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 58bf09e0f0..c0d79346a5 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3259,6 +3259,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 4d291f95fd..010deba2b6 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index f5cda2e24e..0c35b49d01 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2731,6 +2731,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Bezonas: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Bezonas: {YELLOW}{STRING.n}{STRING}, {STRING.n}{STRING}, {STRING.n}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produktas: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produktas: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 7ea75d5a63..1bb8af5aaf 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3350,6 +3350,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vajab: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vajab: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toodab: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Toodab: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index ee0ec8c7b7..26d162b719 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2923,6 +2923,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Tørvar: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tørvar: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Framleiður: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Framleiður: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index eb3afee75b..1b683bf745 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Tarvitse STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tarvitsee: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/french.txt b/src/lang/french.txt index f2dfeeb314..1835145e3b 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nécessi STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nécessite{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 46992d4c1f..b2f9d7a404 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3521,6 +3521,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Feum air STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Feum air: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 6488a8a217..c6ef4673d7 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3241,6 +3241,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Require: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index a47b43285e..a299d8dc64 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Benötig STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Benötigt: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 5d8031b0c0..769fd6d0dd 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3401,6 +3401,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Απαι STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Απαιτεί: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 7572d4ac49..01e0159d5e 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3306,6 +3306,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{YELLOW}{3:STRI STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{YELLOW}{5:STRING}{4:STRING},{3:STRING}{2:STRING},{1:STRING}{0:STRING}{BLACK} :דורש ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{YELLOW}{1:STRING}{0:STRING}{BLACK} :מייצר STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{YELLOW}{3:STRING}{2:STRING},{1:STRING}{0:STRING}{BLACK} :מייצר diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index ef1d2520b8..84c6430464 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3356,6 +3356,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Felhaszn STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhasznál: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index d98bc62ea1..37595b413e 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3083,6 +3083,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Þarf: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Þarf: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Framleiðir: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Framleiðir: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index c5cebc41d6..105fba7803 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3288,6 +3288,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Membutuh STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Membutuhkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/irish.txt b/src/lang/irish.txt index dcfe99950d..4831264802 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Teastaí STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Teastaíonn: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Táirgtear: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Táirgtear: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 069d626956..a7f78af542 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3324,6 +3324,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Richiede STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Richiede: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index ed1d013671..74d0af78d1 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}必要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}必要資源: {YELLOW}{STRING}{STRING}、{STRING}{STRING}、{STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING}、{STRING}{STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index e0922d9438..b12944096e 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3295,6 +3295,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}필요 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}필요함: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 20c16cb45a..32a3076e25 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3495,6 +3495,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Postulat STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index ef9d1d31c6..8750be0e30 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3226,6 +3226,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nepiecie STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nepieciešams: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index f7ddcff849..9450a0f5c3 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3511,6 +3511,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Reikalau STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Reikalauja: {YELLOW}{STRING.ko}{STRING}, {STRING.ko}{STRING}, {STRING.ko}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index bf868bb97c..b1b02d208d 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Brauch: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 1845edf295..37744bd09d 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2942,6 +2942,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Memerluk STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Memerlukan: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index ad464a2f7c..a889661665 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3296,6 +3296,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Trenger: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Trenger: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 4329b823a8..332d1976d5 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3209,6 +3209,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Treng: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treng: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Lagar: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Lagar: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index f8912ba5a5..5e64a712fe 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3674,6 +3674,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Wymaga: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Wymaga: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 46df4eecca..2519147616 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necessá STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessário: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 537fddad9e..e3da858029 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3250,6 +3250,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Are nevo STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Are nevoie de: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index c578279b7f..798a1aa17a 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3474,6 +3474,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Треб STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Требуется: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 88dc8ff4c5..d112b832af 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3487,6 +3487,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Potražu STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potražuje: {YELLOW}{STRING.aku}{STRING}, {STRING.aku}{STRING}, {STRING.aku}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 146bad1d2f..a11ad99b5f 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}需要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要:{YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 74a6e058f2..be2c635472 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3360,6 +3360,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Potrebuj STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potrebuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 759206e658..60e958fb03 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3445,6 +3445,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Potrebuj STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potrebuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvaja: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvaja: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1a2fda3186..367bd82ae6 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 484eabd66c..48e83b2c97 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3295,6 +3295,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index e2077c5a76..4648963188 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Kräver: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kräver: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index a56fc899de..9e4d0a03ba 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2912,6 +2912,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}தே STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}தேவைப்படுகிறது: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}தயாரிப்பு: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}தயாரிக்கிறது: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index d9c6c5c0b2..0a7735ec5e 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3224,6 +3224,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}มี STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}มีความต้องการ: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}ผลผลิต: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ผลผลิต: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 649ea702de..854d2be9b5 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}需要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要:{YELLOW}{STRING}{STRING},{STRING}{STRING},{STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}產出:{YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}產出:{YELLOW}{STRING}{STRING},{STRING}{STRING} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 1f27838f51..900cae4672 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}İstenen STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}İstenenler: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index d60e26c738..8a905477a6 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3423,6 +3423,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Потр STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Потребує: {YELLOW}{STRING.z}{STRING.z}, {STRING.z}{STRING.z}, {STRING.z}{STRING.z} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Продукція: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Продукція: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt index 7cdd9cef41..117e2dbbb8 100644 --- a/src/lang/unfinished/chuvash.txt +++ b/src/lang/unfinished/chuvash.txt @@ -1112,6 +1112,7 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ҫу ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index b8b3483ce4..df912a4991 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3043,6 +3043,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nedich: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nedich: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produseart: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produseart: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index 2e8a41161e..b0941fbc07 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -921,6 +921,7 @@ STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Vehili: ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index 0e72f4f339..a37291171d 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1412,6 +1412,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Прои ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/unfinished/maltese.txt b/src/lang/unfinished/maltese.txt index 8796505385..473f4de2ab 100644 --- a/src/lang/unfinished/maltese.txt +++ b/src/lang/unfinished/maltese.txt @@ -818,6 +818,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index 8698c6108e..b2ccf18b67 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -1279,6 +1279,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}ला STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}लाग्त: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}बनव्त: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}बनव्त: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index df2824e434..334b220338 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2908,6 +2908,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}مواد STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}مواد اولیه: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}محصولات: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}محصولات: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index a2bae741d3..4a4c5b2c59 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2321,6 +2321,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}گزشت ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index d674dec33e..89989e089f 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Yêu c STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Yêu cầu: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 3d8b2845c1..da03498aac 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Angen: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Angen: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Cynhyrchu: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Cynhyrchu: {YELLOW}{STRING}{STRING}, {STRING}{STRING} From 02967c3c082afb2f2d411a5a881581a498314b17 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:39:58 +0000 Subject: [PATCH 249/417] (svn r27754) -Codechange: Add GetStringTab(), GetStringIndex() and MakeStringID() to access the structure of StringIDs. --- src/language.h | 2 -- src/saveload/company_sl.cpp | 5 +++-- src/saveload/strings_sl.cpp | 3 ++- src/saveload/town_sl.cpp | 3 ++- src/script/api/script_error.cpp | 5 +++-- src/strings.cpp | 24 ++++++++++++------------ src/strings_func.h | 32 ++++++++++++++++++++++++++++++++ 7 files changed, 54 insertions(+), 20 deletions(-) diff --git a/src/language.h b/src/language.h index fed138e635..ea30697561 100644 --- a/src/language.h +++ b/src/language.h @@ -21,10 +21,8 @@ static const uint8 CASE_GENDER_LEN = 16; ///< The (maximum) length of a case/gen static const uint8 MAX_NUM_GENDERS = 8; ///< Maximum number of supported genders. static const uint8 MAX_NUM_CASES = 16; ///< Maximum number of supported cases. -static const uint TAB_SIZE_OFFSET = 0; ///< The offset for the tab size. static const uint TAB_SIZE_BITS = 11; ///< The number of bits used for the tab size. static const uint TAB_SIZE = 1 << TAB_SIZE_BITS; ///< The number of values in a tab. -static const uint TAB_COUNT_OFFSET = TAB_SIZE_BITS; ///< The offset for the tab count. static const uint TAB_COUNT_BITS = 5; ///< The number of bits used for the amount of tabs. static const uint TAB_COUNT = 1 << TAB_COUNT_BITS; ///< The amount of tabs. diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 6ac22c2685..ff02167d3e 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -16,6 +16,7 @@ #include "../tunnelbridge_map.h" #include "../tunnelbridge.h" #include "../station_base.h" +#include "../strings_func.h" #include "saveload.h" @@ -501,11 +502,11 @@ static void Check_PLYR() /* We do not load old custom names */ if (IsSavegameVersionBefore(84)) { - if (GB(cprops->name_1, 11, 5) == 15) { + if (GetStringTab(cprops->name_1) == 15) { cprops->name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE; } - if (GB(cprops->president_name_1, 11, 5) == 15) { + if (GetStringTab(cprops->president_name_1) == 15) { cprops->president_name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE; } } diff --git a/src/saveload/strings_sl.cpp b/src/saveload/strings_sl.cpp index 73f2a1e2e1..c9fb91546a 100644 --- a/src/saveload/strings_sl.cpp +++ b/src/saveload/strings_sl.cpp @@ -11,6 +11,7 @@ #include "../stdafx.h" #include "../string_func.h" +#include "../strings_func.h" #include "saveload_internal.h" #include "table/strings.h" @@ -60,7 +61,7 @@ char *_old_name_array = NULL; char *CopyFromOldName(StringID id) { /* Is this name an (old) custom name? */ - if (GB(id, 11, 5) != 15) return NULL; + if (GetStringTab(id) != 15) return NULL; if (IsSavegameVersionBefore(37)) { /* Allow for expansion when converted to UTF-8. */ diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp index 7db6a7aa6f..8a9f879bba 100644 --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -14,6 +14,7 @@ #include "../town.h" #include "../landscape.h" #include "../subsidy_func.h" +#include "../strings_func.h" #include "saveload.h" #include "newgrf_sl.h" @@ -285,7 +286,7 @@ static void Load_TOWN() SlObject(&t->received[i], _town_received_desc); } - if (t->townnamegrfid == 0 && !IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1) && GB(t->townnametype, 11, 5) != 15) { + if (t->townnamegrfid == 0 && !IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1) && GetStringTab(t->townnametype) != 15) { SlErrorCorrupt("Invalid town name generator"); } diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp index d30ad9c66d..87647cfe82 100644 --- a/src/script/api/script_error.cpp +++ b/src/script/api/script_error.cpp @@ -13,6 +13,7 @@ #include "script_error.hpp" #include "../../core/bitmath_func.hpp" #include "../../string_func.h" +#include "../../strings_func.h" #include "../../safeguards.h" @@ -31,8 +32,8 @@ ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::S /* static */ ScriptErrorType ScriptError::StringToError(StringID internal_string_id) { - uint index = GB(internal_string_id, 11, 5); - switch (GB(internal_string_id, 11, 5)) { + uint index = GetStringIndex(internal_string_id); + switch (GetStringTab(internal_string_id)) { case 26: case 28: case 29: case 30: // NewGRF strings. return ERR_NEWGRF_SUPPLIED_ERROR; diff --git a/src/strings.cpp b/src/strings.cpp index 8cd071d0ba..704ed3c72e 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -194,14 +194,14 @@ static bool _scan_for_gender_data = false; ///< Are we scanning for the gender const char *GetStringPtr(StringID string) { - switch (GB(string, TAB_COUNT_OFFSET, TAB_COUNT_BITS)) { - case GAME_TEXT_TAB: return GetGameStringPtr(GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS)); + switch (GetStringTab(string)) { + case GAME_TEXT_TAB: return GetGameStringPtr(GetStringIndex(string)); /* 0xD0xx and 0xD4xx IDs have been converted earlier. */ case 26: NOT_REACHED(); - case 28: return GetGRFStringPtr(GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS)); - case 29: return GetGRFStringPtr(GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS) + 0x0800); - case 30: return GetGRFStringPtr(GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS) + 0x1000); - default: return _langpack_offs[_langtab_start[GB(string, TAB_COUNT_OFFSET, TAB_COUNT_BITS)] + GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS)]; + case 28: return GetGRFStringPtr(GetStringIndex(string)); + case 29: return GetGRFStringPtr(GetStringIndex(string) + 0x0800); + case 30: return GetGRFStringPtr(GetStringIndex(string) + 0x1000); + default: return _langpack_offs[_langtab_start[GetStringTab(string)] + GetStringIndex(string)]; } } @@ -219,8 +219,8 @@ char *GetStringWithArgs(char *buffr, StringID string, StringParameters *args, co { if (string == 0) return GetStringWithArgs(buffr, STR_UNDEFINED, args, last); - uint index = GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS); - uint tab = GB(string, TAB_COUNT_OFFSET, TAB_COUNT_BITS); + uint index = GetStringIndex(string); + uint tab = GetStringTab(string); switch (tab) { case 4: @@ -886,7 +886,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg buff = strecat(buff, "(invalid sub-StringID)", last); break; } - param = (GAME_TEXT_TAB << TAB_COUNT_OFFSET) + param; + param = MakeStringID(GAME_TEXT_TAB, param); } sub_args.SetParam(i++, param); @@ -901,7 +901,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg /* If we didn't error out, we can actually print the string. */ if (*str != '\0') { str = p; - buff = GetStringWithArgs(buff, (GAME_TEXT_TAB << TAB_COUNT_OFFSET) + stringid, &sub_args, last, true); + buff = GetStringWithArgs(buff, MakeStringID(GAME_TEXT_TAB, stringid), &sub_args, last, true); } for (int i = 0; i < 20; i++) { @@ -1017,7 +1017,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING: {// {STRING} StringID str = args->GetInt32(SCC_STRING); - if (game_script && GB(str, TAB_COUNT_OFFSET, TAB_COUNT_BITS) != GAME_TEXT_TAB) break; + if (game_script && GetStringTab(str) != GAME_TEXT_TAB) break; /* WARNING. It's prohibited for the included string to consume any arguments. * For included strings that consume argument, you should use STRING1, STRING2 etc. * To debug stuff you can set argv to NULL and it will tell you */ @@ -1036,7 +1036,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING7: { // {STRING1..7} /* Strings that consume arguments */ StringID str = args->GetInt32(b); - if (game_script && GB(str, TAB_COUNT_OFFSET, TAB_COUNT_BITS) != GAME_TEXT_TAB) break; + if (game_script && GetStringTab(str) != GAME_TEXT_TAB) break; uint size = b - SCC_STRING1 + 1; if (game_script && size > args->GetDataLeft()) { buff = strecat(buff, "(too many parameters)", last); diff --git a/src/strings_func.h b/src/strings_func.h index 2c7809d020..5d69121e39 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -15,6 +15,38 @@ #include "strings_type.h" #include "string_type.h" #include "gfx_type.h" +#include "core/bitmath_func.hpp" + +/** + * Extract the StringTab from a StringID. + * @param str String identifier + * @return StringTab from \a str + */ +static inline uint GetStringTab(StringID str) +{ + return GB(str, 11, 5); +} + +/** + * Extract the StringIndex from a StringID. + * @param str String identifier + * @return StringIndex from \a str + */ +static inline uint GetStringIndex(StringID str) +{ + return GB(str, 0, 11); +} + +/** + * Create a StringID + * @param tab StringTab + * @param index StringIndex + * @return StringID composed from \a tab and \a index + */ +static inline StringID MakeStringID(uint tab, uint index) +{ + return tab << 11 | index; +} class StringParameters { StringParameters *parent; ///< If not NULL, this instance references data from this parent instance. From b54a79f13ea62360c85a0e419cbcb728f2b1c141 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:40:32 +0000 Subject: [PATCH 250/417] (svn r27755) -Codechange: Move TAB_SIZE to strings_type.h and use it consistently. --- src/language.h | 3 +-- src/newgrf_text.cpp | 7 +++---- src/strings_func.h | 7 ++++--- src/strings_type.h | 5 +++++ 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/language.h b/src/language.h index ea30697561..8e09599c81 100644 --- a/src/language.h +++ b/src/language.h @@ -16,13 +16,12 @@ #ifdef WITH_ICU_SORT #include #endif /* WITH_ICU_SORT */ +#include "strings_type.h" static const uint8 CASE_GENDER_LEN = 16; ///< The (maximum) length of a case/gender string. static const uint8 MAX_NUM_GENDERS = 8; ///< Maximum number of supported genders. static const uint8 MAX_NUM_CASES = 16; ///< Maximum number of supported cases. -static const uint TAB_SIZE_BITS = 11; ///< The number of bits used for the tab size. -static const uint TAB_SIZE = 1 << TAB_SIZE_BITS; ///< The number of values in a tab. static const uint TAB_COUNT_BITS = 5; ///< The number of bits used for the amount of tabs. static const uint TAB_COUNT = 1 << TAB_COUNT_BITS; ///< The amount of tabs. diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index df00ef3419..914d0ee1ae 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -36,7 +36,6 @@ #include "safeguards.h" #define GRFTAB 28 -#define TABSIZE 11 /** * Explains the newgrf shift bit positioning. @@ -159,7 +158,7 @@ struct GRFTextEntry { static uint _num_grf_texts = 0; -static GRFTextEntry _grf_text[(1 << TABSIZE) * 3]; +static GRFTextEntry _grf_text[TAB_SIZE * 3]; static byte _currentLangID = GRFLX_ENGLISH; ///< by default, english is used. /** @@ -696,7 +695,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s'", id, grfid, stringid, newtext->langid, newtext->text); - return (GRFTAB << TABSIZE) + id; + return MakeStringID(GRFTAB, 0) + id; // Id reaches across multiple tabs } /** @@ -706,7 +705,7 @@ StringID GetGRFStringID(uint32 grfid, uint16 stringid) { for (uint id = 0; id < _num_grf_texts; id++) { if (_grf_text[id].grfid == grfid && _grf_text[id].stringid == stringid) { - return (GRFTAB << TABSIZE) + id; + return MakeStringID(GRFTAB, 0) + id; // Id reaches across multiple tabs } } diff --git a/src/strings_func.h b/src/strings_func.h index 5d69121e39..3e3aa4840f 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -24,7 +24,7 @@ */ static inline uint GetStringTab(StringID str) { - return GB(str, 11, 5); + return GB(str, TAB_SIZE_BITS, 5); } /** @@ -34,7 +34,7 @@ static inline uint GetStringTab(StringID str) */ static inline uint GetStringIndex(StringID str) { - return GB(str, 0, 11); + return GB(str, 0, TAB_SIZE_BITS); } /** @@ -45,7 +45,8 @@ static inline uint GetStringIndex(StringID str) */ static inline StringID MakeStringID(uint tab, uint index) { - return tab << 11 | index; + assert(index < TAB_SIZE); + return tab << TAB_SIZE_BITS | index; } class StringParameters { diff --git a/src/strings_type.h b/src/strings_type.h index c6eebd54d8..780221d0a8 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -26,6 +26,11 @@ enum TextDirection { TD_RTL, ///< Text is written right-to-left by default }; +/** Number of bits for the StringIndex within a StringTab */ +static const uint TAB_SIZE_BITS = 11; +/** Number of strings per StringTab */ +static const uint TAB_SIZE = 1 << TAB_SIZE_BITS; + /** Special string constants */ enum SpecialStrings { From 49b940f69c1314dce0619e68b8c04b85c38ca8a9 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:40:53 +0000 Subject: [PATCH 251/417] (svn r27756) -Codechange: Add StringTab enum --- src/game/game_text.hpp | 3 -- src/language.h | 5 +--- src/newgrf_text.cpp | 6 ++-- src/saveload/company_sl.cpp | 4 +-- src/saveload/strings_sl.cpp | 2 +- src/saveload/town_sl.cpp | 2 +- src/script/api/script_error.cpp | 17 +++++------ src/strings.cpp | 51 +++++++++++++++++---------------- src/strings_func.h | 7 +++-- src/strings_type.h | 18 ++++++++++++ 10 files changed, 65 insertions(+), 50 deletions(-) diff --git a/src/game/game_text.hpp b/src/game/game_text.hpp index 19a31049ec..14da7d9b2e 100644 --- a/src/game/game_text.hpp +++ b/src/game/game_text.hpp @@ -14,9 +14,6 @@ #include "../core/smallvec_type.hpp" -/** The tab we place our strings in. */ -static const uint GAME_TEXT_TAB = 18; - const char *GetGameStringPtr(uint id); void RegisterGameTranslation(class Squirrel *engine); void ReconsiderGameScriptLanguage(); diff --git a/src/language.h b/src/language.h index 8e09599c81..d33ba81892 100644 --- a/src/language.h +++ b/src/language.h @@ -22,9 +22,6 @@ static const uint8 CASE_GENDER_LEN = 16; ///< The (maximum) length of a case/gen static const uint8 MAX_NUM_GENDERS = 8; ///< Maximum number of supported genders. static const uint8 MAX_NUM_CASES = 16; ///< Maximum number of supported cases. -static const uint TAB_COUNT_BITS = 5; ///< The number of bits used for the amount of tabs. -static const uint TAB_COUNT = 1 << TAB_COUNT_BITS; ///< The amount of tabs. - /** Header of a language file. */ struct LanguagePackHeader { static const uint32 IDENT = 0x474E414C; ///< Identifier for OpenTTD language files, big endian for "LANG" @@ -34,7 +31,7 @@ struct LanguagePackHeader { char name[32]; ///< the international name of this language char own_name[32]; ///< the localized name of this language char isocode[16]; ///< the ISO code for the language (not country code) - uint16 offsets[TAB_COUNT]; ///< the offsets + uint16 offsets[TEXT_TAB_END]; ///< the offsets /** Thousand separator used for anything not currencies */ char digit_group_separator[8]; diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 914d0ee1ae..279bd094c2 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -35,8 +35,6 @@ #include "safeguards.h" -#define GRFTAB 28 - /** * Explains the newgrf shift bit positioning. * the grf base will not be used in order to find the string, but rather for @@ -695,7 +693,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s'", id, grfid, stringid, newtext->langid, newtext->text); - return MakeStringID(GRFTAB, 0) + id; // Id reaches across multiple tabs + return MakeStringID(TEXT_TAB_NEWGRF1, 0) + id; // Id reaches across multiple tabs } /** @@ -705,7 +703,7 @@ StringID GetGRFStringID(uint32 grfid, uint16 stringid) { for (uint id = 0; id < _num_grf_texts; id++) { if (_grf_text[id].grfid == grfid && _grf_text[id].stringid == stringid) { - return MakeStringID(GRFTAB, 0) + id; // Id reaches across multiple tabs + return MakeStringID(TEXT_TAB_NEWGRF1, 0) + id; // Id reaches across multiple tabs } } diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index ff02167d3e..2ad9759901 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -502,11 +502,11 @@ static void Check_PLYR() /* We do not load old custom names */ if (IsSavegameVersionBefore(84)) { - if (GetStringTab(cprops->name_1) == 15) { + if (GetStringTab(cprops->name_1) == TEXT_TAB_OLD_CUSTOM) { cprops->name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE; } - if (GetStringTab(cprops->president_name_1) == 15) { + if (GetStringTab(cprops->president_name_1) == TEXT_TAB_OLD_CUSTOM) { cprops->president_name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE; } } diff --git a/src/saveload/strings_sl.cpp b/src/saveload/strings_sl.cpp index c9fb91546a..aa2fdd3e60 100644 --- a/src/saveload/strings_sl.cpp +++ b/src/saveload/strings_sl.cpp @@ -61,7 +61,7 @@ char *_old_name_array = NULL; char *CopyFromOldName(StringID id) { /* Is this name an (old) custom name? */ - if (GetStringTab(id) != 15) return NULL; + if (GetStringTab(id) != TEXT_TAB_OLD_CUSTOM) return NULL; if (IsSavegameVersionBefore(37)) { /* Allow for expansion when converted to UTF-8. */ diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp index 8a9f879bba..3af5171b87 100644 --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -286,7 +286,7 @@ static void Load_TOWN() SlObject(&t->received[i], _town_received_desc); } - if (t->townnamegrfid == 0 && !IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1) && GetStringTab(t->townnametype) != 15) { + if (t->townnamegrfid == 0 && !IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1) && GetStringTab(t->townnametype) != TEXT_TAB_OLD_CUSTOM) { SlErrorCorrupt("Invalid town name generator"); } diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp index 87647cfe82..b692c74f44 100644 --- a/src/script/api/script_error.cpp +++ b/src/script/api/script_error.cpp @@ -34,15 +34,16 @@ ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::S { uint index = GetStringIndex(internal_string_id); switch (GetStringTab(internal_string_id)) { - case 26: case 28: case 29: case 30: // NewGRF strings. - return ERR_NEWGRF_SUPPLIED_ERROR; + case TEXT_TAB_NEWGRF1: + case TEXT_TAB_NEWGRF2: + case TEXT_TAB_NEWGRF3: + return ERR_NEWGRF_SUPPLIED_ERROR; // NewGRF strings. - /* DO NOT SWAP case 14 and 4 because that will break StringToError due - * to the index dependency that relies on FALL THROUGHs. */ - case 14: if (index < 0xE4) break; // Player name - case 4: if (index < 0xC0) break; // Town name - case 15: // Custom name - case 31: // Dynamic strings + case TEXT_TAB_SPECIAL: + if (index < 0xE4) break; // Player name + /* FALL THROUGH */ + case TEXT_TAB_TOWN: + if (index < 0xC0) break; // Town name /* These strings are 'random' and have no meaning. * They actually shouldn't even be returned as error messages. */ return ERR_UNKNOWN; diff --git a/src/strings.cpp b/src/strings.cpp index 704ed3c72e..0d115def95 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -187,20 +187,20 @@ struct LanguagePack : public LanguagePackHeader { static char **_langpack_offs; static LanguagePack *_langpack; -static uint _langtab_num[TAB_COUNT]; ///< Offset into langpack offs -static uint _langtab_start[TAB_COUNT]; ///< Offset into langpack offs +static uint _langtab_num[TEXT_TAB_END]; ///< Offset into langpack offs +static uint _langtab_start[TEXT_TAB_END]; ///< Offset into langpack offs static bool _scan_for_gender_data = false; ///< Are we scanning for the gender of the current string? (instead of formatting it) const char *GetStringPtr(StringID string) { switch (GetStringTab(string)) { - case GAME_TEXT_TAB: return GetGameStringPtr(GetStringIndex(string)); + case TEXT_TAB_GAMESCRIPT: return GetGameStringPtr(GetStringIndex(string)); /* 0xD0xx and 0xD4xx IDs have been converted earlier. */ - case 26: NOT_REACHED(); - case 28: return GetGRFStringPtr(GetStringIndex(string)); - case 29: return GetGRFStringPtr(GetStringIndex(string) + 0x0800); - case 30: return GetGRFStringPtr(GetStringIndex(string) + 0x1000); + case TEXT_TAB_OLD_NEWGRF: NOT_REACHED(); + case TEXT_TAB_NEWGRF1: return GetGRFStringPtr(GetStringIndex(string)); + case TEXT_TAB_NEWGRF2: return GetGRFStringPtr(GetStringIndex(string) + 0x0800); + case TEXT_TAB_NEWGRF3: return GetGRFStringPtr(GetStringIndex(string) + 0x1000); default: return _langpack_offs[_langtab_start[GetStringTab(string)] + GetStringIndex(string)]; } } @@ -220,42 +220,45 @@ char *GetStringWithArgs(char *buffr, StringID string, StringParameters *args, co if (string == 0) return GetStringWithArgs(buffr, STR_UNDEFINED, args, last); uint index = GetStringIndex(string); - uint tab = GetStringTab(string); + StringTab tab = GetStringTab(string); switch (tab) { - case 4: + case TEXT_TAB_TOWN: if (index >= 0xC0 && !game_script) { return GetSpecialTownNameString(buffr, index - 0xC0, args->GetInt32(), last); } break; - case 14: + case TEXT_TAB_SPECIAL: if (index >= 0xE4 && !game_script) { return GetSpecialNameString(buffr, index - 0xE4, args, last); } break; - case 15: + case TEXT_TAB_OLD_CUSTOM: /* Old table for custom names. This is no longer used */ if (!game_script) { error("Incorrect conversion of custom name string."); } break; - case GAME_TEXT_TAB: + case TEXT_TAB_GAMESCRIPT: return FormatString(buffr, GetGameStringPtr(index), args, last, case_index, true); - case 26: + case TEXT_TAB_OLD_NEWGRF: NOT_REACHED(); - case 28: + case TEXT_TAB_NEWGRF1: return FormatString(buffr, GetGRFStringPtr(index), args, last, case_index); - case 29: + case TEXT_TAB_NEWGRF2: return FormatString(buffr, GetGRFStringPtr(index + 0x0800), args, last, case_index); - case 30: + case TEXT_TAB_NEWGRF3: return FormatString(buffr, GetGRFStringPtr(index + 0x1000), args, last, case_index); + + default: + break; } if (index >= _langtab_num[tab]) { @@ -886,7 +889,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg buff = strecat(buff, "(invalid sub-StringID)", last); break; } - param = MakeStringID(GAME_TEXT_TAB, param); + param = MakeStringID(TEXT_TAB_GAMESCRIPT, param); } sub_args.SetParam(i++, param); @@ -901,7 +904,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg /* If we didn't error out, we can actually print the string. */ if (*str != '\0') { str = p; - buff = GetStringWithArgs(buff, MakeStringID(GAME_TEXT_TAB, stringid), &sub_args, last, true); + buff = GetStringWithArgs(buff, MakeStringID(TEXT_TAB_GAMESCRIPT, stringid), &sub_args, last, true); } for (int i = 0; i < 20; i++) { @@ -1017,7 +1020,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING: {// {STRING} StringID str = args->GetInt32(SCC_STRING); - if (game_script && GetStringTab(str) != GAME_TEXT_TAB) break; + if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT) break; /* WARNING. It's prohibited for the included string to consume any arguments. * For included strings that consume argument, you should use STRING1, STRING2 etc. * To debug stuff you can set argv to NULL and it will tell you */ @@ -1036,7 +1039,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING7: { // {STRING1..7} /* Strings that consume arguments */ StringID str = args->GetInt32(b); - if (game_script && GetStringTab(str) != GAME_TEXT_TAB) break; + if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT) break; uint size = b - SCC_STRING1 + 1; if (game_script && size > args->GetDataLeft()) { buff = strecat(buff, "(too many parameters)", last); @@ -1736,13 +1739,13 @@ bool ReadLanguagePack(const LanguageMetadata *lang) } #if TTD_ENDIAN == TTD_BIG_ENDIAN - for (uint i = 0; i < TAB_COUNT; i++) { + for (uint i = 0; i < TEXT_TAB_END; i++) { lang_pack->offsets[i] = ReadLE16Aligned(&lang_pack->offsets[i]); } #endif /* TTD_ENDIAN == TTD_BIG_ENDIAN */ uint count = 0; - for (uint i = 0; i < TAB_COUNT; i++) { + for (uint i = 0; i < TEXT_TAB_END; i++) { uint16 num = lang_pack->offsets[i]; if (num > TAB_SIZE) { free(lang_pack); @@ -2051,12 +2054,12 @@ class LanguagePackGlyphSearcher : public MissingGlyphSearcher { /* virtual */ const char *NextString() { - if (this->i >= TAB_COUNT) return NULL; + if (this->i >= TEXT_TAB_END) return NULL; const char *ret = _langpack_offs[_langtab_start[this->i] + this->j]; this->j++; - while (this->i < TAB_COUNT && this->j >= _langtab_num[this->i]) { + while (this->i < TEXT_TAB_END && this->j >= _langtab_num[this->i]) { this->i++; this->j = 0; } diff --git a/src/strings_func.h b/src/strings_func.h index 3e3aa4840f..7ad20eb1f6 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -22,9 +22,9 @@ * @param str String identifier * @return StringTab from \a str */ -static inline uint GetStringTab(StringID str) +static inline StringTab GetStringTab(StringID str) { - return GB(str, TAB_SIZE_BITS, 5); + return (StringTab)GB(str, TAB_SIZE_BITS, 5); } /** @@ -43,8 +43,9 @@ static inline uint GetStringIndex(StringID str) * @param index StringIndex * @return StringID composed from \a tab and \a index */ -static inline StringID MakeStringID(uint tab, uint index) +static inline StringID MakeStringID(StringTab tab, uint index) { + assert(tab < TEXT_TAB_END); assert(index < TAB_SIZE); return tab << TAB_SIZE_BITS | index; } diff --git a/src/strings_type.h b/src/strings_type.h index 780221d0a8..098d3f94db 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -26,6 +26,24 @@ enum TextDirection { TD_RTL, ///< Text is written right-to-left by default }; +/** StringTabs to group StringIDs */ +enum StringTab { + /* Tabs 0..1 for regular strings */ + TEXT_TAB_TOWN = 4, + TEXT_TAB_INDUSTRY = 9, + TEXT_TAB_STATION = 12, + TEXT_TAB_SPECIAL = 14, + TEXT_TAB_OLD_CUSTOM = 15, + TEXT_TAB_VEHICLE = 16, + /* Tab 17 for regular strings */ + TEXT_TAB_GAMESCRIPT = 18, + TEXT_TAB_OLD_NEWGRF = 26, + TEXT_TAB_NEWGRF1 = 28, + TEXT_TAB_NEWGRF2 = 29, + TEXT_TAB_NEWGRF3 = 30, + TEXT_TAB_END = 32 +}; + /** Number of bits for the StringIndex within a StringTab */ static const uint TAB_SIZE_BITS = 11; /** Number of strings per StringTab */ From 0c1fcc02ec96c7ca69151b2be3d0b575f1004dd1 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:41:14 +0000 Subject: [PATCH 252/417] (svn r27757) -Change: Make StringID 32bit. --- src/company_base.h | 4 ++-- src/saveload/company_sl.cpp | 2 +- src/saveload/saveload.h | 4 ++-- src/script/api/script_types.hpp | 2 +- src/strings_type.h | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/company_base.h b/src/company_base.h index 0017761216..4d76e6251a 100644 --- a/src/company_base.h +++ b/src/company_base.h @@ -52,10 +52,10 @@ extern CompanyPool _company_pool; /** Statically loadable part of Company pool item */ struct CompanyProperties { uint32 name_2; ///< Parameter of #name_1. - uint16 name_1; ///< Name of the company if the user did not change it. + StringID name_1; ///< Name of the company if the user did not change it. char *name; ///< Name of the company if the user changed it. - uint16 president_name_1; ///< Name of the president if the user did not change it. + StringID president_name_1; ///< Name of the president if the user did not change it. uint32 president_name_2; ///< Parameter of #president_name_1 char *president_name; ///< Name of the president if the user changed it. diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 2ad9759901..733bc0eaf9 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -244,7 +244,7 @@ static const SaveLoad _company_desc[] = { SLE_VAR(CompanyProperties, name_1, SLE_STRINGID), SLE_CONDSTR(CompanyProperties, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION), - SLE_VAR(CompanyProperties, president_name_1, SLE_UINT16), + SLE_VAR(CompanyProperties, president_name_1, SLE_STRINGID), SLE_VAR(CompanyProperties, president_name_2, SLE_UINT32), SLE_CONDSTR(CompanyProperties, president_name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION), diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 1513355c8d..d492558c5a 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -49,7 +49,7 @@ enum SavegameType { extern FileToSaveLoad _file_to_saveload; void GenerateDefaultSaveName(char *buf, const char *last); -void SetSaveLoadError(uint16 str); +void SetSaveLoadError(StringID str); const char *GetSaveLoadErrorString(); SaveOrLoadResult SaveOrLoad(const char *filename, SaveLoadOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded = true); void WaitTillSaved(); @@ -161,7 +161,7 @@ enum VarTypes { SLE_INT64 = SLE_FILE_I64 | SLE_VAR_I64, SLE_UINT64 = SLE_FILE_U64 | SLE_VAR_U64, SLE_CHAR = SLE_FILE_I8 | SLE_VAR_CHAR, - SLE_STRINGID = SLE_FILE_STRINGID | SLE_VAR_U16, + SLE_STRINGID = SLE_FILE_STRINGID | SLE_VAR_U32, SLE_STRINGBUF = SLE_FILE_STRING | SLE_VAR_STRB, SLE_STRINGBQUOTE = SLE_FILE_STRING | SLE_VAR_STRBQ, SLE_STRING = SLE_FILE_STRING | SLE_VAR_STR, diff --git a/src/script/api/script_types.hpp b/src/script/api/script_types.hpp index d3ac70b4d4..bd9b7c5607 100644 --- a/src/script/api/script_types.hpp +++ b/src/script/api/script_types.hpp @@ -98,7 +98,7 @@ typedef uint8 IndustryType; ///< The ID of an industry-type. typedef OverflowSafeInt64 Money; ///< Money, stored in a 32bit/64bit safe way. For scripts money is always in pounds. typedef uint16 SignID; ///< The ID of a sign. typedef uint16 StationID; ///< The ID of a station. -typedef uint16 StringID; ///< The ID of a string. +typedef uint32 StringID; ///< The ID of a string. typedef uint16 SubsidyID; ///< The ID of a subsidy. typedef uint16 StoryPageID; ///< The ID of a story page. typedef uint16 StoryPageElementID; ///< The ID of a story page element. diff --git a/src/strings_type.h b/src/strings_type.h index 098d3f94db..f8144f79f2 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -15,8 +15,8 @@ /** * Numeric value that represents a string, independent of the selected language. */ -typedef uint16 StringID; -static const StringID INVALID_STRING_ID = 0xFFFF; ///< Constant representing an invalid string +typedef uint32 StringID; +static const StringID INVALID_STRING_ID = 0xFFFF; ///< Constant representing an invalid string (16bit in case it is used in savegames) static const int MAX_CHAR_LENGTH = 4; ///< Max. length of UTF-8 encoded unicode character static const uint MAX_LANG = 0x7F; ///< Maximum number of languages supported by the game, and the NewGRF specs From ce32ca4dc67aebb965cfadc25198ae8cd789b886 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:41:30 +0000 Subject: [PATCH 253/417] (svn r27758) -Change: Increase the maximum number of GameScript texts to 64k, and NewGRF texts to 512k. --- src/newgrf_text.cpp | 6 +++--- src/script/api/script_error.cpp | 5 ++--- src/strings.cpp | 31 +++++++++++-------------------- src/strings_func.h | 19 ++++++++++++++----- src/strings_type.h | 14 +++++++++----- 5 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 279bd094c2..e4b3c382b3 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -156,7 +156,7 @@ struct GRFTextEntry { static uint _num_grf_texts = 0; -static GRFTextEntry _grf_text[TAB_SIZE * 3]; +static GRFTextEntry _grf_text[TAB_SIZE_NEWGRF]; static byte _currentLangID = GRFLX_ENGLISH; ///< by default, english is used. /** @@ -693,7 +693,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s'", id, grfid, stringid, newtext->langid, newtext->text); - return MakeStringID(TEXT_TAB_NEWGRF1, 0) + id; // Id reaches across multiple tabs + return MakeStringID(TEXT_TAB_NEWGRF_START, id); } /** @@ -703,7 +703,7 @@ StringID GetGRFStringID(uint32 grfid, uint16 stringid) { for (uint id = 0; id < _num_grf_texts; id++) { if (_grf_text[id].grfid == grfid && _grf_text[id].stringid == stringid) { - return MakeStringID(TEXT_TAB_NEWGRF1, 0) + id; // Id reaches across multiple tabs + return MakeStringID(TEXT_TAB_NEWGRF_START, id); } } diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp index b692c74f44..24c4919952 100644 --- a/src/script/api/script_error.cpp +++ b/src/script/api/script_error.cpp @@ -34,9 +34,8 @@ ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::S { uint index = GetStringIndex(internal_string_id); switch (GetStringTab(internal_string_id)) { - case TEXT_TAB_NEWGRF1: - case TEXT_TAB_NEWGRF2: - case TEXT_TAB_NEWGRF3: + case TEXT_TAB_NEWGRF_START: + case TEXT_TAB_GAMESCRIPT_START: return ERR_NEWGRF_SUPPLIED_ERROR; // NewGRF strings. case TEXT_TAB_SPECIAL: diff --git a/src/strings.cpp b/src/strings.cpp index 0d115def95..1c539d9343 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -195,12 +195,10 @@ static bool _scan_for_gender_data = false; ///< Are we scanning for the gender const char *GetStringPtr(StringID string) { switch (GetStringTab(string)) { - case TEXT_TAB_GAMESCRIPT: return GetGameStringPtr(GetStringIndex(string)); + case TEXT_TAB_GAMESCRIPT_START: return GetGameStringPtr(GetStringIndex(string)); /* 0xD0xx and 0xD4xx IDs have been converted earlier. */ case TEXT_TAB_OLD_NEWGRF: NOT_REACHED(); - case TEXT_TAB_NEWGRF1: return GetGRFStringPtr(GetStringIndex(string)); - case TEXT_TAB_NEWGRF2: return GetGRFStringPtr(GetStringIndex(string) + 0x0800); - case TEXT_TAB_NEWGRF3: return GetGRFStringPtr(GetStringIndex(string) + 0x1000); + case TEXT_TAB_NEWGRF_START: return GetGRFStringPtr(GetStringIndex(string)); default: return _langpack_offs[_langtab_start[GetStringTab(string)] + GetStringIndex(string)]; } } @@ -242,21 +240,15 @@ char *GetStringWithArgs(char *buffr, StringID string, StringParameters *args, co } break; - case TEXT_TAB_GAMESCRIPT: + case TEXT_TAB_GAMESCRIPT_START: return FormatString(buffr, GetGameStringPtr(index), args, last, case_index, true); case TEXT_TAB_OLD_NEWGRF: NOT_REACHED(); - case TEXT_TAB_NEWGRF1: + case TEXT_TAB_NEWGRF_START: return FormatString(buffr, GetGRFStringPtr(index), args, last, case_index); - case TEXT_TAB_NEWGRF2: - return FormatString(buffr, GetGRFStringPtr(index + 0x0800), args, last, case_index); - - case TEXT_TAB_NEWGRF3: - return FormatString(buffr, GetGRFStringPtr(index + 0x1000), args, last, case_index); - default: break; } @@ -825,17 +817,16 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg sub_args.ClearTypeInformation(); memset(sub_args_need_free, 0, sizeof(sub_args_need_free)); - uint16 stringid; const char *s = str; char *p; - stringid = strtol(str, &p, 16); + uint32 stringid = strtoul(str, &p, 16); if (*p != ':' && *p != '\0') { while (*p != '\0') p++; str = p; buff = strecat(buff, "(invalid SCC_ENCODED)", last); break; } - if (stringid >= TAB_SIZE) { + if (stringid >= TAB_SIZE_GAMESCRIPT) { while (*p != '\0') p++; str = p; buff = strecat(buff, "(invalid StringID)", last); @@ -883,13 +874,13 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg param = strtoull(s, &p, 16); if (lookup) { - if (param >= TAB_SIZE) { + if (param >= TAB_SIZE_GAMESCRIPT) { while (*p != '\0') p++; str = p; buff = strecat(buff, "(invalid sub-StringID)", last); break; } - param = MakeStringID(TEXT_TAB_GAMESCRIPT, param); + param = MakeStringID(TEXT_TAB_GAMESCRIPT_START, param); } sub_args.SetParam(i++, param); @@ -904,7 +895,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg /* If we didn't error out, we can actually print the string. */ if (*str != '\0') { str = p; - buff = GetStringWithArgs(buff, MakeStringID(TEXT_TAB_GAMESCRIPT, stringid), &sub_args, last, true); + buff = GetStringWithArgs(buff, MakeStringID(TEXT_TAB_GAMESCRIPT_START, stringid), &sub_args, last, true); } for (int i = 0; i < 20; i++) { @@ -1020,7 +1011,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING: {// {STRING} StringID str = args->GetInt32(SCC_STRING); - if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT) break; + if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT_START) break; /* WARNING. It's prohibited for the included string to consume any arguments. * For included strings that consume argument, you should use STRING1, STRING2 etc. * To debug stuff you can set argv to NULL and it will tell you */ @@ -1039,7 +1030,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING7: { // {STRING1..7} /* Strings that consume arguments */ StringID str = args->GetInt32(b); - if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT) break; + if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT_START) break; uint size = b - SCC_STRING1 + 1; if (game_script && size > args->GetDataLeft()) { buff = strecat(buff, "(too many parameters)", last); diff --git a/src/strings_func.h b/src/strings_func.h index 7ad20eb1f6..0da711bc4d 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -24,7 +24,10 @@ */ static inline StringTab GetStringTab(StringID str) { - return (StringTab)GB(str, TAB_SIZE_BITS, 5); + StringTab result = (StringTab)(str >> TAB_SIZE_BITS); + if (result >= TEXT_TAB_NEWGRF_START) return TEXT_TAB_NEWGRF_START; + if (result >= TEXT_TAB_GAMESCRIPT_START) return TEXT_TAB_GAMESCRIPT_START; + return result; } /** @@ -34,7 +37,7 @@ static inline StringTab GetStringTab(StringID str) */ static inline uint GetStringIndex(StringID str) { - return GB(str, 0, TAB_SIZE_BITS); + return str - (GetStringTab(str) << TAB_SIZE_BITS); } /** @@ -45,9 +48,15 @@ static inline uint GetStringIndex(StringID str) */ static inline StringID MakeStringID(StringTab tab, uint index) { - assert(tab < TEXT_TAB_END); - assert(index < TAB_SIZE); - return tab << TAB_SIZE_BITS | index; + if (tab == TEXT_TAB_NEWGRF_START) { + assert(index < TAB_SIZE_NEWGRF); + } else if (tab == TEXT_TAB_GAMESCRIPT_START) { + assert(index < TAB_SIZE_GAMESCRIPT); + } else { + assert(tab < TEXT_TAB_END); + assert(index < TAB_SIZE); + } + return (tab << TAB_SIZE_BITS) + index; } class StringParameters { diff --git a/src/strings_type.h b/src/strings_type.h index f8144f79f2..aa3ed788c3 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -36,12 +36,10 @@ enum StringTab { TEXT_TAB_OLD_CUSTOM = 15, TEXT_TAB_VEHICLE = 16, /* Tab 17 for regular strings */ - TEXT_TAB_GAMESCRIPT = 18, TEXT_TAB_OLD_NEWGRF = 26, - TEXT_TAB_NEWGRF1 = 28, - TEXT_TAB_NEWGRF2 = 29, - TEXT_TAB_NEWGRF3 = 30, - TEXT_TAB_END = 32 + TEXT_TAB_END = 32, ///< End of language files. + TEXT_TAB_GAMESCRIPT_START = 32, ///< Start of GameScript supplied strings. + TEXT_TAB_NEWGRF_START = 64, ///< Start of NewGRF supplied strings. }; /** Number of bits for the StringIndex within a StringTab */ @@ -49,6 +47,12 @@ static const uint TAB_SIZE_BITS = 11; /** Number of strings per StringTab */ static const uint TAB_SIZE = 1 << TAB_SIZE_BITS; +/** Number of strings for GameScripts */ +static const uint TAB_SIZE_GAMESCRIPT = TAB_SIZE * 32; + +/** Number of strings for NewGRFs */ +static const uint TAB_SIZE_NEWGRF = TAB_SIZE * 256; + /** Special string constants */ enum SpecialStrings { From 40eee1e3a2c2fc315cc7048957c07c13c42e98a4 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 20:10:41 +0000 Subject: [PATCH 254/417] (svn r27759) -Fix: strgen compilation --- src/strgen/strgen.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 85b83f2b57..fa29424658 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -525,7 +525,7 @@ int CDECL main(int argc, char *argv[]) mkpath(pathbuf, lastof(pathbuf), src_dir, "english.txt"); /* parse master file */ - StringData data(TAB_COUNT); + StringData data(TEXT_TAB_END); FileStringReader master_reader(data, pathbuf, true, false); master_reader.ParseFile(); if (_errors != 0) return 1; @@ -542,7 +542,7 @@ int CDECL main(int argc, char *argv[]) mkpath(pathbuf, lastof(pathbuf), src_dir, "english.txt"); - StringData data(TAB_COUNT); + StringData data(TEXT_TAB_END); /* parse master file and check if target file is correct */ FileStringReader master_reader(data, pathbuf, true, false); master_reader.ParseFile(); From 60f7168c227d3939b5a040d4b6a6ba8390887a2a Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 20:31:02 +0000 Subject: [PATCH 255/417] (svn r27760) -Change: Enable realisitic train and road vehicle acceleration by default. --- src/saveload/afterload.cpp | 6 ++++-- src/table/settings.ini | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index de3f7ccff9..8b59671757 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -718,12 +718,14 @@ bool AfterLoadGame() if (IsSavegameVersionBefore(95)) _settings_game.vehicle.dynamic_engines = 0; if (IsSavegameVersionBefore(96)) _settings_game.economy.station_noise_level = false; if (IsSavegameVersionBefore(133)) { - _settings_game.vehicle.roadveh_acceleration_model = 0; _settings_game.vehicle.train_slope_steepness = 3; } if (IsSavegameVersionBefore(134)) _settings_game.economy.feeder_payment_share = 75; if (IsSavegameVersionBefore(138)) _settings_game.vehicle.plane_crashes = 2; - if (IsSavegameVersionBefore(139)) _settings_game.vehicle.roadveh_slope_steepness = 7; + if (IsSavegameVersionBefore(139)) { + _settings_game.vehicle.roadveh_acceleration_model = 0; + _settings_game.vehicle.roadveh_slope_steepness = 7; + } if (IsSavegameVersionBefore(143)) _settings_game.economy.allow_town_level_crossings = true; if (IsSavegameVersionBefore(159)) { _settings_game.vehicle.max_train_length = 50; diff --git a/src/table/settings.ini b/src/table/settings.ini index f314f21e92..8e2aecac15 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -760,7 +760,7 @@ base = GameSettings var = vehicle.train_acceleration_model type = SLE_UINT8 guiflags = SGF_MULTISTRING -def = 0 +def = 1 min = 0 max = 1 interval = 1 @@ -775,7 +775,7 @@ var = vehicle.roadveh_acceleration_model type = SLE_UINT8 from = 139 guiflags = SGF_MULTISTRING -def = 0 +def = 1 min = 0 max = 1 interval = 1 From 9071d5f07fb948a08bf784425c45b9934866b321 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 27 Feb 2017 18:45:37 +0000 Subject: [PATCH 256/417] (svn r27761) -Update from Eints: croatian: 3 changes by VoyagerOne italian: 5 changes by lorenzodv english (us): 4 changes by Supercheese latin: 4 changes by Supercheese --- src/lang/croatian.txt | 3 +++ src/lang/english_US.txt | 4 ++++ src/lang/italian.txt | 5 +++++ src/lang/latin.txt | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 29f2a03402..47ddd6a218 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3390,6 +3390,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Treba: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Treba +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}čeka ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 010deba2b6..eecfb32f73 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1761,6 +1761,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Check fo STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Display AI/Game script settings STR_INTRO_TOOLTIP_QUIT :{BLACK}Quit 'OpenTTD' +STR_INTRO_BASESET :{BLACK}The currently selected base graphics set is missing {NUM} sprite{P "" s}. Please check for updates for the baseset. STR_INTRO_TRANSLATION :{BLACK}This translation misses {NUM} string{P "" s}. Please help make OpenTTD better by signing up as translator. See readme.txt for details. # Quit window @@ -3293,6 +3294,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}waiting ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index a7f78af542..92e51b815d 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3324,6 +3324,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Richiede STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Richiede: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Richiede +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}in attesa +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 32a3076e25..380ac68537 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1949,6 +1949,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Inspicer STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Monstrare optiones IA/Ludi scriptorum STR_INTRO_TOOLTIP_QUIT :{BLACK}Exire OpenTTD +STR_INTRO_BASESET :{BLACK}Hoc fundamento graphico desunt spiritus {NUM}. Quaere novam editionem huius fundamenti. STR_INTRO_TRANSLATION :{BLACK}In hac interpretatione, {NUM} series desunt. Quaesimus, iuva OpenTTD meliorari et dic te velle interpretem esse. Vide readme.txt in quo plura sunt. # Quit window @@ -3495,6 +3496,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Postulat STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Postulat +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING.acc} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}manet ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING} From a192fa74a73efb6e26a0fb099f74a3d40571950b Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 28 Feb 2017 18:45:37 +0000 Subject: [PATCH 257/417] (svn r27762) -Update from Eints: catalan: 5 changes by juanjo greek: 29 changes by kyrm croatian: 2 changes by UnderwaterHesus japanese: 4 changes by nex259 --- src/lang/catalan.txt | 5 +++++ src/lang/croatian.txt | 2 ++ src/lang/greek.txt | 52 ++++++++++++++++++++++++------------------- src/lang/japanese.txt | 4 ++++ 4 files changed, 40 insertions(+), 23 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 7fec96cb1b..3f6b25da20 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3295,6 +3295,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necessit STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessita: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necessita +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperant +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 47ddd6a218..2dbc967631 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3393,6 +3393,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: { STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Treba STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}čeka +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 769fd6d0dd..0e0cb61287 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1870,6 +1870,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Έλεγ STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Εμφάνιση ρυθμίσεων για AI και της δέσμης ενεργειών του παιχνιδιού STR_INTRO_TOOLTIP_QUIT :{BLACK}Έξοδος από το «OpenTTD» +STR_INTRO_BASESET :{BLACK}Λείπουν {NUM} sprite{P "" s} από το επιλεγμένο βασικό σετ γραφικών. Παρακαλούμε ελέγξτε για ενημερώσεις του βασικού σετ. STR_INTRO_TRANSLATION :{BLACK}Λείπουν {NUM} παράμετροι από τη μετάφραση. Παρακαλούμε βοηθήστε να κάνουμε το OpenTTD καλύτερο εγγραφόμενοι ως μεταφραστές. Δείτε το αρχείο readme.txt για λεπτομέρειες. # Quit window @@ -2698,6 +2699,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Όνομ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Αποδεκτά εμπορεύματα: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Τύπος σιδηροτροχιάς: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Όριο ταχύτητας σιδηροτροχιάς: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Όριο ταχύτητας δρόμου: {LTBLUE}{VELOCITY} @@ -2710,29 +2712,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Χωράφια STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Χιονισμένο έδαφος STR_LAI_CLEAR_DESCRIPTION_DESERT :Έρημος -STR_LAI_RAIL_DESCRIPTION_TRACK :Σιδηρόδρομος σιδηροτροχιά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με συνδυαστικά σήματα -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και ειδοποίησης -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά σήματα μονόδρομους διαδρομής και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Σιδηρόδρομος αμαξοστάσιο τρένων +STR_LAI_RAIL_DESCRIPTION_TRACK :Σιδηροδρομική τροχιά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Σιδηροδρομική τροχιά με σήματα εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Σιδηροδρομική τροχιά με συνδυαστικά σήματα +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Σιδηροδρομική τροχιά με σήματα διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα μονόδρομης διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και ειδοποίησης +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και μονόδρομους διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης και εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης και μονόδρομης διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Σιδηροδρομική τροχιά με σήματα εξόδου και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Σιδηροδρομική τροχιά με σήματα εξόδου και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα εξόδου και μονόδρομης διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Σιδηρόδρομος με σήματα διαδρομής και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα μονόδρομης διαδρομής και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα διαδρομής και μονόδρομης διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Αμαξοστάσιο σιδηροδρομικών τρένων STR_LAI_ROAD_DESCRIPTION_ROAD :Δρόμος STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Δρόμος με φωτισμό @@ -3401,6 +3403,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Απαι STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Απαιτεί: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Απαιτεί +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}σε αναμονή ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING} @@ -3672,6 +3677,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Πατή STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Εναλλαγή μεταξύ των παραθύρων αντικατάστασης μηχανών και βαγονιών STR_REPLACE_ENGINES :Μηχανές STR_REPLACE_WAGONS :Βαγόνια +STR_REPLACE_ALL_RAILTYPE :Όλα τα οχήματα σιδηρόδρομου STR_REPLACE_HELP_RAILTYPE :{BLACK}Επιλέξτε τον τύπο σιδηροδρόμου για τον οποίο θέλετε να γίνει η αντικατάσταση των μηχανών STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Εμφανίζει ποια μηχανή αυτή στα αριστερά θα αντικατασταθεί, εάν υπάρχει diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 74d0af78d1..8c4cc2599e 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2589,6 +2589,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}空港 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}受入れ貨物: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE : {BLACK}線路の種類: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}線路の制限速度: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}道路の最高速度: {LTBLUE}{VELOCITY} @@ -3292,6 +3293,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}必要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}必要資源: {YELLOW}{STRING}{STRING}、{STRING}{STRING}、{STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES : {BLACK}必要物資 +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT : {YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING} @@ -3557,6 +3560,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}クリ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}置換対象を機関車/貨車に切り替えます STR_REPLACE_ENGINES :機関車 STR_REPLACE_WAGONS :貨車 +STR_REPLACE_ALL_RAILTYPE :全ての鉄道車両 STR_REPLACE_HELP_RAILTYPE :{BLACK}置換対象となる線路種類を切り替えます STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}左で選択された機関車の置換対象を(あれば)表示します From a8f9520bbdcd7cfd0fcd9f77d6edf11801364324 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 1 Mar 2017 18:45:37 +0000 Subject: [PATCH 258/417] (svn r27763) -Update from Eints: korean: 6 changes by telk5093 frisian: 2 changes by Fopper russian: 5 changes by Lone_Wolf --- src/lang/korean.txt | 7 ++++++- src/lang/russian.txt | 5 +++++ src/lang/unfinished/frisian.txt | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index b12944096e..31b3a62012 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2937,7 +2937,7 @@ STR_NEWGRF_BROKEN :{WHITE}'{0:STRI STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}차고지 안에 있지 않은 '{1:ENGINE}'에 대한 동력 차량 상태가 바뀌었습니다. STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:ENGINE}'{G 1 "이" "가"} 차고지 안에 있지 않으면 차량 길이가 바뀝니다. STR_NEWGRF_BROKEN_CAPACITY :{WHITE}차량이 기지 안에 있지 않거나 개조가 불가능한 상태에서 '{1:ENGINE}'의 수송량이 변경되었습니다. -STR_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:COMPANY}'에 속한 열차 '{0:VEHICLE}'의 길이가 잘못된 값을 가지고 있습니다. NewGRF에 의한 문제로 추축됩니다. 게임이 비동기화 또는 충돌을 일으킬 수 있습니다. +STR_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:COMPANY}'에 속한 열차 '{0:VEHICLE}'의 길이가 잘못된 값을 가지고 있습니다. NewGRF에 의한 문제로 보입니다. 게임이 비동기화 또는 충돌을 일으킬 수 있습니다. STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' (이)가 잘못된 정보를 제공하고 있습니다. STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}{1:ENGINE}(을)를 만들기 이전과 이후의 화물/개조 정보가 현재의 구매 목록과 다릅니다. 이 경우 자동 교체시 열차 개조에 실패할 수도 있습니다. @@ -3295,6 +3295,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}필요 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}필요함: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}받는 화물 +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}대기중 +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 798a1aa17a..66c9488411 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3474,6 +3474,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Треб STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Требуется: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Требуется +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}готово к отправке +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING} diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index df912a4991..ceb0e77490 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3388,6 +3388,7 @@ STR_ORDER_GO_NON_STOP_VIA :Gean non-stop f STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Feroarje it stop gedrach fan selektearre opdracht STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Alle fracht folslein lade +STR_ORDER_DROP_LOAD_IF_POSSIBLE :Lade as beskikber STR_ORDER_DROP_FULL_LOAD_ANY :Samar in fracht folslein lade STR_ORDER_DROP_NO_LOADING :Net laden @@ -3597,6 +3598,7 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN # Textfile window +STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING} feroarings fan {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} lisinsje fan {STRING} STR_TEXTFILE_WRAP_TEXT :{WHITE}Omwikkelje tekst STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Feroarings From d22b80779bae23deca86a4c3c988e91b8e7843f5 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 2 Mar 2017 18:45:38 +0000 Subject: [PATCH 259/417] (svn r27764) -Update from Eints: russian: 3 changes by Lone_Wolf french: 6 changes by glx --- src/lang/french.txt | 6 ++++++ src/lang/russian.txt | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lang/french.txt b/src/lang/french.txt index 1835145e3b..3363437a59 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1762,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Vérifie STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Afficher la configuration des scripts STR_INTRO_TOOLTIP_QUIT :{BLACK}Quitter OpenTTD +STR_INTRO_BASESET :{BLACK}{NUM} sprite{P "" s} manque{P "" "nt"} dans les graphiques de base actuellement sélectionnés. Veuillez vérifier les mises à jours pour les graphiques de base. STR_INTRO_TRANSLATION :{BLACK}Il manque {NUM} chaîne{P "" s} dans cette traduction. Merci d'aider à améliorer OpenTTD en vous inscrivant comme traducteur. Voir readme.txt pour les détails. # Quit window @@ -3294,6 +3295,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nécessi STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nécessite{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Nécessite +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}en attente +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 66c9488411..46134e68e9 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3299,7 +3299,7 @@ STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPAN STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Рейтинг STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Показать рейтинг станции -STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Месячный объём поставок и местный рейтинг: +STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Месячный объём перевозок и местный рейтинг: STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%) STR_STATION_VIEW_GROUP :{BLACK}Группировать @@ -3316,7 +3316,7 @@ STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHO STR_STATION_VIEW_FROM_HERE :{GREEN}{CARGO_SHORT} с этой станции STR_STATION_VIEW_VIA_HERE :{GREEN}{CARGO_SHORT} через эту станцию STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} на эту станцию -STR_STATION_VIEW_NONSTOP :{YELLOW}{CARGO_SHORT} без пересадок +STR_STATION_VIEW_NONSTOP :{YELLOW}{CARGO_SHORT} без остановок STR_STATION_VIEW_GROUP_S_V_D :Откуда - Через - Куда STR_STATION_VIEW_GROUP_S_D_V :Откуда - Куда - Через @@ -3462,7 +3462,7 @@ STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Спис # Industry view STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} -STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Произведено за прошлый месяц: +STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Произведено в прошлом месяце: STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% перевезено) STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Показать предприятие в основном окне. Ctrl+щелчок - показать в дополнительном окне. STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Производительность: {YELLOW}{COMMA}% From 3342c5a367d0a6716d157dad6b5e1fc4ba2aa314 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 4 Mar 2017 18:45:36 +0000 Subject: [PATCH 260/417] (svn r27765) -Update from Eints: russian: 4 changes by Lone_Wolf --- src/lang/russian.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 46134e68e9..dbe7f3d110 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3162,8 +3162,8 @@ STR_TOWN_POPULATION :{BLACK}Насе STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN} STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Мегаполис) STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Население: {ORANGE}{COMMA}{BLACK} Зданий: {ORANGE}{COMMA} -STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пассажиров за прошлый месяц: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} -STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Почты за прошлый месяц: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} +STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пассажиров в прошлом месяце: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} +STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Почты в прошлом месяце: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Груз, необходимый для роста города: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} требу{G 0 е е е ю}тся STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} требу{G 0 е е е ю}тся зимой @@ -3474,9 +3474,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Треб STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Требуется: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends -STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Требуется +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Требуется: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} -STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}готово к отправке +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}ожидает STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} From 79439925c821735e9ac4b6330729de039cc85e8c Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 4 Mar 2017 20:09:42 +0000 Subject: [PATCH 261/417] Clear discardable chunk IDs in SlXvResetState. --- src/saveload/extended_ver_sl.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index 7b083a7f21..7a3e0ced88 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -107,6 +107,7 @@ void SlXvResetState() { _sl_is_ext_version = false; _sl_is_faked_ext = false; + _sl_xv_discardable_chunk_ids.clear(); memset(_sl_xv_feature_versions, 0, sizeof(_sl_xv_feature_versions)); } From 4180276c81e6e694a77a5014120368c7300cd86d Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Mar 2017 14:42:41 +0000 Subject: [PATCH 262/417] (svn r27766) -Fix: Obiwan opposed translations for text id D3FF and DCFF in Action 13. --- src/newgrf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 14593b7e30..e8659e4648 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -7244,7 +7244,7 @@ static void TranslateGRFStrings(ByteReader *buf) byte num_strings = buf->ReadByte(); uint16 first_id = buf->ReadWord(); - if (!((first_id >= 0xD000 && first_id + num_strings <= 0xD3FF) || (first_id >= 0xDC00 && first_id + num_strings <= 0xDCFF))) { + if (!((first_id >= 0xD000 && first_id + num_strings <= 0xD400) || (first_id >= 0xDC00 && first_id + num_strings <= 0xDD00))) { grfmsg(7, "TranslateGRFStrings: Attempting to set out-of-range string IDs in action 13 (first: 0x%4X, number: 0x%2X)", first_id, num_strings); return; } From f469b0be3e2c9189265d8134f01bc877567bf5e3 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Mar 2017 14:43:21 +0000 Subject: [PATCH 263/417] (svn r27767) -Codechange: Industries and houses should just use the default-case in Action 4. --- src/newgrf.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index e8659e4648..03390c251b 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5474,12 +5474,6 @@ static void FeatureNewName(ByteReader *buf) } break; - case GSF_INDUSTRIES: { - AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, true, name, STR_UNDEFINED); - break; - } - - case GSF_HOUSES: default: switch (GB(id, 8, 8)) { case 0xC4: // Station class name From 724f1f3b694da4ca91facca0b1b66c183d89ab97 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Mar 2017 14:44:15 +0000 Subject: [PATCH 264/417] (svn r27768) -Codechange: Use if and IsInsideMM instead of switch-case sequences to test for consecutive values. --- src/newgrf.cpp | 51 +++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 03390c251b..7d3944f4dd 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -550,24 +550,28 @@ static StringID TTDPStringIDToOTTDStringIDMapping(StringID str) */ StringID MapGRFStringID(uint32 grfid, StringID str) { - /* 0xD0 and 0xDC stand for all the TextIDs in the range - * of 0xD000 (misc graphics texts) and 0xDC00 (misc persistent texts). - * These strings are unique to each grf file, and thus require to be used with the - * grfid in which they are declared */ - switch (GB(str, 8, 8)) { - case 0xD0: case 0xD1: case 0xD2: case 0xD3: - case 0xDC: - return GetGRFStringID(grfid, str); - - case 0xD4: case 0xD5: case 0xD6: case 0xD7: - /* Strings embedded via 0x81 have 0x400 added to them (no real - * explanation why...) */ - return GetGRFStringID(grfid, str - 0x400); - - default: break; + if (IsInsideMM(str, 0xDC00, 0xDD00)) { + /* General text provided by NewGRF. + * In the specs this is called the 0xDCxx range (misc presistent texts). + * Note: We are not involved in the "persistent" business, since we do not store + * any NewGRF strings in savegames. */ + return GetGRFStringID(grfid, str); + } else if (IsInsideMM(str, 0xD000, 0xD800)) { + /* Callback text provided by NewGRF. + * In the specs this is called the 0xD0xx range (misc graphics texts). + * These texts can be returned by various callbacks. + * + * Due to how TTDP implements the GRF-local- to global-textid translation + * texts included via 0x80 or 0x81 control codes have to add 0x400 to the textid. + * We do not care about that difference and just mask out the 0x400 bit. + */ + str &= ~0x400; + return GetGRFStringID(grfid, str); + } else { + /* The NewGRF wants to include/reference an original TTD string. + * Try our best to find an equivalent one. */ + return TTDPStringIDToOTTDStringIDMapping(str); } - - return TTDPStringIDToOTTDStringIDMapping(str); } static std::map _grf_id_overrides; @@ -5475,6 +5479,11 @@ static void FeatureNewName(ByteReader *buf) break; default: + if (IsInsideMM(id, 0xD000, 0xD400) || IsInsideMM(id, 0xDC00, 0xDD00)) { + AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, true, name, STR_UNDEFINED); + break; + } + switch (GB(id, 8, 8)) { case 0xC4: // Station class name if (_cur.grffile->stations == NULL || _cur.grffile->stations[GB(id, 0, 8)] == NULL) { @@ -5509,14 +5518,6 @@ static void FeatureNewName(ByteReader *buf) } break; - case 0xD0: - case 0xD1: - case 0xD2: - case 0xD3: - case 0xDC: - AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, true, name, STR_UNDEFINED); - break; - default: grfmsg(7, "FeatureNewName: Unsupported ID (0x%04X)", id); break; From bc2382af06ea30e96d15c2104dce43415871f456 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Mar 2017 14:45:13 +0000 Subject: [PATCH 265/417] (svn r27769) -Change: [NewGRF] Extend the DCxx range to D800-DFFF. --- src/newgrf.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 7d3944f4dd..9c7188ec70 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -550,9 +550,10 @@ static StringID TTDPStringIDToOTTDStringIDMapping(StringID str) */ StringID MapGRFStringID(uint32 grfid, StringID str) { - if (IsInsideMM(str, 0xDC00, 0xDD00)) { + if (IsInsideMM(str, 0xD800, 0xE000)) { /* General text provided by NewGRF. - * In the specs this is called the 0xDCxx range (misc presistent texts). + * In the specs this is called the 0xDCxx range (misc presistent texts), + * but we meanwhile extended the range to 0xD800-0xDFFF. * Note: We are not involved in the "persistent" business, since we do not store * any NewGRF strings in savegames. */ return GetGRFStringID(grfid, str); @@ -5479,7 +5480,7 @@ static void FeatureNewName(ByteReader *buf) break; default: - if (IsInsideMM(id, 0xD000, 0xD400) || IsInsideMM(id, 0xDC00, 0xDD00)) { + if (IsInsideMM(id, 0xD000, 0xD400) || IsInsideMM(id, 0xD800, 0xE000)) { AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, true, name, STR_UNDEFINED); break; } @@ -7239,7 +7240,7 @@ static void TranslateGRFStrings(ByteReader *buf) byte num_strings = buf->ReadByte(); uint16 first_id = buf->ReadWord(); - if (!((first_id >= 0xD000 && first_id + num_strings <= 0xD400) || (first_id >= 0xDC00 && first_id + num_strings <= 0xDD00))) { + if (!((first_id >= 0xD000 && first_id + num_strings <= 0xD400) || (first_id >= 0xD800 && first_id + num_strings <= 0xE000))) { grfmsg(7, "TranslateGRFStrings: Attempting to set out-of-range string IDs in action 13 (first: 0x%4X, number: 0x%2X)", first_id, num_strings); return; } From 0d5ee772fca5fc24da19c399e27265913b94f739 Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sun, 5 Mar 2017 17:06:14 +0000 Subject: [PATCH 266/417] (svn r27770) -Fix [FS#6540]: Initialize variables in station_sl.cpp (JGR) --- src/saveload/station_sl.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 3db5e1f5f8..391ba30a8e 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -325,6 +325,10 @@ static void SwapPackets(GoodsEntry *ge) static void Load_STNS() { + _cargo_source_xy = 0; + _cargo_days = 0; + _cargo_feeder_share = 0; + int index; while ((index = SlIterateArray()) != -1) { Station *st = new (index) Station(); @@ -514,8 +518,9 @@ static void Save_STNN() static void Load_STNN() { - int index; + _num_flows = 0; + int index; while ((index = SlIterateArray()) != -1) { bool waypoint = (SlReadByte() & FACIL_WAYPOINT) != 0; From 4d12cce1c42cd4fd17aef725e90da50d80dbcd43 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 7 Mar 2017 18:45:38 +0000 Subject: [PATCH 267/417] (svn r27771) -Update from Eints: malay: 27 changes by stress_043 --- src/lang/malay.txt | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 37744bd09d..6c123b820c 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1073,6 +1073,7 @@ STR_CONFIG_SETTING_TYPE_GAME_INGAME :Tetapan permain STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Tetapan syarikat (disimpan di simpanan; berkesan hanya permainan baru) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Tetapan syarikat (disimpan di penyimpanan; hanya berkesan kepada syarikat semasa) +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategori: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Hadkan senarai di bawah menggunakan penapis yang telah ditetapkan STR_CONFIG_SETTING_RESTRICT_BASIC :Asas (menunjukkan tetapan yang penting sahaja) STR_CONFIG_SETTING_RESTRICT_ADVANCED :Terperinci (tunjukkan kebanyakan tetapan) @@ -1080,6 +1081,7 @@ STR_CONFIG_SETTING_RESTRICT_ALL :Expert (memapar STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :Tetapan dengan nilai berbeza dari yang lalai STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Tetapan dengan nilai yang berbeza daripada tetapan baru permainananda +STR_CONFIG_SETTINGS_NONE :{WHITE}- Tiada - STR_CONFIG_SETTING_OFF :Matikan STR_CONFIG_SETTING_ON :Hidupkan @@ -1165,6 +1167,7 @@ STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Jumlah ruang ra STR_CONFIG_SETTING_MULTIPINDTOWN :Benarkan pelbagai industri sejenis di setiap bandar: {STRING} STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Biasanya sebuah bandar tidak mahu lebih daripada beberapa industri. Dengan tetapan ini membolehakn beberapa industri di bandar yang sama STR_CONFIG_SETTING_SIGNALSIDE :Pamer isyarat: {STRING} +STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :Di sebelah kanan STR_CONFIG_SETTING_SHOWFINANCES :Tunjukkan tetingkap kewangan setiap penghujung tahun: {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Arahan baru ialah 'tanpa henti' secara lazim: {STRING} STR_CONFIG_SETTING_STOP_LOCATION :Arahan keretapi baru berhenti secara lazim di pletfom {STRING} @@ -1302,6 +1305,7 @@ STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Tunjukkan landa STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Alat binaan tetap aktif selepas digunakan: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT :Perbelanjaan kumpulan dalam tetingkap kewangan syarikat: {STRING} +STR_CONFIG_SETTING_SOUND_CONFIRM :Pembinaan: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Nyahaktif infrastruktur bangunan apabila tiada kenderaan yang sesuai: {STRING} STR_CONFIG_SETTING_MAX_TRAINS :Amaun maksimum kereta api setiap syarikat: {STRING} @@ -1324,6 +1328,8 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Benarkan Kepint STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes sebelum skrip adalah digantung: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT :Tempoh waktu servis dalam peratusan: {STRING} +STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Pilih sama ada selenggara kenderaan dimulakan sejak tempoh masa dari servis terakhir atau apabila peratusan kebolehupayaan kenderaan berkurang kepada peratusan tertentu. +STR_CONFIG_SETTING_SERVINT_DISABLED :Dilumpuhkan STR_CONFIG_SETTING_NOSERVICE :Servis tidak diperlukan apabila kerosakan kenderaan ditetapkan kepada tiada: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Benarkan had kelajuan untuk gerabak: {STRING} STR_CONFIG_SETTING_DISABLE_ELRAILS :Tiada landasan elektrik: {STRING} @@ -1332,6 +1338,7 @@ STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Ketibaan kender STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Ketibaan kenderaan di stesen pesaing: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Kemalangan / bencana: {STRING} STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Maklumat syarikat: {STRING} +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Paparkan surat khabar mengenai pembukaan syarikat baru, atau apabila syarikat dalam risiko untuk muflis STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Pembukaan industri: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Penutupan industri: {STRING} STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Perubahan ekonomi: {STRING} @@ -1353,6 +1360,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Tahun permulaan STR_CONFIG_SETTING_SMOOTH_ECONOMY :Gunakan ekonomi baik (perubahan yang lebih kecil): {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Benarkan membeli saham syarikat lain: {STRING} STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Bina semafor secara automatik sebelum: {STRING} +STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Tetapkan tahun apabila isyarat berjenis elektrik digunakan untuk landasan. Sebelum tahun ini, isyarat bukan elektrik akan digunakan (memiliki fungsi yang sama, tetapi berlainan reka bentuk) STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Gunakan GUI isyarat: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Jenis isyarat yang dibina secara lazim: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Isyarat sekatan @@ -2308,27 +2316,27 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Ladang STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tanah diliputi salji STR_LAI_CLEAR_DESCRIPTION_DESERT :Padang pasir -STR_LAI_RAIL_DESCRIPTION_TRACK :Keretapi landasan +STR_LAI_RAIL_DESCRIPTION_TRACK :Landasan keretapi STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Keretapi landasan dengan isyarat sekatan STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Keretapi landasan dengan pra-isyarat -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Keretapi landasan dengan isyarat keluar -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Keretapi landasan dengan isyarat kombo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Landasan keretapi dengan isyarat keluar +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Landasan keretapi dengan isyarat kombo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Keretapi landasan dengan isyarat laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Keretapi landasan dengan isyarat satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Landasan keretapi dengan isyarat satu hala STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Keretapi landasan dengan isyarat sekatan dan pra-isyarat -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Keretapi landasan dengan isyarat sekatan dan keluar -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Keretapi landasan dengan isyarat sekatan dan kombo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Landasan keretapi dengan isyarat sekatan dan keluar +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Landasan keretapi dengan isyarat sekatan dan kombo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Keretapi landasan dengan isyarat sekatan dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Keretapi landasan dengan isyarat sekatan dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Landasan keretapi dengan isyarat sekatan dan satu hala STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Keretapi landasan dengan isyarat pra- dan keluar STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Keretapi landasan dengan isyarat pra- dan kombo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Keretapi landasan dengan isyarat pra- dan laluan STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Keretapi landasan dengan isyarat pra- dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Keretapi landasan dengan isyarat keluar dan kombo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Keretapi landasan dengan isyarat keluar dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Keretapi landasan dengan isyarat keluar dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Keretapi landasan dengan isyarat kombo dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Keretapi landasan dengan isyarat kombo dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Landasan keretapi dengan isyarat keluar dan kombo. +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Landasan keretapi dengan isyarat keluar dan laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Landasan keretapi dengan isyarat keluar dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Landasan keretapi dengan isyarat kombo dan signal laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Landasan keretapi dengan isyarat kombo dan satu hala STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Keretapi landasan dengan isyarat laluan dan satu hala STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Keretapi depoh keretapi @@ -2769,6 +2777,7 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik di atas servis untuk memusatkan pemandangan kepada industri/bandar. Ctrl+Klik untuk membuka tetingkap pemandangan di lokasi bandar # Story book window +STR_STORY_BOOK_TITLE :{YELLOW}{STRING} # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}Nama stesen - klik pada nama untuk memusatkan pemandangan ke stesen. Ctrl+Klik membuka tetingkap pemandangan di lokasi stesen @@ -2935,6 +2944,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Pengelua STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% dihantar) STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Pusatkan pemandangan utama ke lokasi industri. Ctrl+Klik untuk membuka tetingkap pemandangan di lokasi industri STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Tahap produksi: {YELLOW}{COMMA}% +STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW} Industri mengumumkan penutupan serta merta! ############ range for requires starts STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Memerlukan: {YELLOW}{STRING}{STRING} @@ -2942,6 +2952,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Memerluk STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Memerlukan: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Diperlukan ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING} @@ -3310,6 +3321,7 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Tempoh P STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Tambah 10 tempoh penyenggelaraan. Ctrl+Klik untuk tambah 5 tempoh penyenggelaraan STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Kurangkan 10 tempoh penyenggelaraan. Ctrl+Klik untuk kurangkan 5 tempoh penyenggelaraan +STR_VEHICLE_DETAILS_PERCENT :Peratusan STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}Nama keretapi STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}Nama kenderaan jalanraya @@ -4032,6 +4044,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Tidak bo STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... kenderaan sudah musnah +STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Mulakan permainan baru selepas {DATE_SHORT} atau gunakan NewGRF yang digunakan kenderaan terdahulu # Specific vehicle errors STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Keretapi tidak boleh melanggar isyarat kerana terdapat kemungkinan bahaya... @@ -4078,6 +4091,8 @@ STR_DESKTOP_SHORTCUT_COMMENT :Sebuah permaina # Translatable descriptions in media/baseset/*.ob* files STR_BASEGRAPHICS_DOS_DESCRIPTION :Grafik asal Transport Tycoon Deluxe DOS edition. STR_BASEGRAPHICS_WIN_DESCRIPTION :Grafik asal Transport Tycoon Deluxe edisi Windows. +STR_BASEMUSIC_WIN_DESCRIPTION :Muzik asal Transport Tycoon Deluxe edisi Windows. +STR_BASEMUSIC_NONE_DESCRIPTION :Pek muzik tanpa muzik sebenar. ##id 0x2000 # Town building names From 5e28cc47578c8084d6aa45de2f80814a040d3077 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 7 Mar 2017 20:18:54 +0000 Subject: [PATCH 268/417] (svn r27772) -Fix [FS#5819]: If the intro game had a savegame version which contains a NewGRF configuration, then townname NewGRFs would not be activated in the game options. --- src/saveload/newgrf_sl.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/saveload/newgrf_sl.cpp b/src/saveload/newgrf_sl.cpp index dacc127ea0..de261f02aa 100644 --- a/src/saveload/newgrf_sl.cpp +++ b/src/saveload/newgrf_sl.cpp @@ -96,8 +96,16 @@ static void Load_NGRF() { Load_NGRF_common(_grfconfig); - /* Append static NewGRF configuration, but only if there are some NewGRFs. */ - if (_game_mode != GM_MENU || _all_grfs != NULL) AppendStaticGRFConfigs(&_grfconfig); + if (_game_mode == GM_MENU) { + /* Intro game must not have NewGRF. */ + if (_grfconfig != NULL) SlErrorCorrupt("The intro game must not use NewGRF"); + + /* Activate intro NewGRFs (townnames) */ + ResetGRFConfig(false); + } else { + /* Append static NewGRF configuration */ + AppendStaticGRFConfigs(&_grfconfig); + } } static void Check_NGRF() From f2af019eb710bb51a74145755215bd7dcbc466b7 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 12:20:50 +0000 Subject: [PATCH 269/417] (svn r27773) -Update: Baseset translations --- bin/baseset/no_music.obm | 1 + bin/baseset/orig_win.obm | 1 + 2 files changed, 2 insertions(+) diff --git a/bin/baseset/no_music.obm b/bin/baseset/no_music.obm index 12ba68a3a1..7a70e3b55d 100644 --- a/bin/baseset/no_music.obm +++ b/bin/baseset/no_music.obm @@ -41,6 +41,7 @@ description.la_VA = Sarcina musicae sine ulla musica. description.lb_LU = E Musikpack ouni aktuell Musik. description.lt_LT = Muzikos pakas be muzikos. description.lv_LV = Mūzikas kopa bez mūzikas +description.ms_MY = Pek muzik tanpa muzik sebenar. description.nb_NO = En musikkpakke uten noe musikk. description.nl_NL = Een muziekset zonder muziek. description.nn_NO = Ei musikkpakke utan noko musikk. diff --git a/bin/baseset/orig_win.obm b/bin/baseset/orig_win.obm index 0682031547..8e2053e043 100644 --- a/bin/baseset/orig_win.obm +++ b/bin/baseset/orig_win.obm @@ -40,6 +40,7 @@ description.la_VA = Musica ex editione originale Transport Tycoon Deluxe Windows description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Musik. description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo muzika. description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma mūzika. +description.ms_MY = Muzik asal Transport Tycoon Deluxe edisi Windows. description.nb_NO = Original musikk fra Transport Tycoon Deluxe for Windows. description.nl_NL = Originele muziek van de Transport Tycoon Deluxe Windows-versie. description.nn_NO = Original musikk frå Transport Tycoon Deluxe for Windows. From 5b7a04ca2725dff958646ad252d8bb00ef323ef6 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 12:52:26 +0000 Subject: [PATCH 270/417] (svn r27774) -Fix [FS#5889]: Enabling palette animation for 32bpp blitters while paused skipped initialisation of the palette and resulted in black windows. -Revert (r23978): No SDL-specific fix required anymore. The new fix applies to all backends. --- src/blitter/32bpp_anim.hpp | 4 +++- src/video/sdl_v.cpp | 13 ------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/blitter/32bpp_anim.hpp b/src/blitter/32bpp_anim.hpp index a0a022e49f..4b08429edc 100644 --- a/src/blitter/32bpp_anim.hpp +++ b/src/blitter/32bpp_anim.hpp @@ -27,7 +27,9 @@ public: anim_buf(NULL), anim_buf_width(0), anim_buf_height(0) - {} + { + this->palette = _cur_palette; + } ~Blitter_32bppAnim(); diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 4ee96db778..4bb44c9d77 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -404,19 +404,6 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h) blitter->PostResize(); InitPalette(); - switch (blitter->UsePaletteAnimation()) { - case Blitter::PALETTE_ANIMATION_NONE: - case Blitter::PALETTE_ANIMATION_VIDEO_BACKEND: - UpdatePalette(); - break; - - case Blitter::PALETTE_ANIMATION_BLITTER: - if (VideoDriver::GetInstance() != NULL) blitter->PaletteAnimate(_local_palette); - break; - - default: - NOT_REACHED(); - } seprintf(caption, lastof(caption), "OpenTTD %s", _openttd_revision); SDL_CALL SDL_WM_SetCaption(caption, caption); From 51c6ae62d142e63b11ea8bc33b900d06bc5493cc Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 13:05:54 +0000 Subject: [PATCH 271/417] (svn r27775) -Fix [FS#6510]: Insufficient thread synchronisation when switching blitters. (JGR) --- src/gfxinit.cpp | 9 ++++++++- src/video/sdl_v.cpp | 11 +++++++++-- src/video/sdl_v.h | 4 ++++ src/video/video_driver.hpp | 13 +++++++++++++ src/video/win32_v.cpp | 11 +++++++++-- src/video/win32_v.h | 4 ++++ 6 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 6dea627dd0..06534ad298 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -290,6 +290,8 @@ static bool SwitchNewGRFBlitter() const bool animation_wanted = HasBit(_display_opt, DO_FULL_ANIMATION); const char *cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName(); + VideoDriver::GetInstance()->AcquireBlitterLock(); + for (uint i = 0; i < lengthof(replacement_blitters); i++) { if (animation_wanted && (replacement_blitters[i].animation == 0)) continue; if (!animation_wanted && (replacement_blitters[i].animation == 1)) continue; @@ -298,7 +300,10 @@ static bool SwitchNewGRFBlitter() if (!IsInsideMM(depth_wanted_by_grf, replacement_blitters[i].min_grf_depth, replacement_blitters[i].max_grf_depth + 1)) continue; const char *repl_blitter = replacement_blitters[i].name; - if (strcmp(repl_blitter, cur_blitter) == 0) return false; + if (strcmp(repl_blitter, cur_blitter) == 0) { + VideoDriver::GetInstance()->ReleaseBlitterLock(); + return false; + } if (BlitterFactory::GetBlitterFactory(repl_blitter) == NULL) continue; DEBUG(misc, 1, "Switching blitter from '%s' to '%s'... ", cur_blitter, repl_blitter); @@ -313,6 +318,8 @@ static bool SwitchNewGRFBlitter() if (BlitterFactory::SelectBlitter(cur_blitter) == NULL || !VideoDriver::GetInstance()->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config"); } + VideoDriver::GetInstance()->ReleaseBlitterLock(); + return true; } diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 4bb44c9d77..3668f86020 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -817,11 +817,18 @@ bool VideoDriver_SDL::ToggleFullscreen(bool fullscreen) } bool VideoDriver_SDL::AfterBlitterChange() +{ + return CreateMainSurface(_screen.width, _screen.height); +} + +void VideoDriver_SDL::AcquireBlitterLock() { if (_draw_mutex != NULL) _draw_mutex->BeginCritical(true); - bool ret = CreateMainSurface(_screen.width, _screen.height); +} + +void VideoDriver_SDL::ReleaseBlitterLock() +{ if (_draw_mutex != NULL) _draw_mutex->EndCritical(true); - return ret; } #endif /* WITH_SDL */ diff --git a/src/video/sdl_v.h b/src/video/sdl_v.h index 730f82b93f..8855c3566e 100644 --- a/src/video/sdl_v.h +++ b/src/video/sdl_v.h @@ -31,6 +31,10 @@ public: /* virtual */ bool AfterBlitterChange(); + /* virtual */ void AcquireBlitterLock(); + + /* virtual */ void ReleaseBlitterLock(); + /* virtual */ bool ClaimMousePointer(); /* virtual */ const char *GetName() const { return "sdl"; } diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 916044d358..5cb3c6cc3f 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -49,6 +49,7 @@ public: /** * Callback invoked after the blitter was changed. + * This may only be called between AcquireBlitterLock and ReleaseBlitterLock. * @return True if no error. */ virtual bool AfterBlitterChange() @@ -56,6 +57,18 @@ public: return true; } + /** + * Acquire any lock(s) required to be held when changing blitters. + * These lock(s) may not be acquired recursively. + */ + virtual void AcquireBlitterLock() { } + + /** + * Release any lock(s) required to be held when changing blitters. + * These lock(s) may not be acquired recursively. + */ + virtual void ReleaseBlitterLock() { } + virtual bool ClaimMousePointer() { return true; diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index c37ebd7dd6..e536ae8e5e 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -1333,11 +1333,18 @@ bool VideoDriver_Win32::ToggleFullscreen(bool full_screen) } bool VideoDriver_Win32::AfterBlitterChange() +{ + return AllocateDibSection(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen); +} + +void VideoDriver_Win32::AcquireBlitterLock() { if (_draw_mutex != NULL) _draw_mutex->BeginCritical(true); - bool ret = AllocateDibSection(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen); +} + +void VideoDriver_Win32::ReleaseBlitterLock() +{ if (_draw_mutex != NULL) _draw_mutex->EndCritical(true); - return ret; } void VideoDriver_Win32::EditBoxLostFocus() diff --git a/src/video/win32_v.h b/src/video/win32_v.h index 21d59185b9..7609d0422d 100644 --- a/src/video/win32_v.h +++ b/src/video/win32_v.h @@ -31,6 +31,10 @@ public: /* virtual */ bool AfterBlitterChange(); + /* virtual */ void AcquireBlitterLock(); + + /* virtual */ void ReleaseBlitterLock(); + /* virtual */ bool ClaimMousePointer(); /* virtual */ void EditBoxLostFocus(); From ffcdd47321296edadab9575171269356da29e379 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 13:34:01 +0000 Subject: [PATCH 272/417] (svn r27776) -Merge: Documentation updates from 1.6 branch --- changelog.txt | 65 +++++++++++++++++++++++++++++++ known-bugs.txt | 4 +- os/debian/changelog | 24 ++++++++++++ readme.txt | 4 +- src/script/api/ai_changelog.hpp | 65 ++++--------------------------- src/script/api/game_changelog.hpp | 34 +++------------- 6 files changed, 106 insertions(+), 90 deletions(-) diff --git a/changelog.txt b/changelog.txt index c110109386..89b3babf84 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,68 @@ +1.6.1 (2016-07-01) +------------------------------------------------------------------------ +- Fix: Compilation and optimisation issues with GCC6 (r27606, r27605, r27595) +- Fix: Compilation with --disable-network [FS#6481] (r27602) +- Fix: [NewGRF] shift-and-add-divide/modulo varadjusts use signed division/modulo (r27600) +- Fix: Company 0 could accept engine previews before they were offered (r27598) + + +1.6.1-RC1 (2016-06-01) +------------------------------------------------------------------------ +- Feature: Mexican Spanish (r27564, r27553, r27552) +- Change: Performance improvement for dedicated servers by skipping drawing calls earlier in the process [FS#6402] (r27579) +- Fix: Automatic servicing of road vehicles compared path finder costs with tile distances, thus vehicles went to depots which were factor 100 too far away [FS#6410] (r27586) +- Fix: Enforce a non-zero load amount for all vehicles, so that vehicles can process their cargo reservations [FS#6437] (r27585, r27584) +- Fix: Do not decrease the column width of depot windows when vehicles with high unitnumbers leave [FS#6415] (r27583) +- Fix: Button size computation in script configuration window [FS#6461] (r27581) +- Fix: [NewGRF] Set date of last service on construction also for wagons and articulated parts [FS#6395] (r27580) +- Fix: Vehicles could not be hidden from the purchase list when they were in exclusive preview [FS#6454] (r27578) +- Fix: Dock and roadstop picker, client list and town authority window did not auto-resize according to their content when they were positioned at the bottom of the screen [FS#6386] (r27577) +- Fix: Various incorrect but uncritical size computations in the content client [FS#6449] (r27576, r27570) +- Fix: Memory leak when disabling palette animation [FS#6404] (r27575) +- Fix: [NewGRF] The house id as returned by house variable 66 was incorrect when querying neighboured tiles [FS#6432] (r27574) +- Fix: [Build] Compilation failure with gcc 6.1 due to headers included after safeguards.h [FS#6467] (r27573) +- Fix: Convenience savegame bump to distinguish 1.6 savegames from 1.5 savegames [FS#6442] (r27572) +- Fix: [Build] Force sorting to be locale independent, so files are always ordered the same and by that token better diff-able (r27562, r27558) +- Fix: Typos in comments and string (r27561, r27560) +- Fix: [Build] bashism that caused different CFLAGS with bash vs dash (r27557) +- Fix: Use a more appropiate sound effect for convert-rail (r27547) +- Fix: Remove SetFill from vehicle GUI buttons, so that the viewport is resized instead of them in case of long window titles (r27546) +- Fix: [Script] Generation of API wrappers (r27545, r27544, r27543) +- Fix: [Windows] ICU got disabled for Windows builds, breaking RTL support [FS#6427] (r27542) +- Fix: [NewGRF] Station spritelayouts did not accept the var10 flag for the palette [FS#6435] (r27534) + + +1.6.0 (2016-04-01) +------------------------------------------------------------------------ +(None) + + +1.6.0-RC1 (2016-03-01) +------------------------------------------------------------------------ +- Feature: [NewGRF] Allow custom sound IDs in RV property 0x12, ship property 0x10 and aircraft property 0x12 (r27507) +- Feature: When viewing online content of a particular type, hide content of other types unless they have been (auto)selected for download (r27469, r27468, r27444) +- Feature: [NewGRF] Move sprite 8 positions in sprite aligner with ctrl+click [FS#6241] (r27451) +- Feature: Lower the sell-vehicle and sell-chain buttons in the train depot GUI while dragging a vehicle over it [FS#6391] (r27450, r27446) +- Feature: Make the object placement GUI an independent window (r27438, r27397, r27346) +- Feature: [Build] Project files and compilation with MSVC2015 (r27385, r27382, r27381, r27380, r27379) +- Feature: [NewGRF] Allow railtype NewGRF to define separate sprites for the fences on either track side [FS#6315] (r27354, r27343) +- Feature: [NewGRF] Increase the maximum amount of industry types to 128 per NewGRF and 240 in total (r27279) +- Feature: Make Ctrl+Remove-Roadstop also remove the road, just like for rail stations [FS#6252] (r27251) +- Change: [NewGRF] Allow static NewGRF to enable the second rocky tile set (r27497) +- Change: Round loading percentage in loading indicators and conditional orders towards 50%, so that 0% and 100% mean completely empty or full (r27426) +- Change: [Build] Rework the configure system to make more use of pkg-config (r27377:r27366, r27361, r27360) +- Change: Enable YAPF cache debugging with desync debug level 2 (r27332) +- Change: [strgen] Default plural subparameter position for CARGO_xxx string control codes is subparameter 1 (r27295) +- Change: [NewGRF] Translate industry variable A6 (r27267) +- Change: Do not consider cargo that is already being loaded as waiting cargo wrt. the station rating [FS#6165] (r27256) +- Change: Tune down terrain generation to reduce amount of long slopes (r27230) +- Change: Generate more detailed curves at the coast (r27229) +- Change: Slightly more water in the non-custom sea levels (r27228) +- Change: Be more lenient about road stop removal when at least one stop could be removed [FS#6262] (r27225) +- Fix: [Win32] Stdin/out/err need to be re-assigned differently if the runtime lib of MSVC2015 is used (r27481) +- Fix: [Haiku] On Haiku use the appropriate system variable to obtain the include dir [FS#6401] (r27472) + + 1.5.3 (2015-12-01) ------------------------------------------------------------------------ (None) diff --git a/known-bugs.txt b/known-bugs.txt index 34aca33002..f5ae731018 100644 --- a/known-bugs.txt +++ b/known-bugs.txt @@ -1,6 +1,6 @@ OpenTTD's known bugs -Last updated: 2015-02-24 -Release version: 1.5.0-beta2 +Last updated: 2016-07-01 +Release version: 1.6.1 ------------------------------------------------------------------------ diff --git a/os/debian/changelog b/os/debian/changelog index 4dd5b1155f..c8cf30794b 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -1,3 +1,27 @@ +openttd (1.6.1-0) unstable; urgency=low + + * New upstream release 1.6.1 + + -- OpenTTD Fri, 01 Jul 2016 00:00:00 +0200 + +openttd (1.6.1~RC1-0) unstable; urgency=low + + * New upstream release 1.6.1-RC1 + + -- OpenTTD Wed, 01 Jun 2016 21:00:00 +0200 + +openttd (1.6.0-0) unstable; urgency=low + + * New upstream release 1.6.0 + + -- OpenTTD Fri, 01 Apr 2016 21:00:00 +0200 + +openttd (1.6.0~RC1-0) unstable; urgency=low + + * New upstream release 1.6.0-RC1 + + -- OpenTTD Tue, 01 Mar 2016 21:00:00 +0100 + openttd (1.5.3-0) unstable; urgency=low * New upstream release 1.5.3 diff --git a/readme.txt b/readme.txt index 817f397b51..e378bd5d22 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ -Last updated: 2015-02-24 -Release version: 1.5.0-beta2 +Last updated: 2016-07-01 +Release version: 1.6.1 ------------------------------------------------------------------------ diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp index 2d0fe01f8d..23f4a0958f 100644 --- a/src/script/api/ai_changelog.hpp +++ b/src/script/api/ai_changelog.hpp @@ -19,19 +19,11 @@ * * 1.7.0 is not yet released. The following changes are not set in stone yet. * - * \b 1.6.0 + * \b 1.6.1 - 1.6.0 * * No changes * - * \b 1.5.3 - * - * No changes - * - * \b 1.5.2 - * - * No changes - * - * \b 1.5.1 + * \b 1.5.3 - 1.5.1 * * No changes * @@ -53,20 +45,7 @@ * \li AIStationList_CargoWaitingFromByVia * \li AIStationList_CargoWaitingViaByFrom * - * \b 1.4.4 - * - * No changes - * - * \b 1.4.3 - * - * No changes - * - * \b 1.4.2 - * - * No changes - * - * \b 1.4.1 - * + * \b 1.4.4 - 1.4.1 * No changes * * \b 1.4.0 @@ -87,11 +66,7 @@ * \li AIStation::GetCargoRating does return -1 for cargo-station combinations that * do not have a rating yet instead of returning 69. * - * \b 1.3.3 - * - * No changes - * - * \b 1.3.2 + * \b 1.3.3 - 1.3.2 * * No changes * @@ -110,15 +85,7 @@ * \li AIStation::OpenCloseAirport * \li AIController::Break * - * \b 1.2.3 - * - * No changes - * - * \b 1.2.2 - * - * No changes - * - * \b 1.2.1 + * \b 1.2.3 - 1.2.1 * * No changes * @@ -185,15 +152,7 @@ * API additions: * \li AIVehicle::ERR_VEHICLE_TOO_LONG in case vehicle length limit is reached. * - * \b 1.1.3 - * - * No changes - * - * \b 1.1.2 - * - * No changes - * - * \b 1.1.1 + * \b 1.1.3 - 1.1.1 * * No changes * @@ -224,11 +183,7 @@ * \li AIRoad::BuildDriveThroughRoadStation now allows overbuilding. * \li AIRoad::BuildRoadStation now allows overbuilding. * - * \b 1.0.5 - * - * No changes - * - * \b 1.0.4 + * \b 1.0.5 - 1.0.4 * * No changes * @@ -342,11 +297,7 @@ * station orders for buoys one has to use waypoint orders. * \li Autoreplaces can now also be set for the default group via AIGroup. * - * \b 0.7.5 - * - * No changes - * - * \b 0.7.4 + * \b 0.7.5 - 0.7.4 * * No changes * diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index 182ca79afb..a9e7b0b307 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -19,19 +19,11 @@ * * 1.7.0 is not yet released. The following changes are not set in stone yet. * - * \b 1.6.0 + * \b 1.6.1 - 1.6.0 * * No changes * - * \b 1.5.3 - * - * No changes - * - * \b 1.5.2 - * - * No changes - * - * \b 1.5.1 + * \b 1.5.3 - 1.5.1 * * No changes * @@ -58,11 +50,7 @@ * industry, or town. The user can click at the news message to jump to the * referred location. * - * \b 1.4.4 - * - * No changes - * - * \b 1.4.3 + * \b 1.4.4 - 1.4.3 * * No changes * @@ -106,11 +94,7 @@ * \li GSStation::GetCargoRating does return -1 for cargo-station combinations that * do not have a rating yet instead of returning 69. * - * \b 1.3.3 - * - * No changes - * - * \b 1.3.2 + * \b 1.3.3 - 1.3.2 * * No changes * @@ -136,15 +120,7 @@ * Other changes: * \li Company specific goals are now removed when a company goes bankrupt or is taken over. * - * \b 1.2.3 - * - * No changes - * - * \b 1.2.2 - * - * No changes - * - * \b 1.2.1 + * \b 1.2.3 - 1.2.1 * * No changes * From bc61ff380a22d1cabcb39434cd441ee3ef099e85 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 16:49:51 +0000 Subject: [PATCH 273/417] (svn r27777) -Doc: Yearly increment --- os/debian/copyright | 2 +- os/rpm/openttd.spec | 2 +- src/lang/afrikaans.txt | 2 +- src/lang/arabic_egypt.txt | 2 +- src/lang/basque.txt | 2 +- src/lang/belarusian.txt | 2 +- src/lang/brazilian_portuguese.txt | 2 +- src/lang/bulgarian.txt | 2 +- src/lang/catalan.txt | 2 +- src/lang/croatian.txt | 2 +- src/lang/czech.txt | 2 +- src/lang/danish.txt | 2 +- src/lang/dutch.txt | 2 +- src/lang/english.txt | 2 +- src/lang/english_AU.txt | 2 +- src/lang/english_US.txt | 2 +- src/lang/esperanto.txt | 2 +- src/lang/estonian.txt | 2 +- src/lang/faroese.txt | 2 +- src/lang/finnish.txt | 2 +- src/lang/french.txt | 2 +- src/lang/gaelic.txt | 2 +- src/lang/galician.txt | 2 +- src/lang/german.txt | 2 +- src/lang/greek.txt | 2 +- src/lang/hebrew.txt | 2 +- src/lang/hungarian.txt | 2 +- src/lang/icelandic.txt | 2 +- src/lang/indonesian.txt | 2 +- src/lang/irish.txt | 2 +- src/lang/italian.txt | 2 +- src/lang/japanese.txt | 2 +- src/lang/korean.txt | 2 +- src/lang/latvian.txt | 2 +- src/lang/lithuanian.txt | 2 +- src/lang/luxembourgish.txt | 2 +- src/lang/malay.txt | 2 +- src/lang/norwegian_bokmal.txt | 2 +- src/lang/norwegian_nynorsk.txt | 2 +- src/lang/polish.txt | 2 +- src/lang/portuguese.txt | 2 +- src/lang/romanian.txt | 2 +- src/lang/russian.txt | 2 +- src/lang/serbian.txt | 2 +- src/lang/simplified_chinese.txt | 2 +- src/lang/slovak.txt | 2 +- src/lang/slovenian.txt | 2 +- src/lang/spanish.txt | 2 +- src/lang/spanish_MX.txt | 2 +- src/lang/swedish.txt | 2 +- src/lang/tamil.txt | 2 +- src/lang/thai.txt | 2 +- src/lang/traditional_chinese.txt | 2 +- src/lang/turkish.txt | 2 +- src/lang/ukrainian.txt | 2 +- src/lang/unfinished/frisian.txt | 2 +- src/lang/unfinished/ido.txt | 2 +- src/lang/unfinished/macedonian.txt | 2 +- src/lang/unfinished/persian.txt | 2 +- src/lang/vietnamese.txt | 2 +- src/lang/welsh.txt | 2 +- src/os/windows/ottdres.rc.in | 2 +- 62 files changed, 62 insertions(+), 62 deletions(-) diff --git a/os/debian/copyright b/os/debian/copyright index be573b4825..ab62f66a42 100644 --- a/os/debian/copyright +++ b/os/debian/copyright @@ -5,7 +5,7 @@ Source: http://www.openttd.org Files: * -Copyright: © 2004-2012 Ludvig Strigeous and others. +Copyright: © 2004-2017 Ludvig Strigeous and others. License: GPL-2.0 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2.0 as diff --git a/os/rpm/openttd.spec b/os/rpm/openttd.spec index 711693bcf7..2dfa1a3ba3 100644 --- a/os/rpm/openttd.spec +++ b/os/rpm/openttd.spec @@ -2,7 +2,7 @@ # spec file for package openttd # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. -# Copyright (c) 2007-2012 The OpenTTD developers +# Copyright (c) 2007-2017 The OpenTTD developers # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 841392a09c..377c928460 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Maatskappy-besi STR_ABOUT_OPENTTD :{WHITE}Oor OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oorspronklike kopiereg {COPYRIGHT} 1995 Chris Sawyer, Alle regte voorbehou STR_ABOUT_VERSION :{BLACK}OpenTTD uitgawe {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Die OpenTTD span +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Die OpenTTD span # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spaar Spel diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index b07dfcadec..1cd5332615 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2320,7 +2320,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :ارض مملو STR_ABOUT_OPENTTD :{WHITE}حول النسخة المفتوحة STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}الحقوق الاصلية {COPYRIGHT} كريس سوير 1995 , جميع الحقوق محفوظة STR_ABOUT_VERSION :{BLACK}النسخة المفتوحة رقم {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2016 فريق النسخة المفتوحة +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2017 فريق النسخة المفتوحة # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}حفظ اللعبة diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 69c25f31a0..1db1ed48eb 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2592,7 +2592,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Konpainia jabe STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ri buruz STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD bertsioa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gordetako jokoa diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 50229c6ae9..221f6f1573 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3020,7 +3020,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Зямля на STR_ABOUT_OPENTTD :{WHITE}Аб OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Арыґінальныя аўтарскія правы {COPYRIGHT} 1995 Chris Sawyer. Усе правы абароненыя. STR_ABOUT_VERSION :{BLACK}OpenTTD вэрсія {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–2016 Каманда распрацоўнікаў OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–2017 Каманда распрацоўнікаў OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Захаваць гульню diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 9ed5394684..fdc960e950 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :O terreno é pr STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD... STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 A equipe do OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 A equipe do OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvar Jogo diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index da6b52463e..4adbc74de7 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2626,7 +2626,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земя, пр STR_ABOUT_OPENTTD :{WHITE}Относно OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторски права {COPYRIGHT} 1995 Крис Сойер (Chris Sawyer), Всички права са запазени STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Запази играта diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 3f6b25da20..7d407a0b68 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2690,7 +2690,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propiet STR_ABOUT_OPENTTD :{WHITE}Quant a l'OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer. Tots els drets reservats. STR_ABOUT_VERSION :{BLACK}OpenTTD versió {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 L'equip de l'OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 L'equip de l'OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Desa la Partida diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 2dbc967631..cbb33f95e1 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -2785,7 +2785,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemlja u posjed STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Izvorno autorsko pravo {COPYRIGHT} 1995 Chris Sawyer, sva prava pridržana STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD tim +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD tim # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spremi igru diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 128259ef0f..b053b507af 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2782,7 +2782,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Půda vlastněn STR_ABOUT_OPENTTD :{WHITE}O OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Původní copyright: {COPYRIGHT} 1995 Chris Sawyer, všechna práva vyhrazena STR_ABOUT_VERSION :{BLACK}OpenTTD verze {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Tým OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Tým OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložit hru diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 9fe61e00d8..5fdc19c51c 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land ejet af se STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheder reserveret STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gem spil diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 7ae5817ddb..541d07b146 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrein in bedr STR_ABOUT_OPENTTD :{WHITE}Over OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originele copyright {COPYRIGHT} 1995 Chris Sawyer, alle rechten voorbehouden STR_ABOUT_VERSION :{BLACK}OpenTTD versie {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Het OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Het OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spel Opslaan diff --git a/src/lang/english.txt b/src/lang/english.txt index 8d931307af..505356f08f 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index c0d79346a5..abdac23882 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2662,7 +2662,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index eecfb32f73..e67bb2c06b 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 0c35b49d01..67abcfc9ed 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2265,7 +2265,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanie poseda STR_ABOUT_OPENTTD :{WHITE}Pri OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Origina kopirajto {COPYRIGHT} 1995 Chris Sawyer, Ĉiuj rajtoj rezervitaj STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 La teamo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 La teamo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Konservu Ludon diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 1bb8af5aaf..4ce9d63471 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -2745,7 +2745,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ettevõtte maa STR_ABOUT_OPENTTD :{WHITE}OpenTTD lisainfo STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Algne autorikaitse {COPYRIGHT} 1995 Chris Sawyer, kõik õigused kaitstud STR_ABOUT_VERSION :{BLACK}OpenTTD osa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD meeskond +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD meeskond # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Mängu salvestamine diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 26d162b719..b121d9cb86 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2427,7 +2427,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ogn hjá fyrit STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upprunalig upphavsrættindi {COPYRIGHT} 1995 Chris Sawyer, Øll rættindi umbiðin STR_ABOUT_VERSION :{BLACK}OpenTTD útgáva {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD toymi +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD toymi # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Goym spæl diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 1b683bf745..25bcabe338 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Yhtiön omistam STR_ABOUT_OPENTTD :{WHITE}Tietoja OpenTTD:stä STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Alkuperäiset oikeudet {COPYRIGHT} 1995 Chris Sawyer, kaikki oikeudet pidätetään STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Tallenna peli diff --git a/src/lang/french.txt b/src/lang/french.txt index 3363437a59..33af65666f 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2690,7 +2690,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrain apparte STR_ABOUT_OPENTTD :{WHITE}À propos de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Tous droits réservés STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 L'équipe OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 L'équipe OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sauvegarder la partie diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index b2f9d7a404..3722eb1634 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2916,7 +2916,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tìr a' chompan STR_ABOUT_OPENTTD :{WHITE}Mu dheidhinn OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Còir-lethbhreac tùsail {COPYRIGHT} 1995 Chris Sawyer, a h-uile còir glèidhte STR_ABOUT_VERSION :{BLACK}OpenTTD tionndadh {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 An sgioba OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 An sgioba OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sàbhail an geama diff --git a/src/lang/galician.txt b/src/lang/galician.txt index c6ef4673d7..b097f4daef 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -2646,7 +2646,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreo propieda STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright orixinal {COPYRIGHT} 1995 Chris Sawyer, Tódolos dereitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 O equipo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 O equipo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gravar partida diff --git a/src/lang/german.txt b/src/lang/german.txt index a299d8dc64..8a7bf51d33 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firmeneigenes G STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Transport Tycoon-Urheberrecht {COPYRIGHT} 1995 Chris Sawyer, alle Rechte vorbehalten STR_ABOUT_VERSION :{BLACK}OpenTTD-Version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-Team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-Team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spiel speichern diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 0e0cb61287..8659667126 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -2798,7 +2798,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ιδιοκτη STR_ABOUT_OPENTTD :{WHITE}Σχετικά με το OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Αρχικά Πνευματικά Δικαιώματα {COPYRIGHT} 1995 Chris Sawyer, Όλα τα δικαιώματα διατηρούνται STR_ABOUT_VERSION :{BLACK}Έκδοση OpenTTD{REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Η ομάδα του OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Η ομάδα του OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Αποθήκευση Παιχνιδιού diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 01e0159d5e..ef3bb5070a 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -2701,7 +2701,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :שטח בבעל STR_ABOUT_OPENTTD :{WHITE}OpenTTD אודות STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}כל הזכויות שמורות , {COPYRIGHT}1995 כריס סויר - {NBSP}זכויות יוצרים מקוריות STR_ABOUT_VERSION :{BLACK}{REV} גירסה , OpenTTD -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}שמור משחק diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 84c6430464..fd4f1338d7 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2751,7 +2751,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Vállalat álta STR_ABOUT_OPENTTD :{WHITE}Az OpenTTD-ről STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Eredeti copyright {COPYRIGHT} 1995 Chris Sawyer, Minden jog fenntartva STR_ABOUT_VERSION :{BLACK}OpenTTD {REV} verzió -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Az OpenTTD csapat +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Az OpenTTD csapat # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Játék mentése diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 37595b413e..55a54c2d6c 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2536,7 +2536,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land í eigu fy STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upphaflegur höfundarréttur {COPYRIGHT} 1995 Chris Sawyer, Öll réttindi áskilin STR_ABOUT_VERSION :{BLACK}OpenTTD útgáfa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD hópurinn +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD hópurinn # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Vista leik diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 105fba7803..35b8db2522 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah milik Per STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hak Cipta asli {COPYRIGHT} 1995 Chris Sawyer, Hak Cipta dilindungi STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Tim OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Tim OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Simpan Permainan diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 4831264802..b8a262e858 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Talamh faoi úi STR_ABOUT_OPENTTD :{WHITE}Maidir le OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Cóipcheart bunaidh {COPYRIGHT} 1995 Chris Sawyer, Gach ceart ar cosaint STR_ABOUT_VERSION :{BLACK}OpenTTD leagan {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 An fhoireann OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 An fhoireann OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sábháil an Cluiche diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 92e51b815d..cb75eaf927 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -2719,7 +2719,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno possedu STR_ABOUT_OPENTTD :{WHITE}Informazioni su OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright originale {COPYRIGHT} 1995 Chris Sawyer, Tutti i diritti riservati STR_ABOUT_VERSION :{BLACK}OpenTTD versione {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Il team OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Il team OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salva partita diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 8c4cc2599e..251c68b55f 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :社有地 STR_ABOUT_OPENTTD :{WHITE}OpenTTDについて STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}オリジナル版権{COPYRIGHT} 1995 Chris Sawyer All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD バージョン {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ゲームを保存 diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 31b3a62012..d05ab967eb 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2690,7 +2690,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :회사 소유 STR_ABOUT_OPENTTD :{WHITE}OpenTTD에 대해서 STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD 버전 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 개발팀 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 개발팀 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}게임 저장 diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 8750be0e30..f75d381b39 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -2628,7 +2628,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Uzņēmumam pie STR_ABOUT_OPENTTD :{WHITE}Par OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oriģināla autortiesības {COPYRIGHT} 1995 Kriss Sojers. Visas tiesības paturētas STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD darba grupa +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD darba grupa # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Saglabāt spēli diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 9450a0f5c3..f9067c5567 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -2906,7 +2906,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanijos žem STR_ABOUT_OPENTTD :{WHITE}Apie OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pradinės versijos teisės priklauso {COPYRIGHT} 1995 Chris Sawyer, Visos teisės saugomos STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD komanda +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD komanda # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Išsaugoti žaidimą diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index b1b02d208d..37aec445da 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land am Firmenb STR_ABOUT_OPENTTD :{WHITE}Iwwert OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original Copyright {COPYRIGHT} 1995 Chris Sawyer, All Rechter virbehalen STR_ABOUT_VERSION :{BLACK}OpenTTD Versioun {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 D'OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 D'OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spill späicheren diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 6c123b820c..7779ea9504 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2402,7 +2402,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah dimiliki STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hakcipta Asal {COPYRIGHT} 1995 Chris Sawyer, Hakcipta terpelihara STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Simpankan Permainan diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index a889661665..e8bd624a0f 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firma-eid lando STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opprinnelig opphavsbeskyttet {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheter reservert STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lagre spill diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 332d1976d5..aa455f5efe 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -2608,7 +2608,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Feltet eigast a STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opphaveleg opphavsbeskytta av {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheiter reservert STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV}. Oversett til nynorsk av Thor Morten Skogrand med fleire. -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lagre spel diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 5e64a712fe..206530f09f 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3069,7 +3069,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren w posiada STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prawa Autorskie {COPYRIGHT} 1995 Chris Sawyer, Wszelkie prawa zastrzeżone STR_ABOUT_VERSION :{BLACK}OpenTTD wersja {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Zespół OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Zespół OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Zapisz grę diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 2519147616..552456b081 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno proprie STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD... STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Direitos de autor originais {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 A equipa do OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 A equipa do OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Jogo diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index e3da858029..1a3e29f479 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -2652,7 +2652,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren în propr STR_ABOUT_OPENTTD :{WHITE}Despre OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Toate drepturile rezervate STR_ABOUT_VERSION :{BLACK}OpenTTD versiunea {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Echipa OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Echipa OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvează joc diff --git a/src/lang/russian.txt b/src/lang/russian.txt index dbe7f3d110..fc53374e3c 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2869,7 +2869,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земля в STR_ABOUT_OPENTTD :{WHITE}Об OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинальные авторские права {COPYRIGHT} 1995 Chris Sawyer. Все права защищены. STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Команда разработчиков OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Команда разработчиков OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Сохранить игру diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index d112b832af..61f848e8b3 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2882,7 +2882,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemljište u po STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originalni kopirajt {COPYRIGHT} 1995 Chris Sawyer, Sva prava zadržana STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD tim +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD tim # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sačuvaj poziciju diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index a11ad99b5f..6be975993f 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :公司属地 STR_ABOUT_OPENTTD :{WHITE}关于 OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}原始版权由 {COPYRIGHT} 1995 Chris Sawyer 所有,保留一切权力。 STR_ABOUT_VERSION :{BLACK}OpenTTD 版本 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 团队 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 团队 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}保存游戏 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index be2c635472..539b5379d7 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -2755,7 +2755,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Spoločnosťou STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pôvodný copyright: {COPYRIGHT} 1995 Chris Sawyer, všetky práva vyhradené STR_ABOUT_VERSION :{BLACK}OpenTTD verzia {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 team OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 team OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložiť hru diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 60e958fb03..1cd9a11aa9 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -2840,7 +2840,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ozemlje v lasti STR_ABOUT_OPENTTD :{WHITE}O OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prvotne avtorske pravice {COPYRIGHT} 1995 Chris Sawyer, vse pravice pridržane STR_ABOUT_VERSION :{BLACK}OpenTTD različica {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 ekipa OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 ekipa OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Shrani igro diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 367bd82ae6..37b033277d 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright Original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 El equipo OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 El equipo OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Juego diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 48e83b2c97..c2de0c7009 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2690,7 +2690,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016, el equipo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017, el equipo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar partida diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 4648963188..1abfef52a5 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Mark som ägs a STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig äganderätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas STR_ABOUT_VERSION :{BLACK}OpenTTD-version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spara spel diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 9e4d0a03ba..32c647fac1 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2378,7 +2378,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :நிறுவ STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ஐ பற்றி STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}அசல் உரிமைகள் {COPYRIGHT} 1995 கிறிஸ் சாயர், எல்லா உரிமைகளும் பதிவுசெய்யப்பட்டது STR_ABOUT_VERSION :{BLACK}OpenTTD பதிப்பு {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD குழுமம் +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD குழுமம் # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ஆட்டத்தை பதிவு செய் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 0a7735ec5e..96fa8775f8 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -2635,7 +2635,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :บริษั STR_ABOUT_OPENTTD :{WHITE}เกี่ยวกับ OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}ลิขสิทธิ์เดิม {COPYRIGHT} ค.ศ.1995 ของ Chris Sawyer, สงวนลิขสิทธิ์ STR_ABOUT_VERSION :{BLACK}OpenTTD รุ่นที่ {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-2016 ของ The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-2017 ของ The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}บันทึกเกม diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 854d2be9b5..b12a1b1df6 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :公司所有土 STR_ABOUT_OPENTTD :{WHITE}關於 OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}原著作權為 {COPYRIGHT} 1995 Chris Sawyer,保留所有權利 STR_ABOUT_VERSION :{BLACK}OpenTTD 版本 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 開發小組 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 開發小組 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}儲存遊戲 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 900cae4672..5352546c22 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Satın alınmı STR_ABOUT_OPENTTD :{WHITE}OpenTTD Hakkında STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Telif hakkı {COPYRIGHT} 1995 Chris Sawyer, Her hakkı saklıdır STR_ABOUT_VERSION :{BLACK}OpenTTD sürüm {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD ekibi +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD ekibi # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Oyunu Kaydet diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 8a905477a6..ef7d9ad9e4 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -2818,7 +2818,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ця ділян STR_ABOUT_OPENTTD :{WHITE}Про OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторське право {COPYRIGHT} 1995 Кріс Сойєр, Всі права захищені STR_ABOUT_VERSION :{BLACK}OpenTTD версія {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 команда OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 команда OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Зберегти гру diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index ceb0e77490..d3cd291ea3 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2475,7 +2475,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Lân fan bedriu STR_ABOUT_OPENTTD :{WHITE}Oer OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Orizjineel copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD-ferzje {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 It OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 It OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spul Opslaan diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index b0941fbc07..1e5c942a14 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -776,7 +776,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Stabeyo di komp # About OpenTTD window STR_ABOUT_VERSION :{BLACK}OpenTTD versiono {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 La kruo OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 La kruo OpenTTD # Save/load game/scenario STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Ludo Detali diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index a37291171d..b10f2761f8 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1202,7 +1202,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Компани STR_ABOUT_OPENTTD :{WHITE}За OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинален copyright {COPYRIGHT} 1995 Chris Sawyer, Сите права се задржани STR_ABOUT_VERSION :{BLACK}OpenTTD верзија {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD тимот +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD тимот # Save/load game/scenario STR_SAVELOAD_LOAD_BUTTON :{BLACK}Оптоварување diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 334b220338..5b1787eaec 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2389,7 +2389,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :زمین خری STR_ABOUT_OPENTTD :{WHITE}OpenTTD در باره ی STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD ویرایش {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ذخیره ی بازی diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 89989e089f..e78a0d4eaa 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Đất công ty STR_ABOUT_OPENTTD :{WHITE}Về OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Nguyên tác bản quyền {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD phiên bản {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Nhóm OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Nhóm OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lưu Ván Chơi diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index da03498aac..56dfccdfd6 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tir cwmni STR_ABOUT_OPENTTD :{WHITE}Gwybodaeth am OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hawlfraint Wreiddiol {COPYRIGHT} 1995 Chris Sawyer, Holl cedwir pob hawl STR_ABOUT_VERSION :{BLACK}fersiwn OpenTTD {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Y tîm OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Y tîm OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Cadw Gêm diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 4214f3b23f..462da891e7 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -100,7 +100,7 @@ BEGIN VALUE "FileDescription", "OpenTTD\0" VALUE "FileVersion", "!!VERSION!!\0" VALUE "InternalName", "openttd\0" - VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2016. All Rights Reserved.\0" + VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2017. All Rights Reserved.\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "openttd.exe\0" VALUE "PrivateBuild", "\0" From d3de08088326415d55ef052dc858053ab4932584 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 20:37:32 +0000 Subject: [PATCH 274/417] (svn r27778) -Change [FS#6442-ish]: Convenience savegame bump to distinguish 1.7 savegames from 1.6 savegames. --- src/saveload/saveload.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index fcda489fae..5a09906bda 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -263,8 +263,9 @@ * 193 26802 * 194 26881 1.5.x, 1.6.0 * 195 27572 1.6.x + * 196 27778 1.7.x */ -extern const uint16 SAVEGAME_VERSION = 195; ///< Current savegame version of OpenTTD. +extern const uint16 SAVEGAME_VERSION = 196; ///< Current savegame version of OpenTTD. SavegameType _savegame_type; ///< type of savegame we are loading FileToSaveLoad _file_to_saveload; ///< File to save or load in the openttd loop. From ed63b48e7628e555bf4f0eb0ba8a2948c44d6615 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 20:50:26 +0000 Subject: [PATCH 275/417] (svn r27780) -Update: Numbers --- bin/ai/compat_1.7.nut | 2 ++ bin/ai/compat_1.8.nut | 8 ++++++++ bin/ai/regression/regression_info.nut | 2 +- bin/game/compat_1.7.nut | 2 ++ bin/game/compat_1.8.nut | 8 ++++++++ os/os2/installer/make_installer.cmd | 2 +- os/rpm/openttd.spec | 4 ++-- os/windows/installer/install.nsi | 2 +- src/ai/ai_info.cpp | 3 ++- src/game/game_info.cpp | 3 ++- src/os/windows/ottdres.rc.in | 4 ++-- src/rev.cpp.in | 2 +- src/script/api/ai_changelog.hpp | 6 +++++- src/script/api/game_changelog.hpp | 6 +++++- 14 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 bin/ai/compat_1.8.nut create mode 100644 bin/game/compat_1.8.nut diff --git a/bin/ai/compat_1.7.nut b/bin/ai/compat_1.7.nut index fe985b90d0..1290443c4d 100644 --- a/bin/ai/compat_1.7.nut +++ b/bin/ai/compat_1.7.nut @@ -6,3 +6,5 @@ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ + +GSLog.Info("1.7 API compatibility in effect."); diff --git a/bin/ai/compat_1.8.nut b/bin/ai/compat_1.8.nut new file mode 100644 index 0000000000..fe985b90d0 --- /dev/null +++ b/bin/ai/compat_1.8.nut @@ -0,0 +1,8 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ diff --git a/bin/ai/regression/regression_info.nut b/bin/ai/regression/regression_info.nut index 87676e1625..f908ae28ac 100644 --- a/bin/ai/regression/regression_info.nut +++ b/bin/ai/regression/regression_info.nut @@ -6,7 +6,7 @@ class Regression extends AIInfo { function GetShortName() { return "REGR"; } function GetDescription() { return "This runs regression-tests on some commands. On the same map the result should always be the same."; } function GetVersion() { return 1; } - function GetAPIVersion() { return "1.7"; } + function GetAPIVersion() { return "1.8"; } function GetDate() { return "2007-03-18"; } function CreateInstance() { return "Regression"; } } diff --git a/bin/game/compat_1.7.nut b/bin/game/compat_1.7.nut index fe985b90d0..1290443c4d 100644 --- a/bin/game/compat_1.7.nut +++ b/bin/game/compat_1.7.nut @@ -6,3 +6,5 @@ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ + +GSLog.Info("1.7 API compatibility in effect."); diff --git a/bin/game/compat_1.8.nut b/bin/game/compat_1.8.nut new file mode 100644 index 0000000000..fe985b90d0 --- /dev/null +++ b/bin/game/compat_1.8.nut @@ -0,0 +1,8 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ diff --git a/os/os2/installer/make_installer.cmd b/os/os2/installer/make_installer.cmd index de01554a07..5e30e4c354 100644 --- a/os/os2/installer/make_installer.cmd +++ b/os/os2/installer/make_installer.cmd @@ -1,6 +1,6 @@ @echo off -set OPENTTD_VERSION=1.7.0 +set OPENTTD_VERSION=1.8.0 set OPENSFX_VERSION=0.8.0 set NOSOUND_VERSION=0.8.0 set OPENGFX_VERSION=1.2.0 diff --git a/os/rpm/openttd.spec b/os/rpm/openttd.spec index 2dfa1a3ba3..9685624462 100644 --- a/os/rpm/openttd.spec +++ b/os/rpm/openttd.spec @@ -17,9 +17,9 @@ # Name: openttd -Version: 1.7.beta1 +Version: 1.8.beta1 Release: 0 -%define srcver 1.7.0-beta1 +%define srcver 1.8.0-beta1 Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe License: GPL-2.0 Group: Amusements/Games/Strategy/Other diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi index c7b8c82af4..76a87b37dd 100644 --- a/os/windows/installer/install.nsi +++ b/os/windows/installer/install.nsi @@ -1,6 +1,6 @@ # Version numbers to update !define APPV_MAJOR 1 -!define APPV_MINOR 7 +!define APPV_MINOR 8 !define APPV_MAINT 0 !define APPV_BUILD 0 !define APPV_EXTRA "-beta1" diff --git a/src/ai/ai_info.cpp b/src/ai/ai_info.cpp index e862b62466..2afd5d4199 100644 --- a/src/ai/ai_info.cpp +++ b/src/ai/ai_info.cpp @@ -28,7 +28,8 @@ static bool CheckAPIVersion(const char *api_version) { return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0 || strcmp(api_version, "1.1") == 0 || strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0 || - strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0; + strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0 || + strcmp(api_version, "1.8") == 0; } #if defined(WIN32) diff --git a/src/game/game_info.cpp b/src/game/game_info.cpp index 39088b8462..05443327f2 100644 --- a/src/game/game_info.cpp +++ b/src/game/game_info.cpp @@ -25,7 +25,8 @@ static bool CheckAPIVersion(const char *api_version) { return strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0 || - strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0; + strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0 || + strcmp(api_version, "1.8") == 0; } #if defined(WIN32) diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 462da891e7..fca129c6a6 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -79,8 +79,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,7,0,!!REVISION!! - PRODUCTVERSION 1,7,0,!!REVISION!! + FILEVERSION 1,8,0,!!REVISION!! + PRODUCTVERSION 1,8,0,!!REVISION!! FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L diff --git a/src/rev.cpp.in b/src/rev.cpp.in index 899a565bbe..b6bddeacfc 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -72,7 +72,7 @@ const byte _openttd_revision_modified = !!MODIFIED!!; * final release will always have a lower version number than the released * version, thus making comparisons on specific revisions easy. */ -const uint32 _openttd_newgrf_version = 1 << 28 | 7 << 24 | 0 << 20 | 0 << 19 | (!!REVISION!! & ((1 << 19) - 1)); +const uint32 _openttd_newgrf_version = 1 << 28 | 8 << 24 | 0 << 20 | 0 << 19 | (!!REVISION!! & ((1 << 19) - 1)); #ifdef __MORPHOS__ /** diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp index 23f4a0958f..db1c6eb2a2 100644 --- a/src/script/api/ai_changelog.hpp +++ b/src/script/api/ai_changelog.hpp @@ -15,9 +15,13 @@ * functions may still be available if you return an older API version * in GetAPIVersion() in info.nut. * + * \b 1.8.0 + * + * 1.8.0 is not yet released. The following changes are not set in stone yet. + * * \b 1.7.0 * - * 1.7.0 is not yet released. The following changes are not set in stone yet. + * No changes * * \b 1.6.1 - 1.6.0 * diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index a9e7b0b307..00b9539590 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -15,9 +15,13 @@ * functions may still be available if you return an older API version * in GetAPIVersion() in info.nut. * + * \b 1.8.0 + * + * 1.8.0 is not yet released. The following changes are not set in stone yet. + * * \b 1.7.0 * - * 1.7.0 is not yet released. The following changes are not set in stone yet. + * No changes * * \b 1.6.1 - 1.6.0 * From 7501b7cf7aafcac0dec469cbef5ece4e3f360b2d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 12 Mar 2017 15:26:31 +0000 Subject: [PATCH 276/417] (svn r27784) -Fix [FS#6505]: Allow rail conversion even if ship is on tile (Samu). --- src/rail_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index a5face14c5..5582666b1c 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -1603,7 +1603,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 * Tunnels and bridges have special check later */ if (tt != MP_TUNNELBRIDGE) { if (!IsCompatibleRail(type, totype)) { - CommandCost ret = EnsureNoVehicleOnGround(tile); + CommandCost ret = IsPlainRailTile(tile) ? EnsureNoTrainOnTrackBits(tile, GetTrackBits(tile)) : EnsureNoVehicleOnGround(tile); if (ret.Failed()) { error = ret; continue; From c366425de6a203c84f2491ea72edabfd4d8154c4 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 12 Mar 2017 15:32:40 +0000 Subject: [PATCH 277/417] (svn r27785) -Fix [FS#6508]: Buoys not always drawn after being placed depending on zoom level (Samu). --- src/waypoint_cmd.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/waypoint_cmd.cpp b/src/waypoint_cmd.cpp index efa48003f2..54489fa457 100644 --- a/src/waypoint_cmd.cpp +++ b/src/waypoint_cmd.cpp @@ -324,6 +324,7 @@ CommandCost CmdBuildBuoy(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 if (wp->town == NULL) MakeDefaultName(wp); MakeBuoy(tile, wp->index, GetWaterClass(tile)); + MarkTileDirtyByTile(tile); wp->UpdateVirtCoord(); InvalidateWindowData(WC_WAYPOINT_VIEW, wp->index); From 9a489375e36bdff2bb5a51f54991f6cff193b767 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 12 Mar 2017 16:33:40 +0000 Subject: [PATCH 278/417] (svn r27786) -Fix [FS#6479]: AI configuration changed incorrect parameter when some parameters are hidden. --- src/ai/ai_gui.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index a0720e2ea5..dd1de4dc2e 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -531,21 +531,23 @@ struct AISettingsWindow : public Window { virtual void OnQueryTextFinished(char *str) { if (StrEmpty(str)) return; - ScriptConfigItemList::const_iterator it = this->ai_config->GetConfigList()->begin(); + VisibleSettingsList::const_iterator it = this->visible_settings.begin(); for (int i = 0; i < this->clicked_row; i++) it++; - if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return; + const ScriptConfigItem config_item = **it; + if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (config_item.flags & SCRIPTCONFIG_INGAME) == 0) return; int32 value = atoi(str); - this->ai_config->SetSetting((*it).name, value); + this->ai_config->SetSetting(config_item.name, value); this->SetDirty(); } virtual void OnDropdownSelect(int widget, int index) { assert(this->clicked_dropdown); - ScriptConfigItemList::const_iterator it = this->ai_config->GetConfigList()->begin(); + VisibleSettingsList::const_iterator it = this->visible_settings.begin(); for (int i = 0; i < this->clicked_row; i++) it++; - if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return; - this->ai_config->SetSetting((*it).name, index); + const ScriptConfigItem config_item = **it; + if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (config_item.flags & SCRIPTCONFIG_INGAME) == 0) return; + this->ai_config->SetSetting(config_item.name, index); this->SetDirty(); } From 980871a87be10219734dd7e50aa309a6f9f9b7ee Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 12 Mar 2017 18:19:01 +0000 Subject: [PATCH 279/417] (svn r27787) -Fix: Update scrollbar when rebuilding AI/GS setting list. --- src/ai/ai_gui.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index dd1de4dc2e..101a97d0a9 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -306,7 +306,6 @@ struct AISettingsWindow : public Window { timeout(0) { this->ai_config = GetConfig(slot); - this->RebuildVisibleSettings(); this->CreateNestedTree(); this->vscroll = this->GetScrollbar(WID_AIS_SCROLLBAR); @@ -314,7 +313,7 @@ struct AISettingsWindow : public Window { this->SetWidgetDisabledState(WID_AIS_RESET, _game_mode != GM_MENU && Company::IsValidID(this->slot)); - this->vscroll->SetCount((int)this->visible_settings.size()); + this->RebuildVisibleSettings(); } virtual void SetStringParameters(int widget) const @@ -342,6 +341,8 @@ struct AISettingsWindow : public Window { visible_settings.push_back(&(*it)); } } + + this->vscroll->SetCount((int)this->visible_settings.size()); } virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) From a77044f1852283eba5cab187bfacb54151824874 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 13 Mar 2017 07:37:05 +0000 Subject: [PATCH 280/417] (svn r27788) -Fix [FS#6536]: Get vehicle load amount after executing new cargo trigger. --- src/economy.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/economy.cpp b/src/economy.cpp index cdfa059e86..7461d34b77 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1643,13 +1643,11 @@ static void LoadUnloadVehicle(Vehicle *front) if (v->cargo_cap == 0) continue; artic_part++; - uint load_amount = GetLoadAmount(v); - GoodsEntry *ge = &st->goods[v->cargo_type]; if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) && (front->current_order.GetUnloadType() & OUFB_NO_UNLOAD) == 0) { uint cargo_count = v->cargo.UnloadCount(); - uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, load_amount) : cargo_count; + uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, GetLoadAmount(v)) : cargo_count; bool remaining = false; // Are there cargo entities in this vehicle that can still be unloaded here? assert(payment != NULL); @@ -1754,8 +1752,8 @@ static void LoadUnloadVehicle(Vehicle *front) * has capacity for it, load it on the vehicle. */ uint cap_left = v->cargo_cap - v->cargo.StoredCount(); if (cap_left > 0 && (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0 || ge->cargo.AvailableCount() > 0)) { - if (_settings_game.order.gradual_loading) cap_left = min(cap_left, load_amount); if (v->cargo.StoredCount() == 0) TriggerVehicle(v, VEHICLE_TRIGGER_NEW_CARGO); + if (_settings_game.order.gradual_loading) cap_left = min(cap_left, GetLoadAmount(v)); uint loaded = ge->cargo.Load(cap_left, &v->cargo, st->xy, next_station); if (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0) { From 9169ab6ce227c364ddc26887d34065c245aecc7b Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 13 Mar 2017 18:45:37 +0000 Subject: [PATCH 281/417] (svn r27789) -Update from Eints: polish: 3 changes by wojteks86 greek: 1 change by kyrm --- src/lang/greek.txt | 4 +--- src/lang/polish.txt | 3 +++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 8659667126..1426856bde 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -31,8 +31,7 @@ STR_JUST_NOTHING :Τίποτα STR_CARGO_PLURAL_NOTHING : STR_CARGO_PLURAL_PASSENGERS :{G=m}Επιβάτες STR_CARGO_PLURAL_PASSENGERS.geniki :Επιβάτη -STR_CARGO_PLURAL_COAL :{G=m}Άνθρακες -STR_CARGO_PLURAL_COAL.geniki :Άνθρακων +STR_CARGO_PLURAL_COAL :{G=m}Άνθρακάς STR_CARGO_PLURAL_MAIL :{G=f}Αλληλογραφία STR_CARGO_PLURAL_MAIL.geniki :Αλληλογραφίας STR_CARGO_PLURAL_OIL :{G=n}Πετρέλαια @@ -97,7 +96,6 @@ STR_CARGO_SINGULAR_NOTHING : STR_CARGO_SINGULAR_PASSENGER :{G=m}Επιβάτης STR_CARGO_SINGULAR_PASSENGER.subs :Επιβάτες STR_CARGO_SINGULAR_COAL :{G=m}Άνθρακας -STR_CARGO_SINGULAR_COAL.subs :Άνθρακες STR_CARGO_SINGULAR_MAIL :{G=f}Αλληλογραφία STR_CARGO_SINGULAR_MAIL.subs :Αλληλογραφία STR_CARGO_SINGULAR_OIL :{G=n}Πετρέλαιο diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 206530f09f..4647441fc0 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3674,6 +3674,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Wymaga: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Wymaga: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Potrzebuje +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}oczekuje ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} From 2d45d55925d4caafb4a624aa2b053444c241adda Mon Sep 17 00:00:00 2001 From: michi_cc Date: Mon, 13 Mar 2017 20:21:40 +0000 Subject: [PATCH 282/417] (svn r27790) -Fix [FS#6366]: [Win32] Mark OpenTTD as DPI-aware to avoid OS window scaling that breaks mouse input. --- projects/openttd_vs100.vcxproj | 12 ++++++++++++ projects/openttd_vs100.vcxproj.in | 12 ++++++++++++ projects/openttd_vs140.vcxproj | 12 ++++++++++++ projects/openttd_vs140.vcxproj.in | 12 ++++++++++++ 4 files changed, 48 insertions(+) diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj index 59e087ee70..a71f235364 100644 --- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -145,6 +145,9 @@ MachineX86 true + + PerMonitorHighDPIAware + @@ -188,6 +191,9 @@ MachineX86 + + PerMonitorHighDPIAware + @@ -244,6 +250,9 @@ MachineX64 true + + PerMonitorHighDPIAware + @@ -289,6 +298,9 @@ 1048576 MachineX64 + + PerMonitorHighDPIAware + diff --git a/projects/openttd_vs100.vcxproj.in b/projects/openttd_vs100.vcxproj.in index c6b16455a9..fd3072f074 100644 --- a/projects/openttd_vs100.vcxproj.in +++ b/projects/openttd_vs100.vcxproj.in @@ -145,6 +145,9 @@ MachineX86 true + + PerMonitorHighDPIAware + @@ -188,6 +191,9 @@ MachineX86 + + PerMonitorHighDPIAware + @@ -244,6 +250,9 @@ MachineX64 true + + PerMonitorHighDPIAware + @@ -289,6 +298,9 @@ 1048576 MachineX64 + + PerMonitorHighDPIAware + !!FILES!! diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index 8d8b980649..eb8494167d 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -151,6 +151,9 @@ true 5.01 + + PerMonitorHighDPIAware + @@ -198,6 +201,9 @@ MachineX86 5.01 + + PerMonitorHighDPIAware + @@ -257,6 +263,9 @@ true 5.02 + + PerMonitorHighDPIAware + @@ -306,6 +315,9 @@ MachineX64 5.02 + + PerMonitorHighDPIAware + diff --git a/projects/openttd_vs140.vcxproj.in b/projects/openttd_vs140.vcxproj.in index 76b16b5109..9d873283fa 100644 --- a/projects/openttd_vs140.vcxproj.in +++ b/projects/openttd_vs140.vcxproj.in @@ -151,6 +151,9 @@ true 5.01 + + PerMonitorHighDPIAware + @@ -198,6 +201,9 @@ MachineX86 5.01 + + PerMonitorHighDPIAware + @@ -257,6 +263,9 @@ true 5.02 + + PerMonitorHighDPIAware + @@ -306,6 +315,9 @@ MachineX64 5.02 + + PerMonitorHighDPIAware + !!FILES!! From 9a62317dfc37ca4fdeaa1a5786b11236d4ba1446 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Mon, 13 Mar 2017 21:56:38 +0000 Subject: [PATCH 283/417] (svn r27791) -Fix (r27790) [FS#6366]: Try #2. Now also for Visual Studio 2010. --- projects/dpi_aware.manifest | 7 +++++++ projects/openttd_vs100.vcxproj | 8 ++++---- projects/openttd_vs100.vcxproj.in | 8 ++++---- 3 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 projects/dpi_aware.manifest diff --git a/projects/dpi_aware.manifest b/projects/dpi_aware.manifest new file mode 100644 index 0000000000..6f04161596 --- /dev/null +++ b/projects/dpi_aware.manifest @@ -0,0 +1,7 @@ + + + + True/PM + + + diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj index a71f235364..9c3b107866 100644 --- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -146,7 +146,7 @@ true - PerMonitorHighDPIAware + dpi_aware.manifest @@ -192,7 +192,7 @@ MachineX86 - PerMonitorHighDPIAware + dpi_aware.manifest @@ -251,7 +251,7 @@ true - PerMonitorHighDPIAware + dpi_aware.manifest @@ -299,7 +299,7 @@ MachineX64 - PerMonitorHighDPIAware + dpi_aware.manifest diff --git a/projects/openttd_vs100.vcxproj.in b/projects/openttd_vs100.vcxproj.in index fd3072f074..c8e71c4234 100644 --- a/projects/openttd_vs100.vcxproj.in +++ b/projects/openttd_vs100.vcxproj.in @@ -146,7 +146,7 @@ true - PerMonitorHighDPIAware + dpi_aware.manifest @@ -192,7 +192,7 @@ MachineX86 - PerMonitorHighDPIAware + dpi_aware.manifest @@ -251,7 +251,7 @@ true - PerMonitorHighDPIAware + dpi_aware.manifest @@ -299,7 +299,7 @@ MachineX64 - PerMonitorHighDPIAware + dpi_aware.manifest From c706eeda819e51118a2d898a01f20f0a41ec7c9c Mon Sep 17 00:00:00 2001 From: michi_cc Date: Mon, 13 Mar 2017 21:56:41 +0000 Subject: [PATCH 284/417] (svn r27792) -Add: [Win32] .gitignore for IntelliSense database of VS2015 Update 2. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 2b298a14a9..5aa8cb7849 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,8 @@ projects/*.sdf projects/*.opensdf projects/*.vcproj.*.user projects/*.vcxproj.user +projects/*.VC.db +projects/*.VC.opendb src/rev.cpp src/os/windows/ottdres.rc From 57745b1c74a6e0e6f334d931c0e1f0ddd98b9003 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 13 Mar 2017 22:16:44 +0000 Subject: [PATCH 285/417] (svn r27793) -Fix [FS#6450]: Use of uninitialised variable cause lzo to fail. Add check for error status. --- src/saveload/saveload.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 5a09906bda..dfa3be7219 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1994,7 +1994,7 @@ struct LZOLoadFilter : LoadFilter { byte out[LZO_BUFFER_SIZE + LZO_BUFFER_SIZE / 16 + 64 + 3 + sizeof(uint32) * 2]; uint32 tmp[2]; uint32 size; - lzo_uint len; + lzo_uint len = ssize; /* Read header*/ if (this->chain->Read((byte*)tmp, sizeof(tmp)) != sizeof(tmp)) SlError(STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE, "File read failed"); @@ -2016,7 +2016,8 @@ struct LZOLoadFilter : LoadFilter { if (tmp[0] != lzo_adler32(0, out, size + sizeof(uint32))) SlErrorCorrupt("Bad checksum"); /* Decompress */ - lzo1x_decompress_safe(out + sizeof(uint32) * 1, size, buf, &len, NULL); + int ret = lzo1x_decompress_safe(out + sizeof(uint32) * 1, size, buf, &len, NULL); + if (ret != LZO_E_OK) SlError(STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE); return len; } }; From 36837a070c456860a0da73647d79fa9e39e0300a Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 14 Mar 2017 00:57:52 +0000 Subject: [PATCH 286/417] (svn r27794) -Fix [FS#6526]: Chat text background overflowed due to missing padding. --- src/network/network_chat_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index 3416762d02..f1e54f38da 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -110,7 +110,7 @@ void CDECL NetworkAddChatMessage(TextColour colour, uint duration, const char *m void NetworkReInitChatBoxSize() { _chatmsg_box.y = 3 * FONT_HEIGHT_NORMAL; - _chatmsg_box.height = MAX_CHAT_MESSAGES * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING) + 2; + _chatmsg_box.height = MAX_CHAT_MESSAGES * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING) + 4; _chatmessage_backup = ReallocT(_chatmessage_backup, _chatmsg_box.width * _chatmsg_box.height * BlitterFactory::GetCurrentBlitter()->GetBytesPerPixel()); } From 5c7f97aff2d3121c60e335ce92341e99cd6aebf5 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 14 Mar 2017 18:45:36 +0000 Subject: [PATCH 287/417] (svn r27795) -Update from Eints: luxembourgish: 3 changes by Phreeze --- src/lang/luxembourgish.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 37aec445da..a671e4d44d 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3294,6 +3294,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Brauch: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Brauch +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}um waarden ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} From 206a0838e995fe74aae3867f93feb0aaf2acb219 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 18 Mar 2017 17:14:53 +0000 Subject: [PATCH 288/417] (svn r27796) -Fix [FS#6545]: 32bpp-anim blitters assumed that pitch and width of the screen were equal. --- src/blitter/32bpp_anim.cpp | 56 ++++++++++++++++++--------------- src/blitter/32bpp_anim.hpp | 4 ++- src/blitter/32bpp_anim_sse4.cpp | 5 +-- 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/blitter/32bpp_anim.cpp b/src/blitter/32bpp_anim.cpp index deedaf34b5..532ad23cc7 100644 --- a/src/blitter/32bpp_anim.cpp +++ b/src/blitter/32bpp_anim.cpp @@ -39,13 +39,14 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel } Colour *dst = (Colour *)bp->dst + bp->top * bp->pitch + bp->left; - uint16 *anim = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_width + bp->left; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'bp->dst' into an 'anim_buf' offset below. + uint16 *anim = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_pitch + bp->left; const byte *remap = bp->remap; // store so we don't have to access it via bp everytime for (int y = 0; y < bp->height; y++) { Colour *dst_ln = dst + bp->pitch; - uint16 *anim_ln = anim + this->anim_buf_width; + uint16 *anim_ln = anim + this->anim_buf_pitch; const Colour *src_px_ln = (const Colour *)((const byte *)src_px + *(const uint32 *)src_px); src_px++; @@ -279,9 +280,8 @@ void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, } Colour *udst = (Colour *)dst; - uint16 *anim; - - anim = this->anim_buf + ((uint32 *)dst - (uint32 *)_screen.dst_ptr); + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'dst' into an 'anim_buf' offset below. + uint16 *anim = this->anim_buf + ((uint32 *)dst - (uint32 *)_screen.dst_ptr); if (pal == PALETTE_TO_TRANSPARENT) { do { @@ -292,7 +292,7 @@ void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, anim++; } udst = udst - width + _screen.pitch; - anim = anim - width + this->anim_buf_width; + anim = anim - width + this->anim_buf_pitch; } while (--height); return; } @@ -305,7 +305,7 @@ void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, anim++; } udst = udst - width + _screen.pitch; - anim = anim - width + this->anim_buf_width; + anim = anim - width + this->anim_buf_pitch; } while (--height); return; } @@ -319,7 +319,8 @@ void Blitter_32bppAnim::SetPixel(void *video, int x, int y, uint8 colour) /* Set the colour in the anim-buffer too, if we are rendering to the screen */ if (_screen_disable_anim) return; - this->anim_buf[((uint32 *)video - (uint32 *)_screen.dst_ptr) + x + y * this->anim_buf_width] = colour | (DEFAULT_BRIGHTNESS << 8); + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'video' into an 'anim_buf' offset below. + this->anim_buf[((uint32 *)video - (uint32 *)_screen.dst_ptr) + x + y * this->anim_buf_pitch] = colour | (DEFAULT_BRIGHTNESS << 8); } void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colour) @@ -331,9 +332,8 @@ void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colou } Colour colour32 = LookupColourInPalette(colour); - uint16 *anim_line; - - anim_line = ((uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'video' into an 'anim_buf' offset below. + uint16 *anim_line = ((uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; do { Colour *dst = (Colour *)video; @@ -347,7 +347,7 @@ void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colou anim++; } video = (uint32 *)video + _screen.pitch; - anim_line += this->anim_buf_width; + anim_line += this->anim_buf_pitch; } while (--height); } @@ -357,6 +357,7 @@ void Blitter_32bppAnim::CopyFromBuffer(void *video, const void *src, int width, assert(video >= _screen.dst_ptr && video <= (uint32 *)_screen.dst_ptr + _screen.width + _screen.height * _screen.pitch); Colour *dst = (Colour *)video; const uint32 *usrc = (const uint32 *)src; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'video' into an 'anim_buf' offset below. uint16 *anim_line = ((uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; for (; height > 0; height--) { @@ -370,7 +371,7 @@ void Blitter_32bppAnim::CopyFromBuffer(void *video, const void *src, int width, /* Copy back the anim-buffer */ memcpy(anim_line, usrc, width * sizeof(uint16)); usrc = (const uint32 *)((const uint16 *)usrc + width); - anim_line += this->anim_buf_width; + anim_line += this->anim_buf_pitch; /* Okay, it is *very* likely that the image we stored is using * the wrong palette animated colours. There are two things we @@ -397,11 +398,11 @@ void Blitter_32bppAnim::CopyToBuffer(const void *video, void *dst, int width, in assert(video >= _screen.dst_ptr && video <= (uint32 *)_screen.dst_ptr + _screen.width + _screen.height * _screen.pitch); uint32 *udst = (uint32 *)dst; const uint32 *src = (const uint32 *)video; - const uint16 *anim_line; if (this->anim_buf == NULL) return; - anim_line = ((const uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'video' into an 'anim_buf' offset below. + const uint16 *anim_line = ((const uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; for (; height > 0; height--) { memcpy(udst, src, width * sizeof(uint32)); @@ -410,7 +411,7 @@ void Blitter_32bppAnim::CopyToBuffer(const void *video, void *dst, int width, in /* Copy the anim-buffer */ memcpy(udst, anim_line, width * sizeof(uint16)); udst = (uint32 *)((uint16 *)udst + width); - anim_line += this->anim_buf_width; + anim_line += this->anim_buf_pitch; } } @@ -422,8 +423,8 @@ void Blitter_32bppAnim::ScrollBuffer(void *video, int &left, int &top, int &widt /* We need to scroll the anim-buffer too */ if (scroll_y > 0) { - dst = this->anim_buf + left + (top + height - 1) * this->anim_buf_width; - src = dst - scroll_y * this->anim_buf_width; + dst = this->anim_buf + left + (top + height - 1) * this->anim_buf_pitch; + src = dst - scroll_y * this->anim_buf_pitch; /* Adjust left & width */ if (scroll_x >= 0) { @@ -436,13 +437,13 @@ void Blitter_32bppAnim::ScrollBuffer(void *video, int &left, int &top, int &widt uint th = height - scroll_y; for (; th > 0; th--) { memcpy(dst, src, tw * sizeof(uint16)); - src -= this->anim_buf_width; - dst -= this->anim_buf_width; + src -= this->anim_buf_pitch; + dst -= this->anim_buf_pitch; } } else { /* Calculate pointers */ - dst = this->anim_buf + left + top * this->anim_buf_width; - src = dst - scroll_y * this->anim_buf_width; + dst = this->anim_buf + left + top * this->anim_buf_pitch; + src = dst - scroll_y * this->anim_buf_pitch; /* Adjust left & width */ if (scroll_x >= 0) { @@ -457,8 +458,8 @@ void Blitter_32bppAnim::ScrollBuffer(void *video, int &left, int &top, int &widt uint th = height + scroll_y; for (; th > 0; th--) { memmove(dst, src, tw * sizeof(uint16)); - src += this->anim_buf_width; - dst += this->anim_buf_width; + src += this->anim_buf_pitch; + dst += this->anim_buf_pitch; } } @@ -495,6 +496,7 @@ void Blitter_32bppAnim::PaletteAnimate(const Palette &palette) anim++; } dst += _screen.pitch - this->anim_buf_width; + anim += this->anim_buf_pitch - this->anim_buf_width; } /* Make sure the backend redraws the whole screen */ @@ -508,11 +510,13 @@ Blitter::PaletteAnimation Blitter_32bppAnim::UsePaletteAnimation() void Blitter_32bppAnim::PostResize() { - if (_screen.width != this->anim_buf_width || _screen.height != this->anim_buf_height) { + if (_screen.width != this->anim_buf_width || _screen.height != this->anim_buf_height || + _screen.pitch != this->anim_buf_pitch) { /* The size of the screen changed; we can assume we can wipe all data from our buffer */ free(this->anim_buf); - this->anim_buf = CallocT(_screen.width * _screen.height); this->anim_buf_width = _screen.width; this->anim_buf_height = _screen.height; + this->anim_buf_pitch = _screen.pitch; + this->anim_buf = CallocT(this->anim_buf_height * this->anim_buf_pitch); } } diff --git a/src/blitter/32bpp_anim.hpp b/src/blitter/32bpp_anim.hpp index 4b08429edc..1b35c17663 100644 --- a/src/blitter/32bpp_anim.hpp +++ b/src/blitter/32bpp_anim.hpp @@ -20,13 +20,15 @@ protected: uint16 *anim_buf; ///< In this buffer we keep track of the 8bpp indexes so we can do palette animation int anim_buf_width; ///< The width of the animation buffer. int anim_buf_height; ///< The height of the animation buffer. + int anim_buf_pitch; ///< The pitch of the animation buffer. Palette palette; ///< The current palette. public: Blitter_32bppAnim() : anim_buf(NULL), anim_buf_width(0), - anim_buf_height(0) + anim_buf_height(0), + anim_buf_pitch(0) { this->palette = _cur_palette; } diff --git a/src/blitter/32bpp_anim_sse4.cpp b/src/blitter/32bpp_anim_sse4.cpp index 7d4b66fca6..987cb0c6ac 100644 --- a/src/blitter/32bpp_anim_sse4.cpp +++ b/src/blitter/32bpp_anim_sse4.cpp @@ -35,7 +35,8 @@ inline void Blitter_32bppSSE4_Anim::Draw(const Blitter::BlitterParams *bp, ZoomL { const byte * const remap = bp->remap; Colour *dst_line = (Colour *) bp->dst + bp->top * bp->pitch + bp->left; - uint16 *anim_line = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_width + bp->left; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'bp->dst' into an 'anim_buf' offset below. + uint16 *anim_line = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_pitch + bp->left; int effective_width = bp->width; /* Find where to start reading in the source sprite. */ @@ -353,7 +354,7 @@ next_line: if (mode != BM_TRANSPARENT) src_mv_line += si->sprite_width; src_rgba_line = (const Colour*) ((const byte*) src_rgba_line + si->sprite_line_size); dst_line += bp->pitch; - anim_line += this->anim_buf_width; + anim_line += this->anim_buf_pitch; } } IGNORE_UNINITIALIZED_WARNING_STOP From e2e9bd0b258199da65bee06c5ad17f0ec2da8185 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:43:43 +0000 Subject: [PATCH 289/417] (svn r27797) -Add: Display aircraft type in its vehicle window (patch by Samu) --- src/engine.cpp | 21 ++++++++++++++++++++- src/engine_base.h | 1 + src/lang/english.txt | 3 ++- src/vehicle_gui.cpp | 11 ++++++++--- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/engine.cpp b/src/engine.cpp index 3e69c4ac85..b0af3bc4df 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -464,7 +464,26 @@ uint16 Engine::GetRange() const } /** - * Initializes the EngineOverrideManager with the default engines. + * Get the name of the aircraft type for display purposes. + * @return Aircraft type string. + */ +StringID Engine::GetAircraftTypeText() const +{ + switch (this->type) { + case VEH_AIRCRAFT: + switch (this->u.air.subtype) { + case AIR_HELI: return STR_LIVERY_HELICOPTER; + case AIR_CTOL: return STR_LIVERY_SMALL_PLANE; + case AIR_CTOL | AIR_FAST: return STR_LIVERY_LARGE_PLANE; + default: NOT_REACHED(); + } + + default: NOT_REACHED(); + } +} + +/** + * Initializes the #EngineOverrideManager with the default engines. */ void EngineOverrideManager::ResetToDefaultMapping() { diff --git a/src/engine_base.h b/src/engine_base.h index 6a2e6816c3..25c6bfbeb9 100644 --- a/src/engine_base.h +++ b/src/engine_base.h @@ -111,6 +111,7 @@ struct Engine : EnginePool::PoolItem<&_engine_pool> { uint GetDisplayMaxTractiveEffort() const; Date GetLifeLengthInDays() const; uint16 GetRange() const; + StringID GetAircraftTypeText() const; /** * Check whether the engine is hidden in the GUI for the given company. diff --git a/src/lang/english.txt b/src/lang/english.txt index 505356f08f..978e90ffa5 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3657,7 +3657,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} year{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} year{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. speed: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Range: {LTBLUE}{COMMA} tiles +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Aircraft type: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Aircraft type: {LTBLUE}{STRING} {BLACK}Range: {LTBLUE}{COMMA} tiles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 8ea8cda4c8..a77ea18df0 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2069,9 +2069,14 @@ struct VehicleDetailsWindow : Window { } } else { SetDParam(0, v->GetDisplayMaxSpeed()); - if (v->type == VEH_AIRCRAFT && Aircraft::From(v)->GetRange() > 0) { - SetDParam(1, Aircraft::From(v)->GetRange()); - string = STR_VEHICLE_INFO_MAX_SPEED_RANGE; + if (v->type == VEH_AIRCRAFT) { + SetDParam(1, v->GetEngine()->GetAircraftTypeText()); + if (Aircraft::From(v)->GetRange() > 0) { + SetDParam(2, Aircraft::From(v)->GetRange()); + string = STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE; + } else { + string = STR_VEHICLE_INFO_MAX_SPEED_TYPE; + } } else { string = STR_VEHICLE_INFO_MAX_SPEED; } From 7c3004c785e4ba134d204dd2dad0f7c7cd0c73e7 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:45:18 +0000 Subject: [PATCH 290/417] (svn r27798) -Change: Also remove obsolete string from the other languages --- src/lang/afrikaans.txt | 1 - src/lang/basque.txt | 1 - src/lang/belarusian.txt | 1 - src/lang/brazilian_portuguese.txt | 1 - src/lang/bulgarian.txt | 1 - src/lang/catalan.txt | 1 - src/lang/croatian.txt | 1 - src/lang/czech.txt | 1 - src/lang/danish.txt | 1 - src/lang/dutch.txt | 1 - src/lang/english_AU.txt | 1 - src/lang/english_US.txt | 1 - src/lang/estonian.txt | 1 - src/lang/faroese.txt | 1 - src/lang/finnish.txt | 1 - src/lang/french.txt | 1 - src/lang/gaelic.txt | 1 - src/lang/galician.txt | 1 - src/lang/german.txt | 1 - src/lang/greek.txt | 1 - src/lang/hebrew.txt | 1 - src/lang/hungarian.txt | 1 - src/lang/icelandic.txt | 1 - src/lang/indonesian.txt | 1 - src/lang/irish.txt | 1 - src/lang/italian.txt | 1 - src/lang/japanese.txt | 1 - src/lang/korean.txt | 1 - src/lang/latin.txt | 1 - src/lang/latvian.txt | 1 - src/lang/lithuanian.txt | 1 - src/lang/luxembourgish.txt | 1 - src/lang/malay.txt | 1 - src/lang/norwegian_bokmal.txt | 1 - src/lang/norwegian_nynorsk.txt | 1 - src/lang/polish.txt | 1 - src/lang/portuguese.txt | 1 - src/lang/romanian.txt | 1 - src/lang/russian.txt | 1 - src/lang/serbian.txt | 1 - src/lang/simplified_chinese.txt | 1 - src/lang/slovak.txt | 1 - src/lang/slovenian.txt | 1 - src/lang/spanish.txt | 1 - src/lang/spanish_MX.txt | 1 - src/lang/swedish.txt | 1 - src/lang/tamil.txt | 1 - src/lang/thai.txt | 1 - src/lang/traditional_chinese.txt | 1 - src/lang/turkish.txt | 1 - src/lang/ukrainian.txt | 1 - src/lang/unfinished/macedonian.txt | 1 - src/lang/unfinished/persian.txt | 1 - src/lang/unfinished/urdu.txt | 1 - src/lang/vietnamese.txt | 1 - src/lang/welsh.txt | 1 - 56 files changed, 56 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 377c928460..915bec0b5b 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3650,7 +3650,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ja{P ar STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ja{P ar re} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. spoed: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. spoed: {LTBLUE}{VELOCITY} {BLACK}Afstand: {LTBLUE}{COMMA} teëls STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewig: {LTBLUE}{WEIGHT_SHORT} {BLACK}Krag: {LTBLUE}{POWER}{BLACK} Maks. spoed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Massa: {LTBLUE}{WEIGHT_SHORT} {BLACK}Krag: {LTBLUE}{POWER}{BLACK} Maks. spoed: {LTBLUE}{VELOCITY} {BLACK}Maks. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 1db1ed48eb..b1419b4a88 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3528,7 +3528,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} urte ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} urte ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Gehienezko abiadura: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Gehienezko abiadura: {LTBLUE}{VELOCITY} {BLACK}Irismena: {LTBLUE}{COMMA} lauki STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pisua: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potentzia: {LTBLUE}{POWER}{BLACK} Gehienezko abiadura: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pisua: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potentzia: {LTBLUE}{POWER}{BLACK} Gehienezko abiadura: {LTBLUE}{VELOCITY} {BLACK}Gehienezko trakzio indarra: {LTBLUE}{FORCE} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 221f6f1573..310e03d676 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -4002,7 +4002,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} г{P о STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} г{P од ады адоў} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. хуткасьць: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. хуткасьць: {LTBLUE}{VELOCITY} {BLACK}Далёкасьць: {LTBLUE}{COMMA} клетк{P а i ак} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Магутнасьць: {LTBLUE}{POWER}{BLACK} Макс. хуткасьць: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Магутнасьць: {LTBLUE}{POWER}{BLACK} Макс. хуткасьць: {LTBLUE}{VELOCITY} {BLACK}Макс. ЦН: {LTBLUE}{FORCE} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index fdc960e950..49386dacc9 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3650,7 +3650,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidade Max: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{G=f}{BLACK}Vel. máx.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} quadrados STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Força: {LTBLUE}{POWER}{BLACK} Velocidade Max: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Força: {LTBLUE}{POWER}{BLACK} Velocidade Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 4adbc74de7..85914ba1df 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3569,7 +3569,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} год STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} годин{P а и} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. скорост: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. скорост: {LTBLUE}{VELOCITY} {BLACK}Обхват: {LTBLUE}{COMMA} полета STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Тегло: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощност: {LTBLUE}{POWER}{BLACK} Макс. Скорост: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Тегло: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощност: {LTBLUE}{POWER}{BLACK} Макс. Скорост: {LTBLUE}{VELOCITY} {BLACK}Макс. Т.С.: {LTBLUE}{FORCE} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 7d407a0b68..0c7b9c1b53 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3658,7 +3658,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} any{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} any{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vel. màx.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Vel. màx: {LTBLUE}{VELOCITY} {BLACK}Abast: {LTBLUE}{COMMA} cel·les STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. Màx: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. màx: {LTBLUE}{VELOCITY} {BLACK}E.T. màx.: {LTBLUE}{FORCE} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index cbb33f95e1..2c0df9cd38 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3753,7 +3753,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} godin{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} godin{P a e a} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Domet: {LTBLUE}{COMMA} polj{P e a a} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Najveća vučna sila: {LTBLUE}{FORCE} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index b053b507af..8f6879bb7c 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3748,7 +3748,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P rok STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P rok roky let} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Dosah: {LTBLUE}{COMMA} polí STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Hmotnost: {LTBLUE}{WEIGHT_SHORT} {BLACK}Výkon: {LTBLUE}{POWER}{BLACK} Max. rychlost: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Hmotnost: {LTBLUE}{WEIGHT_SHORT} {BLACK}Výkon: {LTBLUE}{POWER}{BLACK} Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Max. tažná síla: {LTBLUE}{FORCE} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 5fdc19c51c..cea4ee092d 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. hast.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. hastighed: {LTBLUE}{VELOCITY} {BLACK}Rækkevidde: {LTBLUE}{COMMA} felter STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vægt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Effekt: {LTBLUE}{POWER}{BLACK} Maks. hast.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vægt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Effekt: {LTBLUE}{POWER}{BLACK} Maks. hast.: {LTBLUE}{VELOCITY} {BLACK}Maks. trækkraft: {LTBLUE}{FORCE} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 541d07b146..3326317495 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3652,7 +3652,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ja{P ar STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ja{P ar ren} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Bereik: {LTBLUE}{COMMA} tegels STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kracht: {LTBLUE}{POWER}{BLACK} Max. snelheid: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kracht: {LTBLUE}{POWER}{BLACK} Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Max. T.K.: {LTBLUE}{FORCE} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index abdac23882..8def6f1382 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3600,7 +3600,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} year{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} year{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. speed: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Range: {LTBLUE}{COMMA} tiles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index e67bb2c06b..7ddcff1d8b 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3655,7 +3655,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} year{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} year{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. speed: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Range: {LTBLUE}{COMMA} tiles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 4ce9d63471..c7f1eb0ae5 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3707,7 +3707,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} aasta{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} aasta{P "" t} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Tippkiirus: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maksimaalne kiirus: {LTBLUE}{VELOCITY} {BLACK}Tegevusraadius: {LTBLUE}{COMMA} ruutu STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Tühimass: {LTBLUE}{WEIGHT_SHORT} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Tühimass: {LTBLUE}{WEIGHT_SHORT} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY} {BLACK}Veojõud: {LTBLUE}{FORCE} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index b121d9cb86..2a4d9e1eea 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -3230,7 +3230,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ár ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ár ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. ferð: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks. ferð: {LTBLUE}{VELOCITY} {BLACK}Vídd: {LTBLUE}{COMMA} puntar STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Megi: {LTBLUE}{POWER}{BLACK} Maks. ferð: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Megi: {LTBLUE}{POWER}{BLACK} Maks. ferð: {LTBLUE}{VELOCITY} {BLACK}Maks. D.Ó.: {LTBLUE}{FORCE} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 25bcabe338..ae55d1031a 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} vuo{P s STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} vuo{P si tta} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Huippunopeus: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Suurin nopeus: {LTBLUE}{VELOCITY} {BLACK}Toimintasäde: {LTBLUE}{COMMA} ruutua STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Paino: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teho: {LTBLUE}{POWER}{BLACK} Maks. nopeus: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Paino: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teho: {LTBLUE}{POWER}{BLACK} Maks. nopeus: {LTBLUE}{VELOCITY} {BLACK}Maks. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/french.txt b/src/lang/french.txt index 33af65666f..ff03506b0b 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3658,7 +3658,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} an{P "" STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} an{P "" nées} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} − Rayon d'action{NBSP}: {LTBLUE}{COMMA} cases STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Poids{NBSP}: {LTBLUE}{NBSP}{WEIGHT_SHORT} − {BLACK}Puissance{NBSP}: {LTBLUE}{NBSP}{POWER}{BLACK} − Vitesse max.{NBSP}: {LTBLUE}{NBSP}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Poids{NBSP}: {LTBLUE}{WEIGHT_SHORT}{BLACK} − Puissance{NBSP}: {LTBLUE}{POWER}{BLACK} − Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} − E.T. max.{NBSP}: {LTBLUE}{FORCE} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 3722eb1634..f4ff7f5b63 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3878,7 +3878,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P bhli STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P bhliadhna bhliadhna bliadhna bliadhna} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Astar: {LTBLUE}{COMMA} {P leac leac leacan leac} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Cuideam: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhachd: {LTBLUE}{POWER}{BLACK} Luaths as motha: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Cuideam: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhachd: {LTBLUE}{POWER}{BLACK} Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Neart as motha: {LTBLUE}{FORCE} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index b097f4daef..371dbbcc9e 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3596,7 +3596,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidade máxima: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidade máxima: {LTBLUE}{VELOCITY} {BLACK}Autonomía: {LTBLUE}{COMMA} cadros STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidade máxima: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidade máxima: {LTBLUE}{VELOCITY} {BLACK}T.E. máx.: {LTBLUE}{FORCE} diff --git a/src/lang/german.txt b/src/lang/german.txt index 8a7bf51d33..e1bbca7dc9 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3650,7 +3650,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} Jahr{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} Jahr{P "" e} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. Geschwindigkeit: {LTBLUE}{VELOCITY} {BLACK}Reichweite: {LTBLUE}{COMMA} Felder STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Max. Zugkraft: {LTBLUE}{FORCE} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 1426856bde..cdd0a2224d 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3768,7 +3768,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} χρό STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} χρόν{P ος ια} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Μέγ. ταχύτητα: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Μέγ. ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Εμβέλεια: {LTBLUE}{COMMA} τετραγωνίδια STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Βάρος: {LTBLUE}{WEIGHT_SHORT} {BLACK}Δύναμη Κινητήρα: {LTBLUE}{POWER}{BLACK} Μέγ. Ταχύτητα: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Βάρος: {LTBLUE}{WEIGHT_SHORT} {BLACK}Δύναμη Κινητήρα: {LTBLUE}{POWER}{BLACK} Μέγ. Ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Μέγ. Ε.Δ: {LTBLUE}{FORCE} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index ef3bb5070a..497bb0908c 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3663,7 +3663,6 @@ STR_VEHICLE_INFO_AGE :({1:COMMA}) ש STR_VEHICLE_INFO_AGE_RED :{RED}({1:COMMA}) שנים {NBSP}{0:COMMA} STR_VEHICLE_INFO_MAX_SPEED :{BLACK}מהירות מקסימלית: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}מהירות מירבית: {LTBLUE}{VELOCITY} {BLACK}טווח: {LTBLUE}{COMMA} משבצות STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}משקל: {LTBLUE}{WEIGHT_SHORT} {BLACK}הספק: {LTBLUE}{POWER}{BLACK} מהירות מקסימלית: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}משקל: {LTBLUE}{WEIGHT_SHORT} {BLACK}הספק: {LTBLUE}{POWER}{BLACK} מהירות מקסימלית: {LTBLUE}{VELOCITY} {BLACK}T.E. מקסימלי: {LTBLUE}{FORCE} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index fd4f1338d7..5d247d8fcd 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3713,7 +3713,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} év ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} év ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Végsebesség: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Végsebesség: {LTBLUE}{VELOCITY} {BLACK}Hatótávolság: {LTBLUE}{COMMA} mező STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Súly: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Súly: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} {BLACK}Vonóerő: {LTBLUE}{FORCE} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 55a54c2d6c..83601b21c1 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3422,7 +3422,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ár ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ár ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Hámarkshraði: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Hámarkshraði: {LTBLUE}{VELOCITY} {BLACK}Drægni: {LTBLUE}{COMMA} reitir STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Þyngd: {LTBLUE}{WEIGHT_SHORT} {BLACK}Afl: {LTBLUE}{POWER}{BLACK} Hámarkshraði: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Þyngd: {LTBLUE}{WEIGHT_SHORT} {BLACK}Afl: {LTBLUE}{POWER}{BLACK} Hámarkshraði: {LTBLUE}{VELOCITY} {BLACK}Hámarks dráttarafl.: {LTBLUE}{FORCE} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 35b8db2522..20f186daa6 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3645,7 +3645,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} tahun ( STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} tahun ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Kec. Max: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Kecepatan Max.: {LTBLUE}{VELOCITY} {BLACK}Jangkauan: {LTBLUE}{COMMA} kotak STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Tenaga: {LTBLUE}{POWER}{BLACK} Kec. Max: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Tenaga: {LTBLUE}{POWER}{BLACK} Kec. Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/irish.txt b/src/lang/irish.txt index b8a262e858..0a4ce2b3da 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P bhli STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P bhliain bhliain bliana mbliana bliana} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Luas uasta: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Luas uasta: {LTBLUE}{VELOCITY} {BLACK}Raon: {LTBLUE}{COMMA} {P th th th dt t}íl STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Meáchan: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhacht: {LTBLUE}{POWER}{BLACK}Luas uasta: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Meáchan: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhacht: {LTBLUE}{POWER}{BLACK} Uas-luas: {LTBLUE}{VELOCITY} {BLACK}T.E. Uasta: {LTBLUE}{FORCE} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index cb75eaf927..f48b725f5c 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3687,7 +3687,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ann{P o STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ann{P o i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} {BLACK}Autonomia: {LTBLUE}{COMMA} riquadr{P o i} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potenza: {LTBLUE}{POWER}{BLACK} Velocità max.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potenza: {LTBLUE}{POWER}{BLACK} Velocità max.: {LTBLUE}{VELOCITY} {BLACK}S.T. max.: {LTBLUE}{FORCE} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 251c68b55f..45e8e28d18 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3653,7 +3653,6 @@ STR_VEHICLE_INFO_AGE :{COMMA}年({COM STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA}年({COMMA}年) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}最高速度: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}最高速度: {LTBLUE}{VELOCITY} {BLACK}航続距離: {LTBLUE}{COMMA}タイル STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}重量: {LTBLUE}{WEIGHT_SHORT} {BLACK}出力: {LTBLUE}{POWER}{BLACK} 最高速度: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}重量: {LTBLUE}{WEIGHT_SHORT} {BLACK}出力: {LTBLUE}{POWER}{BLACK} 最高速度: {LTBLUE}{VELOCITY} {BLACK}最大牽引力: {LTBLUE}{FORCE} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index d05ab967eb..e4c4e47a81 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3658,7 +3658,6 @@ STR_VEHICLE_INFO_AGE :{COMMA}년 ({CO STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA}년 ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}최고 속력: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}최고 속력: {LTBLUE}{VELOCITY} {BLACK}항속거리: {LTBLUE}{COMMA} 칸 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고속력: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고속력: {LTBLUE}{VELOCITY} {BLACK}최고 T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 380ac68537..3ec00ffaba 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3857,7 +3857,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ann{P u STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ann{P us i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}Max. distantia volatus: {LTBLUE}{COMMA} tegulas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pondus: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potestas: {LTBLUE}{POWER}{BLACK} Velocitas maxima: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pondus: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potestas: {LTBLUE}{POWER}{BLACK} Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}V.T. Max.: {LTBLUE}{FORCE} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index f75d381b39..893369d645 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3580,7 +3580,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} gad{P s STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} gad{P s i u} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. ātrums: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks. ātrums: {LTBLUE}{VELOCITY} {BLACK}Apgabals: {LTBLUE}{COMMA} flīzes STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Svars: {LTBLUE}{WEIGHT_SHORT} {BLACK}Jauda: {LTBLUE}{POWER}{BLACK} Maks. ātrums: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Svars: {LTBLUE}{WEIGHT_SHORT} {BLACK}Jauda: {LTBLUE}{POWER}{BLACK} Maks. ātrums: {LTBLUE}{VELOCITY} {BLACK}Maks. spēks: {LTBLUE}{FORCE} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index f9067c5567..9bd232fdb8 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3906,7 +3906,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} met{P a STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} met{P ai ai ų} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Didž. greitis: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Didž. greitis: {LTBLUE}{VELOCITY} {BLACK}Nuotolis: {LTBLUE}{COMMA} langeliai STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Svoris: {LTBLUE}{WEIGHT_SHORT} {BLACK}Galia: {LTBLUE}{POWER}{BLACK} Didž. greitis: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Svoris: {LTBLUE}{WEIGHT_SHORT} {BLACK}Galia: {LTBLUE}{POWER}{BLACK} Didž. greitis: {LTBLUE}{VELOCITY} {BLACK}Didž. traukos jėga: {LTBLUE}{FORCE} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index a671e4d44d..0fa846cbbb 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3655,7 +3655,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} Joer ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} Joer ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. Geschwindegkeet: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Distanz: {LTBLUE}{COMMA} Felder STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewiicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraaft: {LTBLUE}{POWER}{BLACK} Max. Geschwindegkeet: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewiicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraaft: {LTBLUE}{POWER}{BLACK} Max. Geschwindegkeet: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 7779ea9504..ef2e43d874 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3301,7 +3301,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} tahun ( STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} tahun ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Kelajuan Maks.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Kelajuan Maks.: {LTBLUE}{VELOCITY} {BLACK}Jarak: {LTBLUE}{COMMA} petak STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kuasa: {LTBLUE}{POWER}{BLACK} Kelajuan Maks.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kuasa: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}T.E. Maks.: {LTBLUE}{FORCE} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index e8bd624a0f..380b5755ef 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3653,7 +3653,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks hastighet: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks hastighet: {LTBLUE}{VELOCITY} {BLACK}Rekkevidde: {LTBLUE}{COMMA} ruter STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} {BLACK}Maks trekkraft: {LTBLUE}{FORCE} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index aa455f5efe..fc35f1e447 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3566,7 +3566,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. hastigheit: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks fart: {LTBLUE}{VELOCITY} {BLACK}Rekkevidde: {LTBLUE}{COMMA} ruter STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks. hastigheit: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks. hastigheit: {LTBLUE}{VELOCITY} {BLACK}Maks. trekkraft: {LTBLUE}{FORCE} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 4647441fc0..bfa4d6b283 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -4041,7 +4041,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P rok STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P rok lata lat} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Prędkość maksymalna: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Prędkość maksymalna: {LTBLUE}{VELOCITY} {BLACK}Zasięg: {LTBLUE}{COMMA} pól STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Masa: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moc: {LTBLUE}{POWER}{BLACK} Prędkość maksymalna: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Masa: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moc: {LTBLUE}{POWER}{BLACK} Prędkość maksymalna: {LTBLUE}{VELOCITY} {BLACK}Maksymalna siła pociągowa: {LTBLUE}{FORCE} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 552456b081..9cb843fbd9 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3650,7 +3650,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Máx. velocidade: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidade max.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} quadrados STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Max. velocidade: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Máx. velocidade: {LTBLUE}{VELOCITY} {BLACK}Máx. E.T.: {LTBLUE}{FORCE} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 1a3e29f479..884ccdb73b 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3606,7 +3606,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} an{P "" STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} an{P "" i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Viteză max.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Viteză maximă: {LTBLUE}{VELOCITY} {BLACK}Rază de acțiune: {LTBLUE}{COMMA} pătrățele STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Greutate: {LTBLUE}{WEIGHT_SHORT} {BLACK}Putere: {LTBLUE}{POWER}{BLACK} Viteză max.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Greutate: {LTBLUE}{WEIGHT_SHORT} {BLACK}Putere: {LTBLUE}{POWER}{BLACK} Viteză max.: {LTBLUE}{VELOCITY} {BLACK}Efort tractiv: {LTBLUE}{FORCE} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index fc53374e3c..c58dfb982c 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3847,7 +3847,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P го STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P год года лет} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Дальность: {LTBLUE}{COMMA} клет{P ка ки ок} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вес: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощность: {LTBLUE}{POWER}{BLACK} Макс. скорость: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вес: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощность: {LTBLUE}{POWER}{BLACK} Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Макс. ТУ: {LTBLUE}{FORCE} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 61f848e8b3..d2f6cba872 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3860,7 +3860,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} godin{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} godin{P a e a} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Domet: {LTBLUE}{COMMA} pločica STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} {BLACK} Najveća vučna snaga: {LTBLUE}{FORCE} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 6be975993f..32b8d88cc1 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} 年 ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} 年 ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}最大速度:{LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}最大速度: {LTBLUE}{VELOCITY} {BLACK}航行距离: {LTBLUE}{COMMA} 格 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}重量:{LTBLUE}{WEIGHT_SHORT} {BLACK}功率:{LTBLUE}{POWER}{BLACK} 最大速度:{LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}重量:{LTBLUE}{WEIGHT_SHORT} {BLACK}功率:{LTBLUE}{POWER}{BLACK} 最大速度:{LTBLUE}{VELOCITY} {BLACK}最大牵引力:{LTBLUE}{FORCE} diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 539b5379d7..2da0bda1c2 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3717,7 +3717,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} rok{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} rok{P "" y ov} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. rýchlosť: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. rýchlosť: {LTBLUE}{VELOCITY} {BLACK}Dosah: {LTBLUE}{COMMA} políčok STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Hmotnosť: {LTBLUE}{WEIGHT_SHORT} {BLACK}Sila: {LTBLUE}{POWER}{BLACK} Max. rýchlosť: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Hmotnosť: {LTBLUE}{WEIGHT_SHORT} {BLACK}Sila: {LTBLUE}{POWER}{BLACK} Max. rýchlosť: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 1cd9a11aa9..4516428bd0 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3802,7 +3802,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} let{P o STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} let{P o i a ""} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. hitrost: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. hitrost: {LTBLUE}{VELOCITY} {BLACK}Domet: {LTBLUE}{COMMA} polj STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Teža: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moč: {LTBLUE}{POWER}{BLACK} Max. hitrost: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Teža: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moč: {LTBLUE}{POWER}{BLACK} Max. hitrost: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 37b033277d..09d78228ad 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3652,7 +3652,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} casillas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index c2de0c7009..80709c2bdf 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3653,7 +3653,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad máx.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} casillas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. máx.: {LTBLUE}{FORCE} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 1abfef52a5..ccb6279452 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maxhastiget: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maxhastighet: {LTBLUE}{VELOCITY} {BLACK}Räckvidd: {LTBLUE}{COMMA} rutor STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vikt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maxhastiget: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vikt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maxhastiget: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 32c647fac1..bb7da43c90 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -3228,7 +3228,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} வர STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} வருடம்{P "" கள்} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}அதி. வேகம்: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}அதி. வேகம்: {LTBLUE}{VELOCITY} {BLACK}வரையறை: {LTBLUE}{COMMA} கட்டங்கள் STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}எடை: {LTBLUE}{WEIGHT_SHORT} {BLACK}திறன்: {LTBLUE}{POWER}{BLACK} அதி. வேகம்: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}எடை: {LTBLUE}{WEIGHT_SHORT} {BLACK}திறன்: {LTBLUE}{POWER}{BLACK} அதி. வேகம்: {LTBLUE}{VELOCITY} {BLACK}அதி. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 96fa8775f8..412a5d59bf 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3568,7 +3568,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ปี STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ปี ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}ความเร็วสูงสุด: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}ความเร็วสูงสุด: {LTBLUE}{VELOCITY} {BLACK}พิสัย: {LTBLUE}{COMMA} ช่อง STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}น้ำหนัก: {LTBLUE}{WEIGHT_SHORT} {BLACK}พลังขับเคลื่อน: {LTBLUE}{POWER}{BLACK} ความเร็วสูงสุด: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}น้ำหนัก: {LTBLUE}{WEIGHT_SHORT} {BLACK}พลังขับเคลื่อน: {LTBLUE}{POWER}{BLACK} ความเร็วสูงสุด: {LTBLUE}{VELOCITY} {BLACK}กำลังลากจูงสูงสุด: {LTBLUE}{FORCE} diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index b12a1b1df6..0cfa4e567b 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} 年 ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} 年 ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}最高速度:{LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}最高速度: {LTBLUE}{VELOCITY} {BLACK}範圍: {LTBLUE}{COMMA} 格 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}載重:{LTBLUE}{WEIGHT_SHORT} {BLACK}功率:{LTBLUE}{POWER}{BLACK} 最高速度:{LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}載重:{LTBLUE}{WEIGHT_SHORT} {BLACK}功率:{LTBLUE}{POWER}{BLACK} 最高速度:{LTBLUE}{VELOCITY} {BLACK}最大牽引力:{LTBLUE}{FORCE} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 5352546c22..73ba5e9244 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3652,7 +3652,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} sene ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} sene ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Azami Hız: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Azami hız: {LTBLUE}{VELOCITY} {BLACK}Menzil: {LTBLUE}{COMMA} kare STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Ağırlık: {LTBLUE}{WEIGHT_SHORT} {BLACK}Güç: {LTBLUE}{POWER}{BLACK} Azami Hız: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Ağırlık: {LTBLUE}{WEIGHT_SHORT} {BLACK}Güç: {LTBLUE}{POWER}{BLACK} Azami Hız: {LTBLUE}{VELOCITY} {BLACK}Azami Tork: {LTBLUE}{FORCE} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index ef7d9ad9e4..0f2b90eec1 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3780,7 +3780,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} р{P і STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} р{P ік оки оків} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Дальність: {LTBLUE}{COMMA} клітинок STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Макс. тяга: {LTBLUE}{FORCE} diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index b10f2761f8..e22a52fe8b 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1549,7 +1549,6 @@ STR_VEHICLE_DETAILS_AIRCRAFT_RENAME :{BLACK}Име STR_VEHICLE_INFO_AGE :{COMMA} година{P "" s} ({COMMA}) STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} година{P "" s} ({COMMA}) -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. брзина: {LTBLUE}{VELOCITY} {BLACK}Опсег: {LTBLUE}{COMMA} плочки diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 5b1787eaec..2770597751 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -3128,7 +3128,6 @@ STR_VEHICLE_DETAILS_AIRCRAFT_RENAME :{BLACK}نامگ STR_VEHICLE_INFO_AGE :{COMMA}سال ({COMMA}) STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} سال ({COMMA}) -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}بیشینه سرعت: {LTBLUE}{VELOCITY} {BLACK}برد: {LTBLUE}{COMMA} قطعه STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}ظرفیت: {LTBLUE}{CARGO_LONG}, {CARGO_LONG}{STRING} diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 4a4c5b2c59..3cff4ee19a 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2447,7 +2447,6 @@ STR_VEHICLE_COMMAND_STARTED :{GREEN} شرو # The next two need to stay in this order -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}حد رفتار: {LTBLUE}{VELOCITY} {BLACK} پہنچ: {LTBLUE}{COMMA} ٹائلیں diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index e78a0d4eaa..5e610de801 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} năm ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} năm ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Tốc độ tối đa: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Tốc độ max: {LTBLUE}{VELOCITY} {BLACK} Tầm xa: {LTBLUE}{COMMA} ô STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Tải trọng: {LTBLUE}{WEIGHT_SHORT} {BLACK}Công suất: {LTBLUE}{POWER}{BLACK} Tốc độ tối đa: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Tải trọng: {LTBLUE}{WEIGHT_SHORT} {BLACK}Công suất: {LTBLUE}{POWER}{BLACK} Tốc độ tối đa: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 56dfccdfd6..bc6a4744a9 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3651,7 +3651,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} blwyddy STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} blwyddyn ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}cyflymder uchaf: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Cyf. uchaf: {LTBLUE}{VELOCITY} {BLACK}Pell. Cyrraedd: {LTBLUE}{COMMA} teil STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pwys: {LTBLUE}{WEIGHT_SHORT} {BLACK}Pŵer: {LTBLUE}{POWER}{BLACK} Cyflym. Max: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pwys: {LTBLUE}{WEIGHT_SHORT} {BLACK}Pŵer: {LTBLUE}{POWER}{BLACK} Cyflym. Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} From fa5fd39c23e89537db4049fbf5a95e57525abde0 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:46:15 +0000 Subject: [PATCH 291/417] (svn r27799) -Add: Display aircraft type in buy window (patch by Samu) --- src/build_vehicle_gui.cpp | 16 +++++++++++++++- src/lang/english.txt | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index bd4bf3b59b..655a18d7f8 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -719,7 +719,15 @@ static int DrawShipPurchaseInfo(int left, int right, int y, EngineID engine_numb return y; } -/* Draw aircraft specific details */ +/** + * Draw aircraft specific details in the buy window. + * @param left Left edge of the window to draw in. + * @param right Right edge of the window to draw in. + * @param y Top of the area to draw in. + * @param engine_number Engine to display. + * @param refittable If set, the aircraft can be refitted. + * @return Bottom of the used area. + */ static int DrawAircraftPurchaseInfo(int left, int right, int y, EngineID engine_number, bool refittable) { const Engine *e = Engine::Get(engine_number); @@ -755,6 +763,12 @@ static int DrawAircraftPurchaseInfo(int left, int right, int y, EngineID engine_ DrawString(left, right, y, STR_PURCHASE_INFO_RUNNINGCOST); y += FONT_HEIGHT_NORMAL; + /* Aircraft type */ + SetDParam(0, e->GetAircraftTypeText()); + DrawString(left, right, y, STR_PURCHASE_INFO_AIRCRAFT_TYPE); + y += FONT_HEIGHT_NORMAL; + + /* Aircraft range, if available. */ uint16 range = e->GetRange(); if (range != 0) { SetDParam(0, range); diff --git a/src/lang/english.txt b/src/lang/english.txt index 978e90ffa5..683f352e22 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3398,6 +3398,7 @@ STR_PURCHASE_INFO_ALL_TYPES :All cargo types STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Aircraft type: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Train vehicle selection list. Click on vehicle for information. Ctrl+Click for toggling hiding of the vehicle type STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Road vehicle selection list. Click on vehicle for information. Ctrl+Click for toggling hiding of the vehicle type From b110c9c2593f5f39a6ca63dfc1cbabd474ccf0fb Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:47:48 +0000 Subject: [PATCH 292/417] (svn r27800) -Change: Rename long aircraft string names of the preview window --- src/engine_gui.cpp | 8 ++++---- src/lang/english.txt | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index 899543c189..245b46fe7a 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -204,10 +204,10 @@ static StringID GetAircraftEngineInfoString(const Engine *e) SetDParam(i++, CT_MAIL); SetDParam(i++, mail_capacity); SetDParam(i++, e->GetRunningCost()); - return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST; + return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST; } else { SetDParam(i++, e->GetRunningCost()); - return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST; + return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; } } @@ -224,7 +224,7 @@ static StringID GetRoadVehEngineInfoString(const Engine *e) SetDParam(2, CT_INVALID); } SetDParam(4, e->GetRunningCost()); - return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST; + return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; } else { SetDParam(0, e->GetCost()); SetDParam(2, e->GetDisplayMaxSpeed()); @@ -252,7 +252,7 @@ static StringID GetShipEngineInfoString(const Engine *e) SetDParam(2, e->GetDefaultCargoType()); SetDParam(3, e->GetDisplayDefaultCapacity()); SetDParam(4, e->GetRunningCost()); - return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST; + return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; } diff --git a/src/lang/english.txt b/src/lang/english.txt index 683f352e22..380442a814 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3532,10 +3532,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING1} From 119965125db88dfc89c6eabb536dbc623e05229a Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:48:27 +0000 Subject: [PATCH 293/417] (svn r27801) -Change: Also rename long aircraft preview window strings of other languages --- src/lang/afrikaans.txt | 8 ++++---- src/lang/arabic_egypt.txt | 4 ++-- src/lang/basque.txt | 8 ++++---- src/lang/belarusian.txt | 8 ++++---- src/lang/brazilian_portuguese.txt | 8 ++++---- src/lang/bulgarian.txt | 8 ++++---- src/lang/catalan.txt | 8 ++++---- src/lang/croatian.txt | 8 ++++---- src/lang/czech.txt | 8 ++++---- src/lang/danish.txt | 8 ++++---- src/lang/dutch.txt | 8 ++++---- src/lang/english_AU.txt | 8 ++++---- src/lang/english_US.txt | 8 ++++---- src/lang/esperanto.txt | 4 ++-- src/lang/estonian.txt | 8 ++++---- src/lang/faroese.txt | 8 ++++---- src/lang/finnish.txt | 8 ++++---- src/lang/french.txt | 8 ++++---- src/lang/gaelic.txt | 8 ++++---- src/lang/galician.txt | 8 ++++---- src/lang/german.txt | 8 ++++---- src/lang/greek.txt | 8 ++++---- src/lang/hebrew.txt | 8 ++++---- src/lang/hungarian.txt | 8 ++++---- src/lang/icelandic.txt | 8 ++++---- src/lang/indonesian.txt | 8 ++++---- src/lang/irish.txt | 8 ++++---- src/lang/italian.txt | 8 ++++---- src/lang/japanese.txt | 8 ++++---- src/lang/korean.txt | 8 ++++---- src/lang/latin.txt | 8 ++++---- src/lang/latvian.txt | 8 ++++---- src/lang/lithuanian.txt | 8 ++++---- src/lang/luxembourgish.txt | 8 ++++---- src/lang/malay.txt | 8 ++++---- src/lang/norwegian_bokmal.txt | 8 ++++---- src/lang/norwegian_nynorsk.txt | 8 ++++---- src/lang/polish.txt | 8 ++++---- src/lang/portuguese.txt | 8 ++++---- src/lang/romanian.txt | 8 ++++---- src/lang/russian.txt | 8 ++++---- src/lang/serbian.txt | 8 ++++---- src/lang/simplified_chinese.txt | 8 ++++---- src/lang/slovak.txt | 8 ++++---- src/lang/slovenian.txt | 8 ++++---- src/lang/spanish.txt | 8 ++++---- src/lang/spanish_MX.txt | 8 ++++---- src/lang/swedish.txt | 8 ++++---- src/lang/tamil.txt | 8 ++++---- src/lang/thai.txt | 8 ++++---- src/lang/traditional_chinese.txt | 8 ++++---- src/lang/turkish.txt | 8 ++++---- src/lang/ukrainian.txt | 8 ++++---- src/lang/unfinished/frisian.txt | 4 ++-- src/lang/unfinished/macedonian.txt | 4 ++-- src/lang/unfinished/persian.txt | 4 ++-- src/lang/unfinished/urdu.txt | 4 ++-- src/lang/vietnamese.txt | 8 ++++---- src/lang/welsh.txt | 8 ++++---- 59 files changed, 224 insertions(+), 224 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 915bec0b5b..849bae3ca7 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koste: {CURRENCY_LONG} Massa: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER}{}Loopkoste: {CURRENCY_LONG}/jr{}Kapasitiet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koste: {CURRENCY_LONG} Gewig: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER} Maks. Treg Krag: {6:FORCE}{}Lopende Koste: {4:CURRENCY_LONG}/jaar{}Kapasitiet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teëls{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teels{}Kapasiteit: {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teëls{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teels{}Kapasiteit: {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 1cd5332615..6f3a37c12d 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -3037,8 +3037,8 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :قاطرة سك STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK} التكلفة: {CURRENCY_LONG} الوزن: {WEIGHT_SHORT}{} السرعة: {VELOCITY} الطاقة: {POWER}{} كلفة التشغيل: {CURRENCY_LONG} / سنة{} السعة: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}التكلفة {CURRENCY_LONG} الوزن {WEIGHT_SHORT}{}السرعة {VELOCITY} Power: {POWER}قوة السحب {6:FORCE}{}التكلفة التشغيلية {4:CURRENCY_LONG}/سنة{}السعة: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{}Capacity السعة {CARGO_LONG} {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{} السعة {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{}Capacity السعة {CARGO_LONG} {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{} السعة {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}تبديل {STRING} - {STRING} diff --git a/src/lang/basque.txt b/src/lang/basque.txt index b1419b4a88..a11b603704 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3405,10 +3405,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Lokomotora magn STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostea: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Pisua: {VELOCITY} Potentzia: {POWER}{}Mantenimendua: {CURRENCY_LONG}/urtero{}Edukiera: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostua: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Abiadura: {VELOCITY} Potentzia: {POWER} Gehienezko trakzioa: {6:FORCE}{}Mantinemendua: {4:CURRENCY_LONG}/urtero{}Edukiera: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ordezkatu {STRING} - {STRING} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 310e03d676..b931ce20c0 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3869,10 +3869,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :магніта STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER}{}Кошт абслуг.: {CURRENCY_LONG}/год{}Ёмістасьць: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER} Макс. ЦН: {6:FORCE}{}Кошт абслуг.: {4:CURRENCY_LONG}/год{}Ёмістасьць: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клетк{P а i ак}{}Умяшчальнасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клет{P ка кi ак}{}Умяшчальнасьць: {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клетк{P а i ак}{}Умяшчальнасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клет{P ка кi ак}{}Умяшчальнасьць: {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} — {STRING} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 49386dacc9..af67c31a7d 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de manutenção: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Vel.: {VELOCITY} Potência: {POWER} Tração Máx: {6:FORCE}{}Custo de manutenção: {4:CURRENCY_LONG}/yr{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Preço: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Cust de manut.: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manut.: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Cust de manut.: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manut.: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 85914ba1df..0f7b4798f7 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3444,10 +3444,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :локомот STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER}{}Разход: {CURRENCY_LONG}/г.{}Капацитет: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER} Макс. Т.С.: {6:FORCE}{}Експлоатационни разходи: {4:CURRENCY_LONG}/год.{}Вместимост: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}, {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}, {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замяна {STRING} - {STRING} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 0c7b9c1b53..43232295b6 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3532,10 +3532,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=Femenin}loco STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER}{}Cost de circulació: {CURRENCY_LONG}/any{}Capacitat: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER} Màx. E.T.: {6:FORCE}{}Cost d'utilització: {4:CURRENCY_LONG}/any{}Capacitat: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substitueix {STRING} - {STRING} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 2c0df9cd38..aa7af66039 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3627,10 +3627,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cijena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Trošak uporabe: {CURRENCY_LONG}/god{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Trošak: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Maks. T.E.: {6:FORCE}{}Trošak uporabe: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cijena: {CURRENCY_LONG} Maks. brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. Brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. Brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamijeni {STRING} - {STRING} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 8f6879bb7c..7d3c24aa00 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3622,10 +3622,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :lokomotivu Magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnost: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Výkon: {POWER}{}Cena provozu: {CURRENCY_LONG} ročně{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Váha: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Síla: {POWER} Maximální tažná síla: {6:FORCE}{}Provozní náklady: {4:CURRENCY_LONG}/rok{}Kapacita: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena {CURRENCY_LONG} Max. Rychlost: {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost: {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vyměňování {STRING} - {STRING} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index cea4ee092d..a1f4c519c6 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetskinnelok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Styrke: {POWER}{}Driftsomkostninger: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Hestekræfter: {POWER} Maks. Trækkraft: {6:FORCE}{}Driftsomkostning: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Faste udgifter: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Faste udgifter: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Udskift {STRING} - {STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 3326317495..1618ad5bfd 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3526,10 +3526,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :zweeflocomotief STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Brandstofprijs: {CURRENCY_LONG}/jr{}Capaciteit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER} Max. T.E.: {6:FORCE}{}Bedrijfskosten: {4:CURRENCY_LONG}/yr{}Capaciteit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 8def6f1382..6aee450760 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3479,10 +3479,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 7ddcff1d8b..e097f19af8 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3529,10 +3529,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 67abcfc9ed..7dca768118 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2954,8 +2954,8 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomot STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Forto: {POWER}{}Irkosto: po {CURRENCY_LONG} jare{}Kapablo: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Povo: {POWER} Maks. T.E.: {6:FORCE}{}Irkosto: {4:CURRENCY_LONG}/jaro{}Kapacito: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}, {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}, {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Anstataŭu {STRING.n} - {STRING} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index c7f1eb0ae5..3f6dfcb21b 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3582,10 +3582,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnethõljukve STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Tippkiirus: {VELOCITY} Võimsus: {POWER}{}Käituskulud: {CURRENCY_LONG}/aastas{}Kandevõime: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Kiirus: {VELOCITY} Võimsus: {POWER} Veojõud: {6:FORCE}{}Käituskulud: {4:CURRENCY_LONG}/aasta{}Mahutavus: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}, {CARGO_LONG}{}Kasutamise hind: {CURRENCY_LONG}/aastas -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}{}Kasutamise kulu: {CURRENCY_LONG}/aastas +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}, {CARGO_LONG}{}Kasutamise hind: {CURRENCY_LONG}/aastas +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}{}Kasutamise kulu: {CURRENCY_LONG}/aastas # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Asenda {STRING} - {STRING} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 2a4d9e1eea..39995c7816 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -3141,10 +3141,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár{}Pláss: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER} Maks. D.Ó.: {6:FORCE}{}Rakstrar kostnaður: {4:CURRENCY_LONG}/ár{}Pláss: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Být um {STRING} - {STRING} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index ae55d1031a..96c165fe64 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-veturin STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi{}Kapasiteetti: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER} Maks. Vetovoima: {6:FORCE}{}Käyttökustannukset: {4:CURRENCY_LONG}/v{}Kapasiteetti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Korvaa {STRING} - {STRING} diff --git a/src/lang/french.txt b/src/lang/french.txt index ff03506b0b..ca7a0ef86c 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3532,10 +3532,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotive STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an{}Capacité{NBSP}: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Effort de traction max.{NBSP}: {6:FORCE}{}Coûts d'entretien{NBSP}: {4:CURRENCY_LONG}/an{}Capacité{NBSP}: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Remplacer {STRING} - {STRING} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index f4ff7f5b63..e6e45c428f 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3753,10 +3753,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :einnsean magnai STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER} Neart: {6:FORCE}{}Cosgaisean ruith: {4:CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Leasaich {STRING} - {STRING} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 371dbbcc9e..d95e8a4ed2 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3471,10 +3471,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotora de m STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER}{}Custo operativo: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER} Esforzo tractor máximo: {6:FORCE}{}Custo operativo: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituír {STRING} - {STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index e1bbca7dc9..74647d6163 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=w}Magnetschw STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschwindigk.: {VELOCITY} Leistung: {POWER}{}Betriebskosten: {CURRENCY_LONG} pro Jahr{}Kapazität: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preis: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Max. Geschwindigkeit: {VELOCITY} Leistung: {POWER} Max. Zugkraft: {6:FORCE}{}Betriebskosten: {4:CURRENCY_LONG}/yr{}Kapazität: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index cdd0a2224d..4722530b4a 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3642,10 +3642,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.geniki :μηχανής STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος{}Χωρητικότητα: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER} Μεγ. Ε.Δ: {6:FORCE}{}Λειτουργικό Κόστος: {4:CURRENCY_LONG}/έτος{}Χωρητικότητα: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Αντικατάσταση {STRING} - {STRING} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 497bb0908c..34c9999658 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3538,10 +3538,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :קטר פס מ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}{1:WEIGHT_SHORT} :משקל {NBSP}{0:CURRENCY_LONG} :מחיר{} {NBSP}{3:POWER} :עצמת מנוע {NBSP}{2:VELOCITY} :מהירות {NBSP}{}{5:CARGO_LONG} : קיבולת {NBSP} לשנה {NBSP}{4:CURRENCY_LONG} :עלות תפעולית STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}עלות: {CURRENCY_LONG} משקל: {WEIGHT_SHORT}{}מהירות: {VELOCITY} הספק: {POWER} מקסימלי T.E.: {6:FORCE}{}עלות תפעולית: {4:CURRENCY_LONG}/לשנה{}קיבולת: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות שוטפת: {CURRENCY_LONG}/לשנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}{}הוצאה שוטפת: {CURRENCY_LONG}/לשנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות שוטפת: {CURRENCY_LONG}/לשנה +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}{}הוצאה שוטפת: {CURRENCY_LONG}/לשנה +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}החלף {STRING} - {STRING} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 5d247d8fcd..3310c80551 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3588,10 +3588,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Maglev mozdony STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER}{}Üzemeltetés: {CURRENCY_LONG}/év{}Kapacitás: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER} Maximális vonóerő: {6:FORCE}{}Üzemeltetés: {4:CURRENCY_LONG}/év{}Kapacitás: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} lecserélése - {STRING} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 83601b21c1..2dda848af6 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3301,10 +3301,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Segulsvifvagn STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Verð: {CURRENCY_LONG} Þyngd: {WEIGHT_SHORT}{}Hraði: {VELOCITY} Afl: {POWER}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári{}Burðargeta: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Verð: {CURRENCY_LONG} Þyngd: {WEIGHT_SHORT}{}Hámarskhraði: {VELOCITY} Afl: {POWER} Hámarks kraftur: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/ári{}Burðargeta: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkosnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkosnaður: {CURRENCY_LONG} á ári +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Endurnýja {STRING} - {STRING} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 20f186daa6..5ec2db8f23 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3520,10 +3520,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :lokomotif magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Daya: {POWER}{}Biaya ops.: {CURRENCY_LONG}/thn{}Kapasitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Biaya Operasional: {4:CURRENCY_LONG}/yr{}Kapasitas: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ganti {STRING} - {STRING} diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 0a4ce2b3da..331edd3d01 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :inneall gluaist STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costas {CURRENCY_LONG} Meáchan: {WEIGHT_SHORT}{}Luas: {VELOCITY} Cumhacht: {POWER}{}Costas Coinneála {CURRENCY_LONG}/bl{}Toilleadh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costas: {CURRENCY_LONG} Meáchan: {WEIGHT_SHORT}{}Luas: {VELOCITY} Cumhacht: {POWER} T.E. uasta: {6:FORCE}{}Costas Coinneála: {4:CURRENCY_LONG}/bl{}Toilleadh: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíl{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíleanna{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíl{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíleanna{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ionadaigh{STRING} - {STRING} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index f48b725f5c..6ca8a8563f 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3561,10 +3561,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}motrice ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{}Costo d'esercizio: {CURRENCY_LONG}/anno{}Capacità: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{} S.T. max.: {6:FORCE}{}Costo d'esercizio: {4:CURRENCY_LONG}/anno{}Capacità: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Rimpiazza {STRING} - {STRING} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 45e8e28d18..5fa2665cd8 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3527,10 +3527,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :リニア列車 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}価格: {CURRENCY_LONG} 重量: {WEIGHT_SHORT}{}最高速度: {VELOCITY}{}出力: {POWER}{}運用費: {CURRENCY_LONG}/年{}収容量: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}価格: {CURRENCY_LONG} 重量: {WEIGHT_SHORT}{}最高速度: {VELOCITY} 出力: {POWER} 最大牽引力: {6:FORCE}{}運用費: {4:CURRENCY_LONG}/年{}収容量 {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING}の自動置換 - {STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index e4c4e47a81..7d2db5306f 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3532,10 +3532,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}자기부 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}가격: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER}{}유지비: {CURRENCY_LONG}/년{}수송량: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}비용: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER} 최대 T.E.: {6:FORCE}{}유지비: {4:CURRENCY_LONG}/년{}용량: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} 교체 - {STRING} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 3ec00ffaba..1a7f7b6c5d 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3731,10 +3731,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}hamaxam ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER}{}Pretium Operandi: {CURRENCY_LONG} per annum{}Capacitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER} V.T. Max.: {6:FORCE}{}Pretium Operandi: {4:CURRENCY_LONG} per annum{}Capacitas: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Mutare {STRING} - {STRING} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 893369d645..f195304a54 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3457,10 +3457,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomot STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā{}Ietilpība: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER} Maks. spēks: {6:FORCE}{}Kārtējās izmaksas: {4:CURRENCY_LONG} gadā{}Ietilpība: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}{} Kārtējās izmaksas : {CURRENCY_LONG} gadā +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}{} Kārtējās izmaksas : {CURRENCY_LONG} gadā # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Nomainīt {STRING} - {STRING} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 9bd232fdb8..2848902d9e 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3779,10 +3779,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.kur :„Maglev“ lo STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus{}Talpa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER} Maks. T.E.: {6:FORCE}{}Einamosios išlaidos: {4:CURRENCY_LONG}/yr{}Talpa: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY}{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. Greitis: {VELOCITY}{}Talpa: {CARGO_LONG}{}Eksploatacijos išlaidos: {CURRENCY_LONG}/metams -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY}{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. Greitis: {VELOCITY}{}Talpa: {CARGO_LONG}{}Eksploatacijos išlaidos: {CURRENCY_LONG}/metams +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Keisti tr. priemones {STRING} - {STRING} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 0fa846cbbb..0878f0474f 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3529,10 +3529,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Joer{}Kapazitéit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Käschten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschw.: {VELOCITY} Kraaft: {POWER} Max. T.E.: {6:FORCE}{}Betribskäschten: {4:CURRENCY_LONG}/Jr{}Kapazitéit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten {CURRENCY_LONG}/Joer -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Joer -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten {CURRENCY_LONG}/Joer +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Joer +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ersetz {STRING} - {STRING} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index ef2e43d874..7fc7c6129c 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3183,10 +3183,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :keretapi maglev STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER}{}Kos Pengendalian: {CURRENCY_LONG}/thn{}Kapasiti: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER} Maks. E.K.: {6:FORCE}{}Kos Pengendalian: {4:CURRENCY_LONG}/thn{}Kapasiti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kos: {CURRENCY_LONG}Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG}Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Gantikan {STRING} - {STRING} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 380b5755ef..4871bce9e0 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3528,10 +3528,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=neuter}magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER} Maks trekkraft: {6:FORCE}{}Vedlikehold: {4:CURRENCY_LONG}/år{}Kapasitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatte {STRING} - {STRING} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index fc35f1e447..137f7ba61f 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3441,10 +3441,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER} Maks. trekkraft: {6:FORCE}{}Driftskostnad: {4:CURRENCY_LONG}/yr{}Kapasitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatt {STRING} - {STRING} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index bfa4d6b283..46a32c0a0f 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3915,10 +3915,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.b :lokomotywę Mag STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER}{}Koszt utrzymania: {CURRENCY_LONG}/rok{}Ładowność: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER} Maksymalna siła pociągowa: {6:FORCE}{}Koszt utrzymania: {4:CURRENCY_LONG}/rok{}Ładowność: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zastąp {STRING} - {STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 9cb843fbd9..14c6bbfc19 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de circulação: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER} Máx. F.T.: {6:FORCE}{}Custo de circulação: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 884ccdb73b..96cb9e204d 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3481,10 +3481,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotivă per STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Vitezã: {VELOCITY} Putere: {POWER}{}Cost de rulare: {CURRENCY_LONG}/an{}Capacitate: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Viteză: {VELOCITY} Putere: {POWER} Ef. T. Max.: {6:FORCE}{}Cost rulaj: {4:CURRENCY_LONG}/an{}Capacitate: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} tiles{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Cost rulare: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} pătrățele{}Capacitate: {CARGO_LONG}{}Cost de rulare: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} tiles{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Cost rulare: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} pătrățele{}Capacitate: {CARGO_LONG}{}Cost de rulare: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Înlocuieşte {STRING} - {STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index c58dfb982c..310824dd42 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3717,10 +3717,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.gen :магнито STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER}{}Стоимость обслуж.: {CURRENCY_LONG}/год{}Ёмкость: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER} Макс. ТУ: {6:FORCE}{}Стоимость обслуж.: {4:CURRENCY_LONG}/год{}Ёмкость: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} - {STRING} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index d2f6cba872..2b2b8c412d 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3725,10 +3725,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.aku :magnetnog žel. STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Cena Održavanja: {CURRENCY_LONG}/god.{}Nosivost: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Najveća vučna snaga: {6:FORCE}{}Cena Održavanja: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zameni {STRING} - {STRING} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 32b8d88cc1..4dcc7f24fd 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁悬浮机车 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}运行费用:{CURRENCY_LONG}/年{}运载能力: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牵引力:{6:FORCE}{}运行费用{4:CURRENCY_LONG}/年{}运载能力:{5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}, {CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}, {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}购买费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}, {CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}, {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}购买费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}更新 {STRING} - {STRING} diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 2da0bda1c2..23d2b7220a 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3592,10 +3592,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=z}magnetick STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Výkon: {POWER}{}Prevádzkové náklady: {CURRENCY_LONG}/rok{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Sila: {POWER} Max. T.E.: {6:FORCE}{}Prevádzkové náklady: {4:CURRENCY_LONG}/yr{}Kapacita: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Výmena {STRING} - {STRING} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 4516428bd0..a9c0102a5a 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3677,10 +3677,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetna lokomo STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER}{}Cena delovanja: {CURRENCY_LONG}/leto{}Zmogljivost: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER} Max. T.E.: {6:FORCE}{}Stroški: {4:CURRENCY_LONG}/yr{}Zmogljivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamenjaj {STRING} - {STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 09d78228ad..08bcede274 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3526,10 +3526,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Operativo: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 80709c2bdf..7a76be702f 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3527,10 +3527,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Costo de operación: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} Máx. F.T.: {6:FORCE}{}Costo de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index ccb6279452..4497c1b40d 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft {POWER}{}Löpande kostnad: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Effekt: {POWER} Max. T.E.: {6:FORCE}{}Löpande kostnad: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Byt ut {STRING} - {STRING} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index bb7da43c90..f1ffb99639 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -3118,10 +3118,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :மேக்ல STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER}{}ஓட்டுவதற்கான செலவு: {CURRENCY_LONG}/வரு{}கொள்ளளவு: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER} அதி. T.E.: {6:FORCE}{}ஓட்டுவதற்கான செலவு: {4:CURRENCY_LONG}/வரு{}கொள்ளளவு: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} எல்லை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} வரையறை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}{}இயக்குவதற்கான செலவு: {CURRENCY_LONG}/வரு +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} எல்லை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} வரையறை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}{}இயக்குவதற்கான செலவு: {CURRENCY_LONG}/வரு # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}மாற்று {STRING} - {STRING} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 412a5d59bf..be24cb3971 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3446,10 +3446,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :รถไฟร STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี{}ความจุ: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER} กำัลังลากจูงสูงสุด: {6:FORCE}{}ค่าปฎิบัติการ: {4:CURRENCY_LONG}/ปี{}ความจุ: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฎิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} ช่อง{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} tiles{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฎิบัติการ: {CURRENCY_LONG}/ปี +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} ช่อง{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} tiles{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}เปลี่ยน {STRING} - {STRING} diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 0cfa4e567b..7f3b90761d 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁浮機車頭 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}營運成本:{CURRENCY_LONG} / 年{}容量:{CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牽引力:{6:FORCE}{}營運成本:{4:CURRENCY_LONG}/年{}容量:{5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}, {CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}, {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}, {CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}, {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}替換 {STRING} - {STRING} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 73ba5e9244..bbc0c935a7 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3526,10 +3526,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Fiyat: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER}{}Bakım: {CURRENCY_LONG}/sene{}Kapasite: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Maliyet: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER} Azami Tork: {6:FORCE}{}Çalışma Gideri: {4:CURRENCY_LONG}/yıl{}Kapasite: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Değiştir {STRING} - {STRING} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 0f2b90eec1..3be5d430e0 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3655,10 +3655,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :магнітн STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ціна: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY}{}Потужність: {POWER}{}Вартість експлуатації: {CURRENCY_LONG}/рік{}Місткість: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Вартість: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY} Потужність: {POWER} Макс. тяга: {6:FORCE}{}Вартість експлуатації: {4:CURRENCY_LONG}/рік{}Місткість: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Ціна: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}{}Витрати від експлуатації: {CURRENCY_LONG}/рік +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Ціна: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}{}Витрати від експлуатації: {CURRENCY_LONG}/рік # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Оновити {STRING} - {STRING} diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index d3cd291ea3..362503303c 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3220,8 +3220,8 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail lokomo STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglevlokomotyf STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Underhâldskosten: {CURRENCY_LONG}/jr{}Kapasiteit: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY} Bereik: {COMMA} tegels{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY} Bereik: {COMMA} tegels{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ferfang {STRING} - {STRING} diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index e22a52fe8b..f13cc7e14c 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1501,8 +1501,8 @@ STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Цент # Engine preview window -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA} плочки{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA}плочки{}капацитет: {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA} плочки{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA}плочки{}капацитет: {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLE_TRAIN :Воз diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 2770597751..be31d3f6fb 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -3054,8 +3054,8 @@ STR_ENGINE_PREVIEW_SHIP :کشتی STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :لوکوموتیو مونوریل STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :لوکوموتیو ریل مغناطیسی -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}, {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}, {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال # Autoreplace window STR_REPLACE_VEHICLE_TRAIN :قطار diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 3cff4ee19a..7143d1e01b 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2405,8 +2405,8 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} # Engine preview window -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}, {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}, {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ # Autoreplace window diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 5e610de801..8b971e1d1d 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :đầu máy đ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Giá thành: {CURRENCY_LONG} Tải trọng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER}{}Chi phí hoạt động: {CURRENCY_LONG}/năm{}Sức chứa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Giá: {CURRENCY_LONG} Nặng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER} Max. T.E.: {6:FORCE}{}Giá vận hành: {4:CURRENCY_LONG}/yr{}Năng suất: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Gía: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}, {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Gía: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}, {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Thay thế {STRING} - {STRING} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index bc6a4744a9..986aed5754 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :trên maglef STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Côst: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER}{}Côst Rhedeg: {CURRENCY_LONG}/bl{}Gallu cludo: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER} Grym Uchaf: {6:FORCE}{}Cost Rhedeg: {4:CURRENCY_LONG}/bl{}Cynhwysedd: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Côst Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Côst Rhedeg: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Disodli {STRING} - {STRING} From 1f70279419734767f99a55eaeca43f725d4eb551 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:48:54 +0000 Subject: [PATCH 294/417] (svn r27802) -Add: Display aircraft type in engine preview window (patch by Samu) --- src/engine_gui.cpp | 5 +++-- src/lang/english.txt | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index 245b46fe7a..070ad67275 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -196,6 +196,7 @@ static StringID GetAircraftEngineInfoString(const Engine *e) uint i = 0; SetDParam(i++, e->GetCost()); SetDParam(i++, e->GetDisplayMaxSpeed()); + SetDParam(i++, e->GetAircraftTypeText()); if (range > 0) SetDParam(i++, range); SetDParam(i++, cargo); SetDParam(i++, capacity); @@ -204,10 +205,10 @@ static StringID GetAircraftEngineInfoString(const Engine *e) SetDParam(i++, CT_MAIL); SetDParam(i++, mail_capacity); SetDParam(i++, e->GetRunningCost()); - return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST; + return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST; } else { SetDParam(i++, e->GetRunningCost()); - return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; + return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST; } } diff --git a/src/lang/english.txt b/src/lang/english.txt index 380442a814..141346d4d0 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3532,10 +3532,11 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING1} From 17b46109ad6e83ea7efcb1299b4af28a994771b3 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:49:24 +0000 Subject: [PATCH 295/417] (svn r27803) -Change: Remove obsolete aircraft preview strings from other languages --- src/lang/afrikaans.txt | 3 --- src/lang/arabic_egypt.txt | 1 - src/lang/basque.txt | 3 --- src/lang/belarusian.txt | 3 --- src/lang/brazilian_portuguese.txt | 3 --- src/lang/bulgarian.txt | 3 --- src/lang/catalan.txt | 3 --- src/lang/croatian.txt | 3 --- src/lang/czech.txt | 3 --- src/lang/danish.txt | 3 --- src/lang/dutch.txt | 3 --- src/lang/english_AU.txt | 3 --- src/lang/english_US.txt | 3 --- src/lang/esperanto.txt | 1 - src/lang/estonian.txt | 3 --- src/lang/faroese.txt | 3 --- src/lang/finnish.txt | 3 --- src/lang/french.txt | 3 --- src/lang/gaelic.txt | 3 --- src/lang/galician.txt | 3 --- src/lang/german.txt | 3 --- src/lang/greek.txt | 3 --- src/lang/hebrew.txt | 3 --- src/lang/hungarian.txt | 3 --- src/lang/icelandic.txt | 3 --- src/lang/indonesian.txt | 3 --- src/lang/irish.txt | 3 --- src/lang/italian.txt | 3 --- src/lang/japanese.txt | 3 --- src/lang/korean.txt | 3 --- src/lang/latin.txt | 3 --- src/lang/latvian.txt | 3 --- src/lang/lithuanian.txt | 3 --- src/lang/luxembourgish.txt | 3 --- src/lang/malay.txt | 3 --- src/lang/norwegian_bokmal.txt | 3 --- src/lang/norwegian_nynorsk.txt | 3 --- src/lang/polish.txt | 3 --- src/lang/portuguese.txt | 3 --- src/lang/romanian.txt | 3 --- src/lang/russian.txt | 3 --- src/lang/serbian.txt | 3 --- src/lang/simplified_chinese.txt | 3 --- src/lang/slovak.txt | 3 --- src/lang/slovenian.txt | 3 --- src/lang/spanish.txt | 3 --- src/lang/spanish_MX.txt | 3 --- src/lang/swedish.txt | 3 --- src/lang/tamil.txt | 3 --- src/lang/thai.txt | 3 --- src/lang/traditional_chinese.txt | 3 --- src/lang/turkish.txt | 3 --- src/lang/ukrainian.txt | 3 --- src/lang/unfinished/frisian.txt | 1 - src/lang/unfinished/macedonian.txt | 2 -- src/lang/unfinished/persian.txt | 2 -- src/lang/unfinished/urdu.txt | 2 -- src/lang/vietnamese.txt | 3 --- src/lang/welsh.txt | 3 --- 59 files changed, 168 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 849bae3ca7..81bc7bca1c 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koste: {CURRENCY_LONG} Massa: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER}{}Loopkoste: {CURRENCY_LONG}/jr{}Kapasitiet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koste: {CURRENCY_LONG} Gewig: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER} Maks. Treg Krag: {6:FORCE}{}Lopende Koste: {4:CURRENCY_LONG}/jaar{}Kapasitiet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teëls{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teels{}Kapasiteit: {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 6f3a37c12d..cb6f643dee 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -3037,7 +3037,6 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :قاطرة سك STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK} التكلفة: {CURRENCY_LONG} الوزن: {WEIGHT_SHORT}{} السرعة: {VELOCITY} الطاقة: {POWER}{} كلفة التشغيل: {CURRENCY_LONG} / سنة{} السعة: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}التكلفة {CURRENCY_LONG} الوزن {WEIGHT_SHORT}{}السرعة {VELOCITY} Power: {POWER}قوة السحب {6:FORCE}{}التكلفة التشغيلية {4:CURRENCY_LONG}/سنة{}السعة: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{}Capacity السعة {CARGO_LONG} {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{} السعة {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة # Autoreplace window diff --git a/src/lang/basque.txt b/src/lang/basque.txt index a11b603704..f8b9913cc9 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3405,10 +3405,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Lokomotora magn STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostea: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Pisua: {VELOCITY} Potentzia: {POWER}{}Mantenimendua: {CURRENCY_LONG}/urtero{}Edukiera: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostua: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Abiadura: {VELOCITY} Potentzia: {POWER} Gehienezko trakzioa: {6:FORCE}{}Mantinemendua: {4:CURRENCY_LONG}/urtero{}Edukiera: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ordezkatu {STRING} - {STRING} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index b931ce20c0..5742b9db05 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3869,10 +3869,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :магніта STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER}{}Кошт абслуг.: {CURRENCY_LONG}/год{}Ёмістасьць: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER} Макс. ЦН: {6:FORCE}{}Кошт абслуг.: {4:CURRENCY_LONG}/год{}Ёмістасьць: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клетк{P а i ак}{}Умяшчальнасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клет{P ка кi ак}{}Умяшчальнасьць: {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} — {STRING} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index af67c31a7d..f42d463010 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de manutenção: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Vel.: {VELOCITY} Potência: {POWER} Tração Máx: {6:FORCE}{}Custo de manutenção: {4:CURRENCY_LONG}/yr{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Cust de manut.: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manut.: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 0f7b4798f7..22b00078ab 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3444,10 +3444,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :локомот STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER}{}Разход: {CURRENCY_LONG}/г.{}Капацитет: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER} Макс. Т.С.: {6:FORCE}{}Експлоатационни разходи: {4:CURRENCY_LONG}/год.{}Вместимост: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}, {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замяна {STRING} - {STRING} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 43232295b6..42411873ef 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3532,10 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=Femenin}loco STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER}{}Cost de circulació: {CURRENCY_LONG}/any{}Capacitat: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER} Màx. E.T.: {6:FORCE}{}Cost d'utilització: {4:CURRENCY_LONG}/any{}Capacitat: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substitueix {STRING} - {STRING} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index aa7af66039..ea5e064f67 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3627,10 +3627,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cijena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Trošak uporabe: {CURRENCY_LONG}/god{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Trošak: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Maks. T.E.: {6:FORCE}{}Trošak uporabe: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. Brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamijeni {STRING} - {STRING} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 7d3c24aa00..448efacd9a 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3622,10 +3622,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :lokomotivu Magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnost: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Výkon: {POWER}{}Cena provozu: {CURRENCY_LONG} ročně{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Váha: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Síla: {POWER} Maximální tažná síla: {6:FORCE}{}Provozní náklady: {4:CURRENCY_LONG}/rok{}Kapacita: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost: {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vyměňování {STRING} - {STRING} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index a1f4c519c6..378ccd72a2 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetskinnelok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Styrke: {POWER}{}Driftsomkostninger: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Hestekræfter: {POWER} Maks. Trækkraft: {6:FORCE}{}Driftsomkostning: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Faste udgifter: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Udskift {STRING} - {STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 1618ad5bfd..024b4e2e51 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3526,10 +3526,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :zweeflocomotief STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Brandstofprijs: {CURRENCY_LONG}/jr{}Capaciteit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER} Max. T.E.: {6:FORCE}{}Bedrijfskosten: {4:CURRENCY_LONG}/yr{}Capaciteit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 6aee450760..cf63178a4b 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3479,10 +3479,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index e097f19af8..4d0e5e2524 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3529,10 +3529,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 7dca768118..28f6d9066c 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2954,7 +2954,6 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomot STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Forto: {POWER}{}Irkosto: po {CURRENCY_LONG} jare{}Kapablo: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Povo: {POWER} Maks. T.E.: {6:FORCE}{}Irkosto: {4:CURRENCY_LONG}/jaro{}Kapacito: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}, {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro # Autoreplace window diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 3f6dfcb21b..fa93dbe660 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3582,10 +3582,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnethõljukve STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Tippkiirus: {VELOCITY} Võimsus: {POWER}{}Käituskulud: {CURRENCY_LONG}/aastas{}Kandevõime: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Kiirus: {VELOCITY} Võimsus: {POWER} Veojõud: {6:FORCE}{}Käituskulud: {4:CURRENCY_LONG}/aasta{}Mahutavus: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}, {CARGO_LONG}{}Kasutamise hind: {CURRENCY_LONG}/aastas -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}{}Kasutamise kulu: {CURRENCY_LONG}/aastas # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Asenda {STRING} - {STRING} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 39995c7816..77b514c02c 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -3141,10 +3141,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár{}Pláss: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER} Maks. D.Ó.: {6:FORCE}{}Rakstrar kostnaður: {4:CURRENCY_LONG}/ár{}Pláss: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Být um {STRING} - {STRING} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 96c165fe64..87e2e50a19 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-veturin STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi{}Kapasiteetti: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER} Maks. Vetovoima: {6:FORCE}{}Käyttökustannukset: {4:CURRENCY_LONG}/v{}Kapasiteetti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Korvaa {STRING} - {STRING} diff --git a/src/lang/french.txt b/src/lang/french.txt index ca7a0ef86c..2708c6be7a 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3532,10 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotive STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an{}Capacité{NBSP}: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Effort de traction max.{NBSP}: {6:FORCE}{}Coûts d'entretien{NBSP}: {4:CURRENCY_LONG}/an{}Capacité{NBSP}: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Remplacer {STRING} - {STRING} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index e6e45c428f..304d541354 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3753,10 +3753,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :einnsean magnai STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER} Neart: {6:FORCE}{}Cosgaisean ruith: {4:CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Leasaich {STRING} - {STRING} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index d95e8a4ed2..93942d6e0b 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3471,10 +3471,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotora de m STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER}{}Custo operativo: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER} Esforzo tractor máximo: {6:FORCE}{}Custo operativo: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituír {STRING} - {STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index 74647d6163..2ea57b7710 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=w}Magnetschw STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschwindigk.: {VELOCITY} Leistung: {POWER}{}Betriebskosten: {CURRENCY_LONG} pro Jahr{}Kapazität: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preis: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Max. Geschwindigkeit: {VELOCITY} Leistung: {POWER} Max. Zugkraft: {6:FORCE}{}Betriebskosten: {4:CURRENCY_LONG}/yr{}Kapazität: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 4722530b4a..6cb475ba43 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3642,10 +3642,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.geniki :μηχανής STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος{}Χωρητικότητα: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER} Μεγ. Ε.Δ: {6:FORCE}{}Λειτουργικό Κόστος: {4:CURRENCY_LONG}/έτος{}Χωρητικότητα: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Αντικατάσταση {STRING} - {STRING} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 34c9999658..d92c1acfd9 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3538,10 +3538,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :קטר פס מ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}{1:WEIGHT_SHORT} :משקל {NBSP}{0:CURRENCY_LONG} :מחיר{} {NBSP}{3:POWER} :עצמת מנוע {NBSP}{2:VELOCITY} :מהירות {NBSP}{}{5:CARGO_LONG} : קיבולת {NBSP} לשנה {NBSP}{4:CURRENCY_LONG} :עלות תפעולית STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}עלות: {CURRENCY_LONG} משקל: {WEIGHT_SHORT}{}מהירות: {VELOCITY} הספק: {POWER} מקסימלי T.E.: {6:FORCE}{}עלות תפעולית: {4:CURRENCY_LONG}/לשנה{}קיבולת: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות שוטפת: {CURRENCY_LONG}/לשנה STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}{}הוצאה שוטפת: {CURRENCY_LONG}/לשנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}החלף {STRING} - {STRING} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 3310c80551..3a5c36dbe8 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3588,10 +3588,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Maglev mozdony STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER}{}Üzemeltetés: {CURRENCY_LONG}/év{}Kapacitás: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER} Maximális vonóerő: {6:FORCE}{}Üzemeltetés: {4:CURRENCY_LONG}/év{}Kapacitás: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} lecserélése - {STRING} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 2dda848af6..8b975aa4a0 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3301,10 +3301,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Segulsvifvagn STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Verð: {CURRENCY_LONG} Þyngd: {WEIGHT_SHORT}{}Hraði: {VELOCITY} Afl: {POWER}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári{}Burðargeta: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Verð: {CURRENCY_LONG} Þyngd: {WEIGHT_SHORT}{}Hámarskhraði: {VELOCITY} Afl: {POWER} Hámarks kraftur: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/ári{}Burðargeta: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkosnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Endurnýja {STRING} - {STRING} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 5ec2db8f23..d4fb0f97af 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3520,10 +3520,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :lokomotif magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Daya: {POWER}{}Biaya ops.: {CURRENCY_LONG}/thn{}Kapasitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Biaya Operasional: {4:CURRENCY_LONG}/yr{}Kapasitas: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ganti {STRING} - {STRING} diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 331edd3d01..5a40971b66 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :inneall gluaist STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costas {CURRENCY_LONG} Meáchan: {WEIGHT_SHORT}{}Luas: {VELOCITY} Cumhacht: {POWER}{}Costas Coinneála {CURRENCY_LONG}/bl{}Toilleadh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costas: {CURRENCY_LONG} Meáchan: {WEIGHT_SHORT}{}Luas: {VELOCITY} Cumhacht: {POWER} T.E. uasta: {6:FORCE}{}Costas Coinneála: {4:CURRENCY_LONG}/bl{}Toilleadh: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíl{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíleanna{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ionadaigh{STRING} - {STRING} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 6ca8a8563f..ca85973cf5 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3561,10 +3561,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}motrice ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{}Costo d'esercizio: {CURRENCY_LONG}/anno{}Capacità: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{} S.T. max.: {6:FORCE}{}Costo d'esercizio: {4:CURRENCY_LONG}/anno{}Capacità: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Rimpiazza {STRING} - {STRING} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 5fa2665cd8..75821b07d4 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3527,10 +3527,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :リニア列車 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}価格: {CURRENCY_LONG} 重量: {WEIGHT_SHORT}{}最高速度: {VELOCITY}{}出力: {POWER}{}運用費: {CURRENCY_LONG}/年{}収容量: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}価格: {CURRENCY_LONG} 重量: {WEIGHT_SHORT}{}最高速度: {VELOCITY} 出力: {POWER} 最大牽引力: {6:FORCE}{}運用費: {4:CURRENCY_LONG}/年{}収容量 {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING}の自動置換 - {STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 7d2db5306f..bd40157012 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3532,10 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}자기부 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}가격: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER}{}유지비: {CURRENCY_LONG}/년{}수송량: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}비용: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER} 최대 T.E.: {6:FORCE}{}유지비: {4:CURRENCY_LONG}/년{}용량: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} 교체 - {STRING} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 1a7f7b6c5d..eb1e2f8033 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3731,10 +3731,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}hamaxam ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER}{}Pretium Operandi: {CURRENCY_LONG} per annum{}Capacitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER} V.T. Max.: {6:FORCE}{}Pretium Operandi: {4:CURRENCY_LONG} per annum{}Capacitas: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Mutare {STRING} - {STRING} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index f195304a54..45f80eaa09 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3457,10 +3457,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomot STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā{}Ietilpība: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER} Maks. spēks: {6:FORCE}{}Kārtējās izmaksas: {4:CURRENCY_LONG} gadā{}Ietilpība: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}{} Kārtējās izmaksas : {CURRENCY_LONG} gadā # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Nomainīt {STRING} - {STRING} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 2848902d9e..83cf62075f 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3779,10 +3779,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.kur :„Maglev“ lo STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus{}Talpa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER} Maks. T.E.: {6:FORCE}{}Einamosios išlaidos: {4:CURRENCY_LONG}/yr{}Talpa: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY}{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. Greitis: {VELOCITY}{}Talpa: {CARGO_LONG}{}Eksploatacijos išlaidos: {CURRENCY_LONG}/metams -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Keisti tr. priemones {STRING} - {STRING} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 0878f0474f..71b70a45d2 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3529,10 +3529,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Joer{}Kapazitéit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Käschten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschw.: {VELOCITY} Kraaft: {POWER} Max. T.E.: {6:FORCE}{}Betribskäschten: {4:CURRENCY_LONG}/Jr{}Kapazitéit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten {CURRENCY_LONG}/Joer STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Joer -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ersetz {STRING} - {STRING} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 7fc7c6129c..5ed16decaf 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3183,10 +3183,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :keretapi maglev STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER}{}Kos Pengendalian: {CURRENCY_LONG}/thn{}Kapasiti: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER} Maks. E.K.: {6:FORCE}{}Kos Pengendalian: {4:CURRENCY_LONG}/thn{}Kapasiti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG}Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Gantikan {STRING} - {STRING} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 4871bce9e0..9f60b97ac8 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3528,10 +3528,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=neuter}magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER} Maks trekkraft: {6:FORCE}{}Vedlikehold: {4:CURRENCY_LONG}/år{}Kapasitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatte {STRING} - {STRING} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 137f7ba61f..96ee8362bd 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3441,10 +3441,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER} Maks. trekkraft: {6:FORCE}{}Driftskostnad: {4:CURRENCY_LONG}/yr{}Kapasitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatt {STRING} - {STRING} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 46a32c0a0f..4f137e1e89 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3915,10 +3915,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.b :lokomotywę Mag STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER}{}Koszt utrzymania: {CURRENCY_LONG}/rok{}Ładowność: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER} Maksymalna siła pociągowa: {6:FORCE}{}Koszt utrzymania: {4:CURRENCY_LONG}/rok{}Ładowność: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zastąp {STRING} - {STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 14c6bbfc19..0f77917da1 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de circulação: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER} Máx. F.T.: {6:FORCE}{}Custo de circulação: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 96cb9e204d..7fd3ee581d 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3481,10 +3481,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotivă per STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Vitezã: {VELOCITY} Putere: {POWER}{}Cost de rulare: {CURRENCY_LONG}/an{}Capacitate: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Viteză: {VELOCITY} Putere: {POWER} Ef. T. Max.: {6:FORCE}{}Cost rulaj: {4:CURRENCY_LONG}/an{}Capacitate: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} tiles{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Cost rulare: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} pătrățele{}Capacitate: {CARGO_LONG}{}Cost de rulare: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Înlocuieşte {STRING} - {STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 310824dd42..1e83056e0a 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3717,10 +3717,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.gen :магнито STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER}{}Стоимость обслуж.: {CURRENCY_LONG}/год{}Ёмкость: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER} Макс. ТУ: {6:FORCE}{}Стоимость обслуж.: {4:CURRENCY_LONG}/год{}Ёмкость: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} - {STRING} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 2b2b8c412d..076758eba2 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3725,10 +3725,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.aku :magnetnog žel. STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Cena Održavanja: {CURRENCY_LONG}/god.{}Nosivost: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Najveća vučna snaga: {6:FORCE}{}Cena Održavanja: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zameni {STRING} - {STRING} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 4dcc7f24fd..bb23f31af6 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁悬浮机车 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}运行费用:{CURRENCY_LONG}/年{}运载能力: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牵引力:{6:FORCE}{}运行费用{4:CURRENCY_LONG}/年{}运载能力:{5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}, {CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}, {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}购买费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}更新 {STRING} - {STRING} diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 23d2b7220a..d9ca9debb7 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3592,10 +3592,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=z}magnetick STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Výkon: {POWER}{}Prevádzkové náklady: {CURRENCY_LONG}/rok{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Sila: {POWER} Max. T.E.: {6:FORCE}{}Prevádzkové náklady: {4:CURRENCY_LONG}/yr{}Kapacita: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Výmena {STRING} - {STRING} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index a9c0102a5a..15d1b85639 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3677,10 +3677,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetna lokomo STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER}{}Cena delovanja: {CURRENCY_LONG}/leto{}Zmogljivost: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER} Max. T.E.: {6:FORCE}{}Stroški: {4:CURRENCY_LONG}/yr{}Zmogljivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamenjaj {STRING} - {STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 08bcede274..f3bd99aa48 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3526,10 +3526,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Operativo: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 7a76be702f..7e5223f0fc 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3527,10 +3527,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Costo de operación: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} Máx. F.T.: {6:FORCE}{}Costo de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 4497c1b40d..e9bc290f04 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft {POWER}{}Löpande kostnad: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Effekt: {POWER} Max. T.E.: {6:FORCE}{}Löpande kostnad: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Byt ut {STRING} - {STRING} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index f1ffb99639..a1e4c43fac 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -3118,10 +3118,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :மேக்ல STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER}{}ஓட்டுவதற்கான செலவு: {CURRENCY_LONG}/வரு{}கொள்ளளவு: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER} அதி. T.E.: {6:FORCE}{}ஓட்டுவதற்கான செலவு: {4:CURRENCY_LONG}/வரு{}கொள்ளளவு: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} எல்லை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} வரையறை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}{}இயக்குவதற்கான செலவு: {CURRENCY_LONG}/வரு # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}மாற்று {STRING} - {STRING} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index be24cb3971..72241e4d5e 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3446,10 +3446,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :รถไฟร STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี{}ความจุ: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER} กำัลังลากจูงสูงสุด: {6:FORCE}{}ค่าปฎิบัติการ: {4:CURRENCY_LONG}/ปี{}ความจุ: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฎิบัติการ: {CURRENCY_LONG}/ปี STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} ช่อง{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} tiles{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}เปลี่ยน {STRING} - {STRING} diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 7f3b90761d..7c207f60c4 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁浮機車頭 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}營運成本:{CURRENCY_LONG} / 年{}容量:{CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牽引力:{6:FORCE}{}營運成本:{4:CURRENCY_LONG}/年{}容量:{5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}, {CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}, {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}替換 {STRING} - {STRING} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index bbc0c935a7..bad2604fe6 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3526,10 +3526,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Fiyat: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER}{}Bakım: {CURRENCY_LONG}/sene{}Kapasite: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Maliyet: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER} Azami Tork: {6:FORCE}{}Çalışma Gideri: {4:CURRENCY_LONG}/yıl{}Kapasite: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Değiştir {STRING} - {STRING} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 3be5d430e0..66546b7ef6 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3655,10 +3655,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :магнітн STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ціна: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY}{}Потужність: {POWER}{}Вартість експлуатації: {CURRENCY_LONG}/рік{}Місткість: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Вартість: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY} Потужність: {POWER} Макс. тяга: {6:FORCE}{}Вартість експлуатації: {4:CURRENCY_LONG}/рік{}Місткість: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Ціна: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}{}Витрати від експлуатації: {CURRENCY_LONG}/рік # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Оновити {STRING} - {STRING} diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 362503303c..dc049e5d98 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3221,7 +3221,6 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglevlokomotyf STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Underhâldskosten: {CURRENCY_LONG}/jr{}Kapasiteit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY} Bereik: {COMMA} tegels{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ferfang {STRING} - {STRING} diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index f13cc7e14c..e6abadca01 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1501,8 +1501,6 @@ STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Цент # Engine preview window -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA} плочки{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA}плочки{}капацитет: {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLE_TRAIN :Воз diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index be31d3f6fb..10689c715a 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -3054,8 +3054,6 @@ STR_ENGINE_PREVIEW_SHIP :کشتی STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :لوکوموتیو مونوریل STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :لوکوموتیو ریل مغناطیسی -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}, {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال # Autoreplace window STR_REPLACE_VEHICLE_TRAIN :قطار diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 7143d1e01b..934c405b22 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2405,8 +2405,6 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} # Engine preview window -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}, {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ # Autoreplace window diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 8b971e1d1d..7808129fa9 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :đầu máy đ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Giá thành: {CURRENCY_LONG} Tải trọng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER}{}Chi phí hoạt động: {CURRENCY_LONG}/năm{}Sức chứa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Giá: {CURRENCY_LONG} Nặng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER} Max. T.E.: {6:FORCE}{}Giá vận hành: {4:CURRENCY_LONG}/yr{}Năng suất: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Gía: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}, {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Thay thế {STRING} - {STRING} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 986aed5754..bc80a83111 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :trên maglef STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Côst: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER}{}Côst Rhedeg: {CURRENCY_LONG}/bl{}Gallu cludo: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER} Grym Uchaf: {6:FORCE}{}Cost Rhedeg: {4:CURRENCY_LONG}/bl{}Cynhwysedd: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Côst Rhedeg: {CURRENCY_LONG}/bl STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Disodli {STRING} - {STRING} From bf305762558324b9280c8b78c85d3f855bc5e043 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 19 Mar 2017 18:45:38 +0000 Subject: [PATCH 296/417] (svn r27804) -Update from Eints: italian: 7 changes by lorenzodv luxembourgish: 11 changes by Phreeze french: 7 changes by glx --- src/lang/french.txt | 7 +++++++ src/lang/italian.txt | 7 +++++++ src/lang/luxembourgish.txt | 13 +++++++++++-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/lang/french.txt b/src/lang/french.txt index 2708c6be7a..1d8926ddf1 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3399,6 +3399,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Tous les types STR_PURCHASE_INFO_ALL_BUT :Tous sauf {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Effort de traction max.{NBSP}: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rayon d'action{NBSP}: {GOLD}{COMMA}{NBSP}cases +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Type d'aéronef{NBSP}: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Choix du véhicule. Cliquer sur un véhicule pour obtenir des informations. Ctrl-clic pour basculer le masquage du type de véhicule STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Choix du véhicule routier. Cliquer sur un véhicule pour obtenir des informations. Ctrl-clic pour basculer le masquage du type de véhicule @@ -3533,6 +3534,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotive STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an{}Capacité{NBSP}: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Effort de traction max.{NBSP}: {6:FORCE}{}Coûts d'entretien{NBSP}: {4:CURRENCY_LONG}/an{}Capacité{NBSP}: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} - Vitesse max.{NBSP}: {VELOCITY}{}Type d'aéronef{NBSP}: {STRING}{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} - Vitesse max.{NBSP}: {VELOCITY}{}Type d'aéronef{NBSP}: {STRING}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} - Vitesse max.{NBSP}: {VELOCITY}{}Type d'aéronef{NBSP}: {STRING} - Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} - Vitesse max.{NBSP}: {VELOCITY}{}Type d'aéronef{NBSP}: {STRING} - Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Remplacer {STRING} - {STRING} @@ -3655,6 +3660,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} an{P "" STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} an{P "" nées} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} - Type d'aéronef{NBSP}: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} - Type d'aéronef{NBSP}: {LTBLUE}{STRING}{BLACK} - Rayon d'action{NBSP}: {LTBLUE}{COMMA} cases STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Poids{NBSP}: {LTBLUE}{NBSP}{WEIGHT_SHORT} − {BLACK}Puissance{NBSP}: {LTBLUE}{NBSP}{POWER}{BLACK} − Vitesse max.{NBSP}: {LTBLUE}{NBSP}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Poids{NBSP}: {LTBLUE}{WEIGHT_SHORT}{BLACK} − Puissance{NBSP}: {LTBLUE}{POWER}{BLACK} − Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} − E.T. max.{NBSP}: {LTBLUE}{FORCE} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index ca85973cf5..60ab69ba4a 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3428,6 +3428,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Tutti i tipi di STR_PURCHASE_INFO_ALL_BUT :Tutto tranne {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Sforzo di trazione massimo: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Autonomia: {GOLD}{COMMA} riquadr{P o i} +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo di aeromobile: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Elenco di selezione dei veicoli ferroviari - fare clic su un veicolo per informazioni. CTRL+clic mostra/nasconde il tipo di veicolo STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Elenco selezione automezzi - fare clic su un veicolo per informazioni. CTRL+clic mostra/nasconde il tipo di automezzo @@ -3562,6 +3563,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}motrice ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{}Costo d'esercizio: {CURRENCY_LONG}/anno{}Capacità: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{} S.T. max.: {6:FORCE}{}Costo d'esercizio: {4:CURRENCY_LONG}/anno{}Capacità: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Tipo aeromobile: {STRING}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Tipo aeromobile: {STRING}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Tipo aeromobile: {STRING} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Tipo aeromobile: {STRING} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Rimpiazza {STRING} - {STRING} @@ -3684,6 +3689,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ann{P o STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ann{P o i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} {BLACK}Tipo aeromobile: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}elocità max.: {LTBLUE}{VELOCITY} {BLACK}Tipo aeromobile: {LTBLUE}{STRING} {BLACK}Autonomia: {LTBLUE}{COMMA} riquadr{P o i} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potenza: {LTBLUE}{POWER}{BLACK} Velocità max.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potenza: {LTBLUE}{POWER}{BLACK} Velocità max.: {LTBLUE}{VELOCITY} {BLACK}S.T. max.: {LTBLUE}{FORCE} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 71b70a45d2..bb28119ea3 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3297,6 +3297,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Brauch STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}um waarden +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} @@ -3396,6 +3398,7 @@ STR_PURCHASE_INFO_ALL_TYPES :All Wuerentyp STR_PURCHASE_INFO_ALL_BUT :Alles ausser {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zéikraaft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Distanz: {GOLD}{COMMA} Felder +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Fliger Typ: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Zuchlëscht - klick op en Zuch fir Informatiounen. Ctrl+Klick fir tëscht dem Verstoppen hin an hier ze sprangen STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Stroossegefierlëscht - klick op en Gefier fir Informatiounen. Ctrl+Klick fir tëscht dem Verstoppen hin an hier ze sprangen @@ -3527,9 +3530,13 @@ STR_ENGINE_PREVIEW_SHIP :Schëff STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :Monorail Lokomotiv STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlokomotiv -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Joer{}Kapazitéit: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Jr{}Kapazitéit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Käschten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschw.: {VELOCITY} Kraaft: {POWER} Max. T.E.: {6:FORCE}{}Betribskäschten: {4:CURRENCY_LONG}/Jr{}Kapazitéit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Joer +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Fliger Typ: {STRING}{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Fliger Typ: {STRING}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Fliger Typ: {STRING} Reeschwäit: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Fliger Typ: {STRING} Reechwäit: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ersetz {STRING} - {STRING} @@ -3652,6 +3659,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} Joer ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} Joer ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. Geschwindegkeet: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Fliger Typ: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Fliger Typ: {LTBLUE}{STRING} {BLACK}Reechwäit: {LTBLUE}{COMMA} Felder STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewiicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraaft: {LTBLUE}{POWER}{BLACK} Max. Geschwindegkeet: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewiicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraaft: {LTBLUE}{POWER}{BLACK} Max. Geschwindegkeet: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} From f0062f94d64c8eb0d1a13cef35bb6c599525d333 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 19 Mar 2017 21:57:54 +0000 Subject: [PATCH 297/417] (svn r27805) -Codechange: Remove function ShipGetNewDirectionFromTiles The only user of ShipGetNewDirectionFromTiles can be better served by DiagdirBetweenTiles, so remove the former. (cirdan) --- src/ship_cmd.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 2a760e2ca7..5f6a77f370 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -462,14 +462,6 @@ static const Direction _new_vehicle_direction_table[] = { DIR_E , DIR_SE, DIR_S }; -static Direction ShipGetNewDirectionFromTiles(TileIndex new_tile, TileIndex old_tile) -{ - uint offs = (TileY(new_tile) - TileY(old_tile) + 1) * 4 + - TileX(new_tile) - TileX(old_tile) + 1; - assert(offs < 11 && offs != 3 && offs != 7); - return _new_vehicle_direction_table[offs]; -} - static Direction ShipGetNewDirection(Vehicle *v, int x, int y) { uint offs = (y - v->y_pos + 1) * 4 + (x - v->x_pos + 1); @@ -599,9 +591,8 @@ static void ShipController(Ship *v) /* New tile */ if (!IsValidTile(gp.new_tile)) goto reverse_direction; - dir = ShipGetNewDirectionFromTiles(gp.new_tile, gp.old_tile); - assert(dir == DIR_NE || dir == DIR_SE || dir == DIR_SW || dir == DIR_NW); - DiagDirection diagdir = DirToDiagDir(dir); + DiagDirection diagdir = DiagdirBetweenTiles(gp.old_tile, gp.new_tile); + assert(diagdir != INVALID_DIAGDIR); tracks = GetAvailShipTracks(gp.new_tile, diagdir); if (tracks == TRACK_BIT_NONE) goto reverse_direction; From 54ec06258aaae0b55a186d914211ce7cfb2513e6 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 19 Mar 2017 21:59:24 +0000 Subject: [PATCH 298/417] (svn r27806) -Codechange: Remove function ShipGetNewDirection ShipGetNewDirection has no side effects and its return value is ignored by its only caller, so do away with it. Also remove now unused _new_vehicle_direction_table. (cirdan) --- src/ship_cmd.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 5f6a77f370..2235cc4b29 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -456,19 +456,6 @@ static Track ChooseShipTrack(Ship *v, TileIndex tile, DiagDirection enterdir, Tr return track; } -static const Direction _new_vehicle_direction_table[] = { - DIR_N , DIR_NW, DIR_W , INVALID_DIR, - DIR_NE, DIR_N , DIR_SW, INVALID_DIR, - DIR_E , DIR_SE, DIR_S -}; - -static Direction ShipGetNewDirection(Vehicle *v, int x, int y) -{ - uint offs = (y - v->y_pos + 1) * 4 + (x - v->x_pos + 1); - assert(offs < 11 && offs != 3 && offs != 7); - return _new_vehicle_direction_table[offs]; -} - static inline TrackBits GetAvailShipTracks(TileIndex tile, DiagDirection dir) { return GetTileShipTrackStatus(tile) & DiagdirReachesTracks(dir); @@ -633,7 +620,6 @@ static void ShipController(Ship *v) } /* update image of ship, as well as delta XY */ - dir = ShipGetNewDirection(v, gp.x, gp.y); v->x_pos = gp.x; v->y_pos = gp.y; v->z_pos = GetSlopePixelZ(gp.x, gp.y); From 80303515c172719f00c6a6186b9f727272ecb0a6 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 19 Mar 2017 22:02:20 +0000 Subject: [PATCH 299/417] (svn r27807) -Codechange: Remove _ship_leave_depot_offs There is already TileOffsByDiagDir for that. (cirdan) --- src/ship_cmd.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 2235cc4b29..de1bf4f8c6 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -317,11 +317,6 @@ void Ship::UpdateDeltaXY(Direction direction) this->z_extent = 6; } -static const TileIndexDiffC _ship_leave_depot_offs[] = { - {-1, 0}, - { 0, -1} -}; - static bool CheckShipLeaveDepot(Ship *v) { if (!v->IsChainInDepot()) return false; @@ -337,9 +332,9 @@ static bool CheckShipLeaveDepot(Ship *v) Axis axis = GetShipDepotAxis(tile); DiagDirection north_dir = ReverseDiagDir(AxisToDiagDir(axis)); - TileIndex north_neighbour = TILE_ADD(tile, ToTileIndexDiff(_ship_leave_depot_offs[axis])); + TileIndex north_neighbour = TILE_ADD(tile, TileOffsByDiagDir(north_dir)); DiagDirection south_dir = AxisToDiagDir(axis); - TileIndex south_neighbour = TILE_ADD(tile, -2 * ToTileIndexDiff(_ship_leave_depot_offs[axis])); + TileIndex south_neighbour = TILE_ADD(tile, 2 * TileOffsByDiagDir(south_dir)); TrackBits north_tracks = DiagdirReachesTracks(north_dir) & GetTileShipTrackStatus(north_neighbour); TrackBits south_tracks = DiagdirReachesTracks(south_dir) & GetTileShipTrackStatus(south_neighbour); From e3a1ae2be5864b999c210bb3bfc0883f680c21be Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 19 Mar 2017 22:30:47 +0000 Subject: [PATCH 300/417] (svn r27808) -Codechange: Adjust the size of _track_crosses_trackdirs _track_crosses_trackdirs is indexed by a Track, not a Trackdir, so adjust its size accordingly. (cirdan) --- src/rail.cpp | 2 +- src/track_func.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rail.cpp b/src/rail.cpp index 79598ec4a1..d538064a23 100644 --- a/src/rail.cpp +++ b/src/rail.cpp @@ -56,7 +56,7 @@ extern const Trackdir _next_trackdir[TRACKDIR_END] = { }; /* Maps a trackdir to all trackdirs that make 90 deg turns with it. */ -extern const TrackdirBits _track_crosses_trackdirs[TRACKDIR_END] = { +extern const TrackdirBits _track_crosses_trackdirs[TRACK_END] = { TRACKDIR_BIT_Y_SE | TRACKDIR_BIT_Y_NW, // TRACK_X TRACKDIR_BIT_X_NE | TRACKDIR_BIT_X_SW, // TRACK_Y TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_RIGHT_S | TRACKDIR_BIT_LEFT_N | TRACKDIR_BIT_LEFT_S, // TRACK_UPPER diff --git a/src/track_func.h b/src/track_func.h index 6896792374..68de827ef1 100644 --- a/src/track_func.h +++ b/src/track_func.h @@ -594,7 +594,7 @@ static inline TrackdirBits TrackdirReachesTrackdirs(Trackdir trackdir) static inline TrackdirBits TrackdirCrossesTrackdirs(Trackdir trackdir) { assert(IsValidTrackdirForRoadVehicle(trackdir)); - extern const TrackdirBits _track_crosses_trackdirs[TRACKDIR_END]; + extern const TrackdirBits _track_crosses_trackdirs[TRACK_END]; return _track_crosses_trackdirs[TrackdirToTrack(trackdir)]; } From 040df26e9e3f75b3af706109e97f1b0b41ddb283 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 08:04:47 +0000 Subject: [PATCH 301/417] (svn r27809) -Codechange: Improve check in UpdateLevelCrossing In UpdateLevelCrossing, checking if a level crossing is reserved is cheaper than finding trains on it or approaching it, so do it first. (cirdan) --- src/train_cmd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 5502532232..4a279bb7e2 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1700,8 +1700,8 @@ void UpdateLevelCrossing(TileIndex tile, bool sound) { assert(IsLevelCrossingTile(tile)); - /* train on crossing || train approaching crossing || reserved */ - bool new_state = HasVehicleOnPos(tile, NULL, &TrainOnTileEnum) || TrainApproachingCrossing(tile) || HasCrossingReservation(tile); + /* reserved || train on crossing || train approaching crossing */ + bool new_state = HasCrossingReservation(tile) || HasVehicleOnPos(tile, NULL, &TrainOnTileEnum) || TrainApproachingCrossing(tile); if (new_state != IsCrossingBarred(tile)) { if (new_state && sound) { From 4107f78eae0a209a703ed8fa9420727757e8e50d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 17:44:37 +0000 Subject: [PATCH 302/417] (svn r27810) -Change: Factor out reservation-handling code in station_cmd.cpp Code dealing with freeing and restoring track reservations is duplicated in CmdBuildRailStation and RemoveFromRailBaseStation; make separate functions for it. (cirdan) --- src/station_cmd.cpp | 52 ++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 610cf7216a..ea890688e5 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1142,6 +1142,30 @@ CommandCost FindJoiningWaypoint(StationID existing_waypoint, StationID waypoint_ return FindJoiningBaseStation(existing_waypoint, waypoint_to_join, adjacent, ta, wp); } +/** + * Clear platform reservation during station building/removing. + * @param v vehicle which holds reservation + */ +static void FreeTrainReservation(Train *v) +{ + FreeTrainTrackReservation(v); + if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), false); + v = v->Last(); + if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), false); +} + +/** + * Restore platform reservation during station building/removing. + * @param v vehicle which held reservation + */ +static void RestoreTrainReservation(Train *v) +{ + if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), true); + TryPathReserve(v, true, true); + v = v->Last(); + if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true); +} + /** * Build rail station * @param tile_org northern most position of station dragging/placement @@ -1281,11 +1305,8 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32 /* Check for trains having a reservation for this tile. */ Train *v = GetTrainForReservation(tile, AxisToTrack(GetRailStationAxis(tile))); if (v != NULL) { - FreeTrainTrackReservation(v); *affected_vehicles.Append() = v; - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), false); - for (; v->Next() != NULL; v = v->Next()) { } - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), false); + FreeTrainReservation(v); } } @@ -1336,11 +1357,7 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32 for (uint i = 0; i < affected_vehicles.Length(); ++i) { /* Restore reservations of trains. */ - Train *v = affected_vehicles[i]; - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), true); - TryPathReserve(v, true, true); - for (; v->Next() != NULL; v = v->Next()) { } - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true); + RestoreTrainReservation(affected_vehicles[i]); } /* Check whether we need to expand the reservation of trains already on the station. */ @@ -1504,14 +1521,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, SmallVector &affected if (HasStationReservation(tile)) { v = GetTrainForReservation(tile, track); - if (v != NULL) { - /* Free train reservation. */ - FreeTrainTrackReservation(v); - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), false); - Vehicle *temp = v; - for (; temp->Next() != NULL; temp = temp->Next()) { } - if (IsRailStationTile(temp->tile)) SetRailStationPlatformReservation(temp->tile, TrackdirToExitdir(ReverseTrackdir(temp->GetVehicleTrackdir())), false); - } + if (v != NULL) FreeTrainReservation(v); } bool build_rail = keep_rail && !IsStationTileBlocked(tile); @@ -1531,13 +1541,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, SmallVector &affected affected_stations.Include(st); - if (v != NULL) { - /* Restore station reservation. */ - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), true); - TryPathReserve(v, true, true); - for (; v->Next() != NULL; v = v->Next()) { } - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true); - } + if (v != NULL) RestoreTrainReservation(v); } } From 166e504c13a2684e3517750fbf91299397e605b7 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 17:49:44 +0000 Subject: [PATCH 303/417] (svn r27811) -Change: Remove unused parameters in FreeTrainTrackReservation FreeTrainTrackReservation is always called with INVALID_TILE and INVALID_TRACKDIR as second and third arguments, so remove them and just use those constants instead. (cirdan) --- src/train.h | 2 +- src/train_cmd.cpp | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/train.h b/src/train.h index 82e33b67d9..c40ab75560 100644 --- a/src/train.h +++ b/src/train.h @@ -61,7 +61,7 @@ byte FreightWagonMult(CargoID cargo); void CheckTrainsLengths(); -void FreeTrainTrackReservation(const Train *v, TileIndex origin = INVALID_TILE, Trackdir orig_td = INVALID_TRACKDIR); +void FreeTrainTrackReservation(const Train *v); bool TryPathReserve(Train *v, bool mark_as_stuck = false, bool first_tile_okay = false); int GetTrainStopLocation(StationID station_id, TileIndex tile, const Train *v, int *station_ahead, int *station_length); diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 4a279bb7e2..608ce2fee1 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2254,16 +2254,14 @@ static void ClearPathReservation(const Train *v, TileIndex tile, Trackdir track_ /** * Free the reserved path in front of a vehicle. * @param v %Train owning the reserved path. - * @param origin %Tile to start clearing (if #INVALID_TILE, use the current tile of \a v). - * @param orig_td Track direction (if #INVALID_TRACKDIR, use the track direction of \a v). */ -void FreeTrainTrackReservation(const Train *v, TileIndex origin, Trackdir orig_td) +void FreeTrainTrackReservation(const Train *v) { assert(v->IsFrontEngine()); - TileIndex tile = origin != INVALID_TILE ? origin : v->tile; - Trackdir td = orig_td != INVALID_TRACKDIR ? orig_td : v->GetVehicleTrackdir(); - bool free_tile = tile != v->tile || !(IsRailStationTile(v->tile) || IsTileType(v->tile, MP_TUNNELBRIDGE)); + TileIndex tile = v->tile; + Trackdir td = v->GetVehicleTrackdir(); + bool free_tile = !(IsRailStationTile(v->tile) || IsTileType(v->tile, MP_TUNNELBRIDGE)); StationID station_id = IsRailStationTile(v->tile) ? GetStationIndex(v->tile) : INVALID_STATION; /* Can't be holding a reservation if we enter a depot. */ From 380e1a240f0fe08f5d1cf7697b28950c9550d9bd Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 17:57:24 +0000 Subject: [PATCH 304/417] (svn r27812) -Fix: Road tunnel/bridge heads have no trackbits wrt catenary drawing Road tunnels and bridges do not have any rail, so do not treat them as if they had when drawing a catenary. (cirdan) --- src/elrail.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/elrail.cpp b/src/elrail.cpp index ac36161617..9fdfb57a3d 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -99,6 +99,7 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) break; case MP_TUNNELBRIDGE: + if (GetTunnelBridgeTransportType(t) != TRANSPORT_RAIL) return TRACK_BIT_NONE; if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; if (override != NULL && (IsTunnel(t) || GetTunnelBridgeLength(t, GetOtherBridgeEnd(t)) > 0)) { *override = 1 << GetTunnelBridgeDirection(t); From c03ccdb36b148e9cb911cf7f496c83696e79dbf4 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 18:14:22 +0000 Subject: [PATCH 305/417] (svn r27813) -Change: Remove _road_enter_dir_to_reachable_trackdirs _road_enter_dir_to_reachable_trackdirs was just a copy of DiagdirReachesTrackdirs. (cirdan) --- src/roadveh_cmd.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 9b541a766b..25f6fd50bc 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -69,14 +69,6 @@ bool IsValidImageIndex(uint8 image_index) return image_index < lengthof(_roadveh_images); } -/** 'Convert' the DiagDirection where a road vehicle enters to the trackdirs it can drive onto */ -static const TrackdirBits _road_enter_dir_to_reachable_trackdirs[DIAGDIR_END] = { - TRACKDIR_BIT_LEFT_N | TRACKDIR_BIT_LOWER_E | TRACKDIR_BIT_X_NE, // Enter from north east - TRACKDIR_BIT_LEFT_S | TRACKDIR_BIT_UPPER_E | TRACKDIR_BIT_Y_SE, // Enter from south east - TRACKDIR_BIT_UPPER_W | TRACKDIR_BIT_X_SW | TRACKDIR_BIT_RIGHT_S, // Enter from south west - TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_LOWER_W | TRACKDIR_BIT_Y_NW // Enter from north west -}; - static const Trackdir _road_reverse_table[DIAGDIR_END] = { TRACKDIR_RVREV_NE, TRACKDIR_RVREV_SE, TRACKDIR_RVREV_SW, TRACKDIR_RVREV_NW }; @@ -935,7 +927,7 @@ static Trackdir RoadFindPathToDest(RoadVehicle *v, TileIndex tile, DiagDirection */ /* Remove tracks unreachable from the enter dir */ - trackdirs &= _road_enter_dir_to_reachable_trackdirs[enterdir]; + trackdirs &= DiagdirReachesTrackdirs(enterdir); if (trackdirs == TRACKDIR_BIT_NONE) { /* No reachable tracks, so we'll reverse */ return_track(_road_reverse_table[enterdir]); From 5baf52b938d359f6ce580438d7fd5eee864b32ae Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 18:16:23 +0000 Subject: [PATCH 306/417] (svn r27814) -Change: Remove _roadveh_depot_exit_trackdir _roadveh_depot_exit_trackdir was just a copy of DiagDirToDiagTrackdir. (cirdan) --- src/roadveh_cmd.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 25f6fd50bc..7adc532b6b 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -73,12 +73,6 @@ static const Trackdir _road_reverse_table[DIAGDIR_END] = { TRACKDIR_RVREV_NE, TRACKDIR_RVREV_SE, TRACKDIR_RVREV_SW, TRACKDIR_RVREV_NW }; -/** Converts the exit direction of a depot to trackdir the vehicle is going to drive to */ -static const Trackdir _roadveh_depot_exit_trackdir[DIAGDIR_END] = { - TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW -}; - - /** * Check whether a roadvehicle is a bus * @return true if bus @@ -993,7 +987,7 @@ static bool RoadVehLeaveDepot(RoadVehicle *v, bool first) DiagDirection dir = GetRoadDepotDirection(v->tile); v->direction = DiagDirToDir(dir); - Trackdir tdir = _roadveh_depot_exit_trackdir[dir]; + Trackdir tdir = DiagDirToDiagTrackdir(dir); const RoadDriveEntry *rdp = _road_drive_data[v->roadtype][(_settings_game.vehicle.road_side << RVS_DRIVE_SIDE) + tdir]; int x = TileX(v->tile) * TILE_SIZE + (rdp[RVC_DEPOT_START_FRAME].x & 0xF); From 712dbeda332b46652d9bdac77788d6227a8f9330 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 20 Mar 2017 18:45:36 +0000 Subject: [PATCH 307/417] (svn r27815) -Update from Eints: russian: 7 changes by Lone_Wolf --- src/lang/russian.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 1e83056e0a..9f78d15b7f 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3578,6 +3578,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Все типы STR_PURCHASE_INFO_ALL_BUT :Всё, кроме {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Макс. тяговое усилие: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Дальность: {GOLD}{COMMA} клет{P ка ки ок} +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Тип возд. судна: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Список локомотивов и вагонов - щёлкните для получения информации. Ctrl+щелчок скроет/покажет ТС. STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Список автотранспорта - щёлкните для получения информации. Ctrl+щелчок скроет/покажет выбранный автомобиль. @@ -3718,6 +3719,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.gen :магнито STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER}{}Стоимость обслуж.: {CURRENCY_LONG}/год{}Ёмкость: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER} Макс. ТУ: {6:FORCE}{}Стоимость обслуж.: {4:CURRENCY_LONG}/год{}Ёмкость: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Тип: {STRING}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Тип: {STRING}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Тип: {STRING} Дальность: {COMMA} клеток{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Тип: {STRING} Дальность: {COMMA} клеток{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} - {STRING} @@ -3844,6 +3849,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P го STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P год года лет} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Тип возд. судна: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Тип: {LTBLUE}{STRING} {BLACK}Дальность: {LTBLUE}{COMMA} клеток STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вес: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощность: {LTBLUE}{POWER}{BLACK} Макс. скорость: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вес: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощность: {LTBLUE}{POWER}{BLACK} Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Макс. ТУ: {LTBLUE}{FORCE} From 48b9cbbb76afeb830bb6402ef3edd60ef27ccf4c Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 19:30:49 +0000 Subject: [PATCH 308/417] (svn r27816) -Fix [FS#6421]: Do not search directories when opening ini files as we already have their full path. --- src/hotkeys.cpp | 2 +- src/settings.cpp | 2 +- src/window.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hotkeys.cpp b/src/hotkeys.cpp index 84288a0e81..870e2cbea6 100644 --- a/src/hotkeys.cpp +++ b/src/hotkeys.cpp @@ -311,7 +311,7 @@ int HotkeyList::CheckMatch(uint16 keycode, bool global_only) const static void SaveLoadHotkeys(bool save) { IniFile *ini = new IniFile(); - ini->LoadFromDisk(_hotkeys_file, BASE_DIR); + ini->LoadFromDisk(_hotkeys_file, NO_DIRECTORY); for (HotkeyList **list = _hotkey_lists->Begin(); list != _hotkey_lists->End(); ++list) { if (save) { diff --git a/src/settings.cpp b/src/settings.cpp index e6754bb905..9fba3a13ff 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1688,7 +1688,7 @@ static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc, SettingDescP static IniFile *IniLoadConfig() { IniFile *ini = new IniFile(_list_group_names); - ini->LoadFromDisk(_config_file, BASE_DIR); + ini->LoadFromDisk(_config_file, NO_DIRECTORY); return ini; } diff --git a/src/window.cpp b/src/window.cpp index 0ffbf8bf1b..f1c53f2045 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -139,7 +139,7 @@ int16 WindowDesc::GetDefaultHeight() const void WindowDesc::LoadFromConfig() { IniFile *ini = new IniFile(); - ini->LoadFromDisk(_windows_file, BASE_DIR); + ini->LoadFromDisk(_windows_file, NO_DIRECTORY); for (WindowDesc **it = _window_descs->Begin(); it != _window_descs->End(); ++it) { if ((*it)->ini_key == NULL) continue; IniLoadWindowSettings(ini, (*it)->ini_key, *it); @@ -165,7 +165,7 @@ void WindowDesc::SaveToConfig() QSortT(_window_descs->Begin(), _window_descs->Length(), DescSorter); IniFile *ini = new IniFile(); - ini->LoadFromDisk(_windows_file, BASE_DIR); + ini->LoadFromDisk(_windows_file, NO_DIRECTORY); for (WindowDesc **it = _window_descs->Begin(); it != _window_descs->End(); ++it) { if ((*it)->ini_key == NULL) continue; IniSaveWindowSettings(ini, (*it)->ini_key, *it); From ccf94e81089e26c221d28f9b0f5898da3c9ec61c Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 21 Mar 2017 18:45:37 +0000 Subject: [PATCH 309/417] (svn r27817) -Update from Eints: greek: 39 changes by kyrm croatian: 7 changes by VoyagerOne --- src/lang/croatian.txt | 7 +++++ src/lang/greek.txt | 71 ++++++++++++++++++++++++------------------- 2 files changed, 46 insertions(+), 32 deletions(-) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index ea5e064f67..c9bf2dd95b 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3494,6 +3494,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Sve vrste teret STR_PURCHASE_INFO_ALL_BUT :Sve osim {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK} Najveća vučna sila: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Domet: {GOLD}{COMMA} polja +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Vrsta zrakoplova: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Popis vlakova za odabir. Klikni na vozilo za informacije. Ctrl+klik za uključivanje ili isključivanje prikaza vrste vozila STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Popis cestovnih vozila za odabir. Klikni na vozilo za informacije. Ctrl+klik za uključivanje ili isključivanje prikaza vrste cestovnog vozila @@ -3628,6 +3629,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cijena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Trošak uporabe: {CURRENCY_LONG}/god{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Trošak: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Maks. T.E.: {6:FORCE}{}Trošak uporabe: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Vrsta zrakoplova: {STRING}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Vrsta zrakoplova: {STRING}{}Kapacitet: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Vrsta zrakoplova: {STRING} Doseg: {COMMA} polja{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Vrsta zrakoplova: {STRING} Doseg: {COMMA} polja{}Kapacitet: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamijeni {STRING} - {STRING} @@ -3750,6 +3755,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} godin{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} godin{P a e a} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Maks. brzina: {LTBLUE}{VELOCITY} {BLACK}Vrsta zrakoplova: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Maks. brzina: {LTBLUE}{VELOCITY} {BLACK}Vrsta zrakoplova: {LTBLUE}{STRING} {BLACK}Doseg: {LTBLUE}{COMMA} polja STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Najveća vučna sila: {LTBLUE}{FORCE} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 6cb475ba43..a39b694816 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -369,7 +369,7 @@ STR_SORT_BY_INTRO_DATE :Ημερομη STR_SORT_BY_RUNNING_COST :Λειτουργικό κόστος STR_SORT_BY_POWER_VS_RUNNING_COST :Ισχύς/Λειτουργικό κόστος STR_SORT_BY_CARGO_CAPACITY :Χωρητικότητα φορτίου -STR_SORT_BY_RANGE :Εύρος +STR_SORT_BY_RANGE :Εμβέλεια STR_SORT_BY_POPULATION :Πληθυσμός STR_SORT_BY_RATING :Εκτίμηση @@ -696,7 +696,7 @@ STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Εμφά # Graph key window STR_GRAPH_KEY_CAPTION :{WHITE}Γραφήματα κλειδιού εταιρίας -STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Κάντε κλικ εδώ για εναλλαγή εμφάνισης της εταιρίας στο γράφημα +STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Πατήστε εδώ για εναλλαγή εμφάνισης της εταιρίας στο γράφημα # Company league window STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Πίνακας Πρωταθλήματος Εταιριών @@ -1645,7 +1645,7 @@ STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Σηματοδ STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Σηματοδότες τροχιάς STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :Σηματοδότες μονόδρομης τροχιάς STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Περιήγηση στους τύπους σηματοδότησης: {STRING} -STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Επιλέξτε τους τύπους σημάτων μεταξύ των οποίων θα γίνονται οι αλλαγές, όταν κάνετε κλικ σε ένα τοποθετημένο σήμα κρατώντας πατημένο το Ctrl +STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Επιλέξτε τους τύπους σημάτων μεταξύ των οποίων θα γίνονται οι αλλαγές, όταν πατάτε σε ένα τοποθετημένο σήμα κρατώντας πατημένο το Ctrl STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Μόνο σηματοδότες τμήματος STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Μόνο σηματοδότες τροχιάς STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Όλοι @@ -1983,8 +1983,8 @@ STR_FACE_SELECT_AFRICAN :{BLACK}Επιλ STR_FACE_YES :Ναι STR_FACE_NO :Όχι STR_FACE_MOUSTACHE_EARRING_TOOLTIP :{BLACK}Ενεργοποίηση μουστακιού ή σκουλαρικιού -STR_FACE_HAIR :Μαλλί: -STR_FACE_HAIR_TOOLTIP :{BLACK}Αλλάξτε μαλλί +STR_FACE_HAIR :Μαλλιά: +STR_FACE_HAIR_TOOLTIP :{BLACK}Αλλάξτε μαλλιά STR_FACE_EYEBROWS :Φρύδια: STR_FACE_EYEBROWS_TOOLTIP :{BLACK}Αλλάξτε φρύδια STR_FACE_EYECOLOUR :Χρώμα ματιών: @@ -2473,7 +2473,7 @@ STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Σημα STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Συνδυαστικός Σηματοδότης (ηλεκτρικός){}Ο συνδυαστικός σηματοδότης δουλεύει απλά ως σηματοδότης εισόδου και εξόδου ταυτόχρονα. Αυτό σας επιτρέπει το κτίσιμο μεγάλων «δέντρων» με προ-σηματοδότες STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Σηματοδότης Τροχιάς (ηλεκτρικός){}Ένας σηματοδότης τροχιάς επιτρέπει σε περισσότερα από ένα τρένο να είναι σε ένα κομμάτι ελέγχου την ίδια στιγμή, εάν το τρένο μπορεί να δεσμεύσει τροχιά σε ασφαλές σημείο στάσης. Κανονικοί σηματοδότες τροχιάς μπορούν να περαστούν από την πίσω πλευρά STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Μονόδρομος Σηματοδότης Τροχιάς (ηλεκτρικός){}Ένας σηματοδότης τροχιάς επιτρέπει σε περισσότερα από ένα τρένο να είναι σε ένα κομμάτι ελέγχου την ίδια στιγμή, εάν το τρένο μπορεί να δεσμεύσει τροχιά σε ασφαλές σημείο στάσης. Μονόδρομοι σηματοδότες τροχιάς δεν μπορούν να περαστούν από την πίσω πλευρά -STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Μετατροπέας Σηματοδότη{}Όταν επιλέγεται, κάνοντας κλικ σε έναν υπάρχον σηματοδότη θα τον μετατρέψει στον επιλεγμένο τύπο και παραλλαγή σηματοδότη. Με Ctrl+Κλικ εναλλάσσεται με την υπάρχουσα παραλλαγή. Με Shift+Κλικ εμφανίζεται το εκτιμώμενο κόστος μετατροπής +STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Μετατροπέας Σηματοδότη{}Όταν επιλέγεται, πατώντας σε έναν υπάρχωντα σηματοδότη θα τον μετατρέψει στον επιλεγμένο τύπο και παραλλαγή σηματοδότη. Με Ctrl+Κλικ εναλλάσσεται με την υπάρχουσα παραλλαγή. Με Shift+Κλικ εμφανίζεται το εκτιμώμενο κόστος μετατροπής STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Πυκνότητα σηματοδοτών με σύρσιμο STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Μείωση πυκνότητας σηματοδοτών με σύρσιμο STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Αύξηση πυκνότητας σηματοδοτών με σύρσιμο @@ -2627,7 +2627,7 @@ STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}Κάλυ STR_FOUND_TOWN_NAME_TITLE :{YELLOW}Όνομα πόλης: STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}Εισάγετε το όνομα της πόλης -STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Κλικ για να δώσετε το όνομα της πόλης +STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Πατήστε για να δώσετε το όνομα της πόλης STR_FOUND_TOWN_NAME_RANDOM_BUTTON :{BLACK}Τυχαίο όνομα STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Δημιουργία ενός τυχαίου ονόματος @@ -2664,8 +2664,8 @@ STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Αλυσ STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Βιομηχανίες που παράγουν STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Βιομηχανίες που δέχονται STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Σπιτιά -STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Κάντε κλικ στη βιομηχανία για να δείτε τους προμηθευτές και τους πελάτες της -STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Κάντε κλικ στο εμπόρευμα για να δείτε τους προμηθευτές και τους πελάτες +STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Πατήστε στη βιομηχανία για να δείτε τους προμηθευτές και τους πελάτες της +STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Πατήστε στο εμπόρευμα για να δείτε τους προμηθευτές και τους πελάτες STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Εμφάνιση αλυσίδας STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Εμφάνιση βιομηχανιών προμήθειας και αποδοχής για το εμπόρευμα STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Σύνδεση στο μικρό χάρτη @@ -3150,7 +3150,7 @@ STR_GOALS_SPECTATOR_NONE :{ORANGE}- Μη STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} STR_GOALS_COMPANY_TITLE :{BLACK}Εταιρικοί στόχοι: -STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Κάνετε κλικ στον στόχο για να επικεντρωθεί η οθόνη στη βιομηχανία/πόλη/τετραγωνίδιο. Με Ctrl+Κλικ ανοίγει το παράθυρο θέασης στην τοποθεσία της βιομηχανίας/πόλης/τετραγωνίδιου +STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Πατήστε στον στόχο για να επικεντρωθεί η οθόνη στη βιομηχανία/πόλη/τετραγωνίδιο. Με Ctrl+Κλικ ανοίγει το παράθυρο θέασης στην τοποθεσία της βιομηχανίας/πόλης/τετραγωνίδιου # Goal question window STR_GOAL_QUESTION_CAPTION_QUESTION :Ερώτηση @@ -3385,7 +3385,7 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Τί STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}){YELLOW} ({COMMA}% μεταφέρθηκαν) STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}/{CARGO_LONG}{STRING}){YELLOW} ({COMMA}%/{COMMA}% μεταφέρθηκαν) STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} -STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Ονόματα βιομηχανιών - κάνετε κλικ στο όνομα για κεντράρισμα στην βιομηχανία. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της βιομηχανίας +STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Ονόματα βιομηχανιών - πατήστε στο όνομα για κεντράρισμα στη βιομηχανία. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της βιομηχανίας # Industry view STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} @@ -3458,11 +3458,11 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Μη ομαδο STR_GROUP_DEFAULT_SHIPS :Μη ομαδοποιημένα πλοία STR_GROUP_DEFAULT_AIRCRAFTS :Μη ομαδοποιημένα αεροσκάφη -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Ομάδες - κάντε κλικ σε μία ομάδα για να δείτε όλα τα οχήματα που της ανήκουν. Σύρρτε ομάδες για να ρυθμίσετα την ιεραρχία. -STR_GROUP_CREATE_TOOLTIP :{BLACK}Κάντε κλικ για δημιουργήσετε ομάδα +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Ομάδες - πατήστε σε μία ομάδα για να δείτε όλα τα οχήματα που της ανήκουν. Σύρετε ομάδες για να ρυθμίσετε την ιεραρχία. +STR_GROUP_CREATE_TOOLTIP :{BLACK}Πατήστε για δημιουργήσετε ομάδα STR_GROUP_DELETE_TOOLTIP :{BLACK}Διαγραφή της επιλεγμένης ομάδας STR_GROUP_RENAME_TOOLTIP :{BLACK}Μετονομασία της επιλεγμένης ομάδας -STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Κάντε κλικ για προστατέψετε αυτήν την ομάδα από την γενική αυτόματη αντικατάσταση +STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Πατήστε για προστατέψετε αυτήν την ομάδα από την γενική αυτόματη αντικατάσταση STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Διαγραφή ομάδας STR_GROUP_DELETE_QUERY_TEXT :Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ομάδα και οποιουσδήποτε απογόνους; @@ -3503,11 +3503,12 @@ STR_PURCHASE_INFO_ALL_TYPES :Όλοι οι STR_PURCHASE_INFO_ALL_BUT :Όλοι εκτός από {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Μέγ. Δύναμη Έλξης: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Εύρος: {GOLD}{COMMA} τετραγωνίδια +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Τύπος αεροσκάφους: {GOLD}{STRING} -STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Λίστα επιλογής βαγονιού τρένου. Κάντε κλικ σε ένα βαγόνι για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου βαγονιού -STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Λίστα επιλογής οχήματος δρόμου. Κάντε κλικ σε ένα όχημα για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου οχήματος -STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Λίστα επιλογής πλοίου. Κάντε κλικ σε ένα πλοίο για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου πλοίου -STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Λίστα επιλογής αεροσκάφους. Κάντε κλικ σε ένα αεροσκάφος για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου αεροσκάφους +STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Λίστα επιλογής βαγονιού τρένου. Πατήστε σε ένα βαγόνι για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου βαγονιού +STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Λίστα επιλογής οχήματος δρόμου. Πατήστε σε ένα όχημα για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου οχήματος +STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Λίστα επιλογής πλοίου. Πατήστε σε ένα πλοίο για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου πλοίου +STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Λίστα επιλογής αεροσκάφους. Πατήστε σε ένα αεροσκάφος για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου αεροσκάφους STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Αγορά Οχήματος STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Αγορά Οχήματος @@ -3640,9 +3641,13 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.geniki :μηχανής STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}μηχανής maglev STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.geniki :μηχανής maglev -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος{}Χωρητικότητα: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος{}Χωρητικότητα: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER} Μεγ. Ε.Δ: {6:FORCE}{}Λειτουργικό Κόστος: {4:CURRENCY_LONG}/έτος{}Χωρητικότητα: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μεγ. Ταχύτητα: {VELOCITY}{}Τύπος αεροσκάφους: {STRING}{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μεγ. ταχύτητα: {VELOCITY}{}Τύπος αεροσκάφους: {STRING}{}Χωρητικότητα: {CARGO_LONG}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μεγ. Ταχύτητα: {VELOCITY}{}Τύπος αεροσκάφους: {STRING} Εμβέλεια: {COMMA} tiles{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Running Κόστος: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μεγ. Ταχύτητα: {VELOCITY}{}Τύπος αεροσκάφους: {STRING} Εμβέλεια: {COMMA} τεταγωνίδια{}Χωρητικότητα: {CARGO_LONG}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Αντικατάσταση {STRING} - {STRING} @@ -3765,6 +3770,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} χρό STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} χρόν{P ος ια} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Μέγ. ταχύτητα: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Μεγ. ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Τύπος αεροσκάφους: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Μεγ. ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Τύπος αεροσκάφους: {LTBLUE}{STRING} {BLACK}Εμβέλεια: {LTBLUE}{COMMA} τετραγωνίδια STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Βάρος: {LTBLUE}{WEIGHT_SHORT} {BLACK}Δύναμη Κινητήρα: {LTBLUE}{POWER}{BLACK} Μέγ. Ταχύτητα: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Βάρος: {LTBLUE}{WEIGHT_SHORT} {BLACK}Δύναμη Κινητήρα: {LTBLUE}{POWER}{BLACK} Μέγ. Ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Μέγ. Ε.Δ: {LTBLUE}{FORCE} @@ -4117,7 +4124,7 @@ STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Ρύθμ STR_AI_LIST_CAPTION :{WHITE}Διαθέσιμη {STRING} STR_AI_LIST_CAPTION_AI :AI STR_AI_LIST_CAPTION_GAMESCRIPT :Δέσμες Ενεργειών -STR_AI_LIST_TOOLTIP :{BLACK}Κάντε κλικ για επιλέξετε μία δέσμη ενεργειών +STR_AI_LIST_TOOLTIP :{BLACK}Πατήστε για να επιλέξετε μία δέσμη ενεργειών STR_AI_LIST_AUTHOR :{LTBLUE}Δημιουργός: {ORANGE}{STRING} STR_AI_LIST_VERSION :{LTBLUE}Έκδοση: {ORANGE}{NUM} @@ -4267,7 +4274,7 @@ STR_ERROR_CURRENCY_REQUIRED :{WHITE}... απ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Αδύνατη η αποπληρωμή του δανείου... STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Δεν είναι δυνατό να δοθούν χρήματα που είναι δανεισμένα από τη τράπεζα... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Αδύνατη η εξαγορά της εταιρίας... -STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Αδύνατο να κτιστεί αρχηγείο εταιρίας... +STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Δεν μπορεί να κτιστεί αρχηγείο εταιρίας... STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Αδύνατη η αγορά μεριδίου 25% της εταιρίας... STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Αδύνατη η πώληση μεριδίου 25% της εταιρίας... STR_ERROR_PROTECTED :{WHITE}Αυτή η εταιρία δεν είναι αρκετά παλιά για συναλλαγή μετοχών... @@ -4289,7 +4296,7 @@ STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... δε # Industry related errors STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... πάρα πολλές βιομηχανίες STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}Δε γίνεται να δημιουργηθούν βιομηχανίες... -STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Δεν είναι δυνατό να κτιστεί {G ο η το} {STRING} εδώ... +STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Δεν μπορεί να κτιστεί {G ο η το} {STRING} εδώ... STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Δεν είναι δυνατό να κτιστεί αυτός ο τύπος βιομηχανίας εδώ... STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... πολύ κοντά σε άλλη βιομηχανία STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... πρέπει να κτιστεί πόλη πρώτα @@ -4310,8 +4317,8 @@ STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Αλλα # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Δεν μπορεί να κτιστεί σταθμός τρένων εδώ... -STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}Αδύνατο να κτιστεί στάση λεωφορείων... -STR_ERROR_CAN_T_BUILD_TRUCK_STATION :{WHITE}Αδύνατο να κτιστεί στάση φορτηγών... +STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}Δεν μπορεί να κτιστεί στάση λεωφορείων... +STR_ERROR_CAN_T_BUILD_TRUCK_STATION :{WHITE}Δεν μπορεί να κτιστεί στάση φορτηγών... STR_ERROR_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Δεν μπορεί να κτιστεί επιβατικός σταθμός τραμ... STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Δεν μπορεί να κτιστεί σταθμός τραμ... STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}Δεν μπορεί να κτιστεί λιμένας εδώ... @@ -4354,7 +4361,7 @@ STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Πρέπ STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Προστίθεται σε περισσότερο από ένα υπάρχον σημείο καθοδήγησης STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Πολύ κοντά σε άλλο σημείο καθοδήγησης -STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}Αδύνατο να χτιστεί σημείο καθοδήγησης τρένου εδώ... +STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}Δεν μπορεί να χτιστεί σημείο καθοδήγησης τρένου εδώ... STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}Δεν μπορεί να τοποθετηθεί σημαδούρα εδώ... STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}Αδύνατο να αλλαχτεί το όνομα του σημείου καθοδήγησης... @@ -4364,8 +4371,8 @@ STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... ση STR_ERROR_BUOY_IS_IN_USE :{WHITE}... σημαδούρα σε χρήση από άλλη εταιρία! # Depot related errors -STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}Αδύνατο να κτιστεί αμαξοστάσιο εδώ... -STR_ERROR_CAN_T_BUILD_ROAD_DEPOT :{WHITE}Αδύνατο να κτιστεί σταθμός οχημάτων εδώ... +STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}Δεν μπορεί να κτιστεί αμαξοστάσιο εδώ... +STR_ERROR_CAN_T_BUILD_ROAD_DEPOT :{WHITE}Δεν μπορεί να κτιστεί σταθμός οχημάτων εδώ... STR_ERROR_CAN_T_BUILD_TRAM_DEPOT :{WHITE}Δεν μπορεί να κτιστεί σταθμαρχείο τραμ εδώ... STR_ERROR_CAN_T_BUILD_SHIP_DEPOT :{WHITE}Δεν μπορεί να κτιστεί ναυπηγείο πλοίων εδώ... @@ -4401,7 +4408,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Μη σ STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Πρέπει να αφαιρεθεί ο σιδηρόδρομος πρώτα STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Η δρόμος είναι μονόδρομος ή μπλοκαρισμένος STR_ERROR_CROSSING_DISALLOWED :{WHITE}Δεν επιτρέπονται ισόπεδες διασταυρώσεις για αυτόν τον τύπο σιδηροδρόμου -STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Δεν μπορούν να κτιστούν σηματοδότες εδώ... +STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Δεν μπορούν να τοποθετοηθούν σηματοδότες εδώ... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Δεν μπορεί να κτιστεί σιδηρόδρομος εδώ... STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Δεν μπορεί να αφαιρεθεί σιδηρόδρομος από εδώ... STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}Αδύνατο να αφαιρεθούν σηματοδότες από εδώ... @@ -4414,7 +4421,7 @@ STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Δε γ # Road construction errors STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}Πρέπει πρώτα να αφαιρεθεί ο δρόμος STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... οι μονόδρομοι δεν μπορούν να έχουν διασταυρώσεις -STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}Αδύνατο να κτιστεί δρόμος εδώ... +STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}Δεν μπορεί να κτιστεί δρόμος εδώ... STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Δεν μπορεί να κτιστεί τροχιοδρόμος εδώ... STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Αδύνατο να αφαιρεθεί δρόμος από εδώ... STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Δεν μπορεί να αφαιρεθεί τροχιόδρομος από εδώ... @@ -4427,7 +4434,7 @@ STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}Δεν STR_ERROR_CAN_T_PLACE_RIVERS :{WHITE}Δεν μπορούν να τοποθετηθούν ποτάμια εδώ... STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... πρέπει να κτιστεί στο νερό STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... αδύνατο να κτιστεί στο νερό -STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... δε μπορεί να κτιστεί στην ανοικτή θάλασσα +STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... αδύνατο να κτιστεί στην ανοικτή θάλασσα STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... αδύνατο να κτιστεί σε κανάλι STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... αδύνατο να κτιστεί σε ποτάμι STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Πρέπει να κατεδαφιστεί το κανάλι πρώτα @@ -4558,7 +4565,7 @@ STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}Αδύν STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}Δεν μπορεί να σταματήσει να μοιράζεται η λίστα εντολών... STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}Αδύνατο να αντιγραφεί η λίστα εντολών... STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... πολύ μακριά από τον προηγούμενο προορισμό -STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... δεν αρκεί η εμβέλεια του αεροσκάφους +STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... δεν επαρκεί η εμβέλεια του αεροσκάφους # Timetable related errors STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Δεν μπορεί να δρομολογηθεί το όχημα... From b54d144b2818e7fc173114df405f2202cd79a223 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 22 Mar 2017 18:45:40 +0000 Subject: [PATCH 310/417] (svn r27818) -Update from Eints: greek: 36 changes by kyrm --- src/lang/greek.txt | 72 +++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/lang/greek.txt b/src/lang/greek.txt index a39b694816..8174e9475a 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -34,7 +34,7 @@ STR_CARGO_PLURAL_PASSENGERS.geniki :Επιβάτη STR_CARGO_PLURAL_COAL :{G=m}Άνθρακάς STR_CARGO_PLURAL_MAIL :{G=f}Αλληλογραφία STR_CARGO_PLURAL_MAIL.geniki :Αλληλογραφίας -STR_CARGO_PLURAL_OIL :{G=n}Πετρέλαια +STR_CARGO_PLURAL_OIL :{G=n}Πετρέλαιo STR_CARGO_PLURAL_OIL.geniki :Πετρελαίου STR_CARGO_PLURAL_LIVESTOCK :{G=n}Ζώα STR_CARGO_PLURAL_LIVESTOCK.geniki :Ζώων @@ -411,7 +411,7 @@ STR_SCENEDIT_TOOLBAR_OPENTTD :{YELLOW}OpenTTD STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR :{YELLOW}Πρόγραμμα Επεξεργασίας Σεναρίου STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD :{BLACK}Μετακίνηση ημ/νίας εκκίνησης 1 χρόνο πίσω STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD :{BLACK}Μετακινήστε την ημερομηνία εκκίνησης 1 χρόνο μπροστά -STR_SCENEDIT_TOOLBAR_TOOLTIP_SET_DATE :{BLACK}Κάντε κλικ εδώ για να εισάγετε την χρονιά έναρξης +STR_SCENEDIT_TOOLBAR_TOOLTIP_SET_DATE :{BLACK}Πατήστε εδώ για να εισάγετε την χρονιά έναρξης STR_SCENEDIT_TOOLBAR_TOOLTIP_DISPLAY_MAP_TOWN_DIRECTORY :{BLACK}Εμφάνιση χάρτη, καταλόγου πόλεων STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Δημιουργία τοπίου STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Δημιουργία πόλης @@ -785,8 +785,8 @@ STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLA STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Πρόγραμμα - '{STRING}' STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Καθαρισμός STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Καθαρισμός τρέχοντος προγράμματος (μόνο Προσαρμοσμένο 1 ή Προσαρμοσμένο 2) -STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Κάντε κλικ στο μουσικό κομμάτι για προσθήκη στο τρέχον πρόγραμμα (Προσαρμοσμένο1 ή Προσαρμοσμένο2 μόνο) -STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Κάντε κλικ στο τραγούδι για να το αφαιρέσετε από το πρόγραμμα (Προσαρμοσμένο 1 ή 2 μόνο) +STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Πατήστε στο μουσικό κομμάτι για προσθήκη στο τρέχον πρόγραμμα (Προσαρμοσμένο1 ή Προσαρμοσμένο2 μόνο) +STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Πατήστε στο τραγούδι για να το αφαιρέσετε από το πρόγραμμα (Προσαρμοσμένο 1 ή 2 μόνο) # Highscore window STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Οι καλύτερες εταιρίες που έφτασαν το {NUM} @@ -1923,7 +1923,7 @@ STR_LIVERY_SHIP_TOOLTIP :{BLACK}Εμφά STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Εμφάνιση χρωματικών μοτίβων αεροσκαφών STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Επιλογή του βασικού χρώματος για το επιλεγμένο θέμα. Με Ctrl+Κλικ ορίζεται το χρώμα σε κάθε θέμα STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Επιλογή του δευτερεύοντος χρώματος για το επιλεγμένο μοτίβο. Με Ctrl+Κλικ ορίζεται το χρώμα για κάθε θέμα -STR_LIVERY_PANEL_TOOLTIP :{BLACK}Επιλέξτε το χρωματικό μοτίβο για αλλαγή ή πολλαπλά μοτίβα με Ctrl+Κλικ. Κάντε κλικ στο κουτάκι για να επιλέξετε τη χρήση του μοτίβου +STR_LIVERY_PANEL_TOOLTIP :{BLACK}Επιλέξτε το χρωματικό μοτίβο για αλλαγή ή πολλαπλά μοτίβα με Ctrl+Κλικ. Πατήστε στο κουτάκι για να επιλέξετε τη χρήση του μοτίβου STR_LIVERY_DEFAULT :Πρότυπο Μοτίβου Χρωμάτων STR_LIVERY_STEAM :Ατμοκίνητη Μηχανή @@ -2023,16 +2023,16 @@ STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Συμμ STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Συμμετέχοντες συνδεδεμένοι / μέγιστος αριθμός συμμετεχόντων{}Εταιρίες συνδεδεμένες / μέγιστος αριθμός εταιριών STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA} STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Μέγεθος χάρτη -STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Μέγεθος χάρτη του παιχνιδιού{}Κάντε κλικ για ταξινόμηση ανά περιοχή +STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Μέγεθος χάρτη του παιχνιδιού{}Πατήστε για ταξινόμηση ανά περιοχή STR_NETWORK_SERVER_LIST_DATE_CAPTION :{BLACK}Ημερομηνία STR_NETWORK_SERVER_LIST_DATE_CAPTION_TOOLTIP :{BLACK}Τρέχουσα ημερομηνία STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}Χρόνια STR_NETWORK_SERVER_LIST_YEARS_CAPTION_TOOLTIP :{BLACK}Αριθμός χρόνων{}που τρέχει το παιχνίδι STR_NETWORK_SERVER_LIST_INFO_ICONS_TOOLTIP :{BLACK}Γλώσσα, έκδοση διακομιστή, κλπ. -STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Κάντε κλικ σε ένα παιχνίδι από τη λίστα για το επιλέξετε +STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Πατήστε σε ένα παιχνίδι από τη λίστα για το επιλέξετε STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}Ο διακομιστής που συμμετείχατε την τελευταία φορά: -STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Κάντε κλικ για να επιλέξετε το διακομιστή που συμμετείχατε την τελευταία φορά +STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Πατήστε για να επιλέξετε το διακομιστή που συμμετείχατε την τελευταία φορά STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}ΠΛΗΡΟΦΟΡΙΕΣ ΠΑΙΧΝΙΔΙΟΥ STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Συμμετέχοντες:: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA} @@ -2305,7 +2305,7 @@ STR_CONTENT_TYPE_CAPTION :{BLACK}Τύπο STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Τύπος περιεχόμενου STR_CONTENT_NAME_CAPTION :{BLACK}Όνομα STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Το όνομα του περιεχομένου -STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Κάντε κλικ σε μια γραμμή για να δείτε λεπτομέρειες{}Κάντε κλικ στο κουτάκι για το επιλέξετε για κατέβασμα +STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Πατήστε σε μια γραμμή για να δείτε λεπτομέρειες{}Πατήστε στο κουτάκι για το επιλέξετε για κατέβασμα STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Επιλογή όλων STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Μαρκάρισμα όλων των περιεχομένων για κατέβασμα STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Επιλέξτε αναβαθμίσεις @@ -2481,7 +2481,7 @@ STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Αύξη # Bridge selection window STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Επιλογή Γέφυρας STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Επιλογή Γέφυρας Δρόμου -STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Επιλογή γέφυρας - κάντε κλικ στην γέφυρα της προτίμησής σας για κατασκευή +STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Επιλογή γέφυρας - πατήστε στην γέφυρα της προτίμησής σας για κατασκευή STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} STR_BRIDGE_NAME_SUSPENSION_STEEL :Ατσάλινη, με Αναρτήσεις @@ -2805,7 +2805,7 @@ STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Αποθ STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Φόρτωση Σεναρίου STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Φόρτωση Χάρτη Υψομετρίας STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Αποθήκευση Χάρτη Υψομετρίας -STR_SAVELOAD_HOME_BUTTON :{BLACK}Κάντε κλικ εδώ για να πάτε στον τρέχων φάκελο αποθήκευσης +STR_SAVELOAD_HOME_BUTTON :{BLACK}Πατήστε εδώ για να πάτε στον τρέχων φάκελο αποθήκευσης STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} ελεύθερα STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Λίστα δισκών, φακέλων και αποθηκευμένων παιχνιδιών STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Τρέχον επιλεγμένο όνομα για το αποθηκευμένο παιχνίδι @@ -3082,7 +3082,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Δώστ STR_TOWN_DIRECTORY_CAPTION :{WHITE}Πόλεις STR_TOWN_DIRECTORY_NONE :{ORANGE}- Τίποτα - STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) -STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Ονόματα πόλεων - κάνετε κλικ στο όνομα για να κεντράρετε την εικόνα στην πόλη. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της πόλης +STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Ονόματα πόλεων - πατήστε στο όνομα για να κεντράρετε την εικόνα στην πόλη. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της πόλης STR_TOWN_POPULATION :{BLACK}Παγκόσμιος πληθυσμός: {COMMA} # Town view window @@ -3118,7 +3118,7 @@ STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Τοπι STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ποσοστά εταιρίας μεταφορών: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Διαθέσιμες πράξεις: -STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Λίστα πραγμάτων που πρέπει να γίνουν σε αυτήν την πόλη - κάντε κλικ στο αντικείμενο για πληροφορίες +STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Λίστα πραγμάτων που πρέπει να γίνουν σε αυτήν την πόλη - πατήστε στο αντικείμενο για πληροφορίες STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Κάντε το STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Διενέργεια της επιλεγμένης πράξης στην παραπάνω λίστα @@ -3186,7 +3186,7 @@ STR_SUBSIDIES_OFFERED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_NONE :{ORANGE}- Καμία - STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}Υπηρεσίες που έχουν χρηματοδοτηθεί: STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING} από τον σταθμό {STRING} προς τον σταθμό {STRING}{YELLOW} ({COMPANY}{YELLOW}, έως τις {DATE_SHORT}) -STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Κάνετε κλικ στην υπηρεσία για κεντράρισμα στην βιομηχανία/πόλη. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της βιομηχανίας/πόλης +STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Πατήστε στην υπηρεσία για κεντράρισμα στην βιομηχανία/πόλη. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της βιομηχανίας/πόλης # Story book window STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Βιβλίο Ιστορίας @@ -3201,7 +3201,7 @@ STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Μετα STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Μη έγκυρη αναφορά στόχου # Station list window -STR_STATION_LIST_TOOLTIP :{BLACK}Ονόματα σταθμών - κάνετε κλικ στο όνομα για κεντράρισμα στο σταθμό. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία του σταθμού +STR_STATION_LIST_TOOLTIP :{BLACK}Ονόματα σταθμών - πατήστε στο όνομα για κεντράρισμα στο σταθμό. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία του σταθμού STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE :{BLACK}Κρατήστε πατημένο το Ctrl για να επιλέξετε περισσότερο από ένα αντικείμενο STR_STATION_LIST_CAPTION :{WHITE}{COMPANY} - {COMMA} Σταθμ{P ός οί} STR_STATION_LIST_STATION :{YELLOW}{STATION} {STATION_FEATURES} @@ -3419,10 +3419,10 @@ STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} Πλοί{P ο α} STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Αεροσκάφ{P ος η} -STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Τρένα - κάντε κλικ στο τρένο για πληροφορίες -STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Οχήματα δρόμου - κάντε κλικ στο όχημα για πληροφορίες -STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Πλοία - κάντε κλικ στο πλοίο για πληροφορίες -STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Αεροσκάφη - κάντε κλικ στο αεροσκάφος για πληροφορίες +STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Τρένα - πατήστε στο τρένο για πληροφορίες +STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Οχήματα δρόμου - πατήστε στο όχημα για πληροφορίες +STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Πλοία - πατήστε στο πλοίο για πληροφορίες +STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Αεροσκάφη - πατήστε στο αεροσκάφος για πληροφορίες STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Κέρδος αυτό το έτος: {CURRENCY_LONG} (προηγούμενο έτος: {CURRENCY_LONG}) @@ -3442,8 +3442,8 @@ STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Στείλτε STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Στείλε στο Ναυπηγείο STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Στείλε στο Υπόστεγο -STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα οχήματα στη λίστα -STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα οχήματα στη λίστα +STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα οχήματα στη λίστα +STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα οχήματα στη λίστα STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}Κοινές εντολές {P 0 του των} {COMMA} {P Οχήματος Οχημάτων} @@ -3613,15 +3613,15 @@ STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Παίρ STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}Παίρνετε μια λίστα με όλα τα πλοία με το επιλεγμένο ναυπηγείο στις εντολές τους STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Παίρνετε μια λίστα με όλα τα αεροσκάφη που έχουν οποιοδήποτε υπόστεγο αυτού του αεροδρομίου στις εντολές τους -STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα τρένα μέσα στο αμαξοστάσιο -STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα οχήματα μέσα στο αμαξοστάσιο -STR_DEPOT_MASS_STOP_DEPOT_SHIP_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα πλοία μέσα στο ναυπηγείο -STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα αεροσκάφη μέσα στο υπόστεγο +STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα τρένα μέσα στο αμαξοστάσιο +STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα οχήματα μέσα στο αμαξοστάσιο +STR_DEPOT_MASS_STOP_DEPOT_SHIP_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα πλοία μέσα στο ναυπηγείο +STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα αεροσκάφη μέσα στο υπόστεγο -STR_DEPOT_MASS_START_DEPOT_TRAIN_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα τρένα μέσα στο αμαξοστάσιο -STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα οχήματα μέσα στο αμαξοστάσιο -STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα πλοία μέσα στο ναυπηγείο -STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα αεροσκάφη μέσα στο υπόστεγο +STR_DEPOT_MASS_START_DEPOT_TRAIN_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα τρένα μέσα στο αμαξοστάσιο +STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα οχήματα μέσα στο αμαξοστάσιο +STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα πλοία μέσα στο ναυπηγείο +STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα αεροσκάφη μέσα στο υπόστεγο STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Πρόκειται να πουλήσετε όλα τα οχήματα στο αμαξοστάσιο. Είσαστε σίγουροι; @@ -3727,10 +3727,10 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Εμφά STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Εμφάνιση λεπτομερειών πλοίου STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Εμφάνιση λεπτομερειών αεροσκάφους -STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια τρένου - κάντε κλικ εδώ για ξεκινήσετε/σταματήσετε το τρένο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό -STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια οχήματος - κάντε κλικ εδώ για ξεκινήσετε/σταματήσετε το όχημα. Με Ctrl+Κλικ πηγαίνετε στον προορισμό -STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια πλοίου - κάντε κλικ εδώ για ξεκινήσετε/σταματήσετε το πλοίο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό -STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια αεροσκάφους - κάντε κλικ εδώ για ξεκινήσετε/σταματήσετε το πλοίο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό +STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια τρένου - πατήστε εδώ για ξεκινήσετε/σταματήσετε το τρένο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό +STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια οχήματος - πατήστε εδώ για ξεκινήσετε/σταματήσετε το όχημα. Με Ctrl+Κλικ πηγαίνετε στον προορισμό +STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια πλοίου - πατήστε εδώ για ξεκινήσετε/σταματήσετε το πλοίο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό +STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια αεροσκάφους - πατήστε εδώ για ξεκινήσετε/σταματήσετε το πλοίο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό # Messages in the start stop button in the vehicle view STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Φόρτωση / Εκφόρτωση @@ -3831,7 +3831,7 @@ STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Νέα STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Νέα χωρητικότητα: {GOLD}{CARGO_LONG}{}{BLACK}Κέρδος από τη μετατροπή: {GREEN}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Νέα χωρητικότητα: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Κόστος μετατροπής: {RED}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Νέα χωρητικότητα: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Κέρδος από τη μετατροπή: {GREEN}{CURRENCY_LONG} -STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Επιλέξτε τα οχήματα για μετατροπή. Σύροντας με το ποντίκι επιτρέπει την επιλογή πολλαπλών οχημάτων. Κάνοντας κλικ σε άδειο χώρο θα επιλέξει ολόκληρο το όχημα. Με Ctrl+Κλικ θα γίνει επιλογή του οχήματος και της ακολουθούμενης αλυσίδας. +STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Επιλέξτε τα οχήματα για μετατροπή. Σύροντας με το ποντίκι επιτρέπει την επιλογή πολλαπλών οχημάτων. Πατώντας σε άδειο χώρο θα επιλέξει ολόκληρο το όχημα. Με Ctrl+Κλικ θα γίνει επιλογή του οχήματος και της ακολουθούμενης αλυσίδας. STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Επιλέξτε τον τύπο εμπορεύματος που θα μεταφέρει το τρένο STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Επιλέξτε τον τύπο εμπορεύματος που θα μεταφέρει το όχημα @@ -3853,7 +3853,7 @@ STR_ORDERS_CAPTION :{WHITE}{VEHICLE STR_ORDERS_TIMETABLE_VIEW :{BLACK}Δρομολόγια STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}Αλλαγή σε προβολή δρομολογίων -STR_ORDERS_LIST_TOOLTIP :{BLACK}Λίστα εντολών - κάντε κλικ σε μια εντολή για να την επιλέξετε. Με Ctrl+Κλικ γίνεται μετακίνηση στον προορισμό της οδηγίας +STR_ORDERS_LIST_TOOLTIP :{BLACK}Λίστα εντολών - πατήστε σε μια εντολή για να την επιλέξετε. Με Ctrl+Κλικ γίνεται μετακίνηση στον προορισμό της οδηγίας STR_ORDER_INDEX :{COMMA}:{NBSP} STR_ORDER_TEXT :{STRING} {STRING} {STRING} @@ -4008,7 +4008,7 @@ STR_TIMETABLE_TITLE :{WHITE}{VEHICLE STR_TIMETABLE_ORDER_VIEW :{BLACK}Εντολές STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}Αλλαγή στην προβολή εντολών -STR_TIMETABLE_TOOLTIP :{BLACK}Δρομολόγια - κάντε κλικ σε μια εντολή για την επιλέξετε +STR_TIMETABLE_TOOLTIP :{BLACK}Δρομολόγια - πατήστε σε μια εντολή για την επιλέξετε STR_TIMETABLE_NO_TRAVEL :Μην ταξιδέψεις STR_TIMETABLE_NOT_TIMETABLEABLE :Ταξίδι (αυτόματα· με δρομολόγιο στην επόμενη μη αυτόματη εντολή) From abcab89af3c3edc201dbd7d8dc2ef65b4336fcd0 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 23 Mar 2017 18:07:04 +0000 Subject: [PATCH 311/417] (svn r27819) -Fix (r26990): Update viewport sign dimensions when changing GUI zoom level. --- src/settings_gui.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 0652d1bd81..e20ac33073 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -36,6 +36,8 @@ #include "textfile_gui.h" #include "stringfilter_type.h" #include "querystring_gui.h" +#include "signs_func.h" +#include "station_func.h" #include @@ -532,6 +534,9 @@ struct GameOptionsWindow : Window { _gui_zoom = (ZoomLevel)(ZOOM_LVL_OUT_4X - index); UpdateCursorSize(); LoadStringWidthTable(); + UpdateAllSignVirtCoords(); + UpdateAllTownVirtCoords(); + UpdateAllStationVirtCoords(); break; case WID_GO_BASE_GRF_DROPDOWN: From 6da57ed3e88d6bfba26e501476b5f53b30e8e9a0 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 23 Mar 2017 20:07:59 +0000 Subject: [PATCH 312/417] (svn r27820) -Fix: Allow dropdown to be drawn above origin widget even with scrollbar (Juanjo) --- src/widgets/dropdown.cpp | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index e0ad96a87a..d4c229cb1f 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -363,18 +363,38 @@ void ShowDropDownListAt(Window *w, const DropDownList *list, int selected, int b /* Check if the dropdown will fully fit below the widget */ if (top + height + 4 >= screen_bottom) { /* If not, check if it will fit above the widget */ - if (w->top + wi_rect.top - height > GetMainViewTop()) { + int screen_top = GetMainViewTop(); + if (w->top + wi_rect.top > screen_top + height) { top = w->top + wi_rect.top - height - 4; } else { - /* ... and lastly if it won't, enable the scroll bar and fit the - * list in below the widget */ + /* If it doesn't fit above the widget, we need to enable a scrollbar... */ int avg_height = height / (int)list->Length(); - int rows = (screen_bottom - 4 - top) / avg_height; - height = rows * avg_height; scroll = true; + + /* ... and choose whether to put the list above or below the widget. */ + bool put_above = false; + int available_height = screen_bottom - w->top - wi_rect.bottom; + if (w->top + wi_rect.top - screen_top > available_height) { + // Put it above. + available_height = w->top + wi_rect.top - screen_top; + put_above = true; + } + + /* Check at least there is space for one item. */ + assert(available_height >= avg_height); + + /* And lastly, fit the list... */ + int rows = available_height / avg_height; + height = rows * avg_height; + /* Add space for the scroll bar if we automatically determined * the width of the list. */ max_item_width += NWidgetScrollbar::GetVerticalDimension().width; + + /* ... and set the top position if needed. */ + if (put_above) { + top = w->top + wi_rect.top - height - 4; + } } } From 2c0ef5c659b46ad3256015c8bddb55d706bef2bb Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 23 Mar 2017 22:00:00 +0000 Subject: [PATCH 313/417] (svn r27821) -Change: Draw images in centre of buttons (inspired by Juanjo) --- src/gfx_func.h | 12 ++++++++++++ src/widget.cpp | 19 +++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/gfx_func.h b/src/gfx_func.h index 566f91b2da..44f5e5059f 100644 --- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -142,6 +142,18 @@ void CheckBlitter(); bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int height); +/** + * Determine where to draw a centred object inside a widget. + * @param min The top or left coordinate. + * @param max The bottom or right coordinate. + * @param size The height or width of the object to draw. + * @return Offset of where to start drawing the object. + */ +static inline int CenterBounds(int min, int max, uint size) +{ + return min + (max - min - size + 1) / 2; +} + /* window.cpp */ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom); diff --git a/src/widget.cpp b/src/widget.cpp index 2c06cfe29b..3aac9611b1 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -221,7 +221,8 @@ static inline void DrawImageButtons(const Rect &r, WidgetType type, Colours colo DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); if ((type & WWT_MASK) == WWT_IMGBTN_2 && clicked) img++; // Show different image when clicked for #WWT_IMGBTN_2. - DrawSprite(img, PAL_NONE, r.left + WD_IMGBTN_LEFT + clicked, r.top + WD_IMGBTN_TOP + clicked); + Dimension d = GetSpriteSize(img); + DrawSprite(img, PAL_NONE, CenterBounds(r.left, r.right, d.width) + clicked, CenterBounds(r.top, r.bottom, d.height) + clicked); } /** @@ -459,8 +460,7 @@ static inline void DrawFrame(const Rect &r, Colours colour, StringID str) */ static inline void DrawShadeBox(const Rect &r, Colours colour, bool clicked) { - DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawSprite((clicked) ? SPR_WINDOW_SHADE : SPR_WINDOW_UNSHADE, PAL_NONE, r.left + WD_SHADEBOX_LEFT + clicked, r.top + WD_SHADEBOX_TOP + clicked); + DrawImageButtons(r, WWT_SHADEBOX, colour, clicked, clicked ? SPR_WINDOW_SHADE: SPR_WINDOW_UNSHADE); } /** @@ -471,8 +471,7 @@ static inline void DrawShadeBox(const Rect &r, Colours colour, bool clicked) */ static inline void DrawStickyBox(const Rect &r, Colours colour, bool clicked) { - DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawSprite((clicked) ? SPR_PIN_UP : SPR_PIN_DOWN, PAL_NONE, r.left + WD_STICKYBOX_LEFT + clicked, r.top + WD_STICKYBOX_TOP + clicked); + DrawImageButtons(r, WWT_STICKYBOX, colour, clicked, clicked ? SPR_PIN_UP : SPR_PIN_DOWN); } /** @@ -483,8 +482,7 @@ static inline void DrawStickyBox(const Rect &r, Colours colour, bool clicked) */ static inline void DrawDefSizeBox(const Rect &r, Colours colour, bool clicked) { - DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawSprite(SPR_WINDOW_DEFSIZE, PAL_NONE, r.left + WD_DEFSIZEBOX_LEFT + clicked, r.top + WD_DEFSIZEBOX_TOP + clicked); + DrawImageButtons(r, WWT_DEFSIZEBOX, colour, clicked, SPR_WINDOW_DEFSIZE); } /** @@ -495,8 +493,7 @@ static inline void DrawDefSizeBox(const Rect &r, Colours colour, bool clicked) */ static inline void DrawDebugBox(const Rect &r, Colours colour, bool clicked) { - DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawSprite(SPR_WINDOW_DEBUG, PAL_NONE, r.left + WD_DEBUGBOX_LEFT + clicked, r.top + WD_DEBUGBOX_TOP + clicked); + DrawImageButtons(r, WWT_DEBUGBOX, colour, clicked, SPR_WINDOW_DEBUG); } /** @@ -526,7 +523,9 @@ static inline void DrawResizeBox(const Rect &r, Colours colour, bool at_left, bo static inline void DrawCloseBox(const Rect &r, Colours colour) { if (colour != COLOUR_WHITE) DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, FR_NONE); - DrawSprite(SPR_CLOSEBOX, (colour != COLOUR_WHITE ? TC_BLACK : TC_SILVER) | (1 << PALETTE_TEXT_RECOLOUR), r.left + WD_CLOSEBOX_LEFT, r.top + WD_CLOSEBOX_TOP); + Dimension d = GetSpriteSize(SPR_CLOSEBOX); + int s = UnScaleGUI(1); /* Offset to account for shadow of SPR_CLOSEBOX */ + DrawSprite(SPR_CLOSEBOX, (colour != COLOUR_WHITE ? TC_BLACK : TC_SILVER) | (1 << PALETTE_TEXT_RECOLOUR), CenterBounds(r.left, r.right, d.width - s), CenterBounds(r.top, r.bottom, d.height - s)); } /** From 0887289e3df17f005a850bbbfb39e1bd81273f3a Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 24 Mar 2017 07:33:31 +0000 Subject: [PATCH 314/417] (svn r27822) -Feature: Vehicle Group Info: Add profits and occupancy display to group vehicle list (mtm, JGR) --- src/group_gui.cpp | 47 +++++++++++++++++++++++++++++++++++++ src/lang/english.txt | 5 ++++ src/saveload/vehicle_sl.cpp | 2 ++ src/vehicle.cpp | 1 + src/vehicle_base.h | 1 + src/widgets/group_widget.h | 1 + 6 files changed, 57 insertions(+) diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 361ab53e56..d3e1eafbb9 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -55,6 +55,7 @@ static const NWidgetPart _nested_group_widgets[] = { SetFill(1, 0), SetResize(0, 1), SetScrollbar(WID_GL_LIST_GROUP_SCROLLBAR), NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_GL_LIST_GROUP_SCROLLBAR), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_INFO), SetFill(1, 0), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_CREATE_GROUP), SetFill(0, 1), SetDataTip(SPR_GROUP_CREATE_TRAIN, STR_GROUP_CREATE_TOOLTIP), @@ -371,6 +372,9 @@ public: max_icon_height = max(max_icon_height, GetSpriteSize(this->GetWidget(WID_GL_DELETE_GROUP)->widget_data).height); max_icon_height = max(max_icon_height, GetSpriteSize(this->GetWidget(WID_GL_REPLACE_PROTECTION)->widget_data).height); + /* ... minus the height of the group info ... */ + max_icon_height += (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; + /* Get a multiple of tiny_step_height of that amount */ size->height = Ceil(size->height - max_icon_height, tiny_step_height); break; @@ -403,6 +407,11 @@ public: *size = maxdim(*size, d); break; } + + case WID_GL_INFO: { + size->height = (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; + break; + } } } @@ -527,6 +536,44 @@ public: DrawGroupInfo(r.top + WD_FRAMERECT_TOP, r.left, r.right, DEFAULT_GROUP); break; + case WID_GL_INFO: { + Money this_year = 0; + Money last_year = 0; + uint32 occupancy = 0; + uint32 vehicle_count = this->vehicles.Length(); + + for (uint i = 0; i < vehicle_count; i++) { + const Vehicle *v = this->vehicles[i]; + assert(v->owner == this->owner); + + this_year += v->GetDisplayProfitThisYear(); + last_year += v->GetDisplayProfitLastYear(); + occupancy += v->trip_occupancy; + } + + const int left = r.left + WD_FRAMERECT_LEFT + 8; + const int right = r.right - WD_FRAMERECT_RIGHT - 8; + + int y = r.top + WD_FRAMERECT_TOP; + DrawString(left, right, y, STR_GROUP_PROFIT_THIS_YEAR, TC_BLACK); + SetDParam(0, this_year); + DrawString(left, right, y, STR_JUST_CURRENCY_LONG, TC_BLACK, SA_RIGHT); + + y += FONT_HEIGHT_NORMAL; + DrawString(left, right, y, STR_GROUP_PROFIT_LAST_YEAR, TC_BLACK); + SetDParam(0, last_year); + DrawString(left, right, y, STR_JUST_CURRENCY_LONG, TC_BLACK, SA_RIGHT); + + y += FONT_HEIGHT_NORMAL; + DrawString(left, right, y, STR_GROUP_OCCUPANCY, TC_BLACK); + if (vehicle_count > 0) { + SetDParam(0, occupancy / vehicle_count); + DrawString(left, right, y, STR_GROUP_OCCUPANCY_VALUE, TC_BLACK, SA_RIGHT); + } + + break; + } + case WID_GL_LIST_GROUP: { int y1 = r.top + WD_FRAMERECT_TOP; int max = min(this->group_sb->GetPosition() + this->group_sb->GetCapacity(), this->groups.Length()); diff --git a/src/lang/english.txt b/src/lang/english.txt index 141346d4d0..722459c353 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3367,6 +3367,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehi STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group +STR_GROUP_PROFIT_THIS_YEAR :Profit this year: +STR_GROUP_PROFIT_LAST_YEAR :Profit last year: +STR_GROUP_OCCUPANCY :Current usage: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Rail Vehicles diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index 86ca590e4d..d7c7011890 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -375,6 +375,8 @@ void AfterLoadVehicles(bool part_of_load) FOR_ALL_VEHICLES(v) { assert(v->first != NULL); + v->trip_occupancy = CalcPercentVehicleFilled(v, NULL); + switch (v->type) { case VEH_TRAIN: { Train *t = Train::From(v); diff --git a/src/vehicle.cpp b/src/vehicle.cpp index b686461316..4dbdf24dff 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -2160,6 +2160,7 @@ void Vehicle::LeaveStation() st->loading_vehicles.remove(this); HideFillingPercent(&this->fill_percent_te_id); + trip_occupancy = CalcPercentVehicleFilled(this, NULL); if (this->type == VEH_TRAIN && !(this->vehstatus & VS_CRASHED)) { /* Trigger station animation (trains only) */ diff --git a/src/vehicle_base.h b/src/vehicle_base.h index f2a02072a2..fc40f22a62 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -308,6 +308,7 @@ public: uint16 refit_cap; ///< Capacity left over from before last refit. VehicleCargoList cargo; ///< The cargo this vehicle is carrying uint16 cargo_age_counter; ///< Ticks till cargo is aged next. + int8 trip_occupancy; ///< NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station). byte day_counter; ///< Increased by one for each day byte tick_counter; ///< Increased by one for each tick diff --git a/src/widgets/group_widget.h b/src/widgets/group_widget.h index bd0d90486b..41e0bcd45a 100644 --- a/src/widgets/group_widget.h +++ b/src/widgets/group_widget.h @@ -32,6 +32,7 @@ enum GroupListWidgets { WID_GL_DELETE_GROUP, ///< Delete group button. WID_GL_RENAME_GROUP, ///< Rename group button. WID_GL_REPLACE_PROTECTION, ///< Replace protection button. + WID_GL_INFO, ///< Group info. }; #endif /* WIDGETS_GROUP_WIDGET_H */ From 4255e2e136fb4da7a2054f6e1d0952f1fdce86ba Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 24 Mar 2017 12:00:52 +0000 Subject: [PATCH 315/417] (svn r27823) -Fix: Vehicle viewport is not user scrollable so flag window as such. --- src/vehicle_gui.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index a77ea18df0..b9c24ddd01 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2456,6 +2456,7 @@ private: public: VehicleViewWindow(WindowDesc *desc, WindowNumber window_number) : Window(desc) { + this->flags |= WF_DISABLE_VP_SCROLL; this->CreateNestedTree(); /* Sprites for the 'send to depot' button indexed by vehicle type. */ From 6ceb8a0d281ea983244c5eb5d2a5d6a92af841ae Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 24 Mar 2017 18:45:45 +0000 Subject: [PATCH 316/417] (svn r27824) -Update from Eints: catalan: 7 changes by juanjo croatian: 4 changes by VoyagerOne korean: 15 changes by telk5093 scottish gaelic: 54 changes by GunChleoc --- src/lang/afrikaans.txt | 1 + src/lang/arabic_egypt.txt | 1 + src/lang/basque.txt | 1 + src/lang/belarusian.txt | 1 + src/lang/brazilian_portuguese.txt | 1 + src/lang/bulgarian.txt | 1 + src/lang/catalan.txt | 8 +++ src/lang/croatian.txt | 5 ++ src/lang/czech.txt | 1 + src/lang/danish.txt | 1 + src/lang/dutch.txt | 1 + src/lang/english_AU.txt | 1 + src/lang/english_US.txt | 1 + src/lang/esperanto.txt | 1 + src/lang/estonian.txt | 1 + src/lang/faroese.txt | 1 + src/lang/finnish.txt | 1 + src/lang/french.txt | 1 + src/lang/gaelic.txt | 78 +++++++++++++++++++++--------- src/lang/galician.txt | 1 + src/lang/german.txt | 1 + src/lang/greek.txt | 1 + src/lang/hebrew.txt | 1 + src/lang/hungarian.txt | 1 + src/lang/icelandic.txt | 1 + src/lang/indonesian.txt | 1 + src/lang/irish.txt | 1 + src/lang/italian.txt | 1 + src/lang/japanese.txt | 1 + src/lang/korean.txt | 20 ++++++-- src/lang/latin.txt | 1 + src/lang/latvian.txt | 1 + src/lang/lithuanian.txt | 1 + src/lang/luxembourgish.txt | 1 + src/lang/malay.txt | 1 + src/lang/norwegian_bokmal.txt | 1 + src/lang/norwegian_nynorsk.txt | 1 + src/lang/polish.txt | 1 + src/lang/portuguese.txt | 1 + src/lang/romanian.txt | 1 + src/lang/russian.txt | 1 + src/lang/serbian.txt | 1 + src/lang/simplified_chinese.txt | 1 + src/lang/slovak.txt | 1 + src/lang/slovenian.txt | 1 + src/lang/spanish.txt | 1 + src/lang/spanish_MX.txt | 1 + src/lang/swedish.txt | 1 + src/lang/tamil.txt | 1 + src/lang/thai.txt | 1 + src/lang/traditional_chinese.txt | 1 + src/lang/turkish.txt | 1 + src/lang/ukrainian.txt | 1 + src/lang/unfinished/chuvash.txt | 1 + src/lang/unfinished/frisian.txt | 1 + src/lang/unfinished/ido.txt | 1 + src/lang/unfinished/macedonian.txt | 1 + src/lang/unfinished/maltese.txt | 1 + src/lang/unfinished/marathi.txt | 1 + src/lang/unfinished/persian.txt | 1 + src/lang/unfinished/urdu.txt | 1 + src/lang/vietnamese.txt | 1 + src/lang/welsh.txt | 1 + 63 files changed, 143 insertions(+), 27 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 81bc7bca1c..19140416bd 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Verwyder alle v STR_GROUP_RENAME_CAPTION :{BLACK}Hernoem 'n groep + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuwe treine STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuwe Elektries Spoor Voertuie diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index cb6f643dee..8cb3b11787 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2886,6 +2886,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :أزل جميع STR_GROUP_RENAME_CAPTION :{BLACK}إعادة تسمية مجموعة + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :عربات قطار جديدة STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :عربات قطار كهربائية جديدة diff --git a/src/lang/basque.txt b/src/lang/basque.txt index f8b9913cc9..d31feeeb9d 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3245,6 +3245,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ibilgailu guzti STR_GROUP_RENAME_CAPTION :{BLACK}Taldea berrizendatu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Tren berriak STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Tren elektriko berriak diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 5742b9db05..3c4a255e49 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3693,6 +3693,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Выдаліц STR_GROUP_RENAME_CAPTION :{BLACK}Перайменаваць групу + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новы цягнік STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новы электрычны цягнік diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index f42d463010..87a8d1a7fc 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos o STR_GROUP_RENAME_CAPTION :{BLACK}Renomear um grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos Veículos Ferroviários STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova Locomotiva Elétrica diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 22b00078ab..afee4af7eb 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3280,6 +3280,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Премахн STR_GROUP_RENAME_CAPTION :{BLACK}Преименовай група + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Нови Машини за Двурелсов път STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Нови електрически влакове diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 42411873ef..aeac5a18c8 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3368,6 +3368,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Treu tots els v STR_GROUP_RENAME_CAPTION :{BLACK}Canvia de nom el grup + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Compra de nous vehicles ferroviaris STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Compra de nous vehicles ferroviaris per vies electrificades @@ -3399,6 +3400,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Totes les càrr STR_PURCHASE_INFO_ALL_BUT :Qualsevol excepte {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforç de tracció màxim: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Abast: {GOLD}{COMMA} cel·les +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipus d'aeronau: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Llista de selecció de trens i vagons. Clica al vehicle per més informació. Ctrl+Click per a alternar entre mostrar/ocultar el vehicle ferroviari STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Llista de models de vehicles de carretera. Clica sobre el model per més informació. Amb Ctrl+Clic, commuta entre mostrar o ocultar el model. @@ -3533,6 +3535,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=Femenin}loco STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER}{}Cost de circulació: {CURRENCY_LONG}/any{}Capacitat: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER} Màx. E.T.: {6:FORCE}{}Cost d'utilització: {4:CURRENCY_LONG}/any{}Capacitat: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Velocitat màx.: {VELOCITY}{}Tipus d'aeronau: {STRING}{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost de circulació: {CURRENCY_LONG} per any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Velocitat màx.: {VELOCITY}{}Tipus d'aeronau: {STRING}{}Capacitat: {CARGO_LONG}{}Cost de circulació: {CURRENCY_LONG} per any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Velocitat màx.: {VELOCITY}{}Tipus d'aeronau: {STRING} Abast: {COMMA} caselles{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost de circulació: {CURRENCY_LONG} per any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Velocitat màx.: {VELOCITY}{}Tipus d'aeronau: {STRING} Abast: {COMMA} caselles{}Capacitat: {CARGO_LONG}{}Cost de circulació: {CURRENCY_LONG} per any # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substitueix {STRING} - {STRING} @@ -3655,6 +3661,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} any{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} any{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vel. màx.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocitat màx.: {LTBLUE}{VELOCITY} {BLACK}Tipus d'aeronau: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Velocitat màx.: {LTBLUE}{VELOCITY} {BLACK}Tipus d'aeronau: {LTBLUE}{STRING} {BLACK}Abast: {LTBLUE}{COMMA} caselles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. Màx: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. màx: {LTBLUE}{VELOCITY} {BLACK}E.T. màx.: {LTBLUE}{FORCE} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index c9bf2dd95b..9845ed1d7e 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3463,6 +3463,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ukloni sva vozi STR_GROUP_RENAME_CAPTION :{BLACK}Preimenuj grupu +STR_GROUP_PROFIT_THIS_YEAR :Dobit ove godine: +STR_GROUP_PROFIT_LAST_YEAR :Dobit prošle godine: +STR_GROUP_OCCUPANCY :Trenutna uporaba: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nova željeznička vozila STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova električna pružna vozila diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 448efacd9a..cbe4258c27 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3455,6 +3455,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Odstranit všec STR_GROUP_RENAME_CAPTION :{BLACK}Přejmenovat skupinu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nové lokomotivy a vagony STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nové elektrické lokomotivy a vagony diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 378ccd72a2..a6f2b072b7 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle kør STR_GROUP_RENAME_CAPTION :{BLACK}Omdøb en gruppe + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye jernbanekøretøjer STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nyt elektrisk lokomotiv diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 024b4e2e51..1bdaded5a5 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3362,6 +3362,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Verwijder alle STR_GROUP_RENAME_CAPTION :{BLACK}Hernoem een groep + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nieuwe railvoertuigen STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nieuwe elektrische railvoertuigen diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index cf63178a4b..121fcb9803 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3327,6 +3327,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehi STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Rail Vehicles diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 4d0e5e2524..c89e33fece 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3365,6 +3365,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehi STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Rail Vehicles diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 28f6d9066c..8cb30a79d2 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2796,6 +2796,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Forigi ĉiujn v STR_GROUP_RENAME_CAPTION :{BLACK}Alinomi grupon + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novaj Relaj Veturiloj STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novaj Elektraj Relaj Veturiloj diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index fa93dbe660..4de30054a1 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3418,6 +3418,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Eemalda kõik s STR_GROUP_RENAME_CAPTION :{BLACK}Rühma nime vahetamine + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Uued rööbassõidukid STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Uus elektriraudteesõiduk diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 77b514c02c..c683d46c01 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2989,6 +2989,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Bein øll flutn STR_GROUP_RENAME_CAPTION :{BLACK}Navngev ein bólk + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nýggj jarnbreyta flutningstól STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nýggj ravmagns jarnbreyta flutningstól diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 87e2e50a19..1aa02e76e9 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Poista kaikki a STR_GROUP_RENAME_CAPTION :{BLACK}Nimeä ryhmä + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Uusi juna STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Uusi sähköjuna diff --git a/src/lang/french.txt b/src/lang/french.txt index 1d8926ddf1..9866f5eecc 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3368,6 +3368,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Retirer tous le STR_GROUP_RENAME_CAPTION :{BLACK}Renommer un groupe + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nouveaux véhicules ferroviaires STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nouveaux véhicules ferroviaires électriques diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 304d541354..51133c2c9d 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1963,6 +1963,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Thoir s STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Seall roghainnean sgriobt IF/geama STR_INTRO_TOOLTIP_QUIT :{BLACK}Fàg “OpenTTD" +STR_INTRO_BASESET :{BLACK}Tha {NUM} {P sprìd sprìd sprìdean sprìd} a dhìth air an t-seata grafaigeachd bhunasach a thagh thu. Thoir sùil airson ùrachaidhean an t-seata bhunasaich. STR_INTRO_TRANSLATION :{BLACK}Tha {NUM} {P sreang shreang sreangan sreang} a dhìth air an eadar-theangachadh seo. Nach toir thu cuideachadh dhuinn gus piseach a thort air OpenTTD ’s tu a' clàradh mar eadar-theangaiche? Thoir sùil air readme.txt airson fiosrachaidh. # Quit window @@ -2524,9 +2525,21 @@ STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Toglaich STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Iompaich/Àrdaich seòrsa na rèile. Toglaidh Shift togail/sealladh air tuairmse chosgaisean STR_RAIL_NAME_RAILROAD :Rathad-iarainn +STR_RAIL_NAME_RAILROAD.nom :rathad-iarainn +STR_RAIL_NAME_RAILROAD.gen :rathaid-iarainn +STR_RAIL_NAME_RAILROAD.dat :rathad-iarainn STR_RAIL_NAME_ELRAIL :Rathad-iarainn dealain +STR_RAIL_NAME_ELRAIL.nom :rathad-iarainn dealain +STR_RAIL_NAME_ELRAIL.gen :rathaid-iarainn dealain +STR_RAIL_NAME_ELRAIL.dat :rathad-iarainn dealain STR_RAIL_NAME_MONORAIL :Rathad-iarainn aona-rèile +STR_RAIL_NAME_MONORAIL.nom :rathad-iarainn aona-rèile +STR_RAIL_NAME_MONORAIL.gen :rathaid-iarainn aona-rèile +STR_RAIL_NAME_MONORAIL.dat :rathad-iarainn aona-rèile STR_RAIL_NAME_MAGLEV :Rathad-iarainn magnaiteach +STR_RAIL_NAME_MAGLEV.nom :rathad-iarainn magnaiteach +STR_RAIL_NAME_MAGLEV.gen :rathaid-iarainn mhagnaitich +STR_RAIL_NAME_MAGLEV.dat :rathad-iarainn magnaiteach # Rail depot construction window STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}Comhair na trèan-lainn @@ -2800,6 +2813,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Ainm lea STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carago air a ghabhail ris: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Seòrsa an rèile: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Crìoch-luaiths rèile: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Crìoch-astair rathaid: {LTBLUE}{VELOCITY} @@ -2812,29 +2826,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Achaidhean STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tìr sneachdach STR_LAI_CLEAR_DESCRIPTION_DESERT :Fàsach -STR_LAI_RAIL_DESCRIPTION_TRACK :Slighe Rathad-iarainn -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Slighe Rathad-iarainn le comharran bacaidh -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Slighe Rathad-iarainn le ro-chomharran -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Slighe Rathad-iarainn le comharran a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Slighe Rathad-iarainn le comharran aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Slighe Rathad-iarainn le comharran slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Slighe Rathad-iarainn le comharran bacaidh is ro-chomharran -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Slighe Rathad-iarainn le comharran a-mach is aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Slighe Rathad-iarainn le comharran a-mach is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran a-mach is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Slighe Rathad-iarainn le comharran aonaichte is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran aonaichte is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran slighe is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trèan-lann Rathad-iarainn +STR_LAI_RAIL_DESCRIPTION_TRACK :Slighe rathaid-iarainn +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Slighe rathaid-iarainn le comharran bacaidh +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Slighe rathaid-iarainn le ro-chomharran +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Slighe rathaid-iarainn le comharran a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Slighe rathaid-iarainn le comharran aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Slighe rathaid-iarainn le comharran slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Slighe rathaid-iarainn le comharran bacaidh is ro-chomharran +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Slighe rathaid-iarainn le comharran-bacaidh is a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Slighe rathaid-iarainn le comharran-bacaidh is aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Slighe rathaid-iarainn le comharran-bacaidh is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran-bacaidh is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Slighe rathaid-iarainn le ro-chomharran is comharran a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Slighe rathaid-iarainn le ro-chomharran is comharran aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Slighe rathaid-iarainn le ro-chomharran is comharran slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Slighe rathaid-iarainn le ro-chomharran is comharran aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Slighe rathaid-iarainn le comharran a-mach is aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Slighe rathaid-iarainn le comharran a-mach is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran a-mach is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Slighe rathaid-iarainn le comharran aonaichte is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran aonaichte is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran slighe is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trèan-lann rathaid-iarainn STR_LAI_ROAD_DESCRIPTION_ROAD :Rathad STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Rathad le solasan-rathaid @@ -3521,6 +3535,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Feum air STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Feum air: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Feum air +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}a' feitheamh +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING} @@ -3589,6 +3608,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Thoir a h-uile STR_GROUP_RENAME_CAPTION :{BLACK}Thoir ainm ùr air buidheann +STR_GROUP_PROFIT_THIS_YEAR :Prothaid am bliadhna: +STR_GROUP_PROFIT_LAST_YEAR :Prothaid an-uiridh: +STR_GROUP_OCCUPANCY :Cleachdadh an-dràsta: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Carbadan-rèile ùra STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Carbadan-rèile dealain ùra @@ -3620,6 +3644,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Na h-uile seòr STR_PURCHASE_INFO_ALL_BUT :Na h-uile ach {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Spàirn tàirnge as motha: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Astar: {GOLD}{COMMA} {P leac leac leacan leac} +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Seòrsa a' charbaid-adhair: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Liosta airson carbadan-rèile a thaghadh. Briog air carbad airson fiosrachaidh. Ctrl+briog gus toglachadh an tèid seòrsa a’ charbaid fhalach gus nach tèid STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Liosta airson carbadan-rathaid a thaghadh. Briog air carbad airson fiosrachaidh. Ctrl+briog gus toglachadh an tèid seòrsa a’ charbaid fhalach gus nach tèid @@ -3754,6 +3779,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :einnsean magnai STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER} Neart: {6:FORCE}{}Cosgaisean ruith: {4:CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cogais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Seòrsa carbaid-adhair: {STRING}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cogais: {CURRENCY_LONG} Astar as motha: {VELOCITY}{}Seòrsa carbaid-adhair: {STRING}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cogais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Seòrsa carbaid-adhair: {STRING} Astar: {COMMA} {P leacag leacag leacagan leacag}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Astar as motha: {VELOCITY}{}Seòrsa carbaid-adhair: {STRING} Astar: {COMMA} {P leacag leacag leacagan leacag}{}Capacity: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Leasaich {STRING} - {STRING} @@ -3783,6 +3812,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Briog ai STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Gearr leum eadar uinneagan leasachadh nan einnseanan is nan carbadan STR_REPLACE_ENGINES :Einnseanan STR_REPLACE_WAGONS :Carbadan +STR_REPLACE_ALL_RAILTYPE :A h-uile carbad-rèile STR_REPLACE_HELP_RAILTYPE :{BLACK}Tagh an seòrsa dhe rèile is tu airson einnseanan a leasachadh air a shon STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Seallaidh seo an einnsean a tha ga chur an àite an einnsein a thagh thu air an taobh chlì, ma tha gin ann @@ -3875,6 +3905,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P bhli STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P bhliadhna bhliadhna bliadhna bliadhna} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Seòrsa carbaid-adhair: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Seòrsa carbaid-adhair: {LTBLUE}{STRING} {BLACK}Astar: {LTBLUE}{COMMA} {P leacag leacag leacagan leacag} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Cuideam: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhachd: {LTBLUE}{POWER}{BLACK} Luaths as motha: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Cuideam: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhachd: {LTBLUE}{POWER}{BLACK} Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Neart as motha: {LTBLUE}{FORCE} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 93942d6e0b..b641022e7b 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3307,6 +3307,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Borrar tódolos STR_GROUP_RENAME_CAPTION :{BLACK}Renomear un grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos vehículos ferroviarios STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novos vehículos ferroviarios eléctricos diff --git a/src/lang/german.txt b/src/lang/german.txt index 2ea57b7710..f35e2eca9e 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Liste leeren STR_GROUP_RENAME_CAPTION :{BLACK}Gruppe umbenennen + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Neue Schienenfahrzeuge STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Neue elektrische Schienenfahrzeuge diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 8174e9475a..3c051be48b 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3472,6 +3472,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Αφαίρεσ STR_GROUP_RENAME_CAPTION :{BLACK}Μετονομασία μίας ομάδας + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Νέα Οχήματα Σιδηρόδρομου STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Νέα Οχήματα Ηλεκτροδοτουμένου Σιδηρόδρομου diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index d92c1acfd9..db8ce931fb 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3374,6 +3374,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :הסר את כ STR_GROUP_RENAME_CAPTION :{BLACK}שנה שם קבוצה + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :רכבות חדשות STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :רכבות חשמליות חדשות diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 3a5c36dbe8..b88e738c4f 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3424,6 +3424,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Összes jármű STR_GROUP_RENAME_CAPTION :{BLACK}Csoport átnevezése + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Új vasúti járművek STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Új villamos vasúti járművek diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 8b975aa4a0..e4cd730624 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3149,6 +3149,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjarlægja öll STR_GROUP_RENAME_CAPTION :{BLACK}Endurnefna hóp + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Lestaúrval STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nýjir rafdrifnir lestarvagnar diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index d4fb0f97af..4b7dcafd23 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3356,6 +3356,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Jual semua STR_GROUP_RENAME_CAPTION :{BLACK}Ubah nama kelompok + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Kereta Baru STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Kereta listrik baru diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 5a40971b66..d8284fef1a 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Bain gach feith STR_GROUP_RENAME_CAPTION :{BLACK}Athainmnigh grúpa + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Feithiclí Iarnróid Nua STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Feithiclí Iarnróid Leictreacha Nua diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 60ab69ba4a..e610e1dc05 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3397,6 +3397,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Rimuovi tutti i STR_GROUP_RENAME_CAPTION :{BLACK}Rinomina un gruppo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuovi veicoli ferroviari STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuovi veicoli ferroviari elettrici diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 75821b07d4..07055e8db9 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3363,6 +3363,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :全輸送機器 STR_GROUP_RENAME_CAPTION :{BLACK}グループ名を変更 + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :新規機関車(非電化) STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :新規機関車(電化)/電車 diff --git a/src/lang/korean.txt b/src/lang/korean.txt index bd40157012..5758f96fab 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3368,6 +3368,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :모든 차량 STR_GROUP_RENAME_CAPTION :{BLACK}그룹 이름 설정 +STR_GROUP_PROFIT_THIS_YEAR :올해 수익: +STR_GROUP_PROFIT_LAST_YEAR :작년 수익: +STR_GROUP_OCCUPANCY :현재 사용량: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :새 열차 STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :새 전기 열차 @@ -3399,6 +3404,7 @@ STR_PURCHASE_INFO_ALL_TYPES :모든 화물 STR_PURCHASE_INFO_ALL_BUT :{CARGO_LIST} 이외의 모든 화물 STR_PURCHASE_INFO_MAX_TE :{BLACK}최고 견인력: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}항속거리: {GOLD}{COMMA} 칸 +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}항공기 종류: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}열차 차량 구매 목록입니다. 차량의 정보를 보려면 클릭하세요. CTRL + 클릭하면 해당 차량을 숨김/표시 처리할 수 있습니다. STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}자동차/전차 구매 목록입니다. 차량의 정보를 보려면 클릭하세요. CTRL + 클릭하면 해당 차량을 숨김/표시 처리할 수 있습니다. @@ -3531,8 +3537,12 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}모노레 STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}자기부상열차 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}가격: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER}{}유지비: {CURRENCY_LONG}/년{}수송량: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}비용: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER} 최대 T.E.: {6:FORCE}{}유지비: {4:CURRENCY_LONG}/년{}용량: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}가격: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER} 최대 견인력: {6:FORCE}{}유지비: {4:CURRENCY_LONG}/년{}수송량: {5:CARGO_LONG} +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}항공기 종류: {STRING}{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}항공기 종류: {STRING}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}항공기 종류: {STRING} 항속거리: {COMMA}칸{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}항공기 종류: {STRING} 항속거리: {COMMA}칸{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} 교체 - {STRING} @@ -3655,8 +3665,10 @@ STR_VEHICLE_INFO_AGE :{COMMA}년 ({CO STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA}년 ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}최고 속력: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고속력: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고속력: {LTBLUE}{VELOCITY} {BLACK}최고 T.E.: {LTBLUE}{FORCE} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}최고 속력: {LTBLUE}{VELOCITY} {BLACK}항공기 종류: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}최고 속력: {LTBLUE}{VELOCITY} {BLACK}항공기 종류: {LTBLUE}{STRING} {BLACK}항속거리: {LTBLUE}{COMMA}칸 +STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고 속력: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고 속력: {LTBLUE}{VELOCITY} {BLACK}최고 견인력: {LTBLUE}{FORCE} STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}올해 수익: {LTBLUE}{CURRENCY_LONG} (작년: {CURRENCY_LONG}) STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}신뢰도: {LTBLUE}{COMMA}% {BLACK}최근 점검 이후의 고장: {LTBLUE}{COMMA} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index eb1e2f8033..8152b3a140 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3567,6 +3567,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Removere omnia STR_GROUP_RENAME_CAPTION :{BLACK}Renominare gregem + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Vehicula Ferriviaria Nova STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Vehicula Ferriviaria Electrica Nova diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 45f80eaa09..ce4fd31d40 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3293,6 +3293,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Novākt visus t STR_GROUP_RENAME_CAPTION :{BLACK}Pārdēvēt grupu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Jauni dzelzceļa transportlīdzekļi STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Jauni elektrificētā dzelzceļa transportlīdzekļi diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 83cf62075f..66091cd5f8 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3579,6 +3579,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Iškelti visas STR_GROUP_RENAME_CAPTION :{BLACK}Pervadinti grupę + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nauji lokomotyvai STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nauji elektriniai lokomotyvai diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index bb28119ea3..818e797457 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3367,6 +3367,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :All Gefierer ew STR_GROUP_RENAME_CAPTION :{BLACK}Eng Grupp ëmbenennen + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nei Zich STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nei Elektrozich diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 5ed16decaf..427788ddee 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3019,6 +3019,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Buang semua ken STR_GROUP_RENAME_CAPTION :{BLACK}Namakan semula kenderaan + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Keretapi Baru STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Keretapi Elektrik Baru diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 9f60b97ac8..eb2c613437 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3364,6 +3364,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle kjø STR_GROUP_RENAME_CAPTION :{BLACK}Endre navn på gruppe + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye tog/vogner for jernbane STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nye tog/vogner for elektrisk jernbane diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 96ee8362bd..50eb2d809c 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3277,6 +3277,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle køy STR_GROUP_RENAME_CAPTION :{BLACK}Gje nytt namn til ei gruppe + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye tog/vogner for jernbane STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nytt elektrisk tog diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 4f137e1e89..d3b0e88a07 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3745,6 +3745,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Usuń wszystkie STR_GROUP_RENAME_CAPTION :{BLACK}Zmień nazwę grupy + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nowe pociągi STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nowe elektryczne pojazdy szynowe diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 0f77917da1..da8eb3afaf 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos o STR_GROUP_RENAME_CAPTION :{BLACK}Renomear um grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos Veículos Ferroviários STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novos comboios para carris electrificados diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 7fd3ee581d..7975471457 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3317,6 +3317,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Elimină toate STR_GROUP_RENAME_CAPTION :{BLACK}Redenumeşte un grup + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Noi vehicule feroviare STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Noi Vehicule Electrice pe Sine diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 9f78d15b7f..e36fc18b66 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3547,6 +3547,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Удалить STR_GROUP_RENAME_CAPTION :{BLACK}Название группы + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новый поезд STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новый электропоезд diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 076758eba2..d047538993 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3555,6 +3555,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ukloni sva vozi STR_GROUP_RENAME_CAPTION :{BLACK}Preimenuj grupu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nova Železnička Vozila STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova Železnička Električna Vozila diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index bb23f31af6..66f590d77b 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :移除所有车 STR_GROUP_RENAME_CAPTION :{BLACK}重命名分组 + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :购买普通列车 STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :购买电气化列车 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index d9ca9debb7..69731252c7 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3428,6 +3428,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Odstrániť vš STR_GROUP_RENAME_CAPTION :{BLACK}Premenovať skupinu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nove vlaky STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nové elektrické lokomotívy a vagóny diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 15d1b85639..6d6abd5e07 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3513,6 +3513,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Odstrani vsa vo STR_GROUP_RENAME_CAPTION :{BLACK}Preimenuj eno skupino + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nova železniška vozila STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova električna tirna vozila diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index f3bd99aa48..7cffa0d740 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3362,6 +3362,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Renombrar un grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos Vehículos de Ferrocarril STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuevos Vehículos de Ferrocarril Eléctrico diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 7e5223f0fc..82da64c535 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3363,6 +3363,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Cambiar nombre del grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos trenes STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuevos trenes eléctricos diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index e9bc290f04..09468962f9 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ta bort alla fo STR_GROUP_RENAME_CAPTION :{BLACK}Döp om en grupp + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nytt tågfordon STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nya elektriska järnvägsfordon diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index a1e4c43fac..6bb76a36da 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2976,6 +2976,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :அனைத் STR_GROUP_RENAME_CAPTION :{BLACK}குழுவின் பெயரினை மாற்றவும் + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :புது இரயில் வாகனங்கள் STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :புது மின்சார இரயில் வாகனங்கள் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 72241e4d5e..c3e6916d3c 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3290,6 +3290,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :ลบยาน STR_GROUP_RENAME_CAPTION :{BLACK}เปลี่ยนชื่อกลุ่ม + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :รถไฟใหม่ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :รถไฟฟ้าใหม่ diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 7c207f60c4..92a7b1a5b3 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :移去所有運 STR_GROUP_RENAME_CAPTION :{BLACK}重新命名群組 + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :新購鐵路列車 STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :新購電氣化列車 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index bad2604fe6..3900920c03 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3362,6 +3362,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Bütün araçla STR_GROUP_RENAME_CAPTION :{BLACK}Grubun ismini değiştir + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Yeni Tren STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Yeni Elektrikli Trenler diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 66546b7ef6..b48304d02d 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3491,6 +3491,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Позбути STR_GROUP_RENAME_CAPTION :{BLACK}Перейменувати групу + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новий неелектрифікований поїзд STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новий електрифікований поїзд diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt index 117e2dbbb8..a9f98fe138 100644 --- a/src/lang/unfinished/chuvash.txt +++ b/src/lang/unfinished/chuvash.txt @@ -1133,6 +1133,7 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ҫу + # Build vehicle window diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index dc049e5d98..c84f894877 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3097,6 +3097,7 @@ STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Ferwider STR_GROUP_REMOVE_ALL_VEHICLES :Alle fiertugen weihelje + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nije spoar weinen STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nije elektryske treinen diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index 1e5c942a14..ff0ad37f4e 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -967,6 +967,7 @@ STR_GROUP_DEFAULT_AIRCRAFTS :Negrupigita aer + # Build vehicle window diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index e6abadca01..f3b4cbaaec 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1448,6 +1448,7 @@ STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Испрати + # Build vehicle window STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Шински возила diff --git a/src/lang/unfinished/maltese.txt b/src/lang/unfinished/maltese.txt index 473f4de2ab..628fe94cfc 100644 --- a/src/lang/unfinished/maltese.txt +++ b/src/lang/unfinished/maltese.txt @@ -839,6 +839,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN + # Build vehicle window diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index b2ccf18b67..2437182361 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -1310,6 +1310,7 @@ STR_GROUP_ALL_AIRCRAFTS :सर्व STR_GROUP_REMOVE_ALL_VEHICLES :सगळे वाहने काढा + # Build vehicle window STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :नवीन रस्त्यावरचे वाहन diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 10689c715a..14a70bab4e 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2951,6 +2951,7 @@ STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :فرستادن + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :قطار جدید STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :قطار جدید مونوریل diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 934c405b22..324e073aa4 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2349,6 +2349,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}گروپ + # Build vehicle window STR_BUY_VEHICLE_AIRCRAFT_CAPTION :نیا طیارہ diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 7808129fa9..b650e1f5e7 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Xoá tất cả STR_GROUP_RENAME_CAPTION :{BLACK}Đổi tên nhóm + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Tàu Hỏa Mới STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Tàu Điện Mới diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index bc80a83111..e44e63893b 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Dileu pob cerby STR_GROUP_RENAME_CAPTION :{BLACK}Ailenwi grŵp + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Cerbydau Rheilffordd Newydd STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Cerbydau Rheilffordd Trydan Newydd From 0e68f9db70d5380ab30e70bd003f35e8bd3679f8 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 24 Mar 2017 18:55:16 +0000 Subject: [PATCH 317/417] (svn r27825) -Feature [FS#4950]: Add option to close windows with right click (Flamefire) --- src/lang/english.txt | 2 ++ src/settings_gui.cpp | 1 + src/settings_type.h | 1 + src/table/settings.ini | 8 ++++++++ src/window.cpp | 20 ++++++++++++++++---- 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 722459c353..5d794483c8 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Off STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Left-click scrolling: {STRING2} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Enable scrolling the map by dragging it with the left mouse button. This is especially useful when using a touch-screen for scrolling +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Close window on right-click: {STRING2} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Closes a window by right-clicking inside it. Disables the tooltip on right-click! STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING2} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Select interval between automatic game saves diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index e20ac33073..6cde709b06 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1506,6 +1506,7 @@ static SettingsContainer &GetSettingsTree() general->Add(new SettingEntry("gui.errmsg_duration")); general->Add(new SettingEntry("gui.window_snap_radius")); general->Add(new SettingEntry("gui.window_soft_limit")); + general->Add(new SettingEntry("gui.right_mouse_wnd_close")); } SettingsPage *viewports = interface->Add(new SettingsPage(STR_CONFIG_SETTING_INTERFACE_VIEWPORTS)); diff --git a/src/settings_type.h b/src/settings_type.h index 41366a7719..2dc9ec92ec 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -113,6 +113,7 @@ struct GUISettings { uint8 scrollwheel_multiplier; ///< how much 'wheel' per incoming event from the OS? bool timetable_arrival_departure; ///< show arrivals and departures in vehicle timetables bool left_mouse_btn_scrolling; ///< left mouse button scroll + bool right_mouse_wnd_close; ///< close window with right click bool pause_on_newgame; ///< whether to start new games paused or not bool enable_signal_gui; ///< show the signal GUI when the signal button is pressed Year coloured_news_year; ///< when does newspaper become coloured? diff --git a/src/table/settings.ini b/src/table/settings.ini index 8e2aecac15..23fca32a43 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -2583,6 +2583,14 @@ str = STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING strhelp = STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT cat = SC_BASIC +[SDTC_BOOL] +var = gui.right_mouse_wnd_close +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +str = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE +strhelp = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT +cat = SC_BASIC + [SDTC_BOOL] var = gui.measure_tooltip flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC diff --git a/src/window.cpp b/src/window.cpp index f1c53f2045..2723612859 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -772,7 +772,15 @@ static void DispatchRightClickEvent(Window *w, int x, int y) if (w->OnRightClick(pt, wid->index)) return; } - if (_settings_client.gui.hover_delay_ms == 0 && wid->tool_tip != 0) GuiShowTooltips(w, wid->tool_tip, 0, NULL, TCC_RIGHT_CLICK); + /* Right-click close is enabled and there is a closebox */ + if (_settings_client.gui.right_mouse_wnd_close && w->nested_root->GetWidgetOfType(WWT_CLOSEBOX)) + { + delete w; + } + else if (_settings_client.gui.hover_delay_ms == 0 && wid->tool_tip != 0) + { + GuiShowTooltips(w, wid->tool_tip, 0, NULL, TCC_RIGHT_CLICK); + } } /** @@ -2825,11 +2833,12 @@ static void MouseLoop(MouseClick click, int mousewheel) switch (click) { case MC_DOUBLE_LEFT: case MC_LEFT: - if (!HandleViewportClicked(vp, x, y) && - !(w->flags & WF_DISABLE_VP_SCROLL) && + if (HandleViewportClicked(vp, x, y)) return; + if (!(w->flags & WF_DISABLE_VP_SCROLL) && _settings_client.gui.left_mouse_btn_scrolling) { _scrolling_viewport = true; _cursor.fix_at = false; + return; } break; @@ -2841,13 +2850,16 @@ static void MouseLoop(MouseClick click, int mousewheel) /* clear 2D scrolling caches before we start a 2D scroll */ _cursor.h_wheel = 0; _cursor.v_wheel = 0; + return; } break; default: break; } - } else { + } + + if (vp == NULL || (w->flags & WF_DISABLE_VP_SCROLL)) { switch (click) { case MC_LEFT: case MC_DOUBLE_LEFT: From 95cab2738113e7d8c3c5914c673a810a86a9a9d7 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 24 Mar 2017 19:25:01 +0000 Subject: [PATCH 318/417] (svn r27826) -Fix (r27825): Wrong code style --- src/window.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/window.cpp b/src/window.cpp index 2723612859..8378f60f76 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -773,12 +773,9 @@ static void DispatchRightClickEvent(Window *w, int x, int y) } /* Right-click close is enabled and there is a closebox */ - if (_settings_client.gui.right_mouse_wnd_close && w->nested_root->GetWidgetOfType(WWT_CLOSEBOX)) - { + if (_settings_client.gui.right_mouse_wnd_close && w->nested_root->GetWidgetOfType(WWT_CLOSEBOX)) { delete w; - } - else if (_settings_client.gui.hover_delay_ms == 0 && wid->tool_tip != 0) - { + } else if (_settings_client.gui.hover_delay_ms == 0 && wid->tool_tip != 0) { GuiShowTooltips(w, wid->tool_tip, 0, NULL, TCC_RIGHT_CLICK); } } From 98673c94b86e0930a8b5a1f816211835edf77a3c Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 25 Mar 2017 12:21:17 +0000 Subject: [PATCH 319/417] (svn r27827) -Codechange (r27819): Deduplicate code. (adf88) --- src/settings_gui.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 6cde709b06..0420ba15b3 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -36,8 +36,6 @@ #include "textfile_gui.h" #include "stringfilter_type.h" #include "querystring_gui.h" -#include "signs_func.h" -#include "station_func.h" #include @@ -534,9 +532,7 @@ struct GameOptionsWindow : Window { _gui_zoom = (ZoomLevel)(ZOOM_LVL_OUT_4X - index); UpdateCursorSize(); LoadStringWidthTable(); - UpdateAllSignVirtCoords(); - UpdateAllTownVirtCoords(); - UpdateAllStationVirtCoords(); + UpdateAllVirtCoords(); break; case WID_GO_BASE_GRF_DROPDOWN: From 7659ec05af2f42a7d2fcfe3b1a4181ad159856e5 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 25 Mar 2017 18:45:40 +0000 Subject: [PATCH 320/417] (svn r27828) -Update from Eints: croatian: 2 changes by VoyagerOne italian: 6 changes by lorenzodv english (us): 15 changes by Supercheese latin: 15 changes by Supercheese --- src/lang/croatian.txt | 2 ++ src/lang/english_US.txt | 15 +++++++++++++++ src/lang/italian.txt | 6 ++++++ src/lang/latin.txt | 15 +++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 9845ed1d7e..32efffe157 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1468,6 +1468,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Isključeno STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Skrolanje lijevim klikom: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Uključi pomicanje karte povlačenjem pomoću lijevog gumba miša. Ovo je posebno korisno kada se koristi zaslon osjetljiv na dodir +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Zatvori prozor nakon desnog klika: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Zatvara prozor nakon desnog klika unutar prozora. S desnim klikom zatvaraju se i upute alata! STR_CONFIG_SETTING_AUTOSAVE :Automatsko snimanje: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Odaberite interval između automatskog snimanja igre diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index c89e33fece..4b039dc8ba 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Off STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Left-click scrolling: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Enable scrolling the map by dragging it with the left mouse button. This is especially useful when using a touch-screen for scrolling +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Close window on right-click: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Closes a window by right-clicking inside it. Disables the tooltip on right-click! STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Select interval between automatic game saves @@ -3297,6 +3299,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}waiting +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} @@ -3365,6 +3369,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehi STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group +STR_GROUP_PROFIT_THIS_YEAR :Profit this year: +STR_GROUP_PROFIT_LAST_YEAR :Profit last year: +STR_GROUP_OCCUPANCY :Current usage: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles @@ -3397,6 +3405,7 @@ STR_PURCHASE_INFO_ALL_TYPES :All cargo types STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Aircraft type: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Train vehicle selection list. Click on vehicle for information. Ctrl+Click to toggle hiding of the vehicle type STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Road vehicle selection list. Click on vehicle for information. Ctrl+Click to toggle hiding of the vehicle type @@ -3531,6 +3540,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} @@ -3653,6 +3666,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} year{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} year{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. speed: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Aircraft type: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Aircraft type: {LTBLUE}{STRING} {BLACK}Range: {LTBLUE}{COMMA} tiles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index e610e1dc05..6a82799cf7 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1396,6 +1396,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Nessuna STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scorrimento con clic sinistro: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Abilita lo scorrimento della mappa trascinandola con il pulsante sinistro del mouse. Questa impostazione è utile quando si utilizza un touch-screen +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Chiudi finestra con clic destro: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Consente di chiudere una finestra facendo clic col pulsante destro al suo interno. Disabilita I suggerimenti attivati al clic col pulsante destro! STR_CONFIG_SETTING_AUTOSAVE :Salvataggi automatici: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Seleziona l'intervallo fra i salvataggi automatici della partita @@ -3397,6 +3399,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Rimuovi tutti i STR_GROUP_RENAME_CAPTION :{BLACK}Rinomina un gruppo +STR_GROUP_PROFIT_THIS_YEAR :Profitto quest'anno: +STR_GROUP_PROFIT_LAST_YEAR :Profitto anno scorso: +STR_GROUP_OCCUPANCY :Utilizzo corrente: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuovi veicoli ferroviari diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 8152b3a140..58f9e63b76 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1560,6 +1560,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Neglecta STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Vagatio globuli sinistri: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Annuere tabulam vagari trahendo globuli sinistri. Magnopere utilis est cum tangendo navigas in scrinio +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Claudere fenestras globulo muris dextro: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Facit ut globulus muris dexter fenestras claudat. Cave: hac electa, non apparent nuntia adiuvantia globulo dextro. STR_CONFIG_SETTING_AUTOSAVE :Servare automatice: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Eligere crebritatem automatice ludum servandi @@ -3499,6 +3501,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Postulat STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING.acc} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}manet +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING.acc}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING} @@ -3567,6 +3571,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Removere omnia STR_GROUP_RENAME_CAPTION :{BLACK}Renominare gregem +STR_GROUP_PROFIT_THIS_YEAR :Lucrum huius anni: +STR_GROUP_PROFIT_LAST_YEAR :Lucrum anni prioris: +STR_GROUP_OCCUPANCY :Usus currens: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Vehicula Ferriviaria Nova @@ -3599,6 +3607,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Omnibus onerum STR_PURCHASE_INFO_ALL_BUT :Omnibus praeterquam {CARGO_LIST.dat} STR_PURCHASE_INFO_MAX_TE :{BLACK}Vis Tractionis Maxima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Max. distantia volatus: {GOLD}{COMMA} tegulas +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Typus aeroplani: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Index electionis vehiculorum ferriviariorum. Preme in vehiculum ut plura indicia monstrentur. Ctrl+Preme ut typus vehiculi celetur STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Index electionis vehiculorum viariorum. Preme in vehiculum ut plura indicia monstrentur. Ctrl+Preme ut typus vehiculi celetur @@ -3733,6 +3742,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}hamaxam ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER}{}Pretium Operandi: {CURRENCY_LONG} per annum{}Capacitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER} V.T. Max.: {6:FORCE}{}Pretium Operandi: {4:CURRENCY_LONG} per annum{}Capacitas: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Typus Aeroplani: {STRING}{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Typus Aeroplani: {STRING}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Typus Aeroplani: {STRING} Max. Distantia Volatus: {COMMA} tegulas{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Typus Aeroplani: {STRING} Max. Distantia Volatus: {COMMA} tegulas{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Mutare {STRING} - {STRING} @@ -3855,6 +3868,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ann{P u STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ann{P us i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}Typus aeroplani: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}Typus aeroplani: {LTBLUE}{STRING} {BLACK}Max. distantia volatus: {LTBLUE}{COMMA} tegulas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pondus: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potestas: {LTBLUE}{POWER}{BLACK} Velocitas maxima: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pondus: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potestas: {LTBLUE}{POWER}{BLACK} Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}V.T. Max.: {LTBLUE}{FORCE} From 01c8ba0d5dfa4e298b0b88a3df09b00d572206a0 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sat, 25 Mar 2017 23:19:41 +0000 Subject: [PATCH 321/417] (svn r27829) -Fix (r27821): Occasional crash caused by mixing int/uint arithmetic. --- src/gfx_func.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gfx_func.h b/src/gfx_func.h index 44f5e5059f..99461f9079 100644 --- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -149,7 +149,7 @@ bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int heigh * @param size The height or width of the object to draw. * @return Offset of where to start drawing the object. */ -static inline int CenterBounds(int min, int max, uint size) +static inline int CenterBounds(int min, int max, int size) { return min + (max - min - size + 1) / 2; } From 485c64fcbe16683e25ff5fea0d1596451a0ca12c Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 26 Mar 2017 17:45:37 +0000 Subject: [PATCH 322/417] (svn r27830) -Update from Eints: catalan: 6 changes by juanjo italian: 1 change by lorenzodv russian: 6 changes by Lone_Wolf --- src/lang/catalan.txt | 6 ++++++ src/lang/italian.txt | 2 +- src/lang/russian.txt | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index aeac5a18c8..91df223fb7 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Desactivat STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplaçament amb el botó esquerre: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activa el desplaçament del mapa arrossegant-lo amb el botó esquerre del ratolí. Això és especialment útil quan s'utilitzen pantalles tàctils +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Tanca la finestra amb un clic dret del ratolí: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Tanca una finestra fent-hi un clic amb el botó dret del ratolí. Aquesta opció desactiva els indicadors de funció amb el mateix botó. STR_CONFIG_SETTING_AUTOSAVE :Desada automàtica: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona l'interval entre desades automàtiques de les partides. @@ -3368,6 +3370,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Treu tots els v STR_GROUP_RENAME_CAPTION :{BLACK}Canvia de nom el grup +STR_GROUP_PROFIT_THIS_YEAR :Benefici d'enguany: +STR_GROUP_PROFIT_LAST_YEAR :Benefici de l'any passat: +STR_GROUP_OCCUPANCY :Ocupació actual: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Compra de nous vehicles ferroviaris diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 6a82799cf7..988a95758a 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1397,7 +1397,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Nessuna STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scorrimento con clic sinistro: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Abilita lo scorrimento della mappa trascinandola con il pulsante sinistro del mouse. Questa impostazione è utile quando si utilizza un touch-screen STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Chiudi finestra con clic destro: {STRING} -STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Consente di chiudere una finestra facendo clic col pulsante destro al suo interno. Disabilita I suggerimenti attivati al clic col pulsante destro! +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Consente di chiudere una finestra facendo clic col pulsante destro al suo interno. Disabilita i suggerimenti attivati al clic col pulsante destro! STR_CONFIG_SETTING_AUTOSAVE :Salvataggi automatici: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Seleziona l'intervallo fra i salvataggi automatici della partita diff --git a/src/lang/russian.txt b/src/lang/russian.txt index e36fc18b66..1285bc4cc7 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1524,6 +1524,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Выкл. STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Смещение обзора по нажатию левой кнопки мыши: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Смещение обзора левой кнопкой мыши. Это удобно при использовании сенсорного экрана. +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Закрывать окна щелчком ПКМ: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Закрывать окно щелчком правой кнопкой мыши в его пределах. При этом отключается появление подсказок по правой кнопке. STR_CONFIG_SETTING_AUTOSAVE :Автосохранения: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Укажите интервал между автоматическими сохранениями @@ -3547,6 +3549,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Удалить STR_GROUP_RENAME_CAPTION :{BLACK}Название группы +STR_GROUP_PROFIT_THIS_YEAR :Прибыль в текущем году: +STR_GROUP_PROFIT_LAST_YEAR :Прибыль в прошлом году: +STR_GROUP_OCCUPANCY :Средняя загрузка ТС: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новый поезд From 348607aa89020858508b6cf08a98a876cfade7dd Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 26 Mar 2017 19:07:08 +0000 Subject: [PATCH 323/417] (svn r27831) -Fix (r24577): Misaligned resize icon (due to widget bounds being inclusive) --- src/widget.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/widget.cpp b/src/widget.cpp index 3aac9611b1..0f1743b907 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -507,11 +507,13 @@ static inline void DrawResizeBox(const Rect &r, Colours colour, bool at_left, bo { DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); if (at_left) { + Dimension d = GetSpriteSize(SPR_WINDOW_RESIZE_LEFT); DrawSprite(SPR_WINDOW_RESIZE_LEFT, PAL_NONE, r.left + WD_RESIZEBOX_RIGHT + clicked, - r.bottom - WD_RESIZEBOX_BOTTOM - GetSpriteSize(SPR_WINDOW_RESIZE_LEFT).height + clicked); + r.bottom + 1 - WD_RESIZEBOX_BOTTOM - d.height + clicked); } else { - DrawSprite(SPR_WINDOW_RESIZE_RIGHT, PAL_NONE, r.left + WD_RESIZEBOX_LEFT + clicked, - r.bottom - WD_RESIZEBOX_BOTTOM - GetSpriteSize(SPR_WINDOW_RESIZE_RIGHT).height + clicked); + Dimension d = GetSpriteSize(SPR_WINDOW_RESIZE_RIGHT); + DrawSprite(SPR_WINDOW_RESIZE_RIGHT, PAL_NONE, r.right + 1 - WD_RESIZEBOX_RIGHT - d.width + clicked, + r.bottom + 1 - WD_RESIZEBOX_BOTTOM - d.height + clicked); } } From 065a0547e23725ac08e7eb00838834b4cbe3a99e Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 27 Mar 2017 22:00:45 +0000 Subject: [PATCH 324/417] (svn r27832) -Fix: Missing or incorrect colour codes in translations --- src/lang/arabic_egypt.txt | 20 ++++++++++---------- src/lang/belarusian.txt | 2 +- src/lang/bulgarian.txt | 2 +- src/lang/czech.txt | 4 ++-- src/lang/dutch.txt | 2 +- src/lang/gaelic.txt | 2 +- src/lang/galician.txt | 4 ++-- src/lang/greek.txt | 4 ++-- src/lang/hebrew.txt | 6 +++--- src/lang/japanese.txt | 4 ++-- src/lang/korean.txt | 2 +- src/lang/lithuanian.txt | 2 +- src/lang/luxembourgish.txt | 2 +- src/lang/polish.txt | 2 +- src/lang/portuguese.txt | 2 +- src/lang/serbian.txt | 4 ++-- src/lang/simplified_chinese.txt | 2 +- src/lang/thai.txt | 20 ++++++++++---------- src/lang/traditional_chinese.txt | 4 ++-- src/lang/turkish.txt | 2 +- src/lang/ukrainian.txt | 2 +- 21 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 8cb3b11787..70e4734099 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -942,8 +942,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}دقة STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}اختر دقة الشاشة STR_GAME_OPTIONS_RESOLUTION_OTHER :اخرى -STR_GAME_OPTIONS_GUI_ZOOM_FRAME :حجم اللوحة -STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :حدد العنصر المطلوب +STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}حجم اللوحة +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}حدد العنصر المطلوب STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :تقريب عادي STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :تقريب ×2 @@ -1051,9 +1051,9 @@ STR_CITY_APPROVAL_HOSTILE :معاد STR_WARNING_NO_SUITABLE_AI :{WHITE}لايوجد ذكاء اصطناعي متاح ...{}تستطيع تجميل العديد من الذكاء الاصطناعي عن طريق اللانترنت # Settings tree window -STR_CONFIG_SETTING_TREE_CAPTION :الإعدادات -STR_CONFIG_SETTING_EXPAND_ALL :مدد الكل -STR_CONFIG_SETTING_COLLAPSE_ALL :إسحب الكل +STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}الإعدادات +STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}مدد الكل +STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}إسحب الكل STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK} فئة: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}نوع: @@ -1408,7 +1408,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}لعب STR_INTRO_GAME_OPTIONS :{BLACK}إعدادات اللعبه STR_INTRO_HIGHSCORE :{BLACK}قائمه المتفوقين -STR_INTRO_CONFIG_SETTINGS_TREE :الاعدادات +STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}الاعدادات STR_INTRO_NEWGRF_SETTINGS :{BLACK} اعدادات NewGRF STR_INTRO_ONLINE_CONTENT :{BLACK} إبحث عن المحتوى عبر الشبكه العنكبوتيه STR_INTRO_SCRIPT_SETTINGS :{BLACK}إعدادات الذكاء الصناعى @@ -1427,7 +1427,7 @@ STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}اختي STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}اختيار نمط الألعاب STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}عرض خيارات اللعبة -STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :إعدادات العرض +STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}إعدادات العرض STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}عرض إعدادات اﻹضافات STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK} ابحث عن محتوى جديد او تحديث STR_INTRO_TOOLTIP_QUIT :{BLACK}اغلاق'OpenTTD' @@ -2383,7 +2383,7 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}اسم STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}الحجم: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM} -STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :تغيير أعلى ارتفاع للخريطة +STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}تغيير أعلى ارتفاع للخريطة STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}غير مستوى خط الثلج STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}غير سنة البداية @@ -2463,7 +2463,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}معطل STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}متعارض مع هذا اللإصدار من Openttd # NewGRF save preset window -STR_SAVE_PRESET_CAPTION :{BLACK}حفظ الإعداد المسبق +STR_SAVE_PRESET_CAPTION :{WHITE}حفظ الإعداد المسبق STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}لائحة الإعدادات المسبقة. اختر واحدة لنسخها للإسم المحفوظ بالإسفل STR_SAVE_PRESET_TITLE :{BLACK}أدخل اسم للإعداد المسبق STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}الإسم المختار لحفظ الإعداد المسبق @@ -3871,7 +3871,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}لا ي STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... العربة تحطمت STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}لن تتوافر اى وسائل نقل على اﻹطلاق -STR_ERROR_NO_VEHICLES_AVAILABLE_YET :لا تتوافر اى آليه نقل بعد +STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}لا تتوافر اى آليه نقل بعد # Specific vehicle errors STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}لا يمكن السماح للقطار بالعبور من الاشارة في وضع الخطر diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 3c4a255e49..2db90c701a 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -1432,7 +1432,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Наладкі STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Наладкі кампаніі (запісваюцца ў захаваньні; уплываюць толькі на новыя гульні) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Наладкі кампаніі (запісваюцца ў захаваньне; уплываюць толькі на бягучую кампанію) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Паказаць усе вынікі пошуку па наладках{}{SILVER}Катэґорыя {BLACK}да {WHITE}{STRING} -STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Паказаць усе вынікі пошуку па наладках{}{SILVER}Тып BLACK}да {WHITE}Усе тыпы наладак +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Паказаць усе вынікі пошуку па наладках{}{SILVER}Тып {BLACK}да {WHITE}Усе тыпы наладак STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Паказаць усе вынікі пошуку па наладках{}{SILVER}Катэґорыя {BLACK}да {WHITE}{STRING} {BLACK}і {SILVER}Тып {BLACK}да {WHITE}Усе тыпы наладак STR_CONFIG_SETTINGS_NONE :{WHITE}- Няма - diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index afee4af7eb..cebed13468 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2776,7 +2776,7 @@ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{G=n}{RED}Не # NewGRF save preset window STR_SAVE_PRESET_TITLE :{BLACK}Въведи име за шаблона STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Текущо избраното име за именуване на шаблона -STR_SAVE_PRESET_CANCEL :Отказ +STR_SAVE_PRESET_CANCEL :{BLACK}Отказ STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Не променяй шаблона STR_SAVE_PRESET_SAVE :{BLACK}Запис STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Запази шаблона за текущо избраното име diff --git a/src/lang/czech.txt b/src/lang/czech.txt index cbe4258c27..329645f0f0 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1884,7 +1884,7 @@ STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magick STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunely se mohou křížit: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Letadla nebudou na malých letištích havarovat (tak často): {ORANGE}{STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Upravit maximální výšku mapy: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{BLACK}Upravit maximální výšku hor na mapě +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Upravit maximální výšku hor na mapě STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :krajina mírného pásma STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :subarktická krajina STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :subtropická kraina @@ -3225,7 +3225,7 @@ STR_STATION_VIEW_VIA :{YELLOW}{CARGO_ STR_STATION_VIEW_TO :{YELLOW}{CARGO_SHORT} do {STATION} STR_STATION_VIEW_FROM_ANY :{RED}{CARGO_SHORT} z neznámé stanice STR_STATION_VIEW_TO_ANY :{RED}{CARGO_SHORT} do kterékoliv stanice -STR_STATION_VIEW_VIA_ANY :{GREEN}{CARGO_SHORT} přes jakoukoliv stanici +STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHORT} přes jakoukoliv stanici STR_STATION_VIEW_FROM_HERE :{GREEN}{CARGO_SHORT} z této stanice STR_STATION_VIEW_VIA_HERE :{GREEN}{CARGO_SHORT} zastavuje v této stanici STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} do této stanice diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 1bdaded5a5..c6d5cf6178 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -255,7 +255,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Toon ver STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Toon verborgen STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Door het inschakelen van deze knop, worden de verborgen treinen ook weergegeven -STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :Door het inschakelen van deze knop, worden de verborgen wegvoertuigen ook weergegeven +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Door het inschakelen van deze knop, worden de verborgen wegvoertuigen ook weergegeven STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Door het inschakelen van deze knop, worden de verborgen schepen ook weergegeven STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Door het inschakelen van deze knop, worden de verborgen vliegtuig ook weergegeven diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 51133c2c9d..4501405781 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1999,7 +1999,7 @@ STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Bulldoz STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Faodaidh tunailean dol tarsainn càch a chèile: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Cha tachair tubaist (gu tric) le steall-phlèan air port-adhair beag: {ORANGE}{STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Deasaich àirde as motha a’ mhapa: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{BLACK}Deasaich an àirde as motha dhe bheanntan air a’ mhapa +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Deasaich an àirde as motha dhe bheanntan air a’ mhapa STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Cruth-tìre measarra STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Cruth-tìre fo-artach STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Cruth-tìre fo-thropaigeach diff --git a/src/lang/galician.txt b/src/lang/galician.txt index b641022e7b..303c2c3da5 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -762,7 +762,7 @@ STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Mostrar STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Amosar/ocultar mapa de cotas do terreo STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Non amosar as propiedades de ningunha compañía no mapa STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Amosar as propiedades de tódalas compañías no mapa -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :BLACK}Non amosa ningunha carga no mapa +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Non amosa ningunha carga no mapa STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Amosa tódolas cargas no mapa # Status bar messages @@ -3908,7 +3908,7 @@ STR_AI_DEBUG_CONTINUE :{BLACK}Continua STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Quita-la pausa e continua-la IA STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Ve-la saída da depuración desta IA STR_AI_GAME_SCRIPT :{BLACK}Script do xogo -STR_AI_GAME_SCRIPT_TOOLTIP :BLACK}Comproba o log do script do xogo +STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Comproba o log do script do xogo STR_ERROR_AI_NO_AI_FOUND :Non se atopou ningunha IA adecuada para cargar.{} Esta IA é parva e non vai facer nada.{}Podes descargar varias IAs no sistema de contidos online. STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Fallou unha das IA en execución. Por favor, informa ao autor desta IA cunha captura da Fiestra de Depuración de IA. diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 3c051be48b..83dd9391f0 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3142,7 +3142,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Δωρ # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Στόχοι: -STR_GOALS_SPECTATOR_CAPTION :{BLACK}Καθολικοί στόχοι: +STR_GOALS_SPECTATOR_CAPTION :{WHITE}Καθολικοί στόχοι: STR_GOALS_GLOBAL_TITLE :{BLACK}Καθολικοί στόχοι: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Κανένας - @@ -3465,7 +3465,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}Μετο STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Πατήστε για προστατέψετε αυτήν την ομάδα από την γενική αυτόματη αντικατάσταση STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Διαγραφή ομάδας -STR_GROUP_DELETE_QUERY_TEXT :Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ομάδα και οποιουσδήποτε απογόνους; +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ομάδα και οποιουσδήποτε απογόνους; STR_GROUP_ADD_SHARED_VEHICLE :Προσθήκη κοινόχρηστων οχημάτων STR_GROUP_REMOVE_ALL_VEHICLES :Αφαίρεση όλων των οχημάτων diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index db8ce931fb..a61443f8aa 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1810,7 +1810,7 @@ STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}טרק STR_CHEAT_CROSSINGTUNNELS :{ORANGE}{STRING}{LTBLUE} :מנהרות יכולות לחצות זו את זו STR_CHEAT_NO_JETCRASH :{LTBLUE}מטוסי סילון לא יתרסקו (לעיתים קרובות) בשדות תעופה קטנים: {ORANGE}{STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}ערוך את הגובה המקסימלי במפה: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :ערוך את הגובה המקסימלי של הרים במפה +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}ערוך את הגובה המקסימלי של הרים במפה STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :אקלים ממוזג STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :אקלים קר STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :אקלים טרופי @@ -3444,7 +3444,7 @@ STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}תצוג STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}החלף בין הסתרה/הצגה של סוג רכבת STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}החלף בין הסתרה/הצגה של סוג רכב כביש -STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :הסתר/הצג סוג של כלי שיט +STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}הסתר/הצג סוג של כלי שיט STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}הסתר/הצג סוג של כלי טיס STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}שנה את שם סוג קרון הרכבת @@ -4065,7 +4065,7 @@ STR_FEEDER :{YELLOW}העב STR_FEEDER_INCOME_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {GREEN}הכנסה:{CURRENCY_LONG} STR_FEEDER_INCOME :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {GREEN}הכנסה: {CURRENCY_LONG} STR_FEEDER_COST_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {RED}עלות: {CURRENCY_LONG} -STR_FEEDER_COST :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / עלות: {CURRENCY_LONG} +STR_FEEDER_COST :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {RED}עלות: {CURRENCY_LONG} STR_MESSAGE_ESTIMATED_COST :{WHITE}{CURRENCY_LONG} :מחיר משוער STR_MESSAGE_ESTIMATED_INCOME :{WHITE}{CURRENCY_LONG} :הכנסה משוערת diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 07055e8db9..6127155912 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3034,7 +3034,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}買収 # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} 目標 -STR_GOALS_SPECTATOR_CAPTION :{BLACK}大目標 +STR_GOALS_SPECTATOR_CAPTION :{WHITE}大目標 STR_GOALS_GLOBAL_TITLE :{BLACK}大目標: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- なし - @@ -3175,7 +3175,7 @@ STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}中継 STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}メイン画面をこのブイの場所に移動します。Ctrl+クリックでこのブイの場所を新たなビューポートに表示します STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}ブイの名称を変更 -STR_EDIT_WAYPOINT_NAME :中継駅名を表示 +STR_EDIT_WAYPOINT_NAME :{WHITE}中継駅名を表示 # Finances window STR_FINANCES_CAPTION :{WHITE}{COMPANY} 経営状況 {BLACK}{COMPANY_NUM} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 5758f96fab..d912e27de9 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3682,7 +3682,7 @@ STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}수송 STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}환승 수익: {LTBLUE}{CURRENCY_LONG} STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}정비 간격: {LTBLUE}{COMMA}일마다{BLACK} 마지막 정비 날짜: {LTBLUE}{DATE_LONG} -STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}정비 간격: {LTBLUE}{COMMA}% 이하일 때 마지막 정비 날짜: {LTBLUE}{DATE_LONG} +STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}정비 간격: {LTBLUE}{COMMA}%{BLACK} 이하일 때 마지막 정비 날짜: {LTBLUE}{DATE_LONG} STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 올립니다. CTRL+클릭하면 점검 기준값을 5만큼 올립니다. STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 내립니다. CTRL+클릭하면 점검 기준값을 5만큼 내립니다. diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 66091cd5f8..7b5b1dda6b 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3792,7 +3792,7 @@ STR_REPLACE_VEHICLE_SHIP :Laivas STR_REPLACE_VEHICLE_AIRCRAFT :Lėktuvas STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Naudojamos transporto priemonės -STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :BLACK}Stulpelis su informacija apie transporto priemones, kurias šiuo metu naudojate +STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Stulpelis su informacija apie transporto priemones, kurias šiuo metu naudojate STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Galimos transporto priemonės STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Stulpelis su informacija apie transporto priemones, kuriomis galite pakeisti jau turimas diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 818e797457..ccdca5d916 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1119,7 +1119,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Spillastellunge STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Firmenastellungen (am Save gespäichert; betrëfft just nei Spiller) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Firmenastellungen (am Save gespäichert; betrëfft just déi aktuell Firma) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Weis all Sich-Resultater no der Astellung{}{SILVER}Kategorie {BLACK}bis {WHITE}{STRING} -STR_CONFIG_SETTING_TYPE_HIDES :Weis all Sich-Resultater no der Astellung{}{SILVER}Typ {BLACK}bis {WHITE}All Astellungstypen +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Weis all Sich-Resultater no der Astellung{}{SILVER}Typ {BLACK}bis {WHITE}All Astellungstypen STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Weis all Sich-Resultater no der Astellung{}{SILVER}Kategorie {BLACK}bis {WHITE}{STRING} {BLACK}an {SILVER}Typ {BLACK}bis {WHITE}All Astellungstypen STR_CONFIG_SETTINGS_NONE :{WHITE}- Keng - diff --git a/src/lang/polish.txt b/src/lang/polish.txt index d3b0e88a07..ffacc108b5 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3927,7 +3927,7 @@ STR_REPLACE_VEHICLE_AIRCRAFT :Samolot STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Używane pojazdy STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Lista posiadanych pojazdów -STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{BLACK}Dostępne pojazdy +STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Dostępne pojazdy STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Lista pojazdów dostępnych do zamiany STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Wybierz typ pojazdu do zamiany diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index da8eb3afaf..e512d48fcc 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2842,7 +2842,7 @@ STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Lista de STR_SAVE_PRESET_TITLE :{BLACK}Intriduza um nome para a predefinição STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Nome seleccionado actualmente para gravação da predefinição STR_SAVE_PRESET_CANCEL :{BLACK}Cancelar -STR_SAVE_PRESET_CANCEL_TOOLTIP :Não mudar a predefinição +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Não mudar a predefinição STR_SAVE_PRESET_SAVE :{BLACK}Grava STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Grava a predefinição com o nome seleccionado diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index d047538993..e20bfe3f35 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3615,8 +3615,8 @@ STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Promenit STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Sakriti STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Sakriti -STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :Sakriti -STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :Sakriti +STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Sakriti +STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Sakriti STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Prikaz STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Prikaži diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 66f590d77b..47e709bb3e 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3120,7 +3120,7 @@ STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}显示 STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}按月供应量与本地评比: STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%) -STR_STATION_VIEW_GROUP :群组方式 +STR_STATION_VIEW_GROUP :{BLACK}群组方式 STR_STATION_VIEW_WAITING_STATION :车站名:等候中 STR_STATION_VIEW_WAITING_AMOUNT :货物总量:等候中 STR_STATION_VIEW_PLANNED_STATION :车站名:计划中 diff --git a/src/lang/thai.txt b/src/lang/thai.txt index c3e6916d3c..091e5d496a 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -250,7 +250,7 @@ STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}ทำ # Show engines button -STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :ถ้าได้อนุญาตที่ปุ่มนี้แล้ว อากาศยานที่ซ่อนจะถูกแสดงออกมา +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}ถ้าได้อนุญาตที่ปุ่มนี้แล้ว อากาศยานที่ซ่อนจะถูกแสดงออกมา # Query window STR_BUTTON_DEFAULT :{BLACK}ค่าปกติ @@ -317,7 +317,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}แส STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}แสดงข้อมูลทางการเงินของบริษัท STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}แสดงข้อมูลทั่วไปของบริษัท STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}แสดงสมุดบันทึก -STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :แสดงรายการเป้าหมายที่ต้องทำ +STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}แสดงรายการเป้าหมายที่ต้องทำ STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}แสดงกราฟ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}แสดงตารางอันดับบริษัท STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}ลงทุนก่อสร้างอุตสาหกรรมใหม่ หรือ แสดงรายชื่ออุตสาหกรรมทั้งหมด @@ -1630,7 +1630,7 @@ STR_CONFIG_SETTING_SOUND :{ORANGE}เส STR_CONFIG_SETTING_INTERFACE :{ORANGE}ส่วนเชื่อมต่อผู้ใช้ STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}การก่อสร้าง STR_CONFIG_SETTING_VEHICLES :{ORANGE}ยานพาหนะ -STR_CONFIG_SETTING_VEHICLES_PHYSICS :กายภาพ +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}กายภาพ STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}การค้นหาเส้นทางของพาหนะ STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}สิ่งแวดล้อม STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}เมือง @@ -2227,7 +2227,7 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}เป STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}ตั้งให้วัตถุมองไม่เห็นแทนการโปร่งใส # Linkgraph legend window -STR_LINKGRAPH_LEGEND_CAPTION :{WHITE}แสดงเส้นทางและความหนาแน่น +STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}แสดงเส้นทางและความหนาแน่น STR_LINKGRAPH_LEGEND_ALL :{BLACK}ทั้งหมด STR_LINKGRAPH_LEGEND_NONE :{BLACK}ไม่เลือก STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}เลือกบริษัทที่จะแสดง @@ -2780,7 +2780,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}ไม่ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}ไม่รองรับกับ OpenTTD เวอร์ชั่นนี้ # NewGRF save preset window -STR_SAVE_PRESET_SAVE_TOOLTIP :บันทึก ชุดการตั้งค่า ตามที่ได้เลือกไว้ +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}บันทึก ชุดการตั้งค่า ตามที่ได้เลือกไว้ # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}เปลี่ยนแปลง NewGRF parameters @@ -3090,9 +3090,9 @@ STR_STATION_VIEW_CENTER_TOOLTIP :{BLACK}จุ STR_STATION_VIEW_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อสถานี STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}แสดงขบวนรถไฟที่มีรายการเข้าจอดที่สถานีนี้ -STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :แสดงยานพาหนะทางบกที่มีรายการเข้าจอดที่สถานีนี้ -STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :แสดงอากาศยานที่มีรายการลงจอดจอดที่สถานีนี้ -STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :แสดงเรือที่มีรายการเข้าเทียบท่าที่ท่านี้ +STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :{BLACK}แสดงยานพาหนะทางบกที่มีรายการเข้าจอดที่สถานีนี้ +STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}แสดงอากาศยานที่มีรายการลงจอดจอดที่สถานีนี้ +STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}แสดงเรือที่มีรายการเข้าเทียบท่าที่ท่านี้ STR_STATION_VIEW_RENAME_STATION_CAPTION :เปลี่ยนชื่อสถานี/พื้นที่รับส่งสินค้า @@ -3348,7 +3348,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}เป STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อชนิดของเรือ STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อชนิดของเครื่องบิน -STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :ซ่อน +STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}ซ่อน STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}การแสดงผล STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}การแสดงผล @@ -3389,7 +3389,7 @@ STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}ขา STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}ขายอากาศยานทั้งหมดในโรงซ่อมบำรุง STR_DEPOT_AUTOREPLACE_TRAIN_TOOLTIP :{BLACK}แทนที่อัตโนมัติสำหรับรถไฟทั้งหมดในโรงซ่อมบำรุง -STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :แทนที่อัตโนมัติสำหรับยานพาหนะทางบกทั้งหมดในโรงซ่อมบำรุง +STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :{BLACK}แทนที่อัตโนมัติสำหรับยานพาหนะทางบกทั้งหมดในโรงซ่อมบำรุง STR_DEPOT_AUTOREPLACE_SHIP_TOOLTIP :{BLACK}แทนที่อัตโนมัติสำหรับยานพาหนะทางน้ำทั้งหมดในอู่ STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}แทนที่อัตโนมัติสำหรับอากาศยานทั้งหมดในโรงซ่อมบำรุง diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 92a7b1a5b3..e0da7acb0b 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2085,7 +2085,7 @@ STR_NETWORK_CLIENT :用戶端 STR_NETWORK_SPECTATORS :旁觀者 STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}請輸入你要付出多少資金 -STR_NETWORK_TOOLBAR_LIST_SPECTATOR :(BLACK)旁觀者 +STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}旁觀者 # Network set password STR_COMPANY_PASSWORD_CANCEL :{BLACK}不要儲存所輸入的密碼 @@ -3089,7 +3089,7 @@ STR_STORY_BOOK_PREV_PAGE :{BLACK}上一 STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}前往上一頁繼續觀看 STR_STORY_BOOK_NEXT_PAGE :{BLACK}下一頁 STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}前往下一頁繼續觀看 -STR_STORY_BOOK_INVALID_GOAL_REF :(RED)無效的目標參照 +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}無效的目標參照 # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}車站名稱 - 點選名稱可將車站置於畫面中央。按住 Ctrl 點選可於車站位置開啟新視窗視野 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 3900920c03..a41d70a517 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1797,7 +1797,7 @@ STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Sihirli STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tüneller kesişebilir: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Jetler küçük havalimanlarında (sıklıkla) düşmesin: {ORANGE}{STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Azami harita yüksekliğini değiştir: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{BLACK}Haritadaki azami dağ yüksekliğini düzenle +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Haritadaki azami dağ yüksekliğini düzenle STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Ilıman iklim STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Soğuk iklim STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Tropik iklim diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index b48304d02d..80d6cf8ad5 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3797,7 +3797,7 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Інте STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Збільшити інтервал техогляду на 10. Ctrl+клац мишою збільшує інтервал техогляду на 5 STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Зменшити період техогляду на 10. Ctrl+клац мишою зменшує інтервал техогляду на 5 -STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :Відлік інтервалу між техоглядами +STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Відлік інтервалу між техоглядами STR_VEHICLE_DETAILS_DEFAULT :Стандартно STR_VEHICLE_DETAILS_DAYS :Дні STR_VEHICLE_DETAILS_PERCENT :Проценти From 4f3c7e74e70d104937bab9c06bd561a6871c0909 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 28 Mar 2017 21:44:40 +0000 Subject: [PATCH 325/417] (svn r27833) -Change: Trackdir maps directly to TrackdirBits --- src/track_type.h | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/track_type.h b/src/track_type.h index c0bfa0887f..2982288bba 100644 --- a/src/track_type.h +++ b/src/track_type.h @@ -104,22 +104,22 @@ typedef TinyEnumT TrackdirByte; * direction (corresponding to the Track enum) and 8-13 in the other direction. */ enum TrackdirBits { - TRACKDIR_BIT_NONE = 0x0000, ///< No track build - TRACKDIR_BIT_X_NE = 0x0001, ///< Track x-axis, direction north-east - TRACKDIR_BIT_Y_SE = 0x0002, ///< Track y-axis, direction south-east - TRACKDIR_BIT_UPPER_E = 0x0004, ///< Track upper, direction east - TRACKDIR_BIT_LOWER_E = 0x0008, ///< Track lower, direction east - TRACKDIR_BIT_LEFT_S = 0x0010, ///< Track left, direction south - TRACKDIR_BIT_RIGHT_S = 0x0020, ///< Track right, direction south + TRACKDIR_BIT_NONE = 0U, ///< No track build + TRACKDIR_BIT_X_NE = 1U << TRACKDIR_X_NE, ///< Track x-axis, direction north-east + TRACKDIR_BIT_Y_SE = 1U << TRACKDIR_Y_SE, ///< Track y-axis, direction south-east + TRACKDIR_BIT_UPPER_E = 1U << TRACKDIR_UPPER_E, ///< Track upper, direction east + TRACKDIR_BIT_LOWER_E = 1U << TRACKDIR_LOWER_E, ///< Track lower, direction east + TRACKDIR_BIT_LEFT_S = 1U << TRACKDIR_LEFT_S, ///< Track left, direction south + TRACKDIR_BIT_RIGHT_S = 1U << TRACKDIR_RIGHT_S, ///< Track right, direction south /* Again, note the two missing values here. This enables trackdir -> track conversion by doing (trackdir & 0xFF) */ - TRACKDIR_BIT_X_SW = 0x0100, ///< Track x-axis, direction south-west - TRACKDIR_BIT_Y_NW = 0x0200, ///< Track y-axis, direction north-west - TRACKDIR_BIT_UPPER_W = 0x0400, ///< Track upper, direction west - TRACKDIR_BIT_LOWER_W = 0x0800, ///< Track lower, direction west - TRACKDIR_BIT_LEFT_N = 0x1000, ///< Track left, direction north - TRACKDIR_BIT_RIGHT_N = 0x2000, ///< Track right, direction north - TRACKDIR_BIT_MASK = 0x3F3F, ///< Bitmask for bit-operations - INVALID_TRACKDIR_BIT = 0xFFFF, ///< Flag for an invalid trackdirbit value + TRACKDIR_BIT_X_SW = 1U << TRACKDIR_X_SW, ///< Track x-axis, direction south-west + TRACKDIR_BIT_Y_NW = 1U << TRACKDIR_Y_NW, ///< Track y-axis, direction north-west + TRACKDIR_BIT_UPPER_W = 1U << TRACKDIR_UPPER_W, ///< Track upper, direction west + TRACKDIR_BIT_LOWER_W = 1U << TRACKDIR_LOWER_W, ///< Track lower, direction west + TRACKDIR_BIT_LEFT_N = 1U << TRACKDIR_LEFT_N, ///< Track left, direction north + TRACKDIR_BIT_RIGHT_N = 1U << TRACKDIR_RIGHT_N, ///< Track right, direction north + TRACKDIR_BIT_MASK = 0x3F3F, ///< Bitmask for bit-operations + INVALID_TRACKDIR_BIT = 0xFFFF, ///< Flag for an invalid trackdirbit value }; DECLARE_ENUM_AS_BIT_SET(TrackdirBits) typedef SimpleTinyEnumT TrackdirBitsShort; From 5bcc54e0219c8a177e6bdcdcbcf2e097d3eb0d3d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Wed, 29 Mar 2017 17:36:46 +0000 Subject: [PATCH 326/417] (svn r27834) -Change: Parse extmidi command string for parameters to pass on. --- src/music/extmidi.cpp | 36 +++++++++++++++++++++++++++++------- src/music/extmidi.h | 2 +- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/music/extmidi.cpp b/src/music/extmidi.cpp index f4a35360c0..12b3689e2a 100644 --- a/src/music/extmidi.cpp +++ b/src/music/extmidi.cpp @@ -12,6 +12,7 @@ #include "../stdafx.h" #include "../debug.h" #include "../string_func.h" +#include "../core/alloc_func.hpp" #include "../sound/sound_driver.hpp" #include "../video/video_driver.hpp" #include "../gfx_func.h" @@ -42,9 +43,33 @@ const char *MusicDriver_ExtMidi::Start(const char * const * parm) } const char *command = GetDriverParam(parm, "cmd"); +#ifndef MIDI_ARG if (StrEmpty(command)) command = EXTERNAL_PLAYER; +#else + if (StrEmpty(command)) command = EXTERNAL_PLAYER " " MIDI_ARG; +#endif + + /* Count number of arguments, but include 3 extra slots: 1st for command, 2nd for song title, and 3rd for terminating NULL. */ + uint num_args = 3; + for (const char *t = command; *t != '\0'; t++) if (*t == ' ') num_args++; + + this->params = CallocT(num_args); + this->params[0] = stredup(command); + + /* Replace space with \0 and add next arg to params */ + uint p = 1; + while (true) { + this->params[p] = strchr(this->params[p - 1], ' '); + if (this->params[p] == NULL) break; + + this->params[p][0] = '\0'; + this->params[p]++; + p++; + } + + /* Last parameter is the song file. */ + this->params[p] = this->song; - this->command = stredup(command); this->song[0] = '\0'; this->pid = -1; return NULL; @@ -52,7 +77,8 @@ const char *MusicDriver_ExtMidi::Start(const char * const * parm) void MusicDriver_ExtMidi::Stop() { - free(command); + free(params[0]); + free(params); this->song[0] = '\0'; this->DoStop(); } @@ -91,11 +117,7 @@ void MusicDriver_ExtMidi::DoPlay() close(0); int d = open("/dev/null", O_RDONLY); if (d != -1 && dup2(d, 1) != -1 && dup2(d, 2) != -1) { - #if defined(MIDI_ARG) - execlp(this->command, "extmidi", MIDI_ARG, this->song, (char*)0); - #else - execlp(this->command, "extmidi", this->song, (char*)0); - #endif + execvp(this->params[0], this->params); } _exit(1); } diff --git a/src/music/extmidi.h b/src/music/extmidi.h index c6a9e08f8d..cfbd894596 100644 --- a/src/music/extmidi.h +++ b/src/music/extmidi.h @@ -16,7 +16,7 @@ class MusicDriver_ExtMidi : public MusicDriver { private: - char *command; + char **params; char song[MAX_PATH]; pid_t pid; From 4d3d43a70ec76841e35b6fa74898731d19c07541 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 29 Mar 2017 17:45:37 +0000 Subject: [PATCH 327/417] (svn r27835) -Update from Eints: norwegian (bokmal): 37 changes by eirik174 --- src/lang/norwegian_bokmal.txt | 53 ++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index eb2c613437..cc852eb300 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1003,7 +1003,7 @@ STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Velg mus STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} ødelagt{P "" e} fil{P "" er} STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Ytterligere informasjon om det originale musikksettet -STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}Mislytes med å hente en liste over støttede oppløsninger +STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}Mislyktes med å hente en liste over støttede oppløsninger STR_ERROR_FULLSCREEN_FAILED :{WHITE}Fullskjermmodus mislyktes # Custom currency window @@ -1375,6 +1375,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Av STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Venstre-klikk rulling: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Tillat rulling av kartet ved å dra det med den venstre museknappen. Dette er spesielt nyttig når du bruker en berøringsskjerm +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Lukk vinduet med høyreklikk: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Lukker et vindu ved å høyreklikke i det. Deaktiverer verktøytipset med høyreklikk! STR_CONFIG_SETTING_AUTOSAVE :Autolagring: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Velg intervall mellom automatiske lagringer av spillet @@ -1764,6 +1766,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Se etter STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Vis AI/Spillskript-innstillinger STR_INTRO_TOOLTIP_QUIT :{BLACK}Avslutt 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Det valgte innebygde grafikksettet mangler {NUM} sprite{P "" r}. Se etter oppdateringer for settet. STR_INTRO_TRANSLATION :{BLACK}Denne oversettelsen mangler {NUM} streng{P "" er}. Vennligst hjelp til å gjøre OpenTTD bedre ved å bli med i oversettergruppen. For detaljer, sjekk readme.txt. # Quit window @@ -2593,6 +2596,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Flyplass STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Godtatte varer: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Skinnetype: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Fartsgrense for jernbanespor: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Veiens fartsgrense: {LTBLUE}{VELOCITY} @@ -2611,23 +2615,23 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Jernbanespor me STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Jernbanespor med utgangssignaler STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Jernbanespor med kombinasjonssignaler STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Jernbanespor med avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbane spor med enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbane spor med blokk- og forsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbanespor med enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbanespor med blokk- og forsignaler STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Jernbane spor med blokk- og utgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbane spor med blokk- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbanespor med blokk- og kombinasjonssignaler STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Jernbane spor med blokk- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbane spor med blokk- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbane spor med for- og utgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Jernbane spor med for- og kombinasjonssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Jernbane spor med for- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Jernbane spor med for- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbane spor med utgangs- og kombinasjonssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbane spor med utgangs- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbane spor med utgangs- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbane spor med kombinasjon- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbane spor med kombinasjon- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbane spor med avanserte- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane togstall +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbanespor med blokk- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbanespor med for- og utgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Jernbanespor med for- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Jernbane spor med forsignaler og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Jernbanespor med for- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbanespor med utgangs- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbanespor med utgangs- og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbanespor med utgangs- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbanespor med kombinasjon- og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbanespor med kombinasjon- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbanespor med avanserte- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane-togstall STR_LAI_ROAD_DESCRIPTION_ROAD :Vei STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Vei med gatelykter @@ -3296,6 +3300,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Trenger: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Trenger: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Krever +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}venter +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING} @@ -3364,6 +3373,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle kjø STR_GROUP_RENAME_CAPTION :{BLACK}Endre navn på gruppe +STR_GROUP_PROFIT_THIS_YEAR :Profitt i år: +STR_GROUP_PROFIT_LAST_YEAR :Profitt i fjor: +STR_GROUP_OCCUPANCY :Gjeldende bruk: +STR_GROUP_OCCUPANCY_VALUE :{NUM} % # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye tog/vogner for jernbane @@ -3396,6 +3409,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Alle varetyper STR_PURCHASE_INFO_ALL_BUT :Alt utenom {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks trekkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rekkevidde: {GOLD}{COMMA} ruter +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Flytype: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Liste over tog/vogner - klikk på tog/vogn for mer informasjon. Ctrl+klikk for å skjule/vise denne typen STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Liste over kjøretøy - klikk på kjøretøy for mer informasjon. Ctrl+klikk for å skjule/vise kjøretøytypen @@ -3530,6 +3544,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=neuter}magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER} Maks trekkraft: {6:FORCE}{}Vedlikehold: {4:CURRENCY_LONG}/år{}Kapasitet: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. hastighet: {VELOCITY}{}Flytype: {STRING}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. hastighet: {VELOCITY}{}Flytype: {STRING}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. hastighet: {VELOCITY}{}Flytype: {STRING} Rekkevidde: {COMMA} ruter{}kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. hastighet: {VELOCITY}{}Flytype: {STRING} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatte {STRING} - {STRING} @@ -3559,6 +3577,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikk de STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Veksle mellom tog- og vognerstatningsvinduet STR_REPLACE_ENGINES :Lokomotiv STR_REPLACE_WAGONS :Vogner +STR_REPLACE_ALL_RAILTYPE :Status: Mangler STR_REPLACE_HELP_RAILTYPE :{BLACK}Velg jernbanetypen du vil bytte ut lokomotiv på STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Viser hvilket lokomotiv som overtar for det valgte lokomotivet på venstresiden @@ -3651,6 +3670,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks hastighet: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Maks. hastighet: {LTBLUE}{VELOCITY} {BLACK}Flytype: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Maks. hastighet: {LTBLUE}{VELOCITY} {BLACK}Flytype: {LTBLUE}{STRING} {BLACK}Rekkevidde: {LTBLUE}{COMMA} ruter STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} {BLACK}Maks trekkraft: {LTBLUE}{FORCE} From 2fb822d392fba9198b121841a508d1b75f6d5e74 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 29 Mar 2017 19:39:55 +0100 Subject: [PATCH 328/417] Fix includes and header guards of container functions. --- src/core/container_func.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/container_func.hpp b/src/core/container_func.hpp index 1b8e8ad847..276c1f7f54 100644 --- a/src/core/container_func.hpp +++ b/src/core/container_func.hpp @@ -9,6 +9,11 @@ /** @file container_func.hpp Functions related to use of containers. */ +#ifndef CONTAINER_FUNC_HPP +#define CONTAINER_FUNC_HPP + +#include + template unsigned int container_unordered_remove_if (C &container, UP predicate) { unsigned int removecount = 0; for (auto it = container.begin(); it != container.end();) { @@ -33,3 +38,5 @@ template unsigned int container_unordered_remove(C &con return v == value; }); } + +#endif /* CONTAINER_FUNC_HPP */ From dd0666c5f47aa77fb6144747337c69611b1fbdae Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 29 Mar 2017 19:41:06 +0100 Subject: [PATCH 329/417] Add support for save/loading std::strings. --- src/saveload/saveload.cpp | 54 +++++++++++++++++++++++++++++++++++++++ src/saveload/saveload.h | 21 +++++++++++++++ src/string.cpp | 11 ++------ src/string_func.h | 23 ++++++++++++++++- 4 files changed, 99 insertions(+), 10 deletions(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index fbaf207eaf..a94bbf785f 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1078,6 +1078,18 @@ static inline size_t SlCalcNetStringLen(const char *ptr, size_t length) return min(strlen(ptr), length - 1); } +/** + * Calculate the gross length of the std::string that it + * will occupy in the savegame. This includes the real length, + * and the length that the index will occupy. + * @param str reference to the std::string + * @return return the gross length of the string + */ +static inline size_t SlCalcStdStrLen(const std::string &str) +{ + return str.size() + SlGetArrayLength(str.size()); // also include the length of the index +} + /** * Calculate the gross length of the string that it * will occupy in the savegame. This includes the real length, returned @@ -1189,6 +1201,41 @@ static void SlString(void *ptr, size_t length, VarType conv) } } +/** + * Save/Load a std::string. + * @param ptr the std::string being manipulated + * @param conv must be SLE_FILE_STRING + */ +static void SlStdString(std::string &str, VarType conv) +{ + switch (_sl.action) { + case SLA_SAVE: { + SlWriteArrayLength(str.size()); + SlCopyBytes(const_cast(str.data()), str.size()); + break; + } + case SLA_LOAD_CHECK: + case SLA_LOAD: { + size_t len = SlReadArrayLength(); + str.resize(len); + SlCopyBytes(const_cast(str.c_str()), len); + + StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK; + if ((conv & SLF_ALLOW_CONTROL) != 0) { + settings = settings | SVS_ALLOW_CONTROL_CODE; + } + if ((conv & SLF_ALLOW_NEWLINE) != 0) { + settings = settings | SVS_ALLOW_NEWLINE; + } + str_validate(str, settings); + break; + } + case SLA_PTRS: break; + case SLA_NULL: break; + default: NOT_REACHED(); + } +} + /** * Return the size in bytes of a certain type of atomic array * @param length The length of the array counted in elements @@ -1491,6 +1538,7 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) case SL_LST: case SL_DEQ: case SL_VEC: + case SL_STDSTR: /* CONDITIONAL saveload types depend on the savegame version */ if (!SlIsObjectValidInSavegame(sld)) break; @@ -1502,6 +1550,7 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) case SL_LST: return SlCalcListLen>(GetVariableAddress(object, sld)); case SL_DEQ: return SlCalcListLen>(GetVariableAddress(object, sld)); case SL_VEC: return SlCalcListLen>(GetVariableAddress(object, sld)); + case SL_STDSTR: return SlCalcStdStrLen(*static_cast(GetVariableAddress(object, sld))); default: NOT_REACHED(); } break; @@ -1550,6 +1599,9 @@ static bool IsVariableSizeRight(const SaveLoad *sld) /* These should be pointer sized, or fixed array. */ return sld->size == sizeof(void *) || sld->size == sld->length; + case SL_STDSTR: + return sld->size == sizeof(std::string); + default: return true; } @@ -1572,6 +1624,7 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) case SL_LST: case SL_DEQ: case SL_VEC: + case SL_STDSTR: /* CONDITIONAL saveload types depend on the savegame version */ if (!SlIsObjectValidInSavegame(sld)) return false; if (SlSkipVariableOnLoad(sld)) return false; @@ -1601,6 +1654,7 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) case SL_LST: SlList>(ptr, (SLRefType)conv); break; case SL_DEQ: SlList>(ptr, (SLRefType)conv); break; case SL_VEC: SlList>(ptr, (SLRefType)conv); break; + case SL_STDSTR: SlStdString(*static_cast(ptr), sld->conv); break; default: NOT_REACHED(); } break; diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index a4e6a69a7d..45968bf7ff 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -207,6 +207,7 @@ enum SaveLoadTypes { SL_LST = 4, ///< Save/load a list. SL_DEQ = 5, ///< Save/load a deque. SL_VEC = 6, ///< Save/load a vector. + SL_STDSTR = 7, ///< Save/load a std::string. /* non-normal save-load types */ SL_WRITEBYTE = 8, SL_VEH_INCLUDE = 9, @@ -300,6 +301,18 @@ typedef SaveLoad SaveLoadGlobVarList; #define SLE_CONDSTR_X(base, variable, type, length, from, to, extver) SLE_GENERAL_X(SL_STR, base, variable, type, length, from, to, extver) #define SLE_CONDSTR(base, variable, type, length, from, to) SLE_CONDSTR_X(base, variable, type, length, from, to, SlXvFeatureTest()) +/** + * Storage of a std::string in some savegame versions. + * @param base Name of the class or struct containing the string. + * @param variable Name of the variable in the class or struct referenced by \a base. + * @param type Storage of the data in memory and in the savegame. + * @param from First savegame version that has the string. + * @param to Last savegame version that has the string. + * @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field + */ +#define SLE_CONDSTDSTR_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_STDSTR, base, variable, type, 0, from, to, extver) +#define SLE_CONDSTDSTR(base, variable, type, from, to) SLE_CONDSTDSTR_X(base, variable, type, from, to, SlXvFeatureTest()) + /** * Storage of a list in some savegame versions. * @param base Name of the class or struct containing the list. @@ -370,6 +383,14 @@ typedef SaveLoad SaveLoadGlobVarList; */ #define SLE_STR(base, variable, type, length) SLE_CONDSTR(base, variable, type, length, 0, SL_MAX_VERSION) +/** + * Storage of a std::string in every savegame version. + * @param base Name of the class or struct containing the string. + * @param variable Name of the variable in the class or struct referenced by \a base. + * @param type Storage of the data in memory and in the savegame. + */ +#define SLE_STDSTR(base, variable, type) SLE_CONDSTDSTR(base, variable, type, 0, SL_MAX_VERSION) + /** * Storage of a list in every savegame version. * @param base Name of the class or struct containing the list. diff --git a/src/string.cpp b/src/string.cpp index 1ceae6061b..343250a979 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -180,14 +180,7 @@ void str_fix_scc_encoded(char *str, const char *last) } -/** - * Scans the string for valid characters and if it finds invalid ones, - * replaces them with a question mark '?' (if not ignored) - * @param str the string to validate - * @param last the last valid character of str - * @param settings the settings for the string validation. - */ -void str_validate(char *str, const char *last, StringValidationSettings settings) +char *str_validate_intl(char *str, const char *last, StringValidationSettings settings) { /* Assume the ABSOLUTE WORST to be in str as it comes from the outside. */ @@ -228,7 +221,7 @@ void str_validate(char *str, const char *last, StringValidationSettings settings } } - *dst = '\0'; + return dst; } /** diff --git a/src/string_func.h b/src/string_func.h index dd9b42600d..70214ff8d1 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -27,6 +27,7 @@ #define STRING_FUNC_H #include +#include #include "core/bitmath_func.hpp" #include "string_type.h" @@ -41,7 +42,27 @@ int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap) char *CDECL str_fmt(const char *str, ...) WARN_FORMAT(1, 2); char *str_vfmt(const char *str, va_list ap); -void str_validate(char *str, const char *last, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK); +char *str_validate_intl(char *str, const char *last, StringValidationSettings settings); + +/** + * Scans the string for valid characters and if it finds invalid ones, + * replaces them with a question mark '?' (if not ignored) + * @param str the string to validate + * @param last the last valid character of str + * @param settings the settings for the string validation. + */ +static inline void str_validate(char *str, const char *last, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) +{ + *str_validate_intl(str, last, settings) = '\0'; +} + +static inline void str_validate(std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) +{ + if (str.empty()) return; + char *buf = const_cast(str.c_str()); + str.resize(str_validate_intl(buf, buf + str.size(), settings) - buf); +} + void ValidateString(const char *str); void str_fix_scc_encoded(char *str, const char *last); From a3034891a1930fa0a2434eef09ffa02ef34fcc93 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 29 Mar 2017 19:46:30 +0100 Subject: [PATCH 330/417] Add missing include guard for dyn arena alloc header. --- src/core/dyn_arena_alloc.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/dyn_arena_alloc.hpp b/src/core/dyn_arena_alloc.hpp index 2bc4978d14..2a074d6aa1 100644 --- a/src/core/dyn_arena_alloc.hpp +++ b/src/core/dyn_arena_alloc.hpp @@ -9,6 +9,9 @@ /** @file dyn_arena_alloc.hpp Dynamic chunk-size arena allocator. */ +#ifndef DYN_ARENA_ALLOC_HPP +#define DYN_ARENA_ALLOC_HPP + #include /** @@ -95,3 +98,5 @@ class DynUniformArenaAllocator { this->items_per_chunk = items_per_chunk; } }; + +#endif /* DYN_ARENA_ALLOC_HPP */ From 4e9d4dd80adc4cbe9e06016c10535f4f0fea2bc6 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 4 Mar 2017 23:39:27 +0000 Subject: [PATCH 331/417] Add a PreCleanPool() static method to pool item types. (cherry picked from commit 87142ed840bb76361bc7a7219d643e49358487dd) --- src/core/pool_func.hpp | 1 + src/core/pool_type.hpp | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/core/pool_func.hpp b/src/core/pool_func.hpp index 5569addbd7..a5375e13fc 100644 --- a/src/core/pool_func.hpp +++ b/src/core/pool_func.hpp @@ -196,6 +196,7 @@ DEFINE_POOL_METHOD(void)::FreeItem(size_t index) DEFINE_POOL_METHOD(void)::CleanPool() { this->cleaning = true; + Titem::PreCleanPool(); for (size_t i = 0; i < this->first_unused; i++) { delete this->Get(i); // 'delete NULL;' is very valid } diff --git a/src/core/pool_type.hpp b/src/core/pool_type.hpp index 4d20ed1abb..70f6480103 100644 --- a/src/core/pool_type.hpp +++ b/src/core/pool_type.hpp @@ -286,6 +286,13 @@ struct Pool : PoolBase { * @note it's called only when !CleaningPool() */ static inline void PostDestructor(size_t index) { } + + /** + * Dummy function called before a pool is about to be cleaned. + * If you want to use it, override it in PoolItem's subclass. + * @note it's called only when CleaningPool() + */ + static inline void PreCleanPool() { } }; private: From a39bdc14a004a69291164e2169f99a9d4b0dddd5 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 30 Mar 2017 17:45:36 +0000 Subject: [PATCH 332/417] (svn r27836) -Update from Eints: catalan: 2 changes by juanjo --- src/lang/catalan.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 91df223fb7..c88d940f0f 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propiet # About OpenTTD window STR_ABOUT_OPENTTD :{WHITE}Quant a l'OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer. Tots els drets reservats. -STR_ABOUT_VERSION :{BLACK}OpenTTD versió {REV} +STR_ABOUT_VERSION :{BLACK}Versió {REV} de l'OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 L'equip de l'OpenTTD # Save/load game/scenario @@ -2939,7 +2939,7 @@ STR_NEWGRF_BROKEN :{WHITE}El compo STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Un vehicle '{1:ENGINE}' ha canviat el seu estat de vagó amb potència mentre estava fora de la cotxera STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Un vehicle '{1:ENGINE}' ha canviat la seva llargada mentre estava fora del dipòsit STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Un vehicle '{1:ENGINE}' ha canviat la seva capacitat mentre estava fora del dipòsit o no s'estava canviant el tipus de càrrega a transportar -STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren '{VEHICLE}' de '{COMPANY}' té una llargada invàlida, probablement a causa de problemes amb els NewGRF. La partida podria dessincronitzar-se o fallar. +STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren «{VEHICLE}» propietat de «{COMPANY}» té una llargada invàlida, probablement a causa de problemes amb els NewGRF. La partida podria dessincronitzar-se o fallar. STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' està donant informació incorrecta STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La informació de càrrega/remodelació per '{1:ENGINE}' no encaixa amb la llista de compres després de la construcció. Això podria causar un mal funcionament de autorenova/-substitueix From 60d4d1db3ff261d7703436351bf491d932376c09 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 30 Mar 2017 21:33:40 +0000 Subject: [PATCH 333/417] (svn r27837) -Fix (r26969): Black remap did nothing in 8bpp-simple blitter. --- src/blitter/8bpp_simple.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/blitter/8bpp_simple.cpp b/src/blitter/8bpp_simple.cpp index ed5dd3f7ae..2131a04682 100644 --- a/src/blitter/8bpp_simple.cpp +++ b/src/blitter/8bpp_simple.cpp @@ -48,7 +48,7 @@ void Blitter_8bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoom break; case BM_BLACK_REMAP: - colour = 0; + if (*src != 0) *dst = 0; break; default: From f17d38598a862011aad9942d45838d168a55ce1c Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 31 Mar 2017 23:09:50 +0000 Subject: [PATCH 334/417] (svn r27838) -Fix: Small news window's fake caption (r19943) was not sized to fit its text. --- src/news_gui.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/news_gui.cpp b/src/news_gui.cpp index 3800af8b57..6338b760b8 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -313,6 +313,15 @@ struct NewsWindow : Window { { StringID str = STR_NULL; switch (widget) { + case WID_N_CAPTION: { + /* Caption is not a real caption (so that the window cannot be moved) + * thus it doesn't get the default sizing of a caption. */ + Dimension d2 = GetStringBoundingBox(STR_NEWS_MESSAGE_CAPTION); + d2.height += WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM; + *size = maxdim(*size, d2); + return; + } + case WID_N_MGR_FACE: *size = maxdim(*size, GetSpriteSize(SPR_GRADIENT)); break; From 7e915f8bc7c3901d043c2e06e84f4ee519345a12 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 2 Apr 2017 17:36:53 +0000 Subject: [PATCH 335/417] (svn r27841) -Fix: Don't consider locks or ship depots as clear water when placing industries. --- src/industry_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 5971964fd7..8fea6953ae 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -1383,7 +1383,7 @@ static CommandCost CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTil } if (gfx == GFX_WATERTILE_SPECIALCHECK) { - if (!IsTileType(cur_tile, MP_WATER) || + if (!IsWaterTile(cur_tile) || !IsTileFlat(cur_tile)) { return_cmd_error(STR_ERROR_SITE_UNSUITABLE); } From e37d54fb083bb10d027b67cb3c1a14da3a46a416 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 3 Apr 2017 17:45:36 +0000 Subject: [PATCH 336/417] (svn r27842) -Update from Eints: spanish: 9 changes by SilverSurferZzZ --- src/lang/spanish.txt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 7cffa0d740..60394841b8 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1762,7 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comproba STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts de juego e IAs STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' -STR_INTRO_TRANSLATION :{BLACK}A esta traducción le faltan {NUM} cadena{P "" s}. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta readme.txt para más detalles. +STR_INTRO_TRANSLATION :{BLACK}A esta traducción le faltan {NUM} cadena{P "" s} de texto. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta el readme.txt para más detalles. # Quit window STR_QUIT_CAPTION :{WHITE}Salir @@ -2261,7 +2261,7 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no s STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el archivo descargado STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gráficos no encontrados -STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no se pudo encontrar ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos? +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no pudo encontrarse ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos? STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descargar los gráficos STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, salir de OpenTTD @@ -2898,7 +2898,7 @@ STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} est STR_NEWGRF_ERROR_INVALID_PARAMETER :Parámetro incorrecto para {1:STRING}: párametro {STRING} ({NUM}) STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING} debe ser cargado antes de {STRING} STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING} debe ser cargado después de {STRING} -STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} requiere OpenTTD versión {STRING} ó superior +STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} necesita la versión {STRING} ó superior de OpenTTD STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :El archivo GRF ha sido diseñado para ser traducido STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Demasiados NewGRFs han sido cargados STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Cargar {1:STRING} como NewGRF estático con {STRING} puede causar desincronizaciones @@ -3290,10 +3290,12 @@ STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}La indu ############ range for requires starts STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING} -STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING} +STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necesita: {YELLOW}{STRING}{STRING}, {STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} @@ -3362,6 +3364,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Renombrar un grupo +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos Vehículos de Ferrocarril @@ -3811,7 +3814,7 @@ STR_ORDER_GO_TO_NEAREST_DEPOT :Ir al depósito STR_ORDER_GO_TO_NEAREST_HANGAR :Ir al hangar más cercano STR_ORDER_CONDITIONAL :Salto de orden condicional STR_ORDER_SHARE :Compartir órdenes -STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden resaltada, o añadirla al final de la lista. Ctrl sobre estaciones ordena 'Carga completa cualquier carga', sobre puntos de ruta ordena 'sin paradas' y sobre depósitos ordena 'mantenimiento'. Ctrl o Compartir órdenes permite a este vehículo compartir órdenes con el vehículo seleccionado. Click sobre un vehículo copia las órdenes. Una órden de depósito desactiva el mantenimiento automático del vehículo +STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden resaltada, o añadirla al final de la lista. Ctrl sobre estaciones ordena 'Carga completa de cualquier carga', sobre puntos de ruta ordena 'sin paradas' y sobre depósitos ordena 'mantenimiento'. Ctrl o Compartir órdenes permite a este vehículo compartir órdenes con el vehículo seleccionado. Click sobre un vehículo copia las órdenes. Una órden de depósito desactiva el mantenimiento automático del vehículo STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Ver todos los vehículos con el mismo calendario @@ -4108,7 +4111,7 @@ STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Mensaje # Generic construction errors STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Fuera del borde del mapa STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Demasiado cerca del borde del mapa -STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}No hay suficiente dinero - se requiere {CURRENCY_LONG} +STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}No hay suficiente dinero - se necesita {CURRENCY_LONG} STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}Se requiere terreno llano STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Tierra inclinada en dirección errónea STR_ERROR_CAN_T_DO_THIS :{WHITE}No se puede hacer eso... From 4b637781162ecfac36d68a12161ccc07f81e82e4 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 3 Apr 2017 21:37:01 +0000 Subject: [PATCH 337/417] (svn r27843) -Change: (Yapf) Consider depot as destination before reversing path and applying penalty. --- src/pathfinder/yapf/yapf_costrail.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index 64cf963800..f8047955c3 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -403,6 +403,8 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th /* Penalty for reversing in a depot. */ assert(IsRailDepot(cur.tile)); segment_cost += Yapf().PfGetSettings().rail_depot_reverse_penalty; + + } else if (IsRailDepotTile(cur.tile)) { /* We will end in this pass (depot is possible target) */ end_segment_reason |= ESRB_DEPOT; From 95acc016bad47b009454ea26ab9bf2e3c0ff52f3 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 3 Apr 2017 21:53:51 +0000 Subject: [PATCH 338/417] (svn r27844) -Change: (Yapf) Treat max cost exceeded separately from path too long condition, as destination should not be considered in the former case. --- src/pathfinder/yapf/yapf_costrail.hpp | 5 ++++- src/pathfinder/yapf/yapf_type.hpp | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index f8047955c3..d9d89b12fa 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -479,7 +479,7 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th /* Finish if we already exceeded the maximum path cost (i.e. when * searching for the nearest depot). */ if (m_max_cost > 0 && (parent_cost + segment_entry_cost + segment_cost) > m_max_cost) { - end_segment_reason |= ESRB_PATH_TOO_LONG; + end_segment_reason |= ESRB_MAX_COST_EXCEEDED; } /* Move to the next tile/trackdir. */ @@ -555,6 +555,9 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th } // for (;;) + /* Don't consider path any further it if exceeded max_cost. */ + if (end_segment_reason & ESRB_MAX_COST_EXCEEDED) return false; + bool target_seen = false; if ((end_segment_reason & ESRB_POSSIBLE_TARGET) != ESRB_NONE) { /* Depot, station or waypoint. */ diff --git a/src/pathfinder/yapf/yapf_type.hpp b/src/pathfinder/yapf/yapf_type.hpp index 8d24eee5e2..b0d99d6602 100644 --- a/src/pathfinder/yapf/yapf_type.hpp +++ b/src/pathfinder/yapf/yapf_type.hpp @@ -19,6 +19,7 @@ enum EndSegmentReason { ESR_RAIL_TYPE, ///< the next tile has a different rail type than our tiles ESR_INFINITE_LOOP, ///< infinite loop detected ESR_SEGMENT_TOO_LONG, ///< the segment is too long (possible infinite loop) + ESR_MAX_COST_EXCEEDED, ///< maximum cost is exceeded ESR_CHOICE_FOLLOWS, ///< the next tile contains a choice (the track splits to more than one segments) ESR_DEPOT, ///< stop in the depot (could be a target next time) ESR_WAYPOINT, ///< waypoint encountered (could be a target next time) @@ -43,6 +44,7 @@ enum EndSegmentReasonBits { ESRB_RAIL_TYPE = 1 << ESR_RAIL_TYPE, ESRB_INFINITE_LOOP = 1 << ESR_INFINITE_LOOP, ESRB_SEGMENT_TOO_LONG = 1 << ESR_SEGMENT_TOO_LONG, + ESRB_MAX_COST_EXCEEDED = 1 << ESR_MAX_COST_EXCEEDED, ESRB_CHOICE_FOLLOWS = 1 << ESR_CHOICE_FOLLOWS, ESRB_DEPOT = 1 << ESR_DEPOT, ESRB_WAYPOINT = 1 << ESR_WAYPOINT, @@ -63,7 +65,7 @@ enum EndSegmentReasonBits { ESRB_CACHED_MASK = ESRB_DEAD_END | ESRB_RAIL_TYPE | ESRB_INFINITE_LOOP | ESRB_SEGMENT_TOO_LONG | ESRB_CHOICE_FOLLOWS | ESRB_DEPOT | ESRB_WAYPOINT | ESRB_STATION | ESRB_SAFE_TILE, /* Reasons to abort pathfinding in this direction. */ - ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED, + ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_MAX_COST_EXCEEDED | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED, }; DECLARE_ENUM_AS_BIT_SET(EndSegmentReasonBits) @@ -71,7 +73,7 @@ DECLARE_ENUM_AS_BIT_SET(EndSegmentReasonBits) inline CStrA ValueStr(EndSegmentReasonBits bits) { static const char * const end_segment_reason_names[] = { - "DEAD_END", "RAIL_TYPE", "INFINITE_LOOP", "SEGMENT_TOO_LONG", "CHOICE_FOLLOWS", + "DEAD_END", "RAIL_TYPE", "INFINITE_LOOP", "SEGMENT_TOO_LONG", "MAX_COST_EXCEEDED", "CHOICE_FOLLOWS", "DEPOT", "WAYPOINT", "STATION", "SAFE_TILE", "PATH_TOO_LONG", "FIRST_TWO_WAY_RED", "LOOK_AHEAD_END", "TARGET_REACHED" }; From df5923d7989d2efc7a7a7e1c400d25fca6aeac5d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 3 Apr 2017 22:02:28 +0000 Subject: [PATCH 339/417] (svn r27845) -Change: (Yapf) Use FindDepotData struct to simplify depot finding code and remove need to return fake path distance. (juanjo) --- src/pathfinder/yapf/yapf_rail.cpp | 35 ++++++++++++------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/src/pathfinder/yapf/yapf_rail.cpp b/src/pathfinder/yapf/yapf_rail.cpp index 5324e4fc87..dccee36860 100644 --- a/src/pathfinder/yapf/yapf_rail.cpp +++ b/src/pathfinder/yapf/yapf_rail.cpp @@ -223,7 +223,7 @@ public: return 't'; } - static bool stFindNearestDepotTwoWay(const Train *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_penalty, int reverse_penalty, TileIndex *depot_tile, bool *reversed) + static FindDepotData stFindNearestDepotTwoWay(const Train *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_penalty, int reverse_penalty) { Tpf pf1; /* @@ -236,16 +236,16 @@ public: * depot orders and you do not disable automatic servicing. */ if (max_penalty != 0) pf1.DisableCache(true); - bool result1 = pf1.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_penalty, reverse_penalty, depot_tile, reversed); + FindDepotData result1 = pf1.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_penalty, reverse_penalty); if (_debug_desync_level >= 2) { Tpf pf2; - TileIndex depot_tile2 = INVALID_TILE; - bool reversed2 = false; pf2.DisableCache(true); - bool result2 = pf2.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_penalty, reverse_penalty, &depot_tile2, &reversed2); - if (result1 != result2 || (result1 && (*depot_tile != depot_tile2 || *reversed != reversed2))) { - DEBUG(desync, 2, "CACHE ERROR: FindNearestDepotTwoWay() = [%s, %s]", result1 ? "T" : "F", result2 ? "T" : "F"); + FindDepotData result2 = pf2.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_penalty, reverse_penalty); + if (result1.tile != result2.tile || (result1.reverse != result2.reverse)) { + DEBUG(desync, 2, "CACHE ERROR: FindNearestDepotTwoWay() = [%s, %s]", + result1.tile != INVALID_TILE ? "T" : "F", + result2.tile != INVALID_TILE ? "T" : "F"); DumpState(pf1, pf2); } } @@ -253,7 +253,7 @@ public: return result1; } - inline bool FindNearestDepotTwoWay(const Train *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_penalty, int reverse_penalty, TileIndex *depot_tile, bool *reversed) + inline FindDepotData FindNearestDepotTwoWay(const Train *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_penalty, int reverse_penalty) { /* set origin and destination nodes */ Yapf().SetOrigin(t1, td1, t2, td2, reverse_penalty, true); @@ -261,13 +261,10 @@ public: Yapf().SetMaxCost(max_penalty); /* find the best path */ - bool bFound = Yapf().FindPath(v); - if (!bFound) return false; + if (!Yapf().FindPath(v)) return FindDepotData(); - /* some path found - * get found depot tile */ + /* Some path found. */ Node *n = Yapf().GetBestNode(); - *depot_tile = n->GetLastTile(); /* walk through the path back to the origin */ Node *pNode = n; @@ -277,9 +274,7 @@ public: /* if the origin node is our front vehicle tile/Trackdir then we didn't reverse * but we can also look at the cost (== 0 -> not reversed, == reverse_penalty -> reversed) */ - *reversed = (pNode->m_cost != 0); - - return true; + return FindDepotData(n->GetLastTile(), n->m_cost, pNode->m_cost != 0); } }; @@ -611,15 +606,13 @@ bool YapfTrainCheckReverse(const Train *v) FindDepotData YapfTrainFindNearestDepot(const Train *v, int max_penalty) { - FindDepotData fdd; - const Train *last_veh = v->Last(); PBSTileInfo origin = FollowTrainReservation(v); TileIndex last_tile = last_veh->tile; Trackdir td_rev = ReverseTrackdir(last_veh->GetVehicleTrackdir()); - typedef bool (*PfnFindNearestDepotTwoWay)(const Train*, TileIndex, Trackdir, TileIndex, Trackdir, int, int, TileIndex*, bool*); + typedef FindDepotData (*PfnFindNearestDepotTwoWay)(const Train*, TileIndex, Trackdir, TileIndex, Trackdir, int, int); PfnFindNearestDepotTwoWay pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail1::stFindNearestDepotTwoWay; /* check if non-default YAPF type needed */ @@ -627,9 +620,7 @@ FindDepotData YapfTrainFindNearestDepot(const Train *v, int max_penalty) pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail2::stFindNearestDepotTwoWay; // Trackdir, forbid 90-deg } - bool ret = pfnFindNearestDepotTwoWay(v, origin.tile, origin.trackdir, last_tile, td_rev, max_penalty, YAPF_INFINITE_PENALTY, &fdd.tile, &fdd.reverse); - fdd.best_length = ret ? max_penalty / 2 : UINT_MAX; // some fake distance or NOT_FOUND - return fdd; + return pfnFindNearestDepotTwoWay(v, origin.tile, origin.trackdir, last_tile, td_rev, max_penalty, YAPF_INFINITE_PENALTY); } bool YapfTrainFindNearestSafeTile(const Train *v, TileIndex tile, Trackdir td, bool override_railtype) From 2e52de3406f76acdba8b286557bc5cf66971120a Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 4 Apr 2017 00:00:43 +0000 Subject: [PATCH 340/417] (svn r27846) -Fix [FS#5926]: Infinite loop in pathfinder when checking safe waiting position from a waypoint. --- src/pathfinder/yapf/yapf_costrail.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index d9d89b12fa..22103987ad 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -418,9 +418,16 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th CFollowTrackRail ft(v); TileIndex t = cur.tile; Trackdir td = cur.td; + /* Arbitrary maximum tiles to follow to avoid infinite loops. */ + uint max_tiles = 20; while (ft.Follow(t, td)) { assert(t != ft.m_new_tile); t = ft.m_new_tile; + if (t == cur.tile || --max_tiles == 0) { + /* We looped back on ourself or found another loop, bail out. */ + td = INVALID_TRACKDIR; + break; + } if (KillFirstBit(ft.m_new_td_bits) != TRACKDIR_BIT_NONE) { /* We encountered a junction; it's going to be too complex to * handle this perfectly, so just bail out. There is no simple From 9ed6c2ebe13d05b34be631eb3e9502d30d45e9ec Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 4 Apr 2017 17:45:36 +0000 Subject: [PATCH 341/417] (svn r27847) -Update from Eints: german: 19 changes by planetmaker --- src/lang/german.txt | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/lang/german.txt b/src/lang/german.txt index f35e2eca9e..037b5096b1 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Aus STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scrollen mit linker Maustaste: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Scrolle die Karte, indem mit der linken Maustaste gezogen wird. Dies ist besonders sinnvoll, wenn ein Touchscreen zum Scrollen genutzt wird +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Fenster mit Rechtsklick schließen: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Schließt ein Fenster mittels Rechts-Klick. Schaltet Tooltip mit Rechts-Klick ab! STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Wähle das Interval zwischen automatischen Speicherungen @@ -1762,6 +1764,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Prüfe, STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Zeige KI- und Skripteinstellungen STR_INTRO_TOOLTIP_QUIT :{BLACK}OpenTTD beenden +STR_INTRO_BASESET :{BLACK}Dem momentan ausgewählten Basisgrafiken fehl{P 0 "t" "en"} {NUM} Sprite{P 0 "" s}. Bitte überprüfe, ob es Updates für die Basisgrafiken gibt. STR_INTRO_TRANSLATION :{BLACK}Dieser Übersetzung fehl{P 0 t en} {NUM} String{P "" s}. Bitte hilf, OpenTTD zu verbessern und melde Dich als Übersetzer an. Siehe readme.txt für weitere Details. # Quit window @@ -2590,6 +2593,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Name des STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Angenommene Frachtarten: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Gleistyp: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Schiene: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Straße: {LTBLUE}{VELOCITY} @@ -2602,7 +2606,7 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Ackerland STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Schneebedecktes Land STR_LAI_CLEAR_DESCRIPTION_DESERT :Wüste -STR_LAI_RAIL_DESCRIPTION_TRACK :Schienen: Gleise +STR_LAI_RAIL_DESCRIPTION_TRACK :Schienen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Schienen: Gleise mit Blocksignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Schienen: Gleise mit Vorsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Schienen: Gleise mit Ausfahrtsignal @@ -2615,7 +2619,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Schienen: Gleis STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Schienen: Gleise mit Block- und Pfadsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Schienen: Gleise mit Blocksignal und einseitigem Pfadsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Schienen: Gleise mit Vor- und Ausfahrtsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schienen: Gleise mit Vor- und Kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schienen mit Vor- und Kombinationssignalen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Schienen: Gleise mit Vor- und Pfadsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Schienen: Gleise mit Vorsignal und einseitigem Pfadsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Schienen: Gleise mit Ausfahrts- und Kombinationssignal @@ -3293,6 +3297,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Benötig STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Benötigt: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}benötigt +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}wartend +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING} @@ -3361,6 +3370,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Liste leeren STR_GROUP_RENAME_CAPTION :{BLACK}Gruppe umbenennen +STR_GROUP_PROFIT_THIS_YEAR :Gewinn in diesem Jahr: +STR_GROUP_PROFIT_LAST_YEAR :Gewinn im letzten Jahr: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Neue Schienenfahrzeuge @@ -3527,6 +3539,9 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=w}Magnetschw STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschwindigk.: {VELOCITY} Leistung: {POWER}{}Betriebskosten: {CURRENCY_LONG} pro Jahr{}Kapazität: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preis: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Max. Geschwindigkeit: {VELOCITY} Leistung: {POWER} Max. Zugkraft: {6:FORCE}{}Betriebskosten: {4:CURRENCY_LONG}/yr{}Kapazität: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING} Reichweite: {COMMA} Felder{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING} @@ -3648,6 +3663,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} Jahr{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} Jahr{P "" e} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Flugzeugtyp: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Flugzeugtyp: {LTBLUE}{STRING} {BLACK}Reichweite: {LTBLUE}{COMMA} Felder STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Max. Zugkraft: {LTBLUE}{FORCE} From 3b6fa4e33fa6d74e9b8e96d537effb612c9cef89 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 6 Apr 2017 17:45:37 +0000 Subject: [PATCH 342/417] (svn r27848) -Update from Eints: korean: 43 changes by telk5093 spanish: 6 changes by SilverSurferZzZ --- src/lang/korean.txt | 84 +++++++++++++++++++++++--------------------- src/lang/spanish.txt | 9 +++-- 2 files changed, 49 insertions(+), 44 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index d912e27de9..7172fc15d8 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -316,7 +316,7 @@ STR_SORT_BY_RATING :등급 # Tooltips for the main toolbar STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}게임을 일시 정지합니다. STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}게임 시간을 빠르게 가도록 합니다. -STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}옵션을 엽니다. +STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}게임 기본 설정을 엽니다. STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}게임을 저장하거나, 그만두거나, 게임을 종료합니다 STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}지도, 외부 화면, 팻말 목록을 보여줍니다. STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}도시 메뉴를 표시합니다. @@ -372,7 +372,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :게임 종료 ############ range for SE file menu starts ############ range for settings menu starts -STR_SETTINGS_MENU_GAME_OPTIONS :게임 옵션 +STR_SETTINGS_MENU_GAME_OPTIONS :게임 기본 설정 STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :설정 STR_SETTINGS_MENU_SCRIPT_SETTINGS :인공지능/게임 스크립트 설정 STR_SETTINGS_MENU_NEWGRF_SETTINGS :NewGRF 설정 @@ -715,7 +715,7 @@ STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}지도 STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}수송 기반시설과 경로를 지도에 표시합니다. STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}초목을 지도에 표시합니다. STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}부지의 소유주를 지도에 표시합니다. -STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}산업 시설 타입 표시를 전환하려면 클릭하십시오. CTRL+클릭하면 선택한 산업시설을 제외한 모든 종류를 비활성화합니다. 다시 CTRL+클릭하면 모든 산업시설이 활성화됩니다. +STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}산업시설 종류 표시를 전환하려면 클릭하십시오. CTRL+클릭하면 선택한 산업시설을 제외한 모든 종류를 비활성화합니다. 다시 CTRL+클릭하면 모든 산업시설이 활성화됩니다. STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}회사 속성의 표시를 전환하려면 회사를 클릭하십시오. CTRL+클릭으로 선택한 회사를 제외한 모든 회사를 비활성화하십시오. 다시 CTRL+클릭하면 다시 모든 회사가 활성화됩니다. STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}해당 화물의 흐름도를 표시하려면 클릭하십시오. CTRL+클릭하면 선택한 화물만 표시합니다. @@ -1155,11 +1155,11 @@ STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :보조금을 STR_CONFIG_SETTING_CONSTRUCTION_COSTS :건설 가격: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :건설 및 구매 가격의 수준을 설정하십시오. STR_CONFIG_SETTING_RECESSIONS :경제 불황: {STRING} -STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :이 옵션을 켜면 몇 년마다 경제 불황이 발생할 수 있습니다. 불황 기간 동안에는 모든 화물의 생산량이 확연히 줄어듭니다. (불황이 끝나면 이전 수준으로 회복) +STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :이 설정을 켜면, 몇 년마다 경제 불황이 발생할 수 있습니다. 불황 기간 동안에는 모든 화물의 생산량이 확연하게 줄어듭니다. (불황이 끝나면 이전 수준으로 회복됩니다.) STR_CONFIG_SETTING_TRAIN_REVERSING :열차가 역 내에서 회차하는 것을 금지: {STRING} -STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :이 옵션을 켜면 회차했을 때 다음 목적지까지 가는 더 짧은 경로가 있어도 열차가 비두단식 역에서 회차할 수 없게 됩니다. +STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :이 설정을 켜면. 열차가 뒤로 돌면 다음 목적지까지 더 짧은 경로로 갈 수 있다고 해도 열차가 비두단식 역에서 뒤로 돌 수 없게 됩니다. STR_CONFIG_SETTING_DISASTERS :재앙: {STRING} -STR_CONFIG_SETTING_DISASTERS_HELPTEXT :블록이나 차량, 기반시설을 간혹 파괴할 수도 있는 재앙 옵션을 켜거나 끕니다. +STR_CONFIG_SETTING_DISASTERS_HELPTEXT :일정 구역이나 차량, 기반시설을 간혹 파괴할 수도 있는 재앙을 켜거나 끕니다. STR_CONFIG_SETTING_CITY_APPROVAL :지역 개발에 대한 도시의 태도: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :회사가 유발하는 소음과 환경 파괴가 회사에 대한 도시의 평가치와 향후 해당 지역에서의 건설 행동에 얼마나 영향을 미칠지 선택하십시오. @@ -1187,7 +1187,7 @@ STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :경사도 설정 (자동차/전차용): {STRING} STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :자동차/전차에 적용시킬 경사도를 설정합니다. 값이 높을수록 차량이 언덕을 오를 때 더 힘이 듭니다. STR_CONFIG_SETTING_FORBID_90_DEG :열차/선박의 90도 회전을 금지함: {STRING} -STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :─ 모양의 수평 선로와 │ 모양의 수직 선로가 바로 이어져 만날 때 90도 회전이 발생합니다. 이 옵션을 켜면 열차가 칸 가장자리를 통과할 때 90도로 회전할 수 있도록 허용합니다. 이 옵션은 선박의 회전 반경에도 적용됩니다. +STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :─ 모양의 수평 선로와 │ 모양의 수직 선로가 바로 이어져 만날 때 90도 회전이 발생합니다. 이 설정을 켜면, 열차가 칸 가장자리를 통과할 때 90도로 회전할 수 있도록 허용합니다. 이 설정은 선박의 회전 반경에도 적용됩니다. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :역이 같은 방향으로 붙어있지 않아도 같은 이름의 역 짓기 허용: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :이미 존재하는 역을 직접 건드리지 않고도 역의 일부분을 새로 추가/확장하는 것을 허용합니다. 인접한 칸에 기존과 다른 새로운 역을 놓을 때에는 CTRL+클릭해야 합니다. STR_CONFIG_SETTING_INFLATION :인플레이션(화폐 가치 하락) 사용: {STRING} @@ -1204,16 +1204,16 @@ STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :건설 불가 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :건설 가능 (위치 선택 가능, 7배 비용) STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :투자 (무작위 위치에 건설) STR_CONFIG_SETTING_INDUSTRY_PLATFORM :산업시설 주위의 평지: {STRING} -STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :산업시설 주변에 도로나 선로를 설치할 수 있는 평지 넓이를 설정합니다. 이 옵션을 통해 산업시설 주변에 선로나 역 등을 건설할 공간을 마련할 수 있습니다. +STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :산업시설 주변에 도로나 선로를 설치할 수 있는 평지 넓이를 설정합니다. 이 설정을 통해 산업시설 주변에 선로나 역 등을 건설할 공간을 마련할 수 있습니다. STR_CONFIG_SETTING_MULTIPINDTOWN :한 도시에 비슷한 산업시설을 여러 개 건설할 수 있게 허용: {STRING} -STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :일반적으로, 도시에는 각 종류의 산업시설이 하나까지만 있을 수 있습니다. 이 옵션을 설정하면 한 도시 안에 같은 종류의 산업 시설을 여러 개 설치할 수 있게 됩니다. +STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :일반적으로 도시에는 각 종류의 산업시설이 하나까지만 있을 수 있습니다. 이 설정을 켜면, 한 도시 안에 같은 종류의 산업시설을 여러 개 설치할 수 있게 됩니다. STR_CONFIG_SETTING_SIGNALSIDE :신호기 보이기: {STRING} STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT :선로의 어느 쪽에 신호기를 설치할 지 선택합니다. STR_CONFIG_SETTING_SIGNALSIDE_LEFT :왼쪽에 STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :진행 방향에 STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :오른쪽에 STR_CONFIG_SETTING_SHOWFINANCES :연말에 자동으로 재정 창을 띄움: {STRING} -STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :이 옵션을 켜면 회사의 재정 상태를 확인하기 쉽도록 매년 말에 재정 창이 자동으로 뜹니다. +STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :이 설정을 켜면. 회사의 재정 상태를 확인하기 쉽도록 매년 말에 재정 창이 자동으로 뜹니다. STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :새로 지정하는 경로는 기본적으로 '직행'으로 처리: {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :일반적으로 차량은 경로 상에 있는 모든 역에 정차하게 되어있습니다. 이 옵션을 켜면 차량이 마지막 목적지까지 정차없이 모든 역을 통과할 것입니다. 이 옵션은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다. STR_CONFIG_SETTING_STOP_LOCATION :새로 지정하는 역 정차 경로는 기본적으로 역의 {STRING}에 정지하도록 설정 @@ -1222,7 +1222,7 @@ STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :가까운쪽 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :중간 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :먼쪽 STR_CONFIG_SETTING_AUTOSCROLL :가장자리에 마우스를 가져가면 화면 움직이기: {STRING} -STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :이 옵션을 켜면, 마우스를 게임 및 외부 화면 창의 가장자리에 가까이 가져가면 화면을 이동시킵니다. +STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :이 설정을 켜면, 마우스를 게임 및 외부 화면 창의 가장자리에 가까이 가져가면 화면을 이동시킵니다. STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :사용 안 함 STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :전체 화면에서 주 게임 화면만 STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :주 게임 화면만 @@ -1253,24 +1253,24 @@ STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :경쟁자 소 STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :다른 회사 소유의 도로 위에 버스 정류장을 건설하는 것을 허용합니다. STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}이미 차량이 존재하면 이 설정을 변경하실 수 없습니다. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :기반시설 유지비: {STRING} -STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :이 옵션을 활성화하면 기반시설 유지비가 발생합니다. 유지비는 교통망의 규모에 비례하며 대형 회사는 소형 회사보다 많은 유지비가 들어갑니다. +STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :이 설정을 켜면, 기반시설 유지비가 발생합니다. 유지비는 교통망의 규모에 비례하며 대형 회사는 소형 회사보다 많은 유지비가 들어갑니다. STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :옛날 공항을 사라지지 않고 계속 만들 수 있게 함: {STRING} -STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :이 옵션을 켜면 소형 공항을 포함한 모든 공항 종류를 도입 이후 계속 사용할 수 있게 됩니다. +STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :이 설정을 켜면, 소형 공항을 포함한 모든 공항 종류를 도입 이후에 계속 사용할 수 있게 됩니다. STR_CONFIG_SETTING_WARN_LOST_VEHICLE :차량이 길을 잃으면 경고: {STRING} STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :다음 목적지로 가기 위한 경로를 찾을 수 없는 차량이 있으면 뉴스 메시지로 알려줍니다. STR_CONFIG_SETTING_ORDER_REVIEW :차량의 경로를 검사: {STRING} -STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :이 옵션을 켜면 차량의 경로를 주기적으로 검사하여 문제가 발견되면 뉴스 메시지로 알려줍니다. +STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :이 설정을 켜면, 차량의 경로를 주기적으로 검사하여 문제가 발견되면 뉴스 메시지로 알려줍니다. STR_CONFIG_SETTING_ORDER_REVIEW_OFF :검사하지 않음 STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :정지한 차량을 제외하고 검사 STR_CONFIG_SETTING_ORDER_REVIEW_ON :모든 차량을 검사 STR_CONFIG_SETTING_WARN_INCOME_LESS :차량의 수입이 적자일때 경고하기: {STRING} -STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :이 옵션을 켜면 지난 해에 수익이 없는 차량이 있으면 뉴스 메시지로 알려줍니다. +STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :이 설정을 켜면, 지난 해에 수익이 없는 차량이 있으면 뉴스 메시지로 알려줍니다. STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :옛날 차량을 사라지지 않고 계속 만들 수 있게 함: {STRING} -STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :이 옵션을 켜면 오래된 차량 모델을 포함하여 모든 차량 모델을 도입 이후 계속 사용할 수 있게 됩니다. +STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :이 설정을 켜면, 오래된 차량 모델을 포함하여 모든 차량 모델을 도입 이후에 계속 사용할 수 있게 됩니다. STR_CONFIG_SETTING_AUTORENEW_VEHICLE :차량이 낡으면 차량을 자동으로 교체: {STRING} -STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :이 옵션을 켜면 제한 수명에 다다른 차량이 교체 조건을 만족할 경우 자동으로 차량을 교체할 수 있게 됩니다. +STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :이 설정을 켜면, 제한 수명에 다다른 차량이 교체 조건을 만족할 경우 자동으로 차량을 교체할 수 있게 됩니다. STR_CONFIG_SETTING_AUTORENEW_MONTHS :차량이 최대 수명의 {STRING}이면 자동 교체 STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :자동 교체가 필요한 차량의 상대적인 연령을 설정합니다. STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA}개월 전 @@ -1310,7 +1310,7 @@ STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :부드럽게 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :거칠게 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :매우 거칠게 STR_CONFIG_SETTING_VARIETY :산세 험준도: {STRING} -STR_CONFIG_SETTING_VARIETY_HELPTEXT :(천지창조 전용) 지도가 산지와 평지를 모두 갖도록 만들 것인 지를 결정합니다. 이 옵션은 지형을 더 평평하게 만드므로, 다른 옵션은 '산'으로 설정하시기 바랍니다. +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(천지창조 전용) 지도가 산지와 평지를 모두 갖도록 만들 것인 지를 결정합니다. 이 설정은 지형을 더 평평하게 만드므로, 다른 설정은 '산'으로 설정하시기 바랍니다. STR_CONFIG_SETTING_RIVER_AMOUNT :강의 양: {STRING} STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :강을 얼마나 만들지 선택하십시오. STR_CONFIG_SETTING_TREE_PLACER :나무 배치 알고리즘: {STRING} @@ -1342,7 +1342,7 @@ STR_CONFIG_SETTING_REVERSE_SCROLLING :스크롤 방 STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :마우스 오른쪽 클릭으로 지도를 스크롤하는 방법을 선택합니다. 옵션을 끄면 마우스 방향과 화면의 스크롤 방향이 같아집니다. 옵션을 켜면 마우스 방향과 화면의 스크롤 방향이 반대가 됩니다. STR_CONFIG_SETTING_SMOOTH_SCROLLING :게임 화면을 이동시킬 때 부드럽게 이동: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :소형 지도를 클릭하여 특정 지역으로 스크롤되거나 지도 상의 특정 장소로 이동하는 경우에 주 화면이 어떻게 스크롤 되는지를 설정합니다. 이 옵션을 켜면 화면이 목표지점까지 부드럽게 이동하며, 옵션을 끄면 목표 화면으로 곧바로 넘어가게 됩니다. -STR_CONFIG_SETTING_MEASURE_TOOLTIP :건설도구 사용시 거리 툴팁 표시: {STRING} +STR_CONFIG_SETTING_MEASURE_TOOLTIP :건설도구 사용시 거리 도움말 표시: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :철도/도로 등의 기반시설을 건설할 때 거리와 높이 차이 등을 표시합니다. STR_CONFIG_SETTING_LIVERIES :차량 종류에 따라 회사의 색상을 구분하여 표시: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :회사 고유 색상을 따르지 않고 차량 종류에 따라 다른 차량 색상을 사용하는 것을 허용합니다. @@ -1350,7 +1350,7 @@ STR_CONFIG_SETTING_LIVERIES_NONE :없음 STR_CONFIG_SETTING_LIVERIES_OWN :내 회사 STR_CONFIG_SETTING_LIVERIES_ALL :모든 회사 STR_CONFIG_SETTING_PREFER_TEAMCHAT :엔터(ENTER) 키로 같은 팀끼리 채팅: {STRING} -STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :이 옵션을 켜면 멀티 플레이시 같은 회사 간의 채팅을 키 대신 키로 할 수 있게 됩니다. +STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :이 설정을 켜면, 멀티 플레이시 같은 회사 간의 채팅을 키 대신 키로 할 수 있게 됩니다. STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :마우스 휠 동작: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :상하좌우로 회전 가능한 마우스 휠(2차원 마우스휠)로 지도를 스크롤할 수 있게 허용합니다. STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :화면 확대/축소 @@ -1359,7 +1359,7 @@ STR_CONFIG_SETTING_SCROLLWHEEL_OFF :끄기 STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :지도 스크롤 속도: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :마우스 휠 스크롤의 민감도를 설정합니다. STR_CONFIG_SETTING_OSK_ACTIVATION :화상 키보드: {STRING} -STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :마우스와 같은 장치만을 이용하여 입력 칸에 글자를 입력하기 위해 화상 키보드를 어떤 방식으로 띄울지 선택하십시오. 이 옵션은 스마트폰 등 실제 키보드가 없는 소형 기기를 사용하는 분을 위한 기능입니다. +STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :마우스와 같은 장치만을 이용하여 입력 칸에 글자를 입력하기 위해 화상 키보드를 어떤 방식으로 띄울지 선택합니다. 이 설정은 실제 키보드가 없는 소형 기기를 사용하는 분을 위한 기능입니다. STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :사용 안 함 STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :더블 클릭 STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :한 번 클릭 (커서가 활성화되어 있을 때) @@ -1372,7 +1372,9 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :CTRL + 클릭 STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :끄기 STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :마우스 왼쪽 버튼으로 스크롤: {STRING} -STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :왼쪽 마우스 버튼을 드래그하여 지도를 스크롤 할 수 있도록 합니다. 터치 스크린 환경에서 이 옵션을 켜면 매우 유용합니다. +STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :왼쪽 마우스 버튼을 드래그하여 지도를 스크롤 할 수 있도록 합니다. 터치 스크린 환경에서 이 설정을 켜면 매우 유용합니다. +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :오른쪽 클릭으로 창 닫기: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :창 내부를 오른쪽 클릭하여 창을 닫습니다. 오른쪽 클릭으로 도움말 표시 설정을 해제해야 합니다! STR_CONFIG_SETTING_AUTOSAVE :자동 저장: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :게임을 자동으로 저장할 간격을 선택하십시오. @@ -1384,7 +1386,7 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :짧은 (2012.01 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :국제표준규격 (2012-01-01) STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :게임 시작 시 자동으로 일시정지: {STRING} -STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :이 옵션을 켜면, 새로은 게임을 시작할 때 지도를 더욱 살펴볼 수 있도록 게임을 자동으로 일시정시시킵니다. +STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :이 설정을 켜면, 새로은 게임을 시작할 때 지도를 더욱 자세히 살펴볼 수 있도록 게임을 자동으로 일시정시합니다. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :일시 정지 상태에서 가능한 행동: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :게임이 일시 정지된 동안에 할 수 있는 행동을 선택합니다. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :아무 것도 못 함 @@ -1431,7 +1433,7 @@ STR_CONFIG_SETTING_SOUND_AMBIENT :주변 소리: STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :주변 풍경이나 산업시설, 도시의 효과음을 재생합니다. STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :사용 가능한 차량이 없을 경우 해당 기반시설 비활성화: {STRING} -STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :이 옵션을 켜면, 불필요하게 시간과 돈을 낭비하지 않도록 차량이 존재하지 않는 기반시설을 설치할 수 없게 됩니다. +STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :이 설정을 켜면, 불필요하게 시간과 돈을 낭비하지 않도록 사용 가능한 차량이 없는 기반시설은 설치할 수 없게 됩니다. STR_CONFIG_SETTING_MAX_TRAINS :회사당 최대 열차 수: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :한 회사가 소유할 수 있는 열차의 최대 수를 제한합니다. STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :회사당 최대 자동차/전차 수: {STRING} @@ -1442,13 +1444,13 @@ STR_CONFIG_SETTING_MAX_SHIPS :회사당 최 STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :한 회사가 소유할 수 있는 선박의 최대 수를 제한합니다. STR_CONFIG_SETTING_AI_BUILDS_TRAINS :컴퓨터의 철도 사용을 허가하지 않음: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :이 옵션을 켜면 컴퓨터 플레이어가 철도를 사용할 수 없게 됩니다. +STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :이 설정을 켜면, 컴퓨터 플레이어가 철도를 사용할 수 없게 됩니다. STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :컴퓨터의 자동차/전차 사용을 허가하지 않음: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :이 옵션을 켜면 컴퓨터 플레이어가 자동차나 전차를 사용할 수 없게 됩니다. +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :이 설정을 켜면, 컴퓨터 플레이어가 자동차나 전차를 사용할 수 없게 됩니다. STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :컴퓨터의 항공기 사용을 허가하지 않음: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :이 옵션을 켜면 컴퓨터 플레이어가 항공기를 사용할 수 없게 됩니다. +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :이 설정을 켜면, 컴퓨터 플레이어가 항공기를 사용할 수 없게 됩니다. STR_CONFIG_SETTING_AI_BUILDS_SHIPS :컴퓨터의 선박 사용을 허가하지 않음: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :이 옵션을 켜면 컴퓨터 플레이어가 선박을 사용할 수 없게 됩니다. +STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :이 설정을 켜면, 컴퓨터 플레이어가 선박을 사용할 수 없게 됩니다. STR_CONFIG_SETTING_AI_PROFILE :기본 설정 난이도: {STRING} STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :무작위 인공지능이 사용할 난이도 설정이나, 인공지능 또는 게임 스크립트를 추가할 때의 난이도 초기값을 고르십시오. @@ -1474,11 +1476,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :항공기에 STR_CONFIG_SETTING_SERVINT_SHIPS :선박에 대한 기본 점검 기준: {STRING} STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :선박에 따로 점검 기간이 설정되어있지 않은 경우에 사용할 기본 점검 기간을 설정합니다. STR_CONFIG_SETTING_NOSERVICE :차량 고장 설정이 비활성화된 경우 정비하지 않음: {STRING} -STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :'차량고장'이 비활성화되었을 때 이 옵션을 켜면, 차량 정비 설정을 무시합니다. +STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :이 설정을 켜면, 차량이 고장나지 않도록 설정되어 있는 경우 차량이 정비를 하러 가지 않습니다. STR_CONFIG_SETTING_WAGONSPEEDLIMITS :화물차 속력 제한 적용: {STRING} -STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :이 옵션을 켜면 화물차의 속력 제한값을 적용하여 열차의 최대 속력을 감소시킵니다. +STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :이 설정을 켜면, 화물차의 속력 제한값에 따라 열차의 최대 속력을 제한합니다. STR_CONFIG_SETTING_DISABLE_ELRAILS :전기 철도를 사용하지 않음: {STRING} -STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :이 옵션을 켜면 전기 기관차가 일반 철도에서도 달릴 수 있도록 요구사항을 제거합니다. +STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :이 설정을 켜면, 전기 기관차가 일반 철도에서도 달릴 수 있도록 만듭니다. STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :내 회사의 첫 차량 도착: {STRING} STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :나의 새 역사에 처음으로 차량이 도착하면 메시지로 알려줍니다. @@ -1497,7 +1499,7 @@ STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :거시적인 STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :내 회사에 의한 산업시설의 생산량 변동: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :내 회사가 수송하는 산업시설의 생산량이 변하면 소식으로 알려줍니다. STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :경쟁사에 의한 산업시설의 생산량 변동: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :경쟁사가 수송하고 있는 산업 시설의 생산량이 변하면 메시지로 알려줍니다. +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :경쟁사가 수송하고 있는 산업시설의 생산량이 변하면 메시지로 알려줍니다. STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :다른 산업 생산물 변화: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :아무도 수송하지 않는 산업시설의 생산량이 변하면 소식으로 알려줍니다. STR_CONFIG_SETTING_NEWS_ADVICE :내 회사의 차량에 관한 권고 / 정보: {STRING} @@ -1518,21 +1520,21 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :전체 메시 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :컬러로 된 뉴스가 시작되는 해: {STRING}년 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :신문이 컬러로 나오게 되는 연도를 설정합니다. 이 연도 이전까지는 신문이 흑백으로 나옵니다. STR_CONFIG_SETTING_STARTING_YEAR :시작 연도: {STRING} -STR_CONFIG_SETTING_SMOOTH_ECONOMY :부드러운 경제(더욱 작은 변화) 옵션 사용: {STRING} -STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :이 옵션을 활성화하면 1차 산업시설의 생산량이 좁은 폭으로 자주 변하게 됩니다. NewGRF로 추가한 산업시설에는 적용되지 않습니다. +STR_CONFIG_SETTING_SMOOTH_ECONOMY :부드러운 경제 변화 사용 (자주, 조금씩 변화): {STRING} +STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :이 설정을 켜면, 1차 산업시설의 생산량이 소량으로 자주 변하게 됩니다. NewGRF로 추가한 산업시설에는 적용되지 않습니다. STR_CONFIG_SETTING_ALLOW_SHARES :다른 회사의 지분을 사는 것을 허용: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :이 옵션을 켜면, 회사의 지분을 거래할 수 있게 됩니다. 회사의 지분을 거래하려면 해당 회사가 어느 정도 오래되어야 합니다. +STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :이 설정을 켜면, 회사의 지분을 거래할 수 있게 됩니다. 회사의 지분을 거래하려면 해당 회사가 어느 정도 오래되어야 합니다. STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :환승시 벌어들이는 중간 수익의 비율: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :더 많은 수익을 내기 위해, 수송 관계상 중간 구간에게 주어진 수익의 비율을 설정합니다. STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :신호기를 드래그로 설치하는 경우: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :신호기를 드래그할 때, 다음 장애물(신호기, 분기점 등)을 만날 때까지 신호기가 설치될 간격을 설정합니다. STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA}칸 간격으로 설치 STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :드래그할 때, 신호기 사이의 거리를 계속 고정: {STRING} -STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :신호기를 CTRL+드래그 하여 설치할 때의 행동을 선택합니다. 이 옵션을 끄면, 신호기가 없는 긴 폐색을 만들지 않기 위해 터널이나 다리 주변에 먼저 신호기가 설치될 것입니다. 이 옵션을 켜면, 신호기는 터널/다리와 상관없이 매 n개의 칸마다 설치될 것입니다. +STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :신호기를 CTRL+드래그 하여 설치할 때의 행동을 선택합니다. 이 설정을 끄면, 신호기가 없는 긴 폐색을 만들지 않기 위해 터널이나 다리 주변에 먼저 신호기가 설치될 것입니다. 이 설정을 켜면, 신호기는 터널/다리와 상관없이 매 n개의 칸마다 설치될 것입니다. STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :전자식 신호기의 사용: {STRING}년 이후에 STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :전자식 신호기를 사용할 수 있는 연도를 설정합니다. 이 이전에는 구식 신호기만 사용 가능합니다. (두 신호기는 기능적으로는 동일하고 모습만 다릅니다.) STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :신호기 설치시 신호기 선택 창을 띄움: {STRING} -STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :설치할 신호기 종류를 고를 수 있는 신호기 선택 창을 표시합니다. 이 옵션을 끄면 선택 창 없이 CTRL+클릭 만으로 신호기의 종류를 바꿔야 합니다. +STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :설치할 신호기 종류를 고를 수 있는 신호기 선택 창을 표시합니다. 이 설정을 끄면, 신호기 선택 창 없이 CTRL+클릭 만으로 신호기의 종류를 바꿔야 합니다. STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :기본적으로 만들 신호기 종류: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :기본으로 설치할 신호기의 종류를 선택합니다. STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :일반 신호기 @@ -1552,11 +1554,11 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :2x2 칸 STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3 칸 STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :무작위 STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :도시 스스로의 도로 건설 허용: {STRING} -STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :도시가 성장하기 위해 도로를 건설할 수 있도록 허용합니다. 도시 당국이 스스로 성장하지 못하도록 하려면 이 옵션을 끄십시오. +STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :도시가 성장하기 위해 도로를 건설할 수 있도록 허용합니다. 도시 당국이 스스로 도로를 만들지 못하도록 하려면 이 설정을 끄십시오. STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :도시가 회사 소유의 선로에 건널목을 만드는 것을 허용: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :도시가 회사 소유의 선로에 건널목을 건설할 수 있도록 허용합니다. STR_CONFIG_SETTING_NOISE_LEVEL :도시가 공항에서 나오는 소음을 제한하도록 함: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :이 옵션을 끄면, 한 도시에는 공항을 2개까지 지을 수 있습니다. 이 옵션을 켜면, 한 도시에 지을 수 있는 공항의 수는 도시가 허용 가능한 소음 기준에 따라 달라집니다. 소음 기준은 도시 인구, 공항의 크기와 거리에 따라 다릅니다. +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :이 설정을 끄면, 한 도시에는 공항을 2개까지 지을 수 있습니다. 이 설정을 켜면, 한 도시에 지을 수 있는 공항의 수는 도시가 허용 가능한 소음 기준에 따라 달라집니다. 소음 기준은 도시 인구, 공항의 크기와 거리에 따라 다릅니다. STR_CONFIG_SETTING_TOWN_FOUNDING :게임 도중에 도시 건설: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :플레이어가 게임 중에 새로운 도시를 설립하는 것을 허용합니다. STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :금지 @@ -1564,7 +1566,7 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :허용 STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :허용, 도시 구조 선택 가능 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :게임 진행 중에 나무가 자동적으로 번식: {STRING} -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :게임 중에 나무가 자동적으로 번식하는지 여부를 조절합니다. 이 옵션은 열대 우림의 벌목소처럼 나무의 성장에 의존하는 산업 시설에 영향을 끼칠 수 있습니다. +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :게임 중에 나무가 자동적으로 번식하는지 여부를 조절합니다. 이 설정을 조정하면, 아열대 기후의 벌목소처럼 나무의 성장에 의존하는 산업시설에 영향을 끼칠 수 있습니다. STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :자라지 않음 {RED}(제재소에 의해 벌목될 수 있음) STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :열대 우림 지역에서만 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :어디서나 @@ -2267,7 +2269,7 @@ STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}예, 그 STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}아니요, OpenTTD를 종료합니다. # Transparency settings window -STR_TRANSPARENCY_CAPTION :{WHITE}투명 옵션 +STR_TRANSPARENCY_CAPTION :{WHITE}투명 설정 STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}역명판 투명 전환. 고정하려면 CTRL+클릭하세요. STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}나무 투명 전환. 고정하려면 CTRL+클릭하세요. STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}집 투명 전환. 고정하려면 CTRL+클릭하세요. diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 60394841b8..866df1583d 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -286,7 +286,7 @@ STR_SORT_BY_TYPE :Tipo STR_SORT_BY_TRANSPORTED :Transportado STR_SORT_BY_NUMBER :Número STR_SORT_BY_PROFIT_LAST_YEAR :Beneficio año pasado -STR_SORT_BY_PROFIT_THIS_YEAR :Beneficio año actual +STR_SORT_BY_PROFIT_THIS_YEAR :Beneficio este año STR_SORT_BY_AGE :Edad STR_SORT_BY_RELIABILITY :Fiabilidad STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Capacidad por tipo de carga @@ -3316,7 +3316,7 @@ STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehícul STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Barcos - Click en barco para información STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Aeronave - Click en la aeronave para información -STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Beneficio este año: {CURRENCY_LONG} (año anterior: {CURRENCY_LONG}) +STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Beneficio este año: {CURRENCY_LONG} (último año: {CURRENCY_LONG}) STR_VEHICLE_LIST_AVAILABLE_TRAINS :Trenes disponibles STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Vehículos de carretera disponibles @@ -3364,6 +3364,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Renombrar un grupo +STR_GROUP_PROFIT_THIS_YEAR :Beneficio este año: +STR_GROUP_PROFIT_LAST_YEAR :Beneficio del último año: +STR_GROUP_OCCUPANCY :Uso actual: STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window @@ -3656,7 +3659,7 @@ STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocida STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE} -STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Beneficios este año: {LTBLUE}{CURRENCY_LONG} (último año: {CURRENCY_LONG}) +STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Beneficio este año: {LTBLUE}{CURRENCY_LONG} (último año: {CURRENCY_LONG}) STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Fiabilidad: {LTBLUE}{COMMA}% {BLACK}Averías desde el último mantenimiento: {LTBLUE}{COMMA} STR_VEHICLE_INFO_BUILT_VALUE :{LTBLUE}{ENGINE} {BLACK}Construido: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY_LONG} From c44b3db7a3c1e2c8026d67eb755f3afe2b7a26cd Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 8 Apr 2017 17:45:39 +0000 Subject: [PATCH 343/417] (svn r27849) -Update from Eints: korean: 4 changes by telk5093 --- src/lang/korean.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 7172fc15d8..cfd00d266b 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1215,9 +1215,9 @@ STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :오른쪽에 STR_CONFIG_SETTING_SHOWFINANCES :연말에 자동으로 재정 창을 띄움: {STRING} STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :이 설정을 켜면. 회사의 재정 상태를 확인하기 쉽도록 매년 말에 재정 창이 자동으로 뜹니다. STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :새로 지정하는 경로는 기본적으로 '직행'으로 처리: {STRING} -STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :일반적으로 차량은 경로 상에 있는 모든 역에 정차하게 되어있습니다. 이 옵션을 켜면 차량이 마지막 목적지까지 정차없이 모든 역을 통과할 것입니다. 이 옵션은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다. +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :일반적으로 차량은 경로 상에 있는 모든 역에 정차하게 되어있습니다. 이 설정을 켜면, 차량이 마지막 목적지까지 정차없이 모든 역을 통과할 것입니다. 이 설정은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다. STR_CONFIG_SETTING_STOP_LOCATION :새로 지정하는 역 정차 경로는 기본적으로 역의 {STRING}에 정지하도록 설정 -STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :열차가 기본적으로 정거장의 어느 위치에 정차할 것인지를 설정합니다. '가까운 쪽'은 역에 진입하는 곳과 가까운 곳에, '중간'은 역 중앙에, '먼쪽'은 진입하는 곳과 먼 곳에 정차합니다. 이 옵션은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다. +STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :열차가 기본적으로 정거장의 어느 위치에 정차할 것인지를 설정합니다. '가까운 쪽'은 역에 진입하는 곳과 가까운 곳에, '중간'은 역 중앙에, '먼쪽'은 진입하는 곳과 먼 곳에 정차합니다. 이 설정은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다. STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :가까운쪽 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :중간 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :먼쪽 @@ -1339,9 +1339,9 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :녹색 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :어두운 녹색 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :보라색 STR_CONFIG_SETTING_REVERSE_SCROLLING :스크롤 방향 뒤집기: {STRING} -STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :마우스 오른쪽 클릭으로 지도를 스크롤하는 방법을 선택합니다. 옵션을 끄면 마우스 방향과 화면의 스크롤 방향이 같아집니다. 옵션을 켜면 마우스 방향과 화면의 스크롤 방향이 반대가 됩니다. +STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :마우스 오른쪽 클릭으로 지도를 스크롤하는 방법을 선택합니다. 이 설정을을 끄면, 마우스 방향과 화면의 스크롤 방향이 같아집니다. 설정을 켜면, 마우스 방향과 화면의 스크롤 방향이 반대가 됩니다. STR_CONFIG_SETTING_SMOOTH_SCROLLING :게임 화면을 이동시킬 때 부드럽게 이동: {STRING} -STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :소형 지도를 클릭하여 특정 지역으로 스크롤되거나 지도 상의 특정 장소로 이동하는 경우에 주 화면이 어떻게 스크롤 되는지를 설정합니다. 이 옵션을 켜면 화면이 목표지점까지 부드럽게 이동하며, 옵션을 끄면 목표 화면으로 곧바로 넘어가게 됩니다. +STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :소형 지도를 클릭하여 특정 지역으로 스크롤되거나 지도 상의 특정 장소로 이동하는 경우에 주 화면이 어떻게 스크롤 되는지를 설정합니다. 이 설정을 켜면, 화면이 목표 지점까지 부드럽게 이동하고, 설정을 끄면 목표 지점으로 곧바로 넘어가게 됩니다. STR_CONFIG_SETTING_MEASURE_TOOLTIP :건설도구 사용시 거리 도움말 표시: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :철도/도로 등의 기반시설을 건설할 때 거리와 높이 차이 등을 표시합니다. STR_CONFIG_SETTING_LIVERIES :차량 종류에 따라 회사의 색상을 구분하여 표시: {STRING} From 830a4b63c9b8ed04dd775df43079b3e81104cf59 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 9 Apr 2017 17:45:38 +0000 Subject: [PATCH 344/417] (svn r27850) -Update from Eints: korean: 3 changes by telk5093 spanish (mexican): 18 changes by Absay --- src/lang/korean.txt | 6 +++--- src/lang/spanish_MX.txt | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index cfd00d266b..8e25e71a66 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2370,9 +2370,9 @@ STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}복합 STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}경로 신호기 (전자식){}경로 신호기는 경로가 겹치지 않는 경우에 한 대 이상의 열차가 한 폐색 구간에 동시에 들어갈 수 있게 해줍니다. 경로 신호기는 반대편에서 통과가 가능합니다. STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}단방향 경로 신호기 (전자식){}경로 신호기는 경로가 겹치지 않는 경우에 한 대 이상의 열차가 한 폐색 구간에 동시에 들어갈 수 있게 해줍니다. 단방향 경로 신호기는 반대편에서 통과가 불가능합니다. STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}신호기 변환{}이 버튼을 선택한 뒤 이미 설치된 신호기를 클릭하면, 신호기의 종류(일반/입구/출구/복합/경로)와 형식(구식↔전자식)을 변경하고, CTRL+클릭하면 신호기의 형식을 변경합니다. SHIFT+클릭을 사용하면 예상 가격을 볼 수 있습니다. -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}드래그시 신호기 간격 -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}드래그시 신호기 간격 감소 -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}드래그시 신호기 증가 +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}드래그로 신호기를 설치하는 간격 +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}드래그로 신호기를 설치하는 간격 감소 +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}드래그로 신호기를 설치하는 간격 증가 # Bridge selection window STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}철교 선택 diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 82da64c535..28f0757163 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Ninguno STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplazamiento con botón izquierdo: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activar el desplazamiento del mapa al arrastrar con el botón izquierdo. Esto es especialmente útil al usar pantallas táctiles +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Cerrar ventana con clic derecho: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Cerrar la ventana haciendo clic derecho sobre ella. ¡Desactiva los mensajes de ayuda con clic derecho! STR_CONFIG_SETTING_AUTOSAVE :Guardado automático: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Intervalo entre guardados automáticos de la partida @@ -3295,6 +3297,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requiere +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} @@ -3363,6 +3370,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Cambiar nombre del grupo +STR_GROUP_PROFIT_THIS_YEAR :Ganancias de este año: +STR_GROUP_PROFIT_LAST_YEAR :Ganancias del año pasado: +STR_GROUP_OCCUPANCY :Uso actual: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos trenes @@ -3395,6 +3406,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Todo tipo de ca STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Máx. fuerza de tracción: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección trenes. Clic en un tren para más información. Ctrl+Clic para mostrar u ocultar el tipo de tren STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera. Clic en un vehículo para más información. Ctrl+Clic para mostrar u ocultar el tipo del vehículo @@ -3529,6 +3541,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Costo de operación: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} Máx. F.T.: {6:FORCE}{}Costo de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Vel. máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG} al año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Vel. máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG} al año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Vel. máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG} al año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Vel. máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} tiles{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG} al año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} @@ -3651,6 +3667,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad máx.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vel. máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Vel. máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} casillas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. máx.: {LTBLUE}{FORCE} From 02b6c533aacf4c2efb032778797694b565ada2f2 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 9 Apr 2017 21:58:07 +0000 Subject: [PATCH 345/417] (svn r27851) -Fix [FS#6555]: StringID truncation to 16 bits broke string remapping test. --- src/newgrf_text.cpp | 4 ++-- src/newgrf_text.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index e4b3c382b3..eb4b11c5e0 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -691,7 +691,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne } AddGRFTextToList(&_grf_text[id].textholder, newtext); - grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s'", id, grfid, stringid, newtext->langid, newtext->text); + grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s' (%X)", id, grfid, stringid, newtext->langid, newtext->text, MakeStringID(TEXT_TAB_NEWGRF_START, id)); return MakeStringID(TEXT_TAB_NEWGRF_START, id); } @@ -699,7 +699,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne /** * Returns the index for this stringid associated with its grfID */ -StringID GetGRFStringID(uint32 grfid, uint16 stringid) +StringID GetGRFStringID(uint32 grfid, StringID stringid) { for (uint id = 0; id < _num_grf_texts; id++) { if (_grf_text[id].grfid == grfid && _grf_text[id].stringid == stringid) { diff --git a/src/newgrf_text.h b/src/newgrf_text.h index 6587fc1fed..033967d307 100644 --- a/src/newgrf_text.h +++ b/src/newgrf_text.h @@ -21,7 +21,7 @@ static const WChar NFO_UTF8_IDENTIFIER = 0x00DE; StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid, bool new_scheme, bool allow_newlines, const char *text_to_add, StringID def_string); -StringID GetGRFStringID(uint32 grfid, uint16 stringid); +StringID GetGRFStringID(uint32 grfid, StringID stringid); const char *GetGRFStringFromGRFText(const struct GRFText *text); const char *GetGRFStringPtr(uint16 stringid); void CleanUpStrings(); From 6192780721d64e7a6b470c9b26096dcec700152f Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 10 Apr 2017 17:45:37 +0000 Subject: [PATCH 346/417] (svn r27852) -Update from Eints: catalan: 31 changes by juanjo spanish: 5 changes by SilverSurferZzZ --- src/lang/catalan.txt | 62 ++++++++++++++++++++++---------------------- src/lang/spanish.txt | 8 +++--- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index c88d940f0f..2909a9c82d 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -975,7 +975,7 @@ STR_GAME_OPTIONS_LANGUAGE :{BLACK}Idioma STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Selecciona l'idioma de la interfície STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Pantalla completa -STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marca la casella per tenir l'OpenTTD en pantalla completa +STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marqueu la casella per mostrar l'OpenTTD a pantalla completa. STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolució de pantalla STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolució de pantalla @@ -1119,9 +1119,9 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Paràmetres de STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Paràmetres de la partida (emmagatzemats a la partida actual; només afecten la partida actual) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Paràmetres de la companyia (emmagatzemats a les partides desades; només afectaran les partides noves) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Paràmetres de la companyia (emmagatzemats a la partida actual; només afecten la companyia actual) -STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Mostra tots els resultats de la cerca filtrada de {WHITE}{STRING} +STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Mostra tots els resultats establint {SILVER}«Categoria» {BLACK}a {WHITE}«{STRING}»{BLACK}. STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Mostrar tots els resultats de la cerca filtrada amb {WHITE}tots els tipus de paràmetres -STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Mostra tots els resultats de la cerca filtrada de {WHITE}{STRING} {BLACK}i {WHITE}tots els tipus d'ajustaments +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Mostra tots els resultats de la cerca establint {SILVER}«Categoria» {BLACK}a {WHITE}«{STRING}» {BLACK}i {SILVER}«Tipus» {BLACK}a {WHITE}«Tots els paràmetres»{BLACK}. STR_CONFIG_SETTINGS_NONE :{WHITE}- Cap - STR_CONFIG_SETTING_OFF :Inactiu @@ -1129,8 +1129,8 @@ STR_CONFIG_SETTING_ON :Actiu STR_CONFIG_SETTING_DISABLED :Desactivat STR_CONFIG_SETTING_COMPANIES_OFF :Inactiu -STR_CONFIG_SETTING_COMPANIES_OWN :Pròpia companyia -STR_CONFIG_SETTING_COMPANIES_ALL :Totes les companyies +STR_CONFIG_SETTING_COMPANIES_OWN :Només de la companyia pròpia +STR_CONFIG_SETTING_COMPANIES_ALL :De totes les companyies STR_CONFIG_SETTING_NONE :Cap STR_CONFIG_SETTING_ORIGINAL :Original @@ -1160,16 +1160,16 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :No permetis que STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si està actiu, els trens no canviaran de sentit a les estacions no-finals, inclús si hi ha un camí més curt al seu proper destí en cas de canviar de sentit. STR_CONFIG_SETTING_DISASTERS :Catàstrofes: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Permet o no que passin catàstrofes que puguin bloquejar o destruir ocasionalment vehicles o infraestructures -STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de l'alcaldia de la població davant de reestructuracions a la zona: {STRING} -STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Estableix quin nivell de soroll i de danys ambientals fets per les companyies afecten al seu prestigi davant de la població i futures accions de construcció a la zona +STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de l'alcaldia de la població enfront les reestructuracions a la zona: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Establiu com afecta al prestigi de les companyies el soroll i els danys ambientals que provoquen. Aquest prestigi influirà en la futura acceptació o denegació d'accions de construcció a la zona. STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Alçada màxima del mapa: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Estableix l'alçada màxima permesa del terreny en el mapa STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No es pot escollir aquesta alçada màxima del mapa: hi ha alguna zona del mapa actual que és més alta. STR_CONFIG_SETTING_AUTOSLOPE :Permet la modificació del terreny sota edificis, rails, etc.: {STRING} -STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permet modelar el terreny sota edificis i rails, sense eliminar-los +STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permet modelar el terreny sota les vies, els edificis i altres elements sense eliminar-los. STR_CONFIG_SETTING_CATCHMENT :Estableix una mida més real de l'àrea d'influència: {STRING} -STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permet tenir diferents mides de zones de captació per a diferents tipus d'estacions i aeroports +STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permet tenir diferents mides de zones de captació de càrrega per diferents tipus d'estacions (aeroports, estacions de tren, etc.). STR_CONFIG_SETTING_EXTRADYNAMITE :Permet l'esborrat de carreteres, ponts i túnels propietat de les poblacions: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Aquesta opció permet fer més fàcil l'esborrat d'infraestructures i construccions propietat de la població STR_CONFIG_SETTING_TRAIN_LENGTH :Longitud màxima dels trens: {STRING} @@ -1214,7 +1214,7 @@ STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :Al costat de co STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :A la dreta STR_CONFIG_SETTING_SHOWFINANCES :Mostra la finestra de balanç al finalitzar cada any: {STRING} STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si el paràmetre està activat, la finestra de finances apareix al final de cada any per permetre una inspecció fàcil de l'estat financer de la companyia. -STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :«Sense parada» per defecte a les noves ordres : {STRING} +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :«Sense parada» per defecte a les ordres noves: {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalment, un vehicle para a cada estació per la que passa. Activant aquest paràmetre, no pararà a cap estació fins arribar al seu destí. Nota: aquest paràmetre només defineix el valor predeterminat per a les noves ordres. Un cop creada una ordre, aquesta es pot establir manualment al comportament desitjat. STR_CONFIG_SETTING_STOP_LOCATION :Noves ordres de trens: parar per defecte {STRING} de la plataforma STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Estableix en quin lloc de la plataforma els trens pararan per defecte. «Extrem més proper» significa a prop del punt d'entrada, «Al mig» significa al mig de la plataforma, i «Extrem més llunyà» significa lluny del punt d'entrada. Nota: aquest paràmetre només defineix el valor predeterminat per les noves ordres. Un cop creada una ordre, es pot modificar el comportament de forma manual. @@ -1222,7 +1222,7 @@ STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :A l'extrem més STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :Al mig STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :A l'extrem més llunyà STR_CONFIG_SETTING_AUTOSCROLL :Desplaça la finestra quan el ratolí sigui prop de la vora: {STRING} -STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Quan està activat, l'àrea de visualització començarà a desplaçar-se quan el ratolí sigui prop de la vora de la finestra. +STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Si s'activa aquesta opció, l'àrea de visualització començarà a desplaçar-se quan el ratolí sigui prop de la vora de la finestra. STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desactivat STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Vista principal (només pantalla completa) STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Vista principal @@ -1387,12 +1387,12 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31 STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Posa en pausa automàticament quan comenci una nova partida: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Quan està activat, el joc es posa en pausa automàticament quan es comenci una partida nova, permetent a l'usuari estudiar el mapa més detalladament -STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Quan s'estigui en pausa permet: {STRING} -STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Selecciona quines accions poden fer-se quan la partida està en pausa -STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Sense accions -STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Totes les accions no-constructores -STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Tot menys les accions modificadores del paisatge -STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Totes les accions +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Accions permeses mentre s'està fent una pausa a la partida: {STRING} +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Seleccioneu quines accions es poden realitzar mentre s'està fent una pausa a la partida. +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Cap +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Totes, excepte les de construcció +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Totes, excepte les que modifiquen el paisatge +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Totes STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Mostra els grups en el llistat de vehicles de la companyia: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Activa la utilització de llistes avançades de vehicles per agrupar vehicles. STR_CONFIG_SETTING_LOADING_INDICATORS :Utilitza indicadors de càrrega: {STRING} @@ -1518,7 +1518,7 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Resum STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Complet STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Les notícies en color apareixen el: {STRING} -STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Any en què els diaris comencen a fer els anunciaments impresos en color. Abans d'aquest any, s'utilitza el blanc i negre +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Any en què els diaris comencen a fer anuncis en color. Abans d'aquest any, imprimiran en blanc i negre. STR_CONFIG_SETTING_STARTING_YEAR :Any d'inici: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Activa economia suau (més canvis però més petits): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Quan està activat, els canvis de producció de la indústria són més habituals, i en passos més petits. Aquest paràmetre usualment no té efecte, si el tipus d'indústria estan proveïts per un NewGRF @@ -1605,7 +1605,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Proporció de p STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 de cada {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Cap STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador de mida inicial de ciutats: {STRING} -STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :La grandària mitjana de les ciutats en relació als pobles a l'inici de la partida +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :La grandària mitjana de les ciutats en relació als pobles a l'inici de la partida. STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualitza el graf de distribució cada {STRING}{NBSP}di{P 0:2 a es} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Temps entre recàlculs successius del graf de distribució. Cada recàlcul calcula els plans per un component del graf. Això significa que un valor X per aquest paràmetre no implica que tot el graf serà actualitzat cada X dies. Només alguns components ho seran. Com més curt el valor, més temps de processador es requerirà per calcular-ho. Com més llarg, més temps passarà fins que la distribució de càrregues comenci en noves rutes. @@ -1762,14 +1762,14 @@ STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Mostra l STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Mostra la configuració de les extensions NewGRF STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comprova si hi ha continguts nous i actualitzats per a descarregar STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostra els paràmetres de les IA/Script de la partida -STR_INTRO_TOOLTIP_QUIT :{BLACK}Surt d'OpenTTD +STR_INTRO_TOOLTIP_QUIT :{BLACK}Surt de l'OpenTTD. STR_INTRO_BASESET :{WHITE}Al joc de gràfics base seleccionat li falten {NUM} sprite{P "" s}.{}Si us plau, comproveu-ne si hi ha actualitzacions disponibles. -STR_INTRO_TRANSLATION :{BLACK}A aquesta traducció li falten {NUM} caden{P a es}. Si us plau ajuda a fer millor OpenTTD unint-te com a traductor. Veure readme.txt per més detalls. +STR_INTRO_TRANSLATION :{BLACK}A aquesta traducció li falten {NUM} caden{P a es}. Si us plau, ajudeu a fer millor l'OpenTTD unint-vos com a traductor. Vegeu el fitxer readme.txt per més detalls. # Quit window STR_QUIT_CAPTION :{WHITE}Surt -STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}Estàs segur que vols abandonar aquesta partida i tornar a {STRING}? +STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}Esteu segur que voleu abandonar aquesta partida i tornar a {STRING}? STR_QUIT_YES :{BLACK}Sí STR_QUIT_NO :{BLACK}No @@ -1863,7 +1863,7 @@ STR_FACE_SIMPLE :{BLACK}Simple STR_FACE_SIMPLE_TOOLTIP :{BLACK}Selecció de cara simple STR_FACE_LOAD :{BLACK}Carrega STR_FACE_LOAD_TOOLTIP :{BLACK}Carrega la cara preferida -STR_FACE_LOAD_DONE :{WHITE}S'ha carregat la cara personalitzada des de l'arxiu de configuració de l'OpenTTD +STR_FACE_LOAD_DONE :{WHITE}S'ha carregat la cara personalitzada des de l'arxiu de configuració de l'OpenTTD. STR_FACE_FACECODE :{BLACK}Número de la cara STR_FACE_FACECODE_TOOLTIP :{BLACK}Veure i/o assigna el número de la cara del president STR_FACE_FACECODE_CAPTION :{WHITE}Veure i/o assigna el número de la cara del president @@ -1871,7 +1871,7 @@ STR_FACE_FACECODE_SET :{WHITE}El núme STR_FACE_FACECODE_ERR :{WHITE}No s'ha pogut assignar el número de cara del president - ha de ser un nombre entre 0 i 4,294,967,295! STR_FACE_SAVE :{BLACK}Desa STR_FACE_SAVE_TOOLTIP :{BLACK}Desa la cara preferida -STR_FACE_SAVE_DONE :{WHITE}Es desarà aquesta cara personalitzada a l'arxiu de configuració de l'OpenTTD +STR_FACE_SAVE_DONE :{WHITE}Es desarà aquesta cara personalitzada a l'arxiu de configuració de l'OpenTTD. STR_FACE_EUROPEAN :{BLACK}Europea STR_FACE_SELECT_EUROPEAN :{BLACK}Selecciona cares europees STR_FACE_AFRICAN :{BLACK}Africana @@ -2209,9 +2209,9 @@ STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Marca to STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Deselecciona tot STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Marca tots els continguts a no ser descarregats STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Cerca en webs externes -STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Cerca contingut no disponible al servei de continguts d'OpenTTD en webs no associades amb OpenTTD -STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Estàs sortint de l'OpenTTD! -STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Els termes i condicions per descarregar contingut des de webs externes varia.{}Hauràs d'adreçar-te a les webs externes per trobar instruccions sobre com instal·lar contingut a OpenTTD.{}Vols continuar? +STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Cerca contingut no disponible al servei de continguts de l'OpenTTD en webs no associades. +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Esteu sortint de l'OpenTTD. +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Els termes i condicions per descarregar contingut des de webs externes varia.{}Haureu d'adreçar-vos a les webs externes per trobar instruccions sobre com instal·lar contingut a l'OpenTTD.{}Voleu continuar? STR_CONTENT_FILTER_TITLE :{BLACK}Marca/anomena filtre: STR_CONTENT_OPEN_URL :{BLACK}Visita la web STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Visita la web per accedir a aquest contingut @@ -2264,9 +2264,9 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no e STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No s'han pogut descomprimir els arxius descarregats STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gràfics que falten -STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necessita gràfics per funcionar però no se n'ha trobat cap. Vols permetre a OpenTTD descarregar i instal·lar aquests gràfics? +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}L'OpenTTD necessita gràfics per funcionar, però no se n'han trobat. Voleu permetre a l'OpenTTD descarregar i instal·lar aquests gràfics? STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descarregar els gràfics -STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, surt d'OpenTTD +STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, surt de l'OpenTTD. # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opcions de transparència @@ -2838,7 +2838,7 @@ STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Paràmet STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No hi ha informació disponible STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}No s'ha trobat cap arxiu coincident STR_NEWGRF_SETTINGS_DISABLED :{RED}Desactivat -STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Versió incompatible amb aquesta versió de OpenTTD +STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Versió incompatible amb aquesta versió de l'OpenTTD. # NewGRF save preset window STR_SAVE_PRESET_CAPTION :{WHITE}Guardar configuració NewGRF @@ -2917,7 +2917,7 @@ STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de dispo # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Alerta! -STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Esteu a punt de fer canvis en una partida activa. Això pot fer que l'OpenTTD falli. No envieu cap informe d'error sobre això.{}Esteu completament segur que voleu fer-los? +STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Esteu a punt de fer canvis en una partida activa que poden fer que l'OpenTTD falli. No envieu cap informe d'error produït després d'efectuar aquests canvis crítics.{}Esteu completament segur que voleu fer-los? STR_NEWGRF_DUPLICATE_GRFID :{WHITE}No es pot afegir l'arxiu: ID GRF duplicada STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}No s'ha trobat un arxiu coincident (els GRF compatibles s'han carregat) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 866df1583d..30269f4057 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3295,6 +3295,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere ############ range for requires ends STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando ############ range for produces starts @@ -3312,7 +3313,7 @@ STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Aeronave STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Trenes - Click en tren para información -STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehículos de carretera - Click en vehículo para información +STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehículos de carretera - Click en el vehículo para información STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Barcos - Click en barco para información STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Aeronave - Click en la aeronave para información @@ -3400,6 +3401,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Todos los tipos STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}F.T máxima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección de los vehículos de ferrocarril. Click en el vehículo para más información. Ctrl+Click para mostrar/ocultar el tipo del vehículo STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera. Click en el vehículo para más información. Ctrl+Click para mostrar/ocultar el tipo del vehículo @@ -3458,8 +3460,8 @@ STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}{NUM} ve STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT}) STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}Trenes - arrastrar vehículo con Click izquierdo para añadir/retirar del tren, Click derecho para mostrar información. Mantén pulsado Ctrl para usar estos comandos con el resto del tren -STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vehículos de carretera - Click derecho en vehículo para información -STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Barcos - Click derecho en barco para información +STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vehículos de carretera - Click derecho en el vehículo para información +STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Barcos - Click derecho en el barco para información STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Aeronave - Click derecho en la aeronave para información STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}Arrastrar aquí el vehículo de raíl para venderlo From cb9ffe1bd9211dea40ba3d798c7bf1c61472d017 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 11 Apr 2017 18:39:27 +0100 Subject: [PATCH 347/417] Move std::string str_validate to separate header This is to fix compilation of squirrel on MacOS/clang, as squirrel defines macros which clash with including --- source.list | 1 + src/saveload/saveload.cpp | 1 + src/string_func.h | 8 -------- src/string_func_extra.h | 23 +++++++++++++++++++++++ 4 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 src/string_func_extra.h diff --git a/source.list b/source.list index 26a7a0aa24..0fa314996c 100644 --- a/source.list +++ b/source.list @@ -344,6 +344,7 @@ story_type.h strgen/strgen.h string_base.h string_func.h +string_func_extra.h string_type.h stringfilter_type.h strings_func.h diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index a94bbf785f..a6472f4fc3 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -41,6 +41,7 @@ #include "../fileio_func.h" #include "../gamelog.h" #include "../string_func.h" +#include "../string_func_extra.h" #include "../fios.h" #include "../error.h" diff --git a/src/string_func.h b/src/string_func.h index 70214ff8d1..f5dd289499 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -27,7 +27,6 @@ #define STRING_FUNC_H #include -#include #include "core/bitmath_func.hpp" #include "string_type.h" @@ -56,13 +55,6 @@ static inline void str_validate(char *str, const char *last, StringValidationSet *str_validate_intl(str, last, settings) = '\0'; } -static inline void str_validate(std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) -{ - if (str.empty()) return; - char *buf = const_cast(str.c_str()); - str.resize(str_validate_intl(buf, buf + str.size(), settings) - buf); -} - void ValidateString(const char *str); void str_fix_scc_encoded(char *str, const char *last); diff --git a/src/string_func_extra.h b/src/string_func_extra.h new file mode 100644 index 0000000000..9c320f3ea2 --- /dev/null +++ b/src/string_func_extra.h @@ -0,0 +1,23 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ + +#ifndef STRING_FUNC_EXTRA_H +#define STRING_FUNC_EXTRA_H + +#include "string_func.h" +#include + +static inline void str_validate(std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) +{ + if (str.empty()) return; + char *buf = const_cast(str.c_str()); + str.resize(str_validate_intl(buf, buf + str.size(), settings) - buf); +} + +#endif /* STRING_FUNC_EXTRA_H */ From 3e772b0732ecb1ed61cf352f2a323bb06fc13134 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 11 Apr 2017 17:45:36 +0000 Subject: [PATCH 348/417] (svn r27853) -Update from Eints: spanish: 1 change by juanjo --- src/lang/spanish.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 30269f4057..3007b677b4 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3310,7 +3310,7 @@ STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Cambiar STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} Trenes STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} - {COMMA} Vehículos de Carretera STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} Barcos -STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Aeronave +STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Aeronave{P "" s} STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Trenes - Click en tren para información STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehículos de carretera - Click en el vehículo para información From 747a95092047b57ef405dfa0d0ba7cc68214e0f3 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 12 Apr 2017 17:45:37 +0000 Subject: [PATCH 349/417] (svn r27854) -Update from Eints: spanish: 30 changes by SilverSurferZzZ czech: 18 changes by djst --- src/lang/czech.txt | 18 ++++++++++++++ src/lang/spanish.txt | 59 ++++++++++++++++++++++---------------------- 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 329645f0f0..09c523bc38 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1459,6 +1459,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :vypnutá STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Posouvání levým tlačítkem: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Povolit posouvání mapy chycením pomocí levého tlačítka myši. Toto je velmi užitečné hlavně při použití s dotykovou obrazovkou. +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Zavírat okno kliknutím pravým tlačítkem myši: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Zavírat okno kliknutím pravým tlačítkem na něj. Znemožňuje využívat nápovědu zobrazující se při stisknutí pravého tlačítka myši! STR_CONFIG_SETTING_AUTOSAVE :Automaticky ukládat: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Zvol frekvenci automatického ukládání @@ -3387,6 +3389,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vyžaduj STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vyžaduje: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vyžaduje +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}ček{P á ají á} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} @@ -3455,6 +3462,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Odstranit všec STR_GROUP_RENAME_CAPTION :{BLACK}Přejmenovat skupinu +STR_GROUP_PROFIT_THIS_YEAR :Letošní zisk: +STR_GROUP_PROFIT_LAST_YEAR :Loňský zisk: +STR_GROUP_OCCUPANCY :Současné využití: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nové lokomotivy a vagony @@ -3487,6 +3498,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Všechny druhy STR_PURCHASE_INFO_ALL_BUT :Všechny kromě {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. tažná síla: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Dosah: {GOLD}{COMMA} polí +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Typ letadla: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Seznam vlaků - pro informace klikni na vlak. Ctrl+kliknutí způsobí přepínání skrytí typů lokomotiv a vagónů. STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Seznam silničních vozidel - klikni na vozidlo pro informace. Ctrl+kliknutí způsobí přepínání skrytí typu silničního vozidla. @@ -3624,6 +3636,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :lokomotivu Magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnost: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Výkon: {POWER}{}Cena provozu: {CURRENCY_LONG} ročně{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Váha: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Síla: {POWER} Maximální tažná síla: {6:FORCE}{}Provozní náklady: {4:CURRENCY_LONG}/rok{}Kapacita: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Typ letadla: {STRING}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Typ letadla: {STRING}{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Typ letadla: {STRING} Dosah: {COMMA} políč{P ko ka ek}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Typ letadla: {STRING} Dosah: {COMMA} políč{P ko ka ek}{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vyměňování {STRING} - {STRING} @@ -3746,6 +3762,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P rok STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P rok roky let} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Typ letadla: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Typ letadla: {LTBLUE}{STRING} {BLACK}Dosah: {LTBLUE}{COMMA} políč{P ko ka ek} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Hmotnost: {LTBLUE}{WEIGHT_SHORT} {BLACK}Výkon: {LTBLUE}{POWER}{BLACK} Max. rychlost: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Hmotnost: {LTBLUE}{WEIGHT_SHORT} {BLACK}Výkon: {LTBLUE}{POWER}{BLACK} Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Max. tažná síla: {LTBLUE}{FORCE} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3007b677b4..1b907928f9 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2377,10 +2377,10 @@ STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Elige pu STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Selección de puente - Click en el puente elegido para construirlo STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} -STR_BRIDGE_NAME_SUSPENSION_STEEL :Suspensión, Acero +STR_BRIDGE_NAME_SUSPENSION_STEEL :Colgante, Acero STR_BRIDGE_NAME_GIRDER_STEEL :Tirantes, Acero -STR_BRIDGE_NAME_CANTILEVER_STEEL :Colgante, Acero -STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Suspensión, Hormigón +STR_BRIDGE_NAME_CANTILEVER_STEEL :Cantiléver, Acero +STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Colgante, Hormigón STR_BRIDGE_NAME_WOODEN :Madera STR_BRIDGE_NAME_CONCRETE :Hormigón STR_BRIDGE_NAME_TUBULAR_STEEL :Tubular, Acero @@ -2615,10 +2615,10 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con señales de bloque y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de ferrocarril con señales de bloque y de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de ferrocarril con señales de entrada y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de ferrocarril con señales de entrada y de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de ferrocarril con señales de salida y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de ferrocarril con señales de salida y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de ferrocarril con señales de salida y de ruta de un solo sentido @@ -2664,7 +2664,7 @@ STR_LAI_TUNNEL_DESCRIPTION_ROAD :Túnel de carre STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL :Puente de ferrocarril de acero suspendido STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL :Puente de ferrocarril de acero con tirantes -STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL :Puente de ferrocarril colgante de acero +STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL :Puente de ferrocarril cantiléver de acero STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_CONCRETE :Puente de ferrocarril de hormigón suspendido reforzado STR_LAI_BRIDGE_DESCRIPTION_RAIL_WOODEN :Puente de ferrocarril de madera STR_LAI_BRIDGE_DESCRIPTION_RAIL_CONCRETE :Puente de ferrocarril de hormigón @@ -2672,7 +2672,7 @@ STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL :Puente de ferro STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL :Puente de carretera de acero suspendido STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL :Puente de carretera de acero con tirantes -STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL :Puente de carretera colgante de acero +STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL :Puente de carretera cantiléver de acero STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_CONCRETE :Puente de carretera de hormigón suspendido reforzado STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN :Puente de carretera de madera STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE :Puente de carretera de hormigón @@ -3231,7 +3231,7 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Ninguna STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}Construir Sede -STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Construir sede de la empresa +STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Construir la sede de la empresa STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}Ver Sede STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Ver sede de la empresa STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Reubicar Sede @@ -3658,6 +3658,7 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE} @@ -4154,13 +4155,13 @@ STR_ERROR_CAN_T_CHANGE_COMPANY_NAME :{WHITE}No se pu STR_ERROR_CAN_T_CHANGE_PRESIDENT :{WHITE}No se puede cambiar nombre del presidente... STR_ERROR_MAXIMUM_PERMITTED_LOAN :{WHITE}... máxima cantidad de préstamo permitida es {CURRENCY_LONG} -STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}No se incrementar el préstamo... +STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}No se puede incrementar el préstamo... STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... no hay préstamo que pagar STR_ERROR_CURRENCY_REQUIRED :{WHITE}... {CURRENCY_LONG} requerido STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}No es posible pagar préstamo... STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}No se puede dar dinero que ha sido prestado de un banco... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}No se puede comprar la empresa... -STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No se puede construir la sede de la empresa... +STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No puede construirse la sede de la empresa... STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}No se puede comprar el 25% de acciones... STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}No se puede vender el 25% de acciones... STR_ERROR_PROTECTED :{WHITE}Esta empresa es demasiado reciente como para comerciar con acciones... @@ -4182,33 +4183,33 @@ STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... no e # Industry related errors STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... demasiadas industrias STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}No se pueden crear industrias... -STR_ERROR_CAN_T_BUILD_HERE :{WHITE}No se puede construir {STRING} aquí... +STR_ERROR_CAN_T_BUILD_HERE :{WHITE}No puede construirse {STRING} aquí... STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}No se puede construir este tipo de industria aquí... STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... demasiado cerca de otra industria STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... debe construirse un municipio primero STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}... solo se permite uno por municipio -STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... sólo puede ser construido en municipios de al menos 1.200 habitantes -STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... sólo se puede construir en áreas de selva -STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... sólo se puede construir en áreas desérticas -STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... solo puede ser construido en municipios (reemplazando casas) -STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... solamente puede construirse cerca del centro de un municipio +STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... solo puede construirse en municipios de al menos 1.200 habitantes +STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... solo puede construirse en zonas selváticas +STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... solo puede construirse en zonas desérticas +STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... solo puede construirse en municipios (reemplazando casas) +STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... solo puede construirse cerca del centro de un municipio STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... solo puede construirse en zonas bajas -STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... sólo se puede colocar cerca de los bordes del mapa -STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... sólo se puede plantar bosques sobre la nieve -STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... solamente puede construirse por encima de la línea de nieve -STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... solamente puede construirse por debajo de la línea de nieve +STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... solo puede colocarse cerca de los bordes del mapa +STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... solo se pueden plantar bosques sobre la nieve +STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... solo puede construirse por encima de la línea de nieve +STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... solo puede construirse por debajo de la línea de nieve STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}No había sitios apropiados disponibles para industrias '{STRING}' STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Cambia los parámetros de generación del mapa para obtener un mapa mejor # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}No se puede construir estación de tren aquí... -STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}No se puede construir estación de autobuses... +STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}No puede construirse una estación de autobuses... STR_ERROR_CAN_T_BUILD_TRUCK_STATION :{WHITE}No se puede construir estación de camiones... STR_ERROR_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}No se puede construir estación de tranvía de pasajeros... -STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}No puede construir estación de tranvía de carga... -STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}No se pueden construir muelles aquí... -STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}No se puede construir aeropuerto aquí... +STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}No puede construirse una estación de tranvía de carga... +STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}No pueden construirse muelles aquí... +STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}No puede construirse un aeropuerto aquí... STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Adjunta más de una estación/zona de carga existente STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... estación demasiado extendida @@ -4315,8 +4316,8 @@ STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... no h STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... no hay tranvía # Waterway construction errors -STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}No se pueden construir canales aquí... -STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}No se pueden construir dársenas aquí... +STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}No pueden construirse canales aquí... +STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}No pueden construirse dársenas aquí... STR_ERROR_CAN_T_PLACE_RIVERS :{WHITE}No se pueden situar ríos aquí... STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... debe construirse sobre el agua STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... no se puede construir sobre el agua @@ -4324,7 +4325,7 @@ STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... no s STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... no se puede construir en un canal STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... no se puede construir en un río STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Debes demoler el canal primero -STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}No se puede construir un acueducto aquí +STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}No puede construirse un acueducto aquí # Tree related errors STR_ERROR_TREE_ALREADY_HERE :{WHITE}... ya hay árboles aquí @@ -4332,7 +4333,7 @@ STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... terr STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}No se pueden plantar árboles aquí... # Bridge related errors -STR_ERROR_CAN_T_BUILD_BRIDGE_HERE :{WHITE}No se puede construir puente aquí... +STR_ERROR_CAN_T_BUILD_BRIDGE_HERE :{WHITE}No puede construirse un puente aquí... STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Primero debe demolerse el puente STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}No se puede comenzar y acabar en la misma posición STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}Las cabeceras del puente no están al mismo nivel @@ -4356,7 +4357,7 @@ STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... tún STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... demasiados objetos STR_ERROR_CAN_T_BUILD_OBJECT :{WHITE}No se puede construir objeto... STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Objeto en medio -STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... sede de empresa está en medio +STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... la sede de la empresa está en medio STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}No es posible comprar este terreno... STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... ¡ya es de su propiedad! From 0f89d95459ecdade20184d431065de16f6d7105b Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 16 Apr 2017 17:45:36 +0000 Subject: [PATCH 350/417] (svn r27855) -Update from Eints: spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1b907928f9..9c602ed6f0 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3533,9 +3533,10 @@ STR_ENGINE_PREVIEW_SHIP :{G=m}barco STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}locomotora de monorraíl STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora maglev -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Operativo: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Mantenimiento: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste Mantenimiento: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} From 1327365d5739d35ee9c7c357e4396917f064c42c Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 20 Apr 2017 17:45:39 +0000 Subject: [PATCH 351/417] (svn r27856) -Update from Eints: galician: 78 changes by permudo --- src/lang/galician.txt | 78 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 303c2c3da5..8d2d1caf52 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -845,6 +845,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ten unha orde nula STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ten ordes duplicadas STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} ten unha estación inválida nas súas ordes +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} ten nas súas ordes un aeroporto con unha pista moi corta STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} está a volverse vello STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} está a volverse moi vello @@ -985,6 +986,7 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecion STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dobre tamaño +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaño do cadro STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conxunto básico de gráficos STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona o conxunto de gráficos básico a empregar @@ -1101,6 +1103,8 @@ STR_CONFIG_SETTING_TYPE_GAME_INGAME :Configuración STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Configuración da compañía (almacénase nas partidas gravadas; afecta só ás novas partidas) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Configuración da compañía (almacénase nas partidas gravadas; afecta só á partida actual) +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categoría: +STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tipo: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restrinxe a seguinte lista amosando só os valores alterados STR_CONFIG_SETTING_RESTRICT_BASIC :Configuración básica STR_CONFIG_SETTING_RESTRICT_ADVANCED :Configuración avanzada @@ -1115,6 +1119,8 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Configuración STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Configuración da partida (almacénase nas partidas gravadas; afecta só á partida actual) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Configuración da compañía (almacénase nas partidas gravadas; afecta só ás novas partidas) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Configuración da compañía (almacénase nas partidas gravadas; afecta só á partida actual) +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Amosa todos os resultados da procura por opción{}{SILVER}Tipo {BLACK}a {WHITE}Todos os tipos de configuración +STR_CONFIG_SETTINGS_NONE :{WHITE}- Ningún - STR_CONFIG_SETTING_OFF :Off STR_CONFIG_SETTING_ON :On @@ -1281,12 +1287,20 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Amosa a poboaci STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grosor das liñas dos gráficos: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Ancho de liña nos gráficos. Unha liña fina lese con máis precisión, unha liña grosa é máis doada de ver e as cores son máis fáciles de distinguir +STR_CONFIG_SETTING_LANDSCAPE :Paisaxe: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :As paisaxes definen escenarios de xogo con diferentes requirimentos de mercadorías e de crecemento da poboación. Ainda que os scripts de xogo e os NewGRF permiten máis control STR_CONFIG_SETTING_LAND_GENERATOR :Xerador de terreo: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :O xerador orixinal depende do conxunto base de gráficos, e compón formas fixas de paisaxe. TerraGenesis é un xerador baseado no Ruido Perlin con maiores opcións de control STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Orixinal STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Tipo de terreo: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis só) Cantidade de outeiros na paisaxe +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densidade industrial: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Establece cantas industrias deben xerarse e que nivel se debe manter durante o xogo STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distancia máxima das refinarías ao borde do mundo: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :As refinarías de petróleo só se constrúen preto do borde do mapa, isto é na costa para mapas de illas STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Cota de neve: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controla a que altitude comeza a nevar en paisaxes subárticas. A neve afecta tamén á xeración industrial e aos requirimentos de crecemento dos pobos STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Desigualdade do terreo (só TerraGenesis) : {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(só TerraGenesis) Escolle a frequencia de montes: Suaviza as paisaxes tendo menos montes e máis espallados. Paisaxes escarpadas teñen moitos outos, que poderían semellar repetitivos STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Moi suave @@ -1357,6 +1371,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Apagado STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desprazamento con click esquerdo: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Habilitar o desprazamento do mapa arrastrándoo co botón esquerdo do rato. Isto é especialmente útil se se emprega unha pantalla táctil para desprazarse +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Pechar a fiestra con click dereito: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Pecha a fiestra facendo botón dereito dentro de ela. Deshabilita a axuda contextual facendo click-dereito! STR_CONFIG_SETTING_AUTOSAVE :Autogravado: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona o intervalo entre gravados automáticos das partidas @@ -1589,9 +1605,21 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ningunha STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial do tamaño da cidade: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Relación entre o tamaño medio das cidades e o dos pobos ao inicio da partida +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualiza o gráfico de distribución cada {STRING}{NBSP}day{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tempo entre recálculos subseguintes do gráfico de ligazóns. Cada recálculo calcula os plans para unha compoñente do gráfico. Isto non significa que un valor de X para esta opción supoña que o gráfico completo será actualizado cada X días. Só algunhas compoñentes o serán. Canto máis curto sexa, máis tempo de CPU será necesario para calculalo. Canto máis longo sexa, máis tempo levará ata que a distribución das mercadorías comeza para rutas novas. +STR_CONFIG_SETTING_LINKGRAPH_TIME :Leva {STRING}{NBSP}día{P 0:2 "" s} recalcular o gráfico de distribución +STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Tempo empregado para cada recálculo dunha compoñente do gráfico de ligazóns. Cando comeza un recálculo, creáse un fío que funciona por este número de días. Canto máis pequeno sexa este, é máis probable que o fío non remate cando se supón. Nese intre o xogo para para compensar este retardo. Canto máis longo sexa, máis tempo leva actualizar a distribución cando cambian as rutas. STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimétrica STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simétrica +STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribución para pasaxeiros: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"simétrico" singinfica que máis ou menos o mesmo número de pasaxeiros irán dende a estación A cada a estación B e tamén da B cara a A. "asimétrico" significa que calquera número de pasaxeiros pode ir en calquera dirección. "manual" significa que non haberá distribución automática para os pasaxeiros. +STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Modo de distribución para correo: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"simétrico" significa que máis ou menos a mesma cantidade de correo vai ser enviada da estación A cara a estación B como da estación B cara a A. "asimétrico" signigica que calquera cantidade de correo pode ser enviado en calquera dirección. "manual" significa que non hai distribución automática para o correo. +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modo de disitribución para o tipo de mercadoría BLINDADO: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :A calse de mercadoría BLINDADA contén obxectos de valor nos clima morno, diamantes no subtropical ou ouro no clima subártico. Os NewGRFs poden cambiar isto. "simétrico" significa que máis ou menos a mesma cantidade de esta mercadoría será enviadas dende a estación A cara a estación B así como da estación B para a A. "asimétrico" significa que calquera cantidade de esta mercadoría pode ser enviada en calquera dirección. "manual" significa que non haberá distribución automática para esta mercadoría. Recoméndase elixir asimétrico ou manual cando se xoguen mapas subárticos, xa que os bancos non van enviar ouro de volta ás minas. Para climas mornos e subtropicais podes escoller tamén simétrico xa que os bancos retornan valores aos bancos de orixe dalgunha carga de valores. +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Xeito de distribución para outros tipos de mercadoría: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asimétrico" significa que calquera cantidade de mercadorías pode ser enviada en calquera dirección. "manual" significa que non haberá distribución automática para estas mercadorías. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Precisión da distribución: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Canto máis alto sexa o valor, máis tempo de CPU levará o cálculo de distribución. Se leva demasiado tempo podes experimentar retraso. Se sen embargo o fixas nun valor baixo, a distribución será imprecisa, e pode que a carga non sexa enviada aos destinos que ti queres. STR_CONFIG_SETTING_DEMAND_DISTANCE :Efecto da distancia na demanda: {STRING} @@ -1638,11 +1666,23 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrico (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localización +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Gráficos STR_CONFIG_SETTING_SOUND :{ORANGE}Efectos de son STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Xeral +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Fiestras de visualización STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construción +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Novas / Conselleiros +STR_CONFIG_SETTING_COMPANY :{ORANGE}Compañía +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Contabilidade STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehículos +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Física STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Encamiñamento +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitacións +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres / Accidentes +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Xeración do mundo +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Contorno +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoridades STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Cidades STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribución da carga @@ -1722,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Buscar c STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Motra-la configuración dos scripts de IA STR_INTRO_TOOLTIP_QUIT :{BLACK}Saír de 'OpenTTD' +STR_INTRO_BASESET :{BLACK}A base gráfica seleccionada actualmente está perdendo {NUM} sprite{P "" s}. Por favor comproba se hai actualizacións para o conxunto base. STR_INTRO_TRANSLATION :{BLACK}A ista tradución fáltanlle {NUM} string{P "" s}. Por favor, axúdanos a mellorar OpenTTD rexistrándote coma tradutor. Bótalle un ollo ao readme.txt para máis detalles. # Quit window @@ -2046,6 +2087,7 @@ STR_NETWORK_CLIENT :Cliente STR_NETWORK_SPECTATORS :Espectadores STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}Introduce a cantidade de cartos que queres dar +STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}Espectador # Network set password STR_COMPANY_PASSWORD_CANCEL :{BLACK}Non grava-lo contrasinal introducido @@ -2549,7 +2591,9 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nome do STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceptada: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de vía: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidade da vía: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límite de velocidade da estrada: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Cons @@ -2665,6 +2709,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Gravar STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Salva-la partida actual, usando o nome seleccionado STR_SAVELOAD_LOAD_BUTTON :{BLACK}Cargar STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Carga-la partida seleccionada +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Carga o mapa de alturas seleccionado STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalles da partida STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Non hai información dispoñíbel STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2833,6 +2878,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite a STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir ao sprite anterior, ignorando pseudosprites, sprites recoloreados e sprites de fonte, e volvendo a empezar ao chegar ao inicio STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representación do sprite seleccionado. A aliñación ignórase ao debuxar este sprite STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move-lo sprite, cambiando os valores de X e Y +STR_SPRITE_ALIGNER_RESET_BUTTON :Reinicio relativo +STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Restablecer a compensación actual +STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Compensación eixo X: {NUM}, Compensación eixo Y: {NUM} (Absoluta) +STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Compensación eixo X: {NUM}, Compensación eixo Y: {NUM} (Relativa) STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Seleccionar sprite STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Seleccionar un sprite en calquera parte da pantalla @@ -2887,6 +2936,7 @@ STR_NEWGRF_LIST_MISSING :{RED}Faltan arq STR_NEWGRF_BROKEN :{WHITE}O comportamento do NewGRF '{0:STRING}' pode causar desincronizacións e/ou colgues STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Cambiou o estado 'vagón con potencia' para '{1:ENGINE}' fóra dun depósito STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Cambiou a lonxitude do vehículo a '{1:ENGINE}' cando non está nun depósito +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Cambiou a capacidade do vehículo en '{1:ENGINE}' cando non está nun depósito ou modificándose STR_BROKEN_VEHICLE_LENGTH :{WHITE}O tren '{VEHICLE}' pertencente a '{COMPANY}' ten unha lonxitude inválida. Esto está causado probabelmente por problemas con NewGRFs. O xogo pode desincronizarse ou colgarse STR_NEWGRF_BUGGY :{WHITE}O NewGRF '{0:STRING}' proporciona información incorrecta. @@ -2902,6 +2952,7 @@ STR_NEWGRF_INVALID_ENGINE : # Placeholders for other invalid stuff, e.g. vehicles that have gone (Game Script). +STR_INVALID_VEHICLE : # NewGRF scanning window STR_NEWGRF_SCAN_CAPTION :{WHITE}Escaneando NewGRFs @@ -3032,13 +3083,16 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Pincha no servizo para centrar a vista na industria/cidade. CTRL+Click abre unha nova fiestra na localización da industria/cidade # Story book window +STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Historial STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Historial global STR_STORY_BOOK_TITLE :{YELLOW}{STRING} STR_STORY_BOOK_GENERIC_PAGE_ITEM :Páxina {NUM} +STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Vai a unha páxina específica seleccionandoa nesta lista despregable. STR_STORY_BOOK_PREV_PAGE :{BLACK}Anterior STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}Ir á páxina anterior STR_STORY_BOOK_NEXT_PAGE :{BLACK}Seguinte STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Ir á páxina seguinte +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Referencia inválida de obxectivo # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}Nomes das estacións - pincha nun nome para centrar a vista na estación. CTRL+Click abre unha nova fiestra na localización da estación @@ -3241,6 +3295,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Require: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}agardando +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} @@ -3301,12 +3357,18 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Borrar o STR_GROUP_RENAME_TOOLTIP :{BLACK}Renomear o grupo seleccionado STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Pincha para protexer a este grupo da autosubstitución global +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Borrar Grupo +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Seguro que queres borrar este grupo e calquera descendente? STR_GROUP_ADD_SHARED_VEHICLE :Engadir vehículos compartidos STR_GROUP_REMOVE_ALL_VEHICLES :Borrar tódolos vehículos STR_GROUP_RENAME_CAPTION :{BLACK}Renomear un grupo +STR_GROUP_PROFIT_THIS_YEAR :Beneficio este ano: +STR_GROUP_PROFIT_LAST_YEAR :Beneficio do último ano: +STR_GROUP_OCCUPANCY :Uso actual: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos vehículos ferroviarios @@ -3339,6 +3401,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Tódolos tipos STR_PURCHASE_INFO_ALL_BUT :Todos excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforzo máximo de tracción: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Autonomía: {GOLD}{COMMA} cadros +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos ferroviarios - pincha nun vehículo para obter información STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de estrada - pincha nun vehículo para obter información @@ -3473,6 +3536,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotora de m STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER}{}Custo operativo: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER} Esforzo tractor máximo: {6:FORCE}{}Custo operativo: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máxima: {VELOCITY}{}Tipo aeronave: {STRING}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máxima: {VELOCITY}{}Tipo aeronave: {STRING}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máxima: {VELOCITY}{}Tipo aeronave: {STRING} Distancia: {COMMA} tiles{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máxima: {VELOCITY}{}Tipo Aeronave: {STRING} Autonomía: {COMMA} tiles{}Capacidade: {CARGO_LONG}{}Custo Operativo: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituír {STRING} - {STRING} @@ -3502,6 +3569,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre as fiestras de substitución de locomotoras e vagóns STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagóns +STR_REPLACE_ALL_RAILTYPE :Todos os veículos sobre raíl STR_REPLACE_HELP_RAILTYPE :{BLACK}Selecciona o tipo de carril para o que queres substituír as locomotoras STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra que máquina seleccionada á esquerda vai ser substituída, se é algunha. @@ -3594,6 +3662,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidade máxima: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vel. máxima: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Vel. máxima: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} cadros STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidade máxima: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidade máxima: {LTBLUE}{VELOCITY} {BLACK}T.E. máx.: {LTBLUE}{FORCE} @@ -3838,6 +3908,9 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viaxar (sen hor STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viaxar polo menos a {2:VELOCITY} (sen horarios) STR_TIMETABLE_TRAVEL_FOR :Viaxar durante {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Viaxar por {STRING} polo menos a {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viaxe (para {STRING}, non calendarizada) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viaxe (para {STRING}, non calendarizado) con como máximo {VELOCITY} +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viaxe para {STRING}, sen calendarizar) STR_TIMETABLE_STAY_FOR :e parar durante {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :e viaxar durante {STRING} STR_TIMETABLE_DAYS :{COMMA} día{P "" s} @@ -3967,6 +4040,8 @@ STR_AI_SETTINGS_START_DELAY :Número de día STR_TEXTFILE_README_CAPTION :{WHITE} "readme" de {STRING} {STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}Rexistro de cambios de {STRING} {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE} licenza de {STRING}{STRING} +STR_TEXTFILE_WRAP_TEXT :{WHITE}Axustar texto +STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Axusta o texto á fiestra de xeito que encaixa sen ter que facer scroll STR_TEXTFILE_VIEW_README :{BLACK}Ver "readme" STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Rexistro de cambios STR_TEXTFILE_VIEW_LICENCE :{BLACK}Licenza @@ -4294,6 +4369,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... xa STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Non se pode crear o grupo... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Non se pode eliminar este grupo... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Non se pode renomear o grupo... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Non se pode establecer o grupo superior... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Non se pode borrar tódolos vehículos deste grupo... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Non se pode engadir o vehículo a este grupo... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Non se poden engadir vehículos compartidos ó grupo... @@ -4349,6 +4425,8 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Non se p STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... o vehículo está destruído +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Non haberá veículos dispoñibles +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Cambia a túa configuración NewGRF STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Aínda non hai vehículos dispoñíbeis STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Comezar unha partida nova a partires de {DATE_SHORT} ou empregar un NewGRF que proporcione vehículos antigos From 24406b44c342a0383ce0946e6044b18d3f2bb3f7 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 21 Apr 2017 17:45:36 +0000 Subject: [PATCH 352/417] (svn r27857) -Update from Eints: galician: 27 changes by permudo --- src/lang/galician.txt | 48 ++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 8d2d1caf52..42cb7ee199 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1119,7 +1119,9 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Configuración STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Configuración da partida (almacénase nas partidas gravadas; afecta só á partida actual) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Configuración da compañía (almacénase nas partidas gravadas; afecta só ás novas partidas) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Configuración da compañía (almacénase nas partidas gravadas; afecta só á partida actual) +STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Amosa todos os resultados da procura por configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Amosa todos os resultados da procura por opción{}{SILVER}Tipo {BLACK}a {WHITE}Todos os tipos de configuración +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Amosa todos os resultados de procura por configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} {BLACK}e {SILVER}Tipo {BLACK}a {WHITE}Todos os tipos de configuración STR_CONFIG_SETTINGS_NONE :{WHITE}- Ningún - STR_CONFIG_SETTING_OFF :Off @@ -2604,29 +2606,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Leiras STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terra cuberta de neve STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto -STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferrocarril -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de Ferrocarril con sinais de bloqueo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de Ferrocarril con sinais avanzados +STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de ferrocarril con sinais de bloqueo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de ferrocarril con sinais avanzados STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de Ferrocarril con sinais de saída STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con sinais combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de Ferrocarril con sinais de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de Ferrocarril con sinais de bloqueo e avanzados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de Ferrocarril con sinais de bloqueo e saída -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de Ferrocarril con sinais de bloqueo e combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de Ferrocarril con sinais de bloqueo e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de ferrocarril con sinais de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferrocarril con sinais de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de Ferrocarril con sinais de bloqueo e pre-sinais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de ferrocarril con sinais de bloqueo e saída +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con sinais de bloqueo e combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con sinais de bloqueo e de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de bloqueo e de ruta monosentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de Ferrocarril con sinais avanzados e de saída STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de Ferrocarril con sinais avanzados e combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de Ferrocarril con sinais avanzados e de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de Ferrocarril con sinais avanzados e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de Ferrocarril con sinais de saída e combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de Ferrocarril con sinais de saída e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de ferrocarril con sinais avanzados e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de ferrocarril con sinais de saída e combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de ferrocarril con sinais de saída e de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de saída e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con sinais combo e de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con sinais combo e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de ruta e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito ferroviario Ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de ferrocarril con sinais combo e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con sinais combo e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de ferrocarril con sinais de ruta e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito ferroviario de ferrocarril STR_LAI_ROAD_DESCRIPTION_ROAD :Estrada STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Estrada con iluminación @@ -2877,7 +2879,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Ir ao sp STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite anterior STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir ao sprite anterior, ignorando pseudosprites, sprites recoloreados e sprites de fonte, e volvendo a empezar ao chegar ao inicio STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representación do sprite seleccionado. A aliñación ignórase ao debuxar este sprite -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move-lo sprite, cambiando os valores de X e Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move-lo sprite, cambiando os valores de X e Y. Ctrl+Click para movelo sprite oito unidades de golpe. STR_SPRITE_ALIGNER_RESET_BUTTON :Reinicio relativo STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Restablecer a compensación actual STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Compensación eixo X: {NUM}, Compensación eixo Y: {NUM} (Absoluta) @@ -2937,7 +2939,7 @@ STR_NEWGRF_BROKEN :{WHITE}O compor STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Cambiou o estado 'vagón con potencia' para '{1:ENGINE}' fóra dun depósito STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Cambiou a lonxitude do vehículo a '{1:ENGINE}' cando non está nun depósito STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Cambiou a capacidade do vehículo en '{1:ENGINE}' cando non está nun depósito ou modificándose -STR_BROKEN_VEHICLE_LENGTH :{WHITE}O tren '{VEHICLE}' pertencente a '{COMPANY}' ten unha lonxitude inválida. Esto está causado probabelmente por problemas con NewGRFs. O xogo pode desincronizarse ou colgarse +STR_BROKEN_VEHICLE_LENGTH :{WHITE}O tren '{VEHICLE}' pertencente a '{COMPANY}' ten unha lonxitude inválida. Isto está causado probabelmente por problemas con NewGRFs. O xogo pode desincronizarse ou colgarse STR_NEWGRF_BUGGY :{WHITE}O NewGRF '{0:STRING}' proporciona información incorrecta. STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Información de carga/reforma para '{1:ENGINE}' difiire da lista de compra despois da construción. Isto pode causar que a renovación/reemprazo automáticos non reformen correctamente @@ -3295,7 +3297,10 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Require: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Require +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}agardando +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts @@ -3569,7 +3574,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre as fiestras de substitución de locomotoras e vagóns STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagóns -STR_REPLACE_ALL_RAILTYPE :Todos os veículos sobre raíl +STR_REPLACE_ALL_RAILTYPE :Todos os vehículos sobre raíl STR_REPLACE_HELP_RAILTYPE :{BLACK}Selecciona o tipo de carril para o que queres substituír as locomotoras STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra que máquina seleccionada á esquerda vai ser substituída, se é algunha. @@ -3910,6 +3915,7 @@ STR_TIMETABLE_TRAVEL_FOR :Viaxar durante STR_TIMETABLE_TRAVEL_FOR_SPEED :Viaxar por {STRING} polo menos a {VELOCITY} STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viaxe (para {STRING}, non calendarizada) STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viaxe (para {STRING}, non calendarizado) con como máximo {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(permanece por {STRING}, non calendarizado) STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viaxe para {STRING}, sen calendarizar) STR_TIMETABLE_STAY_FOR :e parar durante {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :e viaxar durante {STRING} @@ -3996,7 +4002,7 @@ STR_AI_CONFIG_RANDOM_AI :IA aleatoria STR_AI_CONFIG_NONE :(ningunha) STR_AI_CONFIG_MOVE_UP :{BLACK}Subir -STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Mover a IA seleccionada hacia arriba na lista +STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Mover a IA seleccionada cara arriba na lista STR_AI_CONFIG_MOVE_DOWN :{BLACK}Baixar STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}Mover a IA seleccionada hacia abaixo na lista @@ -4425,7 +4431,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Non se p STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... o vehículo está destruído -STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Non haberá veículos dispoñibles +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Non haberá vehículos dispoñibles STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Cambia a túa configuración NewGRF STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Aínda non hai vehículos dispoñíbeis STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Comezar unha partida nova a partires de {DATE_SHORT} ou empregar un NewGRF que proporcione vehículos antigos From e9e44105eb566e2561cfa4a38217173e5f3540bd Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 23 Apr 2017 09:19:32 +0000 Subject: [PATCH 353/417] (svn r27858) -Change [FS#6560]: Add missing game script event for ships arriving at a station. (juanjo) --- src/fontcache.cpp | 2 +- src/ship_cmd.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 6bea59c103..9307c2eddd 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -529,7 +529,7 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key) return glyph->sprite; } } - FT_Load_Glyph(this->face, key, FT_LOAD_DEFAULT); + FT_Load_Glyph(this->face, key, FT_LOAD_NO_HINTING); FT_Render_Glyph(this->face->glyph, aa ? FT_RENDER_MODE_NORMAL : FT_RENDER_MODE_MONO); /* Despite requesting a normal glyph, FreeType may have returned a bitmap */ diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index de1bf4f8c6..771863a24d 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -28,6 +28,7 @@ #include "vehicle_func.h" #include "sound_func.h" #include "ai/ai.hpp" +#include "game/game.hpp" #include "pathfinder/opf/opf_ship.h" #include "engine_base.h" #include "company_base.h" @@ -421,6 +422,7 @@ static void ShipArrivesAt(const Vehicle *v, Station *st) st->index ); AI::NewEvent(v->owner, new ScriptEventStationFirstVehicle(st->index, v->index)); + Game::NewEvent(new ScriptEventStationFirstVehicle(st->index, v->index)); } } From 5932c84011fde68d104cecec167134826418b5fb Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 23 Apr 2017 09:20:53 +0000 Subject: [PATCH 354/417] (svn r27859) -Revert (r27858): Committed too much :( --- src/fontcache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 9307c2eddd..6bea59c103 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -529,7 +529,7 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key) return glyph->sprite; } } - FT_Load_Glyph(this->face, key, FT_LOAD_NO_HINTING); + FT_Load_Glyph(this->face, key, FT_LOAD_DEFAULT); FT_Render_Glyph(this->face->glyph, aa ? FT_RENDER_MODE_NORMAL : FT_RENDER_MODE_MONO); /* Despite requesting a normal glyph, FreeType may have returned a bitmap */ From 9b4f7a6d4bcaada6518e638a59fda098dff881d1 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 28 Apr 2017 17:45:37 +0000 Subject: [PATCH 355/417] (svn r27860) -Update from Eints: scottish gaelic: 4 changes by GunChleoc --- src/lang/gaelic.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 4501405781..2263022c96 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1566,14 +1566,16 @@ STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :Briogadh dùbai STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :Aon bhriogadh (le fòcas) STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK :Aon bhriogadh (sa bhad) -STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :Emulation a' bhriogaidh dheis: {STRING} -STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT :Tagh an dòigh sa thèid emulation a dhèanamh airson briogadh le putan deas na luchaige +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :Riochdachadh a' bhriogaidh dheis: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT :Tagh an dòigh sa thèid briogadh le putan deas na luchaige a riochdachadh STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Command+Briogadh STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+Briogadh STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Dheth STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Sgroladh le briogadh clì: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Cuir an comas gun tèid am mapa a sgroladh le slaodadh le putan clì na luchaige. Tha seo feumail gu h-àraidh nuair a chleachdas tu sgrìn-shuathaidh airson sgroladh +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Dùin an uinneag le briogadh deas: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Dùinidh seo uinneag le briogadh deas ’na broinn. Cuiridh e à comas an gliocas-sgrìn le briogadh deas! STR_CONFIG_SETTING_AUTOSAVE :Fèin-sàbhaladh: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Tagh dè cho tric ’s a thèid geamannan a shàbhaladh gu fèin-obrachail From 49ca5b01924884d5ce43124ffe76d4b7f201a922 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 29 Apr 2017 17:45:37 +0000 Subject: [PATCH 356/417] (svn r27861) -Update from Eints: swedish: 49 changes by Joel_A --- src/lang/swedish.txt | 77 ++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 28 deletions(-) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 09468962f9..f08d8c0b4d 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1296,8 +1296,8 @@ STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Terrängtyp: {STRING} STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis endast) Hilliness av landskapet -STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industri densitet: {STRING} -STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Ange hur många industrier ska genereras och vilken nivå bör bibehållas under spelet +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industritäthet: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Ange hur många industrier som ska genereras och vilken nivå som ska bibehållas under spelet STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximalt avstånd mellan oljeraffinaderier och kartans kant: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Oljeraffinaderier byggs bara nära kartans kanter, alltså vid kusten om det är en ö-karta STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snölinjeshöjd: {STRING} @@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Av STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scrolla med vänster musknappsklick: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Aktivera skrollning av kartan genom att dra den med den vänstra musknappen. Detta är särskilt användbart för skrollning vid användning av en pekskärm +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Stäng fönster med högerklick: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Stänger fönster när man högerklickar inuti dem. Denna inställning inaktiverar tooltips vid högerklick! STR_CONFIG_SETTING_AUTOSAVE :Autospara: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Välj intervall mellan automatisk sparande @@ -1761,6 +1763,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Kolla ef STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Visa inställningar för datorspelare och spelskript STR_INTRO_TOOLTIP_QUIT :{BLACK}Avsluta 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Det grafikpaket som för närvarande är valt som standard saknar {NUM} sprite{P "" s}. Vänligen kontrollera om det finns en uppdatering till paketet. STR_INTRO_TRANSLATION :{BLACK}Den här översättningen saknar {NUM} sträng{P "" ar}. Hjälp gärna till att förbättra OpenTTD genom att bli översättare. Se readme.txt för mer info. # Quit window @@ -1792,7 +1795,7 @@ STR_CHEATS_TOOLTIP :{BLACK}Checkbox STR_CHEATS_WARNING :{BLACK}Varning! Du är på väg att förråda dina motståndare. Kom ihåg att detta inte kommer glömmas STR_CHEAT_MONEY :{LTBLUE}Öka pengar med {CURRENCY_LONG} STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Spelar som företag:: {ORANGE}{COMMA} -STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magisk Bulldozer (ta bort industrier, oflyttbara objekt etc.): {ORANGE}{STRING} +STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magisk bulldozer (ta bort industrier, oflyttbara objekt etc.): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunnlar kan korsa varandra: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Jetplan kommer inte att störta (frekvent) på små flygplatser: {ORANGE} {STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Ändra maximal karthöjd: {ORANGE}{NUM} @@ -1803,7 +1806,7 @@ STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Sub-tropiskt la STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Leksakslandskap STR_CHEAT_CHANGE_DATE :{LTBLUE}Byt datum: {ORANGE} {DATE_SHORT} STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ändra nuvarande år -STR_CHEAT_SETUP_PROD :{LTBLUE}Aktivera modifierande produceringsvärden: {ORANGE}{STRING} +STR_CHEAT_SETUP_PROD :{LTBLUE}Aktivera modifiering av produktionsvärden: {ORANGE}{STRING} # Livery window STR_LIVERY_CAPTION :{WHITE}Nytt färgval @@ -2552,7 +2555,7 @@ STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Grunda # Industry cargoes window STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industrikedja för {STRING} industrin -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Industrikedja för {STRING} godset +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Industrikedja för godset {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Producerande industrier STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Mottagande industrier STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Hus @@ -2589,6 +2592,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Flygplat STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Accepterat gods: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Spårtyp: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Hastighetsgräns för järnvägsspår: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Hastighetsbegränsning på väg: {LTBLUE}{VELOCITY} @@ -2601,29 +2605,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fält STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snötäckt mark STR_LAI_CLEAR_DESCRIPTION_DESERT :Öken -STR_LAI_RAIL_DESCRIPTION_TRACK :Järnväg järnvägsspår -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Järnväg järnvägsspår med normal signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Järnväg järnvägsspår med försignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Järnväg järnvägsspår med utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Järnväg järnvägsspår med kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Järnväg järnvägsspår med avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Järnväg järnvägsspår med avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Järnväg järnvägsspår med normal signal och försignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Järnväg järnvägsspår med normal signal och utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Järnväg järnvägsspår med normal signal och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Järnväg järnvägsspår med normal signal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Järnväg järnvägsspår med normal signal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Järnväg järnvägsspår med för- och utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Järnväg järnvägsspår med för- och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Järnväg järnvägsspår med försignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Järnväg järnvägsspår med försignal och envägs avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Järnväg järnvägsspår med utfarts- och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Järnväg järnvägsspår med utfartssignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Järnväg järnvägsspår med utfartssignal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Järnväg järnvägsspår med kombinationssignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Järnväg järnvägsspår med kombinationssignal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Järnväg järnvägsspår med avancerad signal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Järnväg järvägsdepå +STR_LAI_RAIL_DESCRIPTION_TRACK :Järnvägsspår +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Järnvägsspår med normal signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Järnvägsspår med försignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Järnvägsspår med utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Järnvägsspår med kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Järnvägsspår med avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Järnvägsspår med avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Järnvägsspår med normal signal och försignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Järnvägsspår med normal signal och utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Järnvägsspår med normal signal och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Järnvägsspår med normal signal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Järnvägsspår med normal signal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Järnvägsspår med för- och utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Järnvägsspår med för- och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Järnvägsspår med försignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Järnvägsspår med försignal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Järnvägsspår med utfarts- och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Järnvägsspår med utfartssignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Järnvägsspår med utfartssignal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Järnvägsspår med kombinationssignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Järnvägsspår med kombinationssignal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Järnvägsspår med avancerad signal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Järnvägsdepå STR_LAI_ROAD_DESCRIPTION_ROAD :Väg STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Väg med gatubelysning @@ -3292,6 +3296,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Kräver: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kräver: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Kräver +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}väntar +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING} @@ -3360,6 +3369,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ta bort alla fo STR_GROUP_RENAME_CAPTION :{BLACK}Döp om en grupp +STR_GROUP_PROFIT_THIS_YEAR :Vinst i år: +STR_GROUP_PROFIT_LAST_YEAR :Vinst förra året: +STR_GROUP_OCCUPANCY :Nuvarande användning: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nytt tågfordon @@ -3392,6 +3405,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Alla typer av l STR_PURCHASE_INFO_ALL_BUT :Allt utom {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maximal Dragkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Räckvidd: {GOLD}{COMMA} rutor +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Flygplanstyp: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista av tågvagnar. Klicka på tågvagn för information. Ctrl+klick visar eller döljer vagnstypen STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vägfordonslista. Klicka på fordon för information. Ctrl+klick visar eller döljer fordonstypen @@ -3526,6 +3540,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft {POWER}{}Löpande kostnad: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Effekt: {POWER} Max. T.E.: {6:FORCE}{}Löpande kostnad: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY}{}Flygplanstyp: {STRING}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY}{}Flygplanstyp: {STRING}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY}{}Flygplanstyp: {STRING} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY}{}Flygplanstyp: {STRING} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Byt ut {STRING} - {STRING} @@ -3555,6 +3573,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Tryck f STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Växla mellan lok- och vagnersättningsfönster STR_REPLACE_ENGINES :Lok STR_REPLACE_WAGONS :Vagnar +STR_REPLACE_ALL_RAILTYPE :Alla järnvägsfordon STR_REPLACE_HELP_RAILTYPE :{BLACK}Välj vilken järnvägstyp du vill byta ut lok för STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Visa vilket fordon det vänstra fordonet byts ut till, om något @@ -3647,6 +3666,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maxhastiget: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Maxhastighet: {LTBLUE}{VELOCITY} {BLACK}Flygplanstyp: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Maxhastighet: {LTBLUE}{VELOCITY} {BLACK}Flygplanstyp: {LTBLUE}{STRING} {BLACK}Räckvidd: {LTBLUE}{COMMA} rutor STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vikt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maxhastiget: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vikt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maxhastiget: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} From 497aca8175910d6b4b200360497a23353e688903 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 5 May 2017 17:45:38 +0000 Subject: [PATCH 357/417] (svn r27868) -Update from Eints: spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 9c602ed6f0..d844c123a8 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2625,7 +2625,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de ferrocarril con señales combo y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con señales combo y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de ferrocarril con señales de dirección y de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril depósito de tren +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de trenes del ferrocarril STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera con farolas @@ -3536,6 +3536,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Mantenimiento: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste Mantenimiento: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año # Autoreplace window @@ -3660,6 +3661,7 @@ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} a STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} casillas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE} From 5d804175915591869949a13de05be2d94f74b844 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 8 May 2017 17:45:36 +0000 Subject: [PATCH 358/417] (svn r27869) -Update from Eints: spanish: 2 changes by SilverSurferZzZ hungarian: 6 changes by Brumi --- src/lang/hungarian.txt | 6 ++++++ src/lang/spanish.txt | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index b88e738c4f..fdbc4f2e9b 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1436,6 +1436,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Kikapcsolva STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Bal gombos térképmozgatás: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Bal egérgombbal történő térképmozgatás engedélyezése. Különösen hasznos érintőképernyős mozgatás használata esetén +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Ablakok bezárása jobb gombbal: {STRING} STR_CONFIG_SETTING_AUTOSAVE :Automatikus mentés: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Az automatikus mentések között eltelő idő @@ -2653,6 +2654,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Repülő STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Elfogad: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Vasút típusa: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Vasúti pályasebesség: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Közúti sebességkorlátozás: {LTBLUE}{VELOCITY} @@ -3356,6 +3358,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Felhaszn STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhasznál: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING} @@ -3424,6 +3427,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Összes jármű STR_GROUP_RENAME_CAPTION :{BLACK}Csoport átnevezése +STR_GROUP_PROFIT_LAST_YEAR :Tavalyi nyereség: +STR_GROUP_OCCUPANCY :Jelenlegi kihasználtság: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Új vasúti járművek diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index d844c123a8..3b5e38710c 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3538,6 +3538,8 @@ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: { STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} From 4b7a30c44ebc45ff00516b1e5d767a160319c75b Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 9 May 2017 17:45:37 +0000 Subject: [PATCH 359/417] (svn r27870) -Update from Eints: hungarian: 38 changes by Brumi --- src/lang/hungarian.txt | 61 ++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index fdbc4f2e9b..b93d68ef0e 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1437,6 +1437,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Kikapcsolva STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Bal gombos térképmozgatás: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Bal egérgombbal történő térképmozgatás engedélyezése. Különösen hasznos érintőképernyős mozgatás használata esetén STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Ablakok bezárása jobb gombbal: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :A jobb gombbal való kattintás az ablak területén bezárja az ablakot. Ez a beállítás kikapcsolja a segédletek jobb gombbal való megjelenítését! STR_CONFIG_SETTING_AUTOSAVE :Automatikus mentés: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Az automatikus mentések között eltelő idő @@ -1826,6 +1827,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Új és STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}MI és játékszkript beállítások megjelenítése STR_INTRO_TOOLTIP_QUIT :{BLACK}Kilépés az OpenTTD-ből +STR_INTRO_BASESET :{BLACK}A jelenleg kiválasztott grafikus alapcsomagból {NUM} sprite hiányzik. Frissítsd a grafikus alapcsomagot! STR_INTRO_TRANSLATION :{BLACK}Ebből a fordításból {NUM} sor hiányzik. Segíts Te is jobbá tenni az OpenTTD-t és jelentkezz fordítónak! További részletekért lásd a readme.txt-t. # Quit window @@ -2667,29 +2669,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Szántóföld STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Havas föld STR_LAI_CLEAR_DESCRIPTION_DESERT :Sivatag -STR_LAI_RAIL_DESCRIPTION_TRACK :Vasút vasúti pálya -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vasút vasúti pálya normál jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vasút vasúti pálya előjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vasút vasúti pálya kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vasút vasúti pálya kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vasút vasúti pálya irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vasút vasúti pálya egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vasút vasúti pálya normál- és előjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vasút vasúti pálya normál- és kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vasút vasúti pálya normál- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vasút vasúti pálya normál- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vasút vasúti pálya normál- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vasút vasúti pálya elő- és kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vasút vasúti pálya elő- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vasút vasúti pálya elő- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vasút vasúti pálya elő- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vasút vasúti pálya kijárati- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vasút vasúti pálya kijárati- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vasút vasúti pálya kijárati- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vasút vasúti pálya kombinált- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vasút vasúti pálya kombinált- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vasút vasúti pálya irány- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Vasút járműtelep +STR_LAI_RAIL_DESCRIPTION_TRACK :Vasúti pálya +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vasúti pálya normál jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vasúti pálya előjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vasúti pálya kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vasúti pálya kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vasúti pálya irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vasúti pálya egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vasúti pálya normál- és előjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vasúti pálya normál- és kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vasúti pálya normál- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vasúti pálya normál- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vasúti pálya normál- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vasúti pálya elő- és kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vasúti pálya elő- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vasúti pálya elő- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vasúti pálya elő- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vasúti pálya kijárati- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vasúti pálya kijárati- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vasúti pálya kijárati- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vasúti pálya kombinált- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vasúti pálya kombinált- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vasúti pálya irány- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Vasúti járműtelep STR_LAI_ROAD_DESCRIPTION_ROAD :Út STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Út közvilágítással @@ -3358,7 +3360,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Felhaszn STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhasznál: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Elfogad: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}várakozik +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING} @@ -3427,6 +3433,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Összes jármű STR_GROUP_RENAME_CAPTION :{BLACK}Csoport átnevezése +STR_GROUP_PROFIT_THIS_YEAR :Idei nyereség: STR_GROUP_PROFIT_LAST_YEAR :Tavalyi nyereség: STR_GROUP_OCCUPANCY :Jelenlegi kihasználtság: STR_GROUP_OCCUPANCY_VALUE :{NUM}% @@ -3462,6 +3469,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Minden rakomán STR_PURCHASE_INFO_ALL_BUT :Mindenre, kivéve {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maximális vonóerő: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Hatótávolság: {GOLD}{COMMA} mező +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Típus: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Vasúti jármű kiválasztása - kattints egy járműre az adataihoz. Ctrl+kattintással a járműtípus elrejthető/felfedhető STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Közúti jármű kiválasztása - kattints egy járműre az adataihoz. Ctrl+kattintással a járműtípus elrejthető/felfedhető @@ -3596,6 +3604,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Maglev mozdony STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER}{}Üzemeltetés: {CURRENCY_LONG}/év{}Kapacitás: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER} Maximális vonóerő: {6:FORCE}{}Üzemeltetés: {4:CURRENCY_LONG}/év{}Kapacitás: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Sebesség: {VELOCITY}{}Típus: {STRING}{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Sebesség: {VELOCITY}{}Típus: {STRING}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Sebesség: {VELOCITY}{}Típus: {STRING} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Sebesség: {VELOCITY}{}Típus: {STRING} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} lecserélése - {STRING} @@ -3625,6 +3637,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Nyomd me STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Váltás a mozdony és a vagoncserélő ablak között STR_REPLACE_ENGINES :Mozdonyok STR_REPLACE_WAGONS :Vagonok +STR_REPLACE_ALL_RAILTYPE :Minden vasúti jármű STR_REPLACE_HELP_RAILTYPE :{BLACK}Cserélendő egységek vasúttípusának kiválasztása STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Megmutatja, hogy melyik bal oldali egységet akarod kicserélni @@ -3717,6 +3730,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} év ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} év ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Végsebesség: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Sebesség: {LTBLUE}{VELOCITY} {BLACK}Típus: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Sebesség: {LTBLUE}{VELOCITY} {BLACK}Típus: {LTBLUE}{STRING} {BLACK}Hatótávolság: {LTBLUE}{COMMA} mező STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Súly: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Súly: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} {BLACK}Vonóerő: {LTBLUE}{FORCE} From 092ede70fde838ea61b23eed1e4e3e00803890a5 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 11 May 2017 17:45:37 +0000 Subject: [PATCH 360/417] (svn r27871) -Update from Eints: korean: 2 changes by telk5093 spanish: 2 changes by SilverSurferZzZ german: 6 changes by mini1025 --- src/lang/german.txt | 8 ++++++-- src/lang/korean.txt | 4 ++-- src/lang/spanish.txt | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lang/german.txt b/src/lang/german.txt index 037b5096b1..f0cc17660d 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3372,6 +3372,7 @@ STR_GROUP_RENAME_CAPTION :{BLACK}Gruppe u STR_GROUP_PROFIT_THIS_YEAR :Gewinn in diesem Jahr: STR_GROUP_PROFIT_LAST_YEAR :Gewinn im letzten Jahr: +STR_GROUP_OCCUPANCY :Aktuelle Nutzung: STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window @@ -3380,7 +3381,7 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Neue elektrisch STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Neue Einschienenbahnfahrzeuge STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Neue Magnetbahnfahrzeuge -STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Neue Eisenbahnfahrzeuge +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Neue Schienenfahrzeuge STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Neue Fahrzeuge STR_BUY_VEHICLE_SHIP_CAPTION :Neue Schiffe STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Neue Flugzeuge @@ -3405,6 +3406,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Alle Frachtarte STR_PURCHASE_INFO_ALL_BUT :Alles außer {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zugkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Reichweite: {GOLD}{COMMA} Felder +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Flugzeugtyp: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Schienenfahrzeugsliste - Einzelheiten durch Anklicken des Fahrzeuges. Strg+Klick schaltet um zwischen Verstecken und Zeigen des Fahrzeugtyps STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Straßenfahrzeugsliste - Klicke auf ein Fahrzeug für Einzelheiten. Strg+Klick schaltet um zwischen Verstecken und Zeigen des Fahrzeugtyps @@ -3542,6 +3544,7 @@ STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preis: { STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING} Reichweite: {COMMA} Felder{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING} Reichweite: {COMMA} tiles{}Kapazität: {CARGO_LONG}{}Laufende Kosten: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING} @@ -3571,10 +3574,11 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klick zu STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Umschalter für Lok- oder Waggonersetzung STR_REPLACE_ENGINES :Schienenfahrzeuge STR_REPLACE_WAGONS :Waggons +STR_REPLACE_ALL_RAILTYPE :Alle Schienenfahrzeuge STR_REPLACE_HELP_RAILTYPE :{BLACK}Gleistyp auswählen, für den Loks ersetzt werden sollen STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Hier wird angezeigt, gegen welches Fahrzeug das auf der linken Seite gewählte ersetzt wird -STR_REPLACE_RAIL_VEHICLES :Eisenbahn +STR_REPLACE_RAIL_VEHICLES :Schienenfahrzeuge STR_REPLACE_ELRAIL_VEHICLES :elektrische Schienenfahrzeuge STR_REPLACE_MONORAIL_VEHICLES :Einschienenbahn STR_REPLACE_MAGLEV_VEHICLES :Magnetschwebebahn diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 8e25e71a66..75df75a573 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2585,8 +2585,8 @@ STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}지역 STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :없음 STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}좌표: {LTBLUE}{NUM} x {NUM} x {NUM} ({STRING}) STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}건설날짜: {LTBLUE}{DATE_LONG} -STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}정거장 등급: {LTBLUE}{STRING} -STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}정거장 종류: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}역 분류: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}역 종류: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}공항 등급: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}공항 이름: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}공항 칸 이름: {LTBLUE}{STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3b5e38710c..8bcd8a5318 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Desactivado STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplazamiento con botón izquierdo: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activa el deslizamiento del mapa al arrastrarlo con el botón izquierdo. Esto es especialmente útil al usar pantallas táctiles +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Cerrar ventana con click derecho: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Cierra una ventana al hacer click derecho dentro. ¡Quita la información al hacer click derecho! STR_CONFIG_SETTING_AUTOSAVE :Autoguardado: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona el intervalo entre guardados automáticos del juego From 8ab8a8f9b4d50130e0467c198ab82db8f25da702 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 13 May 2017 17:45:37 +0000 Subject: [PATCH 361/417] (svn r27872) -Update from Eints: swedish: 19 changes by Joel_A --- src/lang/swedish.txt | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index f08d8c0b4d..b127a99dbb 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -679,7 +679,7 @@ STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLA STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Töm STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Töm aktuell spellista (enbart Personlig1 eller Personlig2) STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klicka på ett musikstycke för att lägga till det i spellistan (enbart Personlig1 eller Personlig2) -STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klicka på ett musikstycket för att ta bort det från spellistan (endast Personlig1 och Personlig2) +STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klicka på ett musikstycke för att ta bort det från spellistan (endast Personlig1 och Personlig2) # Highscore window STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}De bästa företagen som nådde {NUM} @@ -1237,7 +1237,7 @@ STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Tillåt att fö STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Tillåt skicka pengar till andra företag: {STRING} STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Tillåt överföring av pengar mellan företag i flerspelarläge STR_CONFIG_SETTING_FREIGHT_TRAINS :Godsfaktor för att simulera tunga tåg: {STRING} -STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Ställ in påverkan av att frakta gods i tåg. Ett högre värde gör att frakt-gods är mer krävande för tågen, speciellt vid lutningar +STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Ställ in påverkan av att frakta gods i tåg. Ett högre värde gör att fraktgods är mer krävande för tågen, speciellt vid lutningar STR_CONFIG_SETTING_PLANE_SPEED :Hastighetsfaktor för flygplan: {STRING} STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Ställ in relativ hastighet för flygplan relativt övriga fordonstyper. Detta reducerar inkomsterna för flygtransporter. STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA} @@ -1246,10 +1246,10 @@ STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Ställ in hur s STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Inga STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reducerad STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal -STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillåt genomfarts-stopp på stadsägda vägar: {STRING} -STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Tillåt konstruktion av genomfarts-stopp på stadsägda vägar +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillåt genomfartshållplatser på stadsägda vägar: {STRING} +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Tillåt konstruktion av genomfartshållplatser på stadsägda vägar STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Tillåt dina fordon att köra genom motståndarens hållplatser: {STRING} -STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Tillåt konstruktion av genomfarts-stopp på vägar som ägs av andra företag +STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Tillåt konstruktion av genomfartshållplatser på vägar som ägs av andra företag STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Det är inte möjligt att ändra denna inställning när det finns fordon STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Underhåll av infrastruktur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Om det är aktiverat så kostar underhåll av infrastruktur. Kostnaden ökar mer än proportionellt mot nätverkets storlek, vilket innebär att större företag drabbas hårdare än små företag av underhållskostnader. @@ -1816,8 +1816,8 @@ STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Visa fä STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Visa färgscheman för vägfordon STR_LIVERY_SHIP_TOOLTIP :{BLACK}Visa färgscheman för skepp STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Visa färgschema för flygplan -STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Välj huvudfärg för det aktuella schemat. Ctrl+Click kommer att välja färgen för alla scheman -STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Välj andravalsfärgen för det aktuella schemat. Ctrl+Click kommer att välja färgen för alla scheman +STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Välj huvudfärg för det aktuella schemat. Ctrl+klick kommer att välja färgen för alla scheman +STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Välj andravalsfärgen för det aktuella schemat. Ctrl+klick kommer att välja färgen för alla scheman STR_LIVERY_PANEL_TOOLTIP :{BLACK}Välj ett färgschema att ändra eller välj flera genom CTRL+klick. Bocka för rutan för att använda scheman STR_LIVERY_DEFAULT :Normalt färgschema @@ -3207,7 +3207,7 @@ STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENC STR_FINANCES_BORROW_BUTTON :{BLACK}Låna {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Öka lånets storlek. Ctrl + Klick lånar så mycket som möjligt STR_FINANCES_REPAY_BUTTON :{BLACK}Återbetala {CURRENCY_LONG} -STR_FINANCES_REPAY_TOOLTIP :{BLACK}Återbetala en del av lånet. Ctrl+Klick återbetalar så mycket som möjligt +STR_FINANCES_REPAY_TOOLTIP :{BLACK}Återbetala en del av lånet. Ctrl+klick återbetalar så mycket som är möjligt STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}Infrastruktur # Company view @@ -3583,7 +3583,7 @@ STR_REPLACE_MONORAIL_VEHICLES :Monorail-fordon STR_REPLACE_MAGLEV_VEHICLES :Maglevfordon STR_REPLACE_REMOVE_WAGON :{BLACK}Vagnborttagning: {ORANGE}{STRING} -STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Gör så att automatiskt utbytning behåller ett tågs längd genom att ta bort vagnar (med början längst fram) om utbytandet av loket skulle göra tåget längre +STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Gör så att automatiskt utbyte behåller ett tågs längd genom att ta bort vagnar (med början längst fram) om utbytandet av loket skulle göra tåget längre # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} @@ -3727,7 +3727,7 @@ STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapac STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}{}{BLACK}Inkomstens vinst: {GREEN}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Kostnad för anpassning: {RED}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}. {GOLD}{CARGO_LONG}{}{BLACK}Inkomstens vinst: {GREEN}{CURRENCY_LONG} -STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Välj vilka fordon som ska anpassas. Genom att dra med musen kan flera fordon väljas. Klicka på en tom yta för att välja hela fordonet. Ctrl+Klick på ett fordon kommer att välja hela resterande kedjan +STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Välj vilka fordon som ska anpassas. Genom att dra med musen kan flera fordon väljas. Klicka på en tom yta för att välja hela fordonet. Ctrl+klick på ett fordon kommer att välja det och hela den resterande kedjan STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Välj godstyp för tåget att bära STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Välj lasttyp för fordon @@ -4126,7 +4126,7 @@ STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Meddela # Generic construction errors STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Utanför kanten STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}För nära kanten av kartan -STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}Inte tillräckligt med pengar - krävs {CURRENCY_LONG} +STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}Inte tillräckligt med pengar - kräver {CURRENCY_LONG} STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}Platt mark krävs STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Marken lutar åt fel håll STR_ERROR_CAN_T_DO_THIS :{WHITE}Kan inte utföra detta... @@ -4146,7 +4146,7 @@ STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}Inte til # Local authority errors STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}De lokala myndigheterna i {TOWN} tillåter inte detta STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}De lokala myndigheterna i {TOWN} tillåter inte att ytterligare en flygplats byggs i staden -STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}{TOWN}'s lokala myndigheter vägrar ge tillåtelse att bygga en flygplats på grund av ljudproblem +STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}De lokala myndigheterna i {TOWN} vägrar ge tillåtelse att bygga en flygplats på grund av ljudproblem STR_ERROR_BRIBE_FAILED :{WHITE}Ditt mutningsförsök upptäcktes av en regional granskare # Levelling errors @@ -4165,7 +4165,7 @@ STR_ERROR_CAN_T_CHANGE_PRESIDENT :{WHITE}Kan inte STR_ERROR_MAXIMUM_PERMITTED_LOAN :{WHITE}... maximal storlek på lånet är {CURRENCY_LONG} STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Kan inte låna mer pengar... -STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... lånet redan återbetalt +STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... lånet är redan återbetalt STR_ERROR_CURRENCY_REQUIRED :{WHITE}... {CURRENCY_LONG} krävs STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kan inte återbetala lånet... STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kan inte ge bort pengar som är lånade från banken... @@ -4221,19 +4221,19 @@ STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}Kan inte STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}Kan inte bygga flygplats här... STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Angränsar till mer än en station/hållplats -STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... station för utspridd +STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... stationen för utspridd STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}För många stationer/hållplatser STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}För många delar på järnvägsstationen STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}För många busshållplatser STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}För många lastbryggor -STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}För nära en annan stationer/hållplatser +STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}För nära en annan station/hållplats STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}För nära en annan hamn STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}För nära en annan flygplats STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan inte byta namn på station... STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... detta är en stadsägd väg STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... vägen pekar i fel riktning -STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... drive through stopp kan inte ha gatuhörn -STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... drive through stopp kan inte ha korsningar +STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... genomfartshållplatser kan inte ha gatuhörn +STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... genomfartshållplatser kan inte ha korsningar # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan ej ta bort del av station... @@ -4279,7 +4279,7 @@ STR_ERROR_ROAD_VEHICLE_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... mås STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... måste stoppas i en depå STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... måste stoppas i en hangar -STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Tåg kan bara ändras när det står still inuti en depå +STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Tåg kan bara ändras när det står stilla inuti en depå STR_ERROR_TRAIN_TOO_LONG :{WHITE}Tåg för långt STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Kan inte byta fordonets riktning... STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... består av flera delar @@ -4374,7 +4374,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... du STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan inte skapa grupp... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Kan inte ta bort denna grupp... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Kan inte döpa om grupp... -STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan inte ställa föräldragrupp ... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan inte ställa in föräldragrupp ... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Kan inte ta bort alla fordon i denna grupp... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Kan inte lägga till fordon i denna grupp... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Kan inte lägga till delade fordon i denna grupp... From 8b1bf56b29af974874bde0da0edcfbf2ff09198a Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 15 May 2017 17:45:36 +0000 Subject: [PATCH 362/417] (svn r27873) -Update from Eints: spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 8bcd8a5318..525b29a312 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1764,6 +1764,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comproba STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts de juego e IAs STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' +STR_INTRO_BASESET :{BLACK}El conjunto de gráficos base actualmente seleccionado no encuentra {NUM} sprite{P "" s}. Comprueba si hay actualizaciones para el conjunto base, o usa otro totalmente actualizado. STR_INTRO_TRANSLATION :{BLACK}A esta traducción le faltan {NUM} cadena{P "" s} de texto. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta el readme.txt para más detalles. # Quit window @@ -3299,6 +3300,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} From cc650ca82b65f649f3d6d34ebbc5651ac186cbe8 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 16 May 2017 17:45:37 +0000 Subject: [PATCH 363/417] (svn r27874) -Update from Eints: luxembourgish: 6 changes by Phreeze --- src/lang/luxembourgish.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index ccdca5d916..d1d26f75d4 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Aus STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Lénksklickscroll: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Schalt d'Scrollen vun der Kaart un, wann se mat der lénker Maustast gezunn gëtt +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Fënster mat rietsem Mausklick zouman: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Mécht eng Fenster mat engem Rietsklick zou, wann een an d'Fënster klickt. Schalt Tooltips aus déi per Rietsklick gemet ginn! STR_CONFIG_SETTING_AUTOSAVE :Autospäicheren: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Setz den Interval tëschend automateschen Späicherstänn @@ -3367,6 +3369,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :All Gefierer ew STR_GROUP_RENAME_CAPTION :{BLACK}Eng Grupp ëmbenennen +STR_GROUP_PROFIT_THIS_YEAR :Profit dëst Joer: +STR_GROUP_PROFIT_LAST_YEAR :Profit lescht Joer: +STR_GROUP_OCCUPANCY :Aktuell Benotzung: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nei Zich From 063c8509b734c495b6537916ddef99fcc0b92658 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 23 May 2017 17:45:37 +0000 Subject: [PATCH 364/417] (svn r27875) -Update from Eints: chinese (simplified): 7 changes by chenwt0315 --- src/lang/simplified_chinese.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 47e709bb3e..1f7b219deb 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2589,6 +2589,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}机场 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}接受货物:{LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}铁轨类型: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}轨道限速: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}道路限速:{LTBLUE}{VELOCITY} @@ -3292,6 +3293,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}需要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要:{YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}等待中 ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING} @@ -3360,6 +3363,8 @@ STR_GROUP_REMOVE_ALL_VEHICLES :移除所有车 STR_GROUP_RENAME_CAPTION :{BLACK}重命名分组 +STR_GROUP_PROFIT_LAST_YEAR :去年利润 +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :购买普通列车 @@ -3392,6 +3397,7 @@ STR_PURCHASE_INFO_ALL_TYPES :所有类型 STR_PURCHASE_INFO_ALL_BUT :除了 {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}最大牵引力:{GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}航行距离: {GOLD}{COMMA} 格 +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}飞机类型: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}列车车辆选择列表。点击车辆查看详细信息,或者按住 Ctrl 键再点击以切换是否隐藏车辆的种类 STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}路面车辆选择列表。点击车辆查看详细信息,或者按住 Ctrl 键再点击以切换是否隐藏车辆的种类 @@ -3526,6 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁悬浮机车 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}运行费用:{CURRENCY_LONG}/年{}运载能力: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牵引力:{6:FORCE}{}运行费用{4:CURRENCY_LONG}/年{}运载能力:{5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}购买费用: {CURRENCY_LONG} 最大速度: {VELOCITY}{}飞机种类: {STRING} 最大航程: {COMMA} 格{}装载量: {CARGO_LONG}, {CARGO_LONG}{}运行费用: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}更新 {STRING} - {STRING} From b153db2568a4882c10f210a396c58e53bdbe972b Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 27 May 2017 17:45:39 +0000 Subject: [PATCH 365/417] (svn r27876) -Update from Eints: swedish: 3 changes by Joel_A --- src/lang/swedish.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index b127a99dbb..a204cf1287 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2455,12 +2455,12 @@ STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Välj st STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Flygplatsklass STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Layout {NUM} -STR_AIRPORT_SMALL :Liten +STR_AIRPORT_SMALL :Liten flygplats STR_AIRPORT_CITY :Stad STR_AIRPORT_METRO :Storstads-flygplats STR_AIRPORT_INTERNATIONAL :Internationell flygplats STR_AIRPORT_COMMUTER :Pendlare -STR_AIRPORT_INTERCONTINENTAL :Interkontinental +STR_AIRPORT_INTERCONTINENTAL :Interkontinental flygplats STR_AIRPORT_HELIPORT :Helikopterplatta STR_AIRPORT_HELIDEPOT :Helikopterhangar STR_AIRPORT_HELISTATION :Helikopterstation @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Mark som ägs a # About OpenTTD window STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD -STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig äganderätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas +STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig upphovsrätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas STR_ABOUT_VERSION :{BLACK}OpenTTD-version {REV} STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet From 16f74c6a2f2b03a1b2b0d60398054488e5494919 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 8 Jun 2017 17:45:37 +0000 Subject: [PATCH 366/417] (svn r27877) -Update from Eints: turkish: 28 changes by wakeup --- src/lang/turkish.txt | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index a41d70a517..e1d24fa0f0 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -286,7 +286,7 @@ STR_SORT_BY_TYPE :Tür STR_SORT_BY_TRANSPORTED :Taşınan STR_SORT_BY_NUMBER :Numara STR_SORT_BY_PROFIT_LAST_YEAR :Geçen seneki kar -STR_SORT_BY_PROFIT_THIS_YEAR :Bu seneki kar +STR_SORT_BY_PROFIT_THIS_YEAR :Bu yılki kar STR_SORT_BY_AGE :Yaş STR_SORT_BY_RELIABILITY :Güvenilirlik STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Her kargo için toplam kapasite @@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Kapalı STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Sol tık ile ekran kaydır: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Sol fare tuşuyla sürükleyerek harita kaydırma özelliğini etkinleştir. Özellikle dokunmatik-ekran kullanırken kaydırma yapmak için kullanılabilir. +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Sağ tıklama ile pencereyi kapat: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :İçerisinde sağ tıklandığında pencereyi kapatır. Sağ tıklandığında ipuçları gösterimini devre dışı bırakır! STR_CONFIG_SETTING_AUTOSAVE :Otomatik kaydet: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Otomatik oyun kaydetme sıklığını seçin @@ -1762,6 +1764,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}İndiril STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}YZ ve Oyun betik ayarlarını göster STR_INTRO_TOOLTIP_QUIT :{BLACK}'OpenTTD' den çık +STR_INTRO_BASESET :{BLACK}Geçerli seçimdeki temel grafik setinin {NUM} örneği eksik. Lütfen temel setin güncellemelerini kontrol edin. STR_INTRO_TRANSLATION :{BLACK}Bu çeviride {NUM} eksik metin var. Çevirmen olarak kaydolarak OpenTTD'nin iyileştirilmesine yardım edin. Ayrıntılar için readme.txt'ye bakın. # Quit window @@ -2497,7 +2500,7 @@ STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Haritaya # Land generation window (SE) STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Arazi Yapımı -STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Haritaya kayalik koy +STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Haritaya kayalık koy STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}Çöl alanı tanımla.{}Kaldırmak için CTRL'yi basılı tut STR_TERRAFORM_TOOLTIP_INCREASE_SIZE_OF_LAND_AREA :{BLACK}yükseltme/alçaltma alanını arttır STR_TERRAFORM_TOOLTIP_DECREASE_SIZE_OF_LAND_AREA :{BLACK}Yükseltme/alçaltma alanını arttır @@ -2782,7 +2785,7 @@ STR_GENERATION_WORLD_GENERATION :{BLACK}Harita STR_GENERATION_RIVER_GENERATION :{BLACK}Nehir oluşturma STR_GENERATION_TREE_GENERATION :{BLACK}Ağaç üretimi STR_GENERATION_OBJECT_GENERATION :{BLACK}Nesne oluşturma -STR_GENERATION_CLEARING_TILES :{BLACK}Engebeli ve kayalik alan oluştur +STR_GENERATION_CLEARING_TILES :{BLACK}Engebeli ve kayalık alan oluştur STR_GENERATION_SETTINGUP_GAME :{BLACK}Oyun ayarlanıyor STR_GENERATION_PREPARING_TILELOOP :{BLACK}tile-loop çalıştırılıyor STR_GENERATION_PREPARING_SCRIPT :{BLACK}Betik çalıştırılıyor @@ -3171,7 +3174,7 @@ STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Uçağı # Waypoint/buoy view window STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT} -STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Ana görünümü güzegaha ortala. Ctrl ile tıklama güzegahın konumunu gösteren yeni bir pencere açar +STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Ana görünümü güzergaha ortala. Ctrl ile tıklama güzegahın konumunu gösteren yeni bir pencere açar STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Ara nokta adını değiştir STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Ana görünümü şamandıra konumuna ortala. Ctrl ile tıklama şamandıranın konumunu gösteren yeni bir pencere açar STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Şamandıra adını değiştir @@ -3294,6 +3297,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}İstenen STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}İstenenler: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Gereken +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}bekliyor +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING} @@ -3362,6 +3370,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Bütün araçla STR_GROUP_RENAME_CAPTION :{BLACK}Grubun ismini değiştir +STR_GROUP_PROFIT_THIS_YEAR :Bu yılki kar: +STR_GROUP_PROFIT_LAST_YEAR :Geçen yılki kar: +STR_GROUP_OCCUPANCY :Şu anki kullanım: +STR_GROUP_OCCUPANCY_VALUE :%{NUM} # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Yeni Tren @@ -3394,6 +3406,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Tüm kargo tür STR_PURCHASE_INFO_ALL_BUT :Şunlar hariç tümü: {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Aza. Çekim Gücü: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Menzil: {GOLD}{COMMA} kare +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Uçak türü: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Tren seçim listesi. Bilgi için araç tıklayın. Ctrl+Tıklama araç türünün gizlenmesini açar/kapatır STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Karayolu araçları seçim listesi. Bilgi için araca tıklayın. Ctrl+Tıklama araç türünün gizlenmesini açar/kapatır @@ -3494,7 +3507,7 @@ STR_DEPOT_CLONE_SHIP_DEPOT_INFO :{BLACK}Geminin STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}Uçağın bir kopyasını oluşturur. Önce bu düğmeye sonra da hangarın içindeki veya dışındaki bir uçaga tıklayın. Ctrl-tıklama talimatları paylaştırır. Shift ile tıklama satın almadan tahmini maliyeti gösterir STR_DEPOT_TRAIN_LOCATION_TOOLTIP :{BLACK}Tren garını göster. Ctrl ile tıklama garın konumunu gösteren yeni bir pencere açar -STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Kara taşıtı garajını göster. Ctrl+Tıklama garajın konumunu gösteren yeni bir pencere açar +STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Kara taşıtı garajını göster. Ctrl ile tıklama garajın konumunu gösteren yeni bir pencere açar STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}Tersaneyi göster. Ctrl ile tıklama tershanenin konumunu gösteren yeni bir pencere açar STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Hangarı göster. Ctrl ile tıklama hangarın konumunu gösteren yeni bir pencere açar @@ -3525,9 +3538,13 @@ STR_ENGINE_PREVIEW_SHIP :gemi STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monoray lokomotifi STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomotifi -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Fiyat: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER}{}Bakım: {CURRENCY_LONG}/sene{}Kapasite: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Maliyet: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER} Azami Tork: {6:FORCE}{}Çalışma Gideri: {4:CURRENCY_LONG}/yıl{}Kapasite: {5:CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Fiyat: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER}{}İşletme Gideri: {CURRENCY_LONG}/yıl{}Kapasite: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Maliyet: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER} Azami Tork: {6:FORCE}{}İşletme Gideri: {4:CURRENCY_LONG}/yıl{}Kapasite: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Uçak türü: {STRING}{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Uçak türü: {STRING}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}//yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Uçak türü: {STRING} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Uçak türü: {STRING} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Değiştir {STRING} - {STRING} @@ -3650,6 +3667,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} sene ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} sene ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Azami Hız: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Azami hız: {LTBLUE}{VELOCITY} {BLACK}Uçak türü: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Azami hız: {LTBLUE}{VELOCITY} {BLACK}Uçak türü: {LTBLUE}{STRING} {BLACK}Menzil: {LTBLUE}{COMMA} kare STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Ağırlık: {LTBLUE}{WEIGHT_SHORT} {BLACK}Güç: {LTBLUE}{POWER}{BLACK} Azami Hız: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Ağırlık: {LTBLUE}{WEIGHT_SHORT} {BLACK}Güç: {LTBLUE}{POWER}{BLACK} Azami Hız: {LTBLUE}{VELOCITY} {BLACK}Azami Tork: {LTBLUE}{FORCE} @@ -4240,7 +4259,7 @@ STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Birden f STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Diğer yerimine çok yakın STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}Buraya tren yerimi yapılamaz... -STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}Şamandıra yerlestirilemez... +STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}Buraya şamandıra yerleştirilemez... STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}Yerimi adı değiştirilemedi... STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}Tren yerimi kaldırılamaz... @@ -4452,7 +4471,7 @@ STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Araç bu # Sign related errors STR_ERROR_TOO_MANY_SIGNS :{WHITE}... çok fazla tabela var -STR_ERROR_CAN_T_PLACE_SIGN_HERE :{WHITE}Buraya tabela konulamiyor... +STR_ERROR_CAN_T_PLACE_SIGN_HERE :{WHITE}Buraya tabela konulamıyor... STR_ERROR_CAN_T_CHANGE_SIGN_NAME :{WHITE}Tabela adı değiştirilemiyor... STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Tabelayı silemezsiniz... From eb294906ba41d0625825363b065675030c58ff67 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 10 Jun 2017 17:45:37 +0000 Subject: [PATCH 367/417] (svn r27878) -Update from Eints: vietnamese: 7 changes by nglekhoi --- src/lang/vietnamese.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index b650e1f5e7..03f7ce918f 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1372,6 +1372,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Tắt STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Cuộn chuột trái: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Cho phép cuộn bản đồ bằng cách kéo với nút trái chuột. Tùy chọn này sẽ hữu ích khi dùng màn hình cảm ứng +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Đóng cửa số khi click chuột phải: {STRING} STR_CONFIG_SETTING_AUTOSAVE :Tự động save: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Chọn chu kỳ giữa mỗi lần tự động save @@ -2589,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Tên sâ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Hàng hoá chấp nhận: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Kiểu đường ray: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Giới hạn tốc độ đường ray: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Hạn chế tốc độ đường bộ: {LTBLUE}{VELOCITY} @@ -3292,6 +3294,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Yêu c STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Yêu cầu: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING} @@ -3360,6 +3364,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Xoá tất cả STR_GROUP_RENAME_CAPTION :{BLACK}Đổi tên nhóm +STR_GROUP_PROFIT_LAST_YEAR :Lợi nhuận năm trước: # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Tàu Hỏa Mới @@ -3392,6 +3397,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Tất cả ki STR_PURCHASE_INFO_ALL_BUT :Tất cả trừ {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Lực kéo tối đa: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Tầm xa: {GOLD}{COMMA} ô +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Kiểu máy bay: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Danh sách tàu hỏa có thể chọn. Click vào tàu hỏa để xem thông tin. Ctrl+Click để ẩn/hiện loại được chọn STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Danh sách xe có thể chọn. Click vào xe để xem thông tin. Ctrl+Click để ẩn/hiện loại được chọn @@ -3526,6 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :đầu máy đ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Giá thành: {CURRENCY_LONG} Tải trọng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER}{}Chi phí hoạt động: {CURRENCY_LONG}/năm{}Sức chứa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Giá: {CURRENCY_LONG} Nặng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER} Max. T.E.: {6:FORCE}{}Giá vận hành: {4:CURRENCY_LONG}/yr{}Năng suất: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Kiểu máy bay: {STRING} Tầm xa: {COMMA} ô{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Thay thế {STRING} - {STRING} From 33196161174d82ba60e4fed4d6273903d32f746a Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 11 Jun 2017 17:45:38 +0000 Subject: [PATCH 368/417] (svn r27879) -Update from Eints: polish: 19 changes by lion --- src/lang/polish.txt | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index ffacc108b5..5a134cf53b 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -705,7 +705,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Wyświet STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Pokaż okno opowieści STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Pokaż listę celów STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Wyświetl wykresy -STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Wyświetl tabele firm +STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Wyświetl ranking firm STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Ufunduj budowę nowego przedsiębiorstwa STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Wyświetl listę pociągów firmy. Ctrl+klik otwiera listę grup/pojazdów STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Wyświetl listę pojazdów firmy. Ctrl+klik otwiera listę grup/pojazdów @@ -799,7 +799,7 @@ STR_GRAPH_MENU_CARGO_PAYMENT_RATES :Stawki za ładu ############ range ends here ############ range for company league menu starts -STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :Wykres Ligi Firm +STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :Ranking Firm STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING :Szczegółowa tabela efektywności STR_GRAPH_MENU_HIGHSCORE :Tabela wyników ############ range ends here @@ -971,7 +971,7 @@ STR_GRAPH_KEY_CAPTION :{WHITE}Legenda STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Kliknij tutaj aby wł./wył. wyświetlanie danych firmy na wykresie # Company league window -STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Tabela Ligi Firm +STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Ranking Firm STR_COMPANY_LEAGUE_COMPANY_NAME :{ORANGE}{COMPANY} {BLACK}{COMPANY_NUM} '{STRING}' STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER :Inżynier STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER :Administrator Ruchu @@ -1062,7 +1062,7 @@ STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Kliknij # Highscore window STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Ranking firm, które osiągnęły rok {NUM} -STR_HIGHSCORE_TOP_COMPANIES_NETWORK_GAME :{BIG_FONT}{BLACK}Tabela Ligi Firm w {NUM} +STR_HIGHSCORE_TOP_COMPANIES_NETWORK_GAME :{BIG_FONT}{BLACK}Ranking Firm w {NUM} STR_HIGHSCORE_POSITION :{BIG_FONT}{BLACK}{COMMA}. STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN :Biznesmen STR_HIGHSCORE_PERFORMANCE_TITLE_ENTREPRENEUR :Przedsiębiorca @@ -1752,6 +1752,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Wyłączona STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Przewijanie lewym przyciskiem myszy: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Włącz przewijanie mapy przeciąganiem lewym przyciskiem myszki. Jest to przydatne podczas używania ekranu dotykowego do przewijania +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Zamknij okno prawym przyciskiem: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Zamyka okno poprzez kliknięcie prawym przyciskiem. Wyłącza pomoc kontekstową! STR_CONFIG_SETTING_AUTOSAVE :Autozapis: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Częstotliwość automatycznego zapisu stanu gry @@ -3677,6 +3679,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Wymaga: STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Potrzebuje STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}oczekuje +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} @@ -3745,6 +3749,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Usuń wszystkie STR_GROUP_RENAME_CAPTION :{BLACK}Zmień nazwę grupy +STR_GROUP_PROFIT_THIS_YEAR :Zysk w tym roku: +STR_GROUP_PROFIT_LAST_YEAR :Zysk w zeszłym roku: +STR_GROUP_OCCUPANCY :Aktualne wykorzystanie: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nowe pociągi @@ -3777,6 +3785,7 @@ STR_PURCHASE_INFO_ALL_TYPES :wszystkie typy STR_PURCHASE_INFO_ALL_BUT :wszystko oprócz {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks. siła pociągowa: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Zasięg: {GOLD}{COMMA} pól +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Typ samolotu: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista wyboru pociągów - kliknij na pojeździe, aby uzyskać informacje. Ctrl+klik przełącza ukrywanie typu pojazdu STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista wyboru pojazdów drogowych - kliknij na pojeździe, aby uzyskać więcej informacji. Ctrl+klik przełącza ukrywanie typu pojazdu @@ -3917,6 +3926,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.b :lokomotywę Mag STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER}{}Koszt utrzymania: {CURRENCY_LONG}/rok{}Ładowność: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER} Maksymalna siła pociągowa: {6:FORCE}{}Koszt utrzymania: {4:CURRENCY_LONG}/rok{}Ładowność: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Max. prędkość: {VELOCITY}{}Typ samolotu: {STRING}{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Max. prędkość: {VELOCITY}{}Typ samolotu: {STRING}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Max. prędkość: {VELOCITY}{}Typ samolotu: {STRING} Zasięg: {COMMA}{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Max. prędkość: {VELOCITY}{}Typ samolotu: {STRING} Zasięg: {COMMA}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zastąp {STRING} - {STRING} @@ -4039,6 +4052,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P rok STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P rok lata lat} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Prędkość maksymalna: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. prędkość: {LTBLUE}{VELOCITY} {BLACK}Typ samolotu: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. prędkość: {LTBLUE}{VELOCITY} {BLACK}Typ samolotu: {LTBLUE}{STRING} {BLACK}Zasięg: {LTBLUE}{COMMA} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Masa: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moc: {LTBLUE}{POWER}{BLACK} Prędkość maksymalna: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Masa: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moc: {LTBLUE}{POWER}{BLACK} Prędkość maksymalna: {LTBLUE}{VELOCITY} {BLACK}Maksymalna siła pociągowa: {LTBLUE}{FORCE} From cfb75beef6b5815cffb91b5692dac66da43d9f12 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 19 Jun 2017 17:45:37 +0000 Subject: [PATCH 369/417] (svn r27882) -Update from Eints: greek: 7 changes by kyrm --- src/lang/greek.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 83dd9391f0..35f7d570f5 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -31,7 +31,7 @@ STR_JUST_NOTHING :Τίποτα STR_CARGO_PLURAL_NOTHING : STR_CARGO_PLURAL_PASSENGERS :{G=m}Επιβάτες STR_CARGO_PLURAL_PASSENGERS.geniki :Επιβάτη -STR_CARGO_PLURAL_COAL :{G=m}Άνθρακάς +STR_CARGO_PLURAL_COAL :{G=m}Άνθρακας STR_CARGO_PLURAL_MAIL :{G=f}Αλληλογραφία STR_CARGO_PLURAL_MAIL.geniki :Αλληλογραφίας STR_CARGO_PLURAL_OIL :{G=n}Πετρέλαιo @@ -346,7 +346,7 @@ 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_THIS_YEAR :Κέρδος τρέχοντος έτους STR_SORT_BY_AGE :Ηλικία STR_SORT_BY_RELIABILITY :Αξιοπιστία STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Συνολική χωρητικότητα ανά τύπο φορτίου @@ -1479,6 +1479,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Απενεργ STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Μετάβαση με αριστερό κλικ: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Ενεργοποίηση της κύλισης του χάρτη σύροντας τον με το αριστερό κουμπί του ποντικιού. Αυτό είναι ιδιαίτερα χρήσιμο για την κύλιση όταν χρησιμοποιείται οθόνη αφής +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Κλείνει το παράθυρο με δεξί πάτημα μέσα του. Απενεργοποιεί την ανάδυση επεξηγήσεων με το δεξί κουμπί! STR_CONFIG_SETTING_AUTOSAVE :Αυτόματο σώσιμο: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Επιλέξτε το διάστημα ανάμεσα σε δυο διαδοχικά σωσίματα του παιχνιδιου @@ -3472,6 +3473,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Αφαίρεσ STR_GROUP_RENAME_CAPTION :{BLACK}Μετονομασία μίας ομάδας +STR_GROUP_PROFIT_THIS_YEAR :Κέρδος τρέχοντος έτους: +STR_GROUP_PROFIT_LAST_YEAR :Κέρδος προηγούμενου έτους +STR_GROUP_OCCUPANCY :Τρέσουσα χρήση: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Νέα Οχήματα Σιδηρόδρομου From 968f1151d164e23f1d512cf293d9270f62c076aa Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 22 Jun 2017 16:31:04 +0000 Subject: [PATCH 370/417] (svn r27883) -Fix [FS#6576]: Console command parser passed invalid strings to the debug output, if command lines had many parameters. --- src/console.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/console.cpp b/src/console.cpp index 511019281a..ef62a8f286 100644 --- a/src/console.cpp +++ b/src/console.cpp @@ -473,7 +473,7 @@ void IConsoleCmdExec(const char *cmdstr) } } - for (uint i = 0; tokens[i] != NULL; i++) { + for (uint i = 0; i < lengthof(tokens) && tokens[i] != NULL; i++) { DEBUG(console, 8, "Token %d is: '%s'", i, tokens[i]); } From 5e7a50c8eb8bbc2b0a6cbb877d3c9dbb0268974d Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 22 Jun 2017 16:32:50 +0000 Subject: [PATCH 371/417] (svn r27884) -Fix: Console command parser failed when the command had many parameters, and also did not print any error messages about it. --- src/console.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/console.cpp b/src/console.cpp index ef62a8f286..ece8599168 100644 --- a/src/console.cpp +++ b/src/console.cpp @@ -434,7 +434,10 @@ void IConsoleCmdExec(const char *cmdstr) * enclosed in "" are taken as one token. We can only go as far as the amount * of characters in our stream or the max amount of tokens we can handle */ for (cmdptr = cmdstr, t_index = 0, tstream_i = 0; *cmdptr != '\0'; cmdptr++) { - if (t_index >= lengthof(tokens) || tstream_i >= lengthof(tokenstream)) break; + if (tstream_i >= lengthof(tokenstream)) { + IConsoleError("command line too long"); + return; + } switch (*cmdptr) { case ' ': // Token separator @@ -452,6 +455,10 @@ void IConsoleCmdExec(const char *cmdstr) case '"': // Tokens enclosed in "" are one token longtoken = !longtoken; if (!foundtoken) { + if (t_index >= lengthof(tokens)) { + IConsoleError("command line too long"); + return; + } tokens[t_index++] = &tokenstream[tstream_i]; foundtoken = true; } @@ -466,6 +473,10 @@ void IConsoleCmdExec(const char *cmdstr) tokenstream[tstream_i++] = *cmdptr; if (!foundtoken) { + if (t_index >= lengthof(tokens)) { + IConsoleError("command line too long"); + return; + } tokens[t_index++] = &tokenstream[tstream_i - 1]; foundtoken = true; } From dd3d824894ac2e0a926c8ee45112f67462b3d2aa Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 22 Jun 2017 16:57:06 +0000 Subject: [PATCH 372/417] (svn r27885) -Cleanup (r27844): ESR_MAX_COST_EXCEEDED and ESR_PATH_TOO_LONG meant the same thing, but only one was used. Keep PATH_TOO_LONG since it has the better documentation. --- src/pathfinder/yapf/yapf_costrail.hpp | 4 ++-- src/pathfinder/yapf/yapf_type.hpp | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index 22103987ad..ca317f09a7 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -486,7 +486,7 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th /* Finish if we already exceeded the maximum path cost (i.e. when * searching for the nearest depot). */ if (m_max_cost > 0 && (parent_cost + segment_entry_cost + segment_cost) > m_max_cost) { - end_segment_reason |= ESRB_MAX_COST_EXCEEDED; + end_segment_reason |= ESRB_PATH_TOO_LONG; } /* Move to the next tile/trackdir. */ @@ -563,7 +563,7 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th } // for (;;) /* Don't consider path any further it if exceeded max_cost. */ - if (end_segment_reason & ESRB_MAX_COST_EXCEEDED) return false; + if (end_segment_reason & ESRB_PATH_TOO_LONG) return false; bool target_seen = false; if ((end_segment_reason & ESRB_POSSIBLE_TARGET) != ESRB_NONE) { diff --git a/src/pathfinder/yapf/yapf_type.hpp b/src/pathfinder/yapf/yapf_type.hpp index b0d99d6602..8d24eee5e2 100644 --- a/src/pathfinder/yapf/yapf_type.hpp +++ b/src/pathfinder/yapf/yapf_type.hpp @@ -19,7 +19,6 @@ enum EndSegmentReason { ESR_RAIL_TYPE, ///< the next tile has a different rail type than our tiles ESR_INFINITE_LOOP, ///< infinite loop detected ESR_SEGMENT_TOO_LONG, ///< the segment is too long (possible infinite loop) - ESR_MAX_COST_EXCEEDED, ///< maximum cost is exceeded ESR_CHOICE_FOLLOWS, ///< the next tile contains a choice (the track splits to more than one segments) ESR_DEPOT, ///< stop in the depot (could be a target next time) ESR_WAYPOINT, ///< waypoint encountered (could be a target next time) @@ -44,7 +43,6 @@ enum EndSegmentReasonBits { ESRB_RAIL_TYPE = 1 << ESR_RAIL_TYPE, ESRB_INFINITE_LOOP = 1 << ESR_INFINITE_LOOP, ESRB_SEGMENT_TOO_LONG = 1 << ESR_SEGMENT_TOO_LONG, - ESRB_MAX_COST_EXCEEDED = 1 << ESR_MAX_COST_EXCEEDED, ESRB_CHOICE_FOLLOWS = 1 << ESR_CHOICE_FOLLOWS, ESRB_DEPOT = 1 << ESR_DEPOT, ESRB_WAYPOINT = 1 << ESR_WAYPOINT, @@ -65,7 +63,7 @@ enum EndSegmentReasonBits { ESRB_CACHED_MASK = ESRB_DEAD_END | ESRB_RAIL_TYPE | ESRB_INFINITE_LOOP | ESRB_SEGMENT_TOO_LONG | ESRB_CHOICE_FOLLOWS | ESRB_DEPOT | ESRB_WAYPOINT | ESRB_STATION | ESRB_SAFE_TILE, /* Reasons to abort pathfinding in this direction. */ - ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_MAX_COST_EXCEEDED | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED, + ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED, }; DECLARE_ENUM_AS_BIT_SET(EndSegmentReasonBits) @@ -73,7 +71,7 @@ DECLARE_ENUM_AS_BIT_SET(EndSegmentReasonBits) inline CStrA ValueStr(EndSegmentReasonBits bits) { static const char * const end_segment_reason_names[] = { - "DEAD_END", "RAIL_TYPE", "INFINITE_LOOP", "SEGMENT_TOO_LONG", "MAX_COST_EXCEEDED", "CHOICE_FOLLOWS", + "DEAD_END", "RAIL_TYPE", "INFINITE_LOOP", "SEGMENT_TOO_LONG", "CHOICE_FOLLOWS", "DEPOT", "WAYPOINT", "STATION", "SAFE_TILE", "PATH_TOO_LONG", "FIRST_TWO_WAY_RED", "LOOK_AHEAD_END", "TARGET_REACHED" }; From 2f7ac7c41f46dfc0d16d963ea5c6de2f8d144971 Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 22 Jun 2017 17:29:53 +0000 Subject: [PATCH 373/417] (svn r27886) -Fix [FS#6575-ish]: Do not modify argv[0]. --- src/fileio.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/fileio.cpp b/src/fileio.cpp index a72950bc73..085c2c66dc 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -1032,30 +1032,29 @@ extern void DetermineBasePaths(const char *exe); */ static bool ChangeWorkingDirectoryToExecutable(const char *exe) { + char tmp[MAX_PATH]; + strecpy(tmp, exe, lastof(tmp)); + bool success = false; #ifdef WITH_COCOA - char *app_bundle = strchr(exe, '.'); + char *app_bundle = strchr(tmp, '.'); while (app_bundle != NULL && strncasecmp(app_bundle, ".app", 4) != 0) app_bundle = strchr(&app_bundle[1], '.'); - if (app_bundle != NULL) app_bundle[0] = '\0'; + if (app_bundle != NULL) *app_bundle = '\0'; #endif /* WITH_COCOA */ - char *s = const_cast(strrchr(exe, PATHSEPCHAR)); + char *s = strrchr(tmp, PATHSEPCHAR); if (s != NULL) { *s = '\0'; #if defined(__DJGPP__) /* If we want to go to the root, we can't use cd C:, but we must use '/' */ - if (s[-1] == ':') chdir("/"); + if (s > tmp && *(s - 1) == ':') chdir("/"); #endif - if (chdir(exe) != 0) { + if (chdir(tmp) != 0) { DEBUG(misc, 0, "Directory with the binary does not exist?"); } else { success = true; } - *s = PATHSEPCHAR; } -#ifdef WITH_COCOA - if (app_bundle != NULL) app_bundle[0] = '.'; -#endif /* WITH_COCOA */ return success; } From 1e50edd12ca9f2c410d5153b4593529aac5ba21e Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 11 Jul 2017 19:34:21 +0000 Subject: [PATCH 374/417] (svn r27887) -Cleanup: Remove unused/unimplemented prototype (adf88) --- src/linkgraph/linkgraph_gui.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/linkgraph/linkgraph_gui.h b/src/linkgraph/linkgraph_gui.h index 1e306a44d4..a9be8254d4 100644 --- a/src/linkgraph/linkgraph_gui.h +++ b/src/linkgraph/linkgraph_gui.h @@ -77,7 +77,6 @@ protected: Point GetStationMiddle(const Station *st) const; - void DrawForwBackLinks(Point pta, StationID sta, Point ptb, StationID stb) const; void AddLinks(const Station *sta, const Station *stb); void DrawLinks(const DrawPixelInfo *dpi) const; void DrawStationDots(const DrawPixelInfo *dpi) const; From f1f07b55f40a08379dcac75dcd840b8a44b16435 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 11 Jul 2017 19:34:41 +0000 Subject: [PATCH 375/417] (svn r27888) -Fix: Member access coding style (adf88) --- src/fontcache.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 6bea59c103..85e5a92cc2 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -41,7 +41,7 @@ FontCache::FontCache(FontSize fs) : parent(FontCache::Get(fs)), fs(fs), height(_ ascender(_default_font_ascender[fs]), descender(_default_font_ascender[fs] - _default_font_height[fs]), units_per_em(1) { - assert(parent == NULL || this->fs == parent->fs); + assert(this->parent == NULL || this->fs == this->parent->fs); FontCache::caches[this->fs] = this; Layouter::ResetFontCache(this->fs); } @@ -49,7 +49,7 @@ FontCache::FontCache(FontSize fs) : parent(FontCache::Get(fs)), fs(fs), height(_ /** Clean everything up. */ FontCache::~FontCache() { - assert(this->fs == parent->fs); + assert(this->fs == this->parent->fs); FontCache::caches[this->fs] = this->parent; Layouter::ResetFontCache(this->fs); } @@ -474,7 +474,7 @@ static bool GetFontAAState(FontSize size) const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key) { - if ((key & SPRITE_GLYPH) != 0) return parent->GetGlyph(key); + if ((key & SPRITE_GLYPH) != 0) return this->parent->GetGlyph(key); /* Check for the glyph in our cache */ GlyphEntry *glyph = this->GetGlyphPtr(key); From b8456196ef1376e8171510e65c1a0969fd3c09ef Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 11 Jul 2017 19:37:10 +0000 Subject: [PATCH 376/417] (svn r27889) -Change: Do not cancel headquarter construction and engine-preview-query when shift-clicking (adf88) --- src/company_gui.cpp | 2 +- src/engine_gui.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 0be6679583..4d394203d4 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -2381,7 +2381,7 @@ struct CompanyWindow : Window virtual void OnPlaceObject(Point pt, TileIndex tile) { - if (DoCommandP(tile, OBJECT_HQ, 0, CMD_BUILD_OBJECT | CMD_MSG(STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS))) { + if (DoCommandP(tile, OBJECT_HQ, 0, CMD_BUILD_OBJECT | CMD_MSG(STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS)) && !_shift_pressed) { ResetObjectToPlace(); this->RaiseButtons(); } diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index 070ad67275..d1ccd3bf42 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -128,7 +128,7 @@ struct EnginePreviewWindow : Window { DoCommandP(0, this->window_number, 0, CMD_WANT_ENGINE_PREVIEW); /* FALL THROUGH */ case WID_EP_NO: - delete this; + if (!_shift_pressed) delete this; break; } } From de2ef2b5432c53838c3ba36d9e1567f6e5c1b68d Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 13 Jul 2017 17:45:38 +0000 Subject: [PATCH 377/417] (svn r27890) -Update from Eints: spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 525b29a312..1aea2ba17b 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -62,7 +62,7 @@ STR_CARGO_PLURAL_FIZZY_DRINKS :{G=m}Refrescos # Singular cargo name STR_CARGO_SINGULAR_NOTHING : -STR_CARGO_SINGULAR_PASSENGER :{G=m}Pasajeros +STR_CARGO_SINGULAR_PASSENGER :{G=m}Pasajero STR_CARGO_SINGULAR_COAL :{G=m}Carbón STR_CARGO_SINGULAR_MAIL :{G=m}Correo STR_CARGO_SINGULAR_OIL :{G=m}Petróleo @@ -1577,7 +1577,7 @@ STR_CONFIG_SETTING_STATUSBAR_POS :Posición de la STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Posición horizontal de la barra de estado en la parte inferior de la pantalla STR_CONFIG_SETTING_SNAP_RADIUS :Radio de fijación de ventana: {STRING} STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Distancia máxima entre ventanas antes de que la ventana que se está moviendo sea alineada automáticamente con las ventanas cercanas -STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} pixel{P 0 "" s} +STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} pixel{P 0 "" es} STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :deshabilitado STR_CONFIG_SETTING_SOFT_LIMIT :Máximo número de ventanas sin anclar: {STRING} STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Número máximo de ventanas sin anclar que pueden estar abiertas antes de que las más antiguas se cierren automáticamente para dejar paso a las nuevas @@ -2939,7 +2939,7 @@ STR_NEWGRF_BROKEN :{WHITE}Es proba STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Ha cambiado el estado 'vagón motorizado' para '{1:ENGINE}' cuando no estaba dentro de un depósito STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Ha cambiado la longitud del vehículo para '{1:ENGINE}' cuando no estaba dentro de un depósito STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Ha cambiado la capacidad del vehículo para '{1:ENGINE}' fuera de un depósito o mientras no se estaba remodelando -STR_BROKEN_VEHICLE_LENGTH :{WHITE}Tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud incorrecta. Puede ser debido a problemas con los NewGRF. El juego puede fallar +STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud incorrecta. Esto puede ser debido a problemas con los NewGRF. El juego puede desincronizarse o, incluso, fallar por completo STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' da información incorrecta STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La información de carga/reforma para '{1:ENGINE}' difiere de la de lista de compra después de la construcción. Esto puede causar que la renovación/reemplazo automático no haga la reforma correcta From bf3fd277c19f7147537a1771fd64e3a9adc416df Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 25 Jul 2017 17:45:37 +0000 Subject: [PATCH 378/417] (svn r27891) -Update from Eints: spanish: 29 changes by SilverSurferZzZ --- src/lang/spanish.txt | 58 ++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1aea2ba17b..552239dcda 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -51,11 +51,11 @@ STR_CARGO_PLURAL_WHEAT :{G=m}Trigo STR_CARGO_PLURAL_RUBBER :{G=m}Caucho STR_CARGO_PLURAL_SUGAR :{G=m}Azúcar STR_CARGO_PLURAL_TOYS :{G=m}Juguetes -STR_CARGO_PLURAL_CANDY :{G=m}Dulces +STR_CARGO_PLURAL_CANDY :{G=m}Caramelos STR_CARGO_PLURAL_COLA :{G=f}Cola -STR_CARGO_PLURAL_COTTON_CANDY :{G=m}Algodón Dulce +STR_CARGO_PLURAL_COTTON_CANDY :{G=m}Algodón de Azúcar STR_CARGO_PLURAL_BUBBLES :{G=f}Burbujas -STR_CARGO_PLURAL_TOFFEE :{G=m}Caramelos +STR_CARGO_PLURAL_TOFFEE :{G=m}Tofes STR_CARGO_PLURAL_BATTERIES :{G=f}Pilas STR_CARGO_PLURAL_PLASTIC :{G=m}Plástico STR_CARGO_PLURAL_FIZZY_DRINKS :{G=m}Refrescos @@ -85,11 +85,11 @@ STR_CARGO_SINGULAR_WHEAT :{G=m}Trigo STR_CARGO_SINGULAR_RUBBER :{G=m}Caucho STR_CARGO_SINGULAR_SUGAR :{G=m}Azúcar STR_CARGO_SINGULAR_TOY :{G=m}Juguete -STR_CARGO_SINGULAR_CANDY :{G=m}Dulce +STR_CARGO_SINGULAR_CANDY :{G=m}Caramelo STR_CARGO_SINGULAR_COLA :{G=f}Cola -STR_CARGO_SINGULAR_COTTON_CANDY :{G=m}Algodón Dulce +STR_CARGO_SINGULAR_COTTON_CANDY :{G=m}Algodón de Azúcar STR_CARGO_SINGULAR_BUBBLE :{G=f}Burbuja -STR_CARGO_SINGULAR_TOFFEE :{G=m}Caramelo +STR_CARGO_SINGULAR_TOFFEE :{G=m}Tofe STR_CARGO_SINGULAR_BATTERY :{G=f}Pila STR_CARGO_SINGULAR_PLASTIC :{G=m}Plástico STR_CARGO_SINGULAR_FIZZY_DRINK :{G=m}Refresco @@ -119,11 +119,11 @@ STR_QUANTITY_WHEAT :{WEIGHT_LONG} d STR_QUANTITY_RUBBER :{VOLUME_LONG} de caucho STR_QUANTITY_SUGAR :{WEIGHT_LONG} de azúcar STR_QUANTITY_TOYS :{COMMA}{NBSP}juguete{P "" s} -STR_QUANTITY_SWEETS :{COMMA}{NBSP}bolsa{P "" s} de dulces +STR_QUANTITY_SWEETS :{COMMA}{NBSP}bolsa{P "" s} de caramelos STR_QUANTITY_COLA :{VOLUME_LONG} de cola STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} de algodón dulce STR_QUANTITY_BUBBLES :{COMMA} burbuja{P "" s} -STR_QUANTITY_TOFFEE :{WEIGHT_LONG} de caramelo{P "" s} +STR_QUANTITY_TOFFEE :{WEIGHT_LONG} de tofe{P "" s} STR_QUANTITY_BATTERIES :{COMMA} pila{P "" s} STR_QUANTITY_PLASTIC :{VOLUME_LONG} de plástico STR_QUANTITY_FIZZY_DRINKS :{COMMA} refresco{P "" s} @@ -4552,8 +4552,8 @@ STR_INDUSTRY_NAME_WATER_TOWER :{G=f}Torre de A STR_INDUSTRY_NAME_FACTORY_2 :{G=f}Fábrica STR_INDUSTRY_NAME_FARM_2 :{G=f}Granja STR_INDUSTRY_NAME_LUMBER_MILL :{G=m}Aserradero -STR_INDUSTRY_NAME_COTTON_CANDY_FOREST :{G=m}Bosque de Algodón Dulce -STR_INDUSTRY_NAME_CANDY_FACTORY :{G=f}Fábrica de Dulces +STR_INDUSTRY_NAME_COTTON_CANDY_FOREST :{G=m}Bosque de Algodón de Azúcar +STR_INDUSTRY_NAME_CANDY_FACTORY :{G=f}Fábrica de Caramelos STR_INDUSTRY_NAME_BATTERY_FARM :{G=f}Granja de Pilas STR_INDUSTRY_NAME_COLA_WELLS :{G=m}Pozos de Cola STR_INDUSTRY_NAME_TOY_SHOP :{G=f}Tienda de Juguetes @@ -4561,7 +4561,7 @@ STR_INDUSTRY_NAME_TOY_FACTORY :{G=f}Fábrica d STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS :{G=f}Fuentes de Plástico STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY :{G=f}Fábrica de Refrescos STR_INDUSTRY_NAME_BUBBLE_GENERATOR :{G=m}Generador de Burbujas -STR_INDUSTRY_NAME_TOFFEE_QUARRY :{G=f}Cantera de Caramelos +STR_INDUSTRY_NAME_TOFFEE_QUARRY :{G=f}Cantera de Tofe STR_INDUSTRY_NAME_SUGAR_MINE :{G=f}Mina de Azúcar ############ WARNING, using range 0x6000 for strings that are stored in the savegame @@ -4651,11 +4651,11 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WATER_TANKER :Cisterna de Agu STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FRUIT_TRUCK :Vagón de Fruta STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_RUBBER_TRUCK :Vagón de Caucho STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_SUGAR_TRUCK :Vagón de Azúcar -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COTTON_CANDY_HOPPER :Vagoneta de Algodón Dulce -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOFFEE_HOPPER :Vagoneta de Caramelos +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COTTON_CANDY_HOPPER :Vagoneta de Algodón de Azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOFFEE_HOPPER :Vagoneta de Tofe STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BUBBLE_VAN :Vagón de Burbujas STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COLA_TANKER :Cisterna de Cola -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_CANDY_VAN :Vagón de Dulces +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_CANDY_VAN :Vagón de Caramelos STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOY_VAN :Vagón de Juguetes STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BATTERY_TRUCK :Vagón de Pilas STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :Vagón de Refrescos @@ -4681,11 +4681,11 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WATER_TANKER :Cisterna de Agu STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FRUIT_TRUCK :Vagón de Fruta STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_RUBBER_TRUCK :Vagón de Caucho STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_SUGAR_TRUCK :Vagón de Azúcar -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COTTON_CANDY_HOPPER :Vagoneta de Algodón Dulce -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOFFEE_HOPPER :Vagoneta de Caramelos +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COTTON_CANDY_HOPPER :Vagoneta de Algodón de Azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOFFEE_HOPPER :Vagoneta de Tofe STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BUBBLE_VAN :Vagón de Burbujas STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COLA_TANKER :Cisterna de Cola -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_CANDY_VAN :Vagón de Dulces +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_CANDY_VAN :Vagón de Caramelos STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :Vagón de Juguetes STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :Vagón de Pilas STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :Vagón de Refrescos @@ -4713,11 +4713,11 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WATER_TANKER :Cisterna de Agu STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FRUIT_TRUCK :Vagón de Fruta STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_RUBBER_TRUCK :Vagón de Caucho STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_SUGAR_TRUCK :Vagón de Azúcar -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COTTON_CANDY_HOPPER :Vagoneta de Algodón Dulce -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOFFEE_HOPPER :Vagoneta de Caramelos +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COTTON_CANDY_HOPPER :Vagoneta de Algodón de Azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOFFEE_HOPPER :Vagoneta de Tofe STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BUBBLE_VAN :Vagón de Burbujas STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COLA_TANKER :Cisterna de Cola -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_CANDY_VAN :Vagón de Dulces +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_CANDY_VAN :Vagón de Caramelos STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOY_VAN :Vagón de Juguetes STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BATTERY_TRUCK :Vagón de Pilas STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FIZZY_DRINK_TRUCK :Vagón de Refrescos @@ -4786,18 +4786,18 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_SUGAR_TRUCK :Camión de Azú STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COLA_TRUCK :Camión de Cola MightyMover STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COLA_TRUCK :Camión de Cola Powernaught STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COLA_TRUCK :Camión de Cola Wizzowow -STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COTTON_CANDY :Camión de Algodón Dulce MightyMover -STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COTTON_CANDY :Camión de Algodón Dulce Powernaught -STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COTTON_CANDY_TRUCK :Camión de Algodón Dulce Wizzowow -STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_TOFFEE_TRUCK :Camión de Caramelos MightyMover -STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_TOFFEE_TRUCK :Camión de Caramelos Powernaught -STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_TOFFEE_TRUCK :Camión de Caramelos Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COTTON_CANDY :Camión de Algodón de Azúcar MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COTTON_CANDY :Camión de Algodón de Azúcar Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COTTON_CANDY_TRUCK :Camión de Algodón de Azúcar Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_TOFFEE_TRUCK :Camión de Tofe MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_TOFFEE_TRUCK :Camión de Tofe Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_TOFFEE_TRUCK :Camión de Tofe Wizzowow STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_TOY_VAN :Furgón de Juguetes MightyMover STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_TOY_VAN :Furgón de Juguetes Powernaught STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_TOY_VAN :Furgón de Juguetes Wizzowow -STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_CANDY_TRUCK :Camión de Dulces MightyMover -STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_CANDY_TRUCK :Camión de Dulces Powernaught -STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_CANDY_TRUCK :Camión de Dulces Wizzowow +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_CANDY_TRUCK :Camión de Caramelos MightyMover +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_CANDY_TRUCK :Camión de Caramelos Powernaught +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_CANDY_TRUCK :Camión de Caramelos Wizzowow STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_BATTERY_TRUCK :Camión de Pilas MightyMover STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_BATTERY_TRUCK :Camión de Pilas Powernaught STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_BATTERY_TRUCK :Camión de Pilas Wizzowow From 34cd504d65c91667d4efc9be7d9e7ea4a176d56a Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 28 Jul 2017 17:45:36 +0000 Subject: [PATCH 379/417] (svn r27892) -Update from Eints: finnish: 41 changes by USephiroth --- src/lang/finnish.txt | 64 ++++++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 1aa02e76e9..4bf726a354 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -989,7 +989,7 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Nelinkertainen STR_GAME_OPTIONS_BASE_GRF :{BLACK}Perusgrafiikat STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Valitse käytettävät perusgrafiikat -STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} puuttuva/korruptoitunut tiedosto{P "" ja} +STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} puuttuva{P "" a}/korruptoitunut{P "" ta} tiedosto{P "" a} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Lisätietoja perusgrafiikoista STR_GAME_OPTIONS_BASE_SFX :{BLACK}Perusäänet @@ -1148,7 +1148,7 @@ STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Määritä kulk STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Rakennusnopeus: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Rajoita tekoälyn rakennustoimien määrää STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Ajoneuvojen hajoaminen: {STRING} -STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Määritä kuinka usein puutteellisesti huolletut ajoneuvot voivat hajota +STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Määritä, kuinka usein puutteellisesti huolletut ajoneuvot voivat hajota STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Tukikerroin: {STRING} STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Määritä kuinka paljon tuetuista yhteyksistä maksetaan STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Rakennuskustannukset: {STRING} @@ -1265,7 +1265,7 @@ STR_CONFIG_SETTING_ORDER_REVIEW_OFF :Ei STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Kyllä, mutta ei pysäytetyille STR_CONFIG_SETTING_ORDER_REVIEW_ON :Kaikille ajoneuvoille STR_CONFIG_SETTING_WARN_INCOME_LESS :Varoita, jos kulkuneuvon tulos on negatiivinen: {STRING} -STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Mikäli käytössä, uutisviesti lähetetään jos kulkuneuvo ei ole tuottanut rahaa viimeisen kalenterivuoden aikana +STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Mikäli käytössä, uutisviesti lähetetään, jos kulkuneuvo ei ole tuottanut rahaa viimeisen kalenterivuoden aikana STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Ajoneuvot eivät vanhene: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Mikäli käytössä, kaikki kulkuneuvot ovat saatavilla ikuisesti niiden julkistamisen jälkeen STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Uudista ajoneuvo automaattisesti, kun se vanhenee: {STRING} @@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Pois STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Vasemmalla hiiren painikkeella liikkuminen: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Salli näkymän siirtäminen vetämällä hiiren vasemmalla näppäimellä. Hyödyllinen erityisesti kosketusnäyttöä käytettäessä +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Sulje ikkuna hiiren oikealla painikkeella napsauttamalla: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Ikkunat sulkeutuvat, kun niitä napsautetaan hiiren oikealla painikkeella. Tämä korvaa tavallisesti näkyvän työkaluvihjeen! STR_CONFIG_SETTING_AUTOSAVE :Automaattitallennus: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Valitse aikaväli automaattisille pelitallennuksille @@ -1462,18 +1464,18 @@ STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Suurin sallittu 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 -STR_CONFIG_SETTING_SERVINT_TRAINS :Junien huoltoväli oletuksena: {STRING} -STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Määritä oletushuoltoväli uusille junille mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä +STR_CONFIG_SETTING_SERVINT_TRAINS :Junien oletushuoltoväli: {STRING} +STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Määritä oletushuoltoväli uusille junille, mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}päivä{P 0 "" ä}/% STR_CONFIG_SETTING_SERVINT_DISABLED :Pois käytöstä -STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Ajoneuvojen huoltoväli oletuksena: {STRING} -STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Määritä oletushuoltoväli uusille ajoneuvoille mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä -STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Lentokoneiden huoltoväli oletuksena: {STRING} -STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Määritä oletushuoltoväli uusille lentokoneille mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä -STR_CONFIG_SETTING_SERVINT_SHIPS :Laivojen huoltoväli oletuksena: {STRING} -STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Määritä oletushuoltoväli uusille laivoille mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä +STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Ajoneuvojen oletushuoltoväli: {STRING} +STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Määritä oletushuoltoväli uusille ajoneuvoille, mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä +STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Lentokoneiden oletushuoltoväli: {STRING} +STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Määritä oletushuoltoväli uusille lentokoneille, mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä +STR_CONFIG_SETTING_SERVINT_SHIPS :Laivojen oletushuoltoväli: {STRING} +STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Määritä oletushuoltoväli uusille laivoille, mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä STR_CONFIG_SETTING_NOSERVICE :Poista huollot käytöstä kun ajoneuvojen rikkoutuminen on poistettu käytöstä: {STRING} -STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Mikäli käytössä, kulkuneuvoja ei huolleta jos ne eivät voi rikkoutua +STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Mikäli käytössä, kulkuneuvoja ei huolleta, jos ne eivät voi rikkoutua STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Ota käyttöön vaunujen nopeusrajoitukset: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Mikäli käytössä, vaunujen nopeusrajoitusta käytetään junan maksiminopeuden määrittämisessä STR_CONFIG_SETTING_DISABLE_ELRAILS :Poista sähköradat käytöstä: {STRING} @@ -1761,6 +1763,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Tarkista STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Näytä tekoäly/peliskriptiasetukset STR_INTRO_TOOLTIP_QUIT :{BLACK}Sulje OpenTTD. +STR_INTRO_BASESET :{BLACK}Valitusta perusgrafiikkapaketista puuttuu {NUM} sprite{P "" ä}. Tarkista, onko sille päivityksiä. STR_INTRO_TRANSLATION :{BLACK}Tästä käännöksestä puuttuu {NUM} merkkijono{P "" a}. Auta tekemään OpenTTD:stä parempi rekisteröitymällä kääntäjäksi. Lisätietoja tiedostossa readme.txt. # Quit window @@ -2589,6 +2592,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Lentoken STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} 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_RAIL_SPEED_LIMIT :{BLACK}Radan nopeusrajoitus: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Tien nopeusrajoitus: {LTBLUE}{VELOCITY} @@ -2877,8 +2881,8 @@ STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Valitun STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Liikuta spriteä ympäriinsä, muuttaen X- ja Y-sijainteja. Ctrl+Klik siirtää spriteä kahdeksan yksikköä kerralla STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Nollaa suhteelliset STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Nollaa suhteelliset erotukset -STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X-erotus: {NUM}, Y-erotus: {NUM} (Absoluuttinen) -STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X-erotus: {NUM}, Y-erotus: {NUM} (Suhteellinen) +STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X-erotus: {NUM}, Y-erotus: {NUM} (absoluuttinen) +STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X-erotus: {NUM}, Y-erotus: {NUM} (suhteellinen) STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Valitse sprite STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Valitse sprite ruudulta @@ -2897,7 +2901,7 @@ STR_NEWGRF_ERROR_INVALID_PARAMETER :Virheellinen pa STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING} tulee ladata ennen kuin {STRING} STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING} tulee ladata {STRING} jälkeen STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} vaatii OpenTTD:n version {STRING} tai uudemman -STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :GRF-tiedosto jonka se muuntaa +STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :GRF-tiedosto, jonka se muuntaa STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Liian monta NewGRF:ää on ladattu STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :NewGRF:n {1:STRING} lataaminen staattisena NewGRF:nä {STRING}:n kanssa saattaa aiheuttaa nykimistä STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Odottamaton sprite (sprite {3:NUM}) @@ -2919,7 +2923,7 @@ STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Sopivaa STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}Tiedostoa ei voida lisätä: NewGRF-tiedostojen raja saavutettu STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Yhteensopivat GRF:t ladattu puuttuvien tiedostojen korvaamiseksi -STR_NEWGRF_DISABLED_WARNING :{WHITE}Puuttuvat GRF tiedostot ovat poistettu käytöstä +STR_NEWGRF_DISABLED_WARNING :{WHITE}Puuttuvat GRF-tiedostot on poistettu käytöstä STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Puuttuva(t) GRF-tiedosto(t) STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Taukotilasta poistuminen saattaa kaataa OpenTTD:n. Älä lähetä virheraportteja tämänjälkeisistä kaatumisista.{}Haluatko todella poistua taukotilasta? @@ -3029,7 +3033,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Rahoita STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Rakenna patsas yhtiösi kunniaksi.{}Kustannus: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Rahoita uusien kaupparakennusten rakentamista kaupungissa.{}Kustannus: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Osta vuoden yksinoikeudet kaupungin liikennöintiin. Paikallisviranomaiset eivät salli muiden yhtiöiden kuljettaa matkustajia ja rahtia.{}Kustannus: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Lahjo viranomaisia lisätäksesi arviotasi; rangaistus voi olla kuitenkin suuri, jos jäät kiinni.{}Kulu: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Lahjo viranomaisia lisätäksesi arviotasi; rangaistus voi olla kuitenkin suuri, jos jäät kiinni.{}Kustannus: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Tavoitteet @@ -3292,6 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Tarvitse STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tarvitsee: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Tarvitsee +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}odottamassa ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING} @@ -3312,7 +3319,7 @@ STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Ajoneuvo STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Laivat - napsauta laivaa saadaksesi tietoja. STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Lentokoneet - napsauta lentokonetta saadaksesi tietoja. -STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Voittoa tänä vuonna: {CURRENCY_LONG} (viime vuonna: {CURRENCY_LONG}) +STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Tuotto tänä vuonna: {CURRENCY_LONG} (viime vuonna: {CURRENCY_LONG}) STR_VEHICLE_LIST_AVAILABLE_TRAINS :Käytettävissä olevat junat STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Käytettävissä olevat ajoneuvot @@ -3360,6 +3367,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Poista kaikki a STR_GROUP_RENAME_CAPTION :{BLACK}Nimeä ryhmä +STR_GROUP_PROFIT_THIS_YEAR :Tuotto tänä vuonna: +STR_GROUP_PROFIT_LAST_YEAR :Tuotto viime vuonna: +STR_GROUP_OCCUPANCY_VALUE :{NUM} % # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Uusi juna @@ -3392,6 +3402,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Kaikki rahtityy STR_PURCHASE_INFO_ALL_BUT :Kaikki paitsi {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Suurin vetovoima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Toimintasäde: {GOLD}{COMMA} ruutua +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Lentokonetyyppi: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Junien valintaluettelo. Lisää tietoja junaa napsauttamalla. Ctrl+Klik näyttää tai piilottaa kulkuneuvon tyypin STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Ajoneuvojen valintaluettelo. Napsauta ajoneuvoa saadaksesi lisää tietoja. Ctrl+Klik näyttää tai piilottaa ajoneuvon tyypin @@ -3524,8 +3535,12 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :yksiraiteisen v STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-veturin STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi{}Kapasiteetti: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER} Maks. Vetovoima: {6:FORCE}{}Käyttökustannukset: {4:CURRENCY_LONG}/v{}Kapasiteetti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr +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 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. nopeus: {VELOCITY}{}Lentokonetyyppi: {STRING}{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/v +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. nopeus: {VELOCITY}{}Lentokonetyyppi: {STRING}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/v +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. nopeus: {VELOCITY}{}Lentokonetyyppi: {STRING} Toimintamatka: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/v +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. nopeus: {VELOCITY}{}Lentokonetyyppi: {STRING} Toimintamatka: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/v # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Korvaa {STRING} - {STRING} @@ -3555,6 +3570,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Napsauta STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Vaihda toiseen korvausikkunaan STR_REPLACE_ENGINES :Veturit STR_REPLACE_WAGONS :Vaunut +STR_REPLACE_ALL_RAILTYPE :Kaikki junat STR_REPLACE_HELP_RAILTYPE :{BLACK}Valitse rautatietyyppi, jolle veturikorvaukset tehdään. STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Näyttää, millä vasemmalta valittu veturi korvataan, jos millään. @@ -3647,6 +3663,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} vuo{P s STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} vuo{P si tta} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Huippunopeus: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Maks. nopeus: {LTBLUE}{VELOCITY} {BLACK}Lentokonetyyppi: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Maks. nopeus: {LTBLUE}{VELOCITY} {BLACK}Lentokonetyyppi: {LTBLUE}{STRING} {BLACK}Toimintamatka: {LTBLUE}{COMMA} ruutua STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Paino: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teho: {LTBLUE}{POWER}{BLACK} Maks. nopeus: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Paino: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teho: {LTBLUE}{POWER}{BLACK} Maks. nopeus: {LTBLUE}{VELOCITY} {BLACK}Maks. T.E.: {LTBLUE}{FORCE} @@ -3955,12 +3973,12 @@ STR_AI_DEBUG_SETTINGS :{BLACK}Asetukse STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Muuta skriptin asetuksia STR_AI_DEBUG_RELOAD :{BLACK}Lataa tekoäly uudelleen STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Lopeta tekoäly, lataa skripti uudelleen ja käynnistä tekoäly uudelleen -STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Pysäytetäänkö tekoäly kun tekoälyn lokiviesti on sama kuin pysäytysmerkkijono +STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Pysäytetäänkö tekoäly, kun tekoälyn lokiviesti on sama kuin pysäytysmerkkijono STR_AI_DEBUG_BREAK_ON_LABEL :{BLACK}Pysäytä kun: -STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}Pysäytä kun +STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}Pysäytä, kun STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}Kun tekoälyn lokiviesti täsmää tämän merkkijonon kanssa, peli pysäytetään STR_AI_DEBUG_MATCH_CASE :{BLACK}Kirjainkoon täsmäys -STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}Kytke kirjainkoon täsmäys kun verrataan tekoälyn viestejä pysäytysmerkkijonoon +STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}Kytke kirjainkoon täsmäys, kun verrataan tekoälyn viestejä pysäytysmerkkijonoon STR_AI_DEBUG_CONTINUE :{BLACK}Jatka STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Jatka tekoälyn suorittamista STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Näytä tämän tekoälyn virheenkorjaustiedot From a47fb85cd8bc07cea50591500c5065f1ee274b85 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 13 Aug 2017 18:38:42 +0000 Subject: [PATCH 380/417] (svn r27893) -Codechange: Use fallthrough attribute. (LordAro) --- src/3rdparty/squirrel/squirrel/sqvm.cpp | 9 ++-- src/ai/ai_scanner.cpp | 2 +- src/company_cmd.cpp | 2 +- src/company_gui.cpp | 10 +++-- src/console.cpp | 2 +- src/depot_gui.cpp | 3 +- src/economy.cpp | 2 +- src/engine_gui.cpp | 2 +- src/fileio.cpp | 4 +- src/fios.cpp | 3 +- src/fios_gui.cpp | 3 +- src/fontcache.cpp | 2 +- src/game/game_scanner.cpp | 2 +- src/industry_gui.cpp | 2 +- src/misc_gui.cpp | 9 ++-- src/music/extmidi.cpp | 2 +- src/music/qtmidi.cpp | 8 ++-- src/network/core/udp.cpp | 9 ++-- src/network/network_chat_gui.cpp | 11 +++-- src/network/network_client.cpp | 3 +- src/network/network_content_gui.cpp | 3 +- src/network/network_gui.cpp | 5 ++- src/network/network_server.cpp | 5 ++- src/newgrf.cpp | 8 ++-- src/newgrf_gui.cpp | 12 +++-- src/newgrf_industries.cpp | 2 +- src/newgrf_industries.h | 6 ++- src/newgrf_object.cpp | 2 +- src/newgrf_object.h | 5 ++- src/newgrf_station.h | 2 +- src/order_cmd.cpp | 9 ++-- src/order_gui.cpp | 2 +- src/pathfinder/yapf/yapf_destrail.hpp | 3 +- src/rail_cmd.cpp | 59 ++++++++++++++++++------- src/saveload/afterload.cpp | 2 +- src/saveload/company_sl.cpp | 2 +- src/saveload/vehicle_sl.cpp | 2 +- src/script/api/script_error.cpp | 3 +- src/settings.cpp | 3 +- src/signal.cpp | 6 ++- src/signs_gui.cpp | 2 +- src/smallmap_gui.cpp | 10 +++-- src/spritecache.cpp | 2 +- src/station_cmd.cpp | 3 +- src/stdafx.h | 19 ++++++++ src/terraform_gui.cpp | 6 ++- src/timetable_gui.cpp | 3 +- src/town_cmd.cpp | 6 +-- src/town_gui.cpp | 3 +- src/train_cmd.cpp | 3 +- src/tree_cmd.cpp | 5 ++- src/vehicle.cpp | 2 +- src/vehicle_gui.cpp | 11 +++-- src/vehiclelist.cpp | 2 +- src/video/cocoa/event.mm | 2 +- src/video/win32_v.cpp | 2 +- src/viewport.cpp | 8 ++-- src/water_cmd.cpp | 6 +-- src/widget.cpp | 2 +- src/window.cpp | 14 +++++- 60 files changed, 221 insertions(+), 121 deletions(-) diff --git a/src/3rdparty/squirrel/squirrel/sqvm.cpp b/src/3rdparty/squirrel/squirrel/sqvm.cpp index 973002b49d..a738244bae 100644 --- a/src/3rdparty/squirrel/squirrel/sqvm.cpp +++ b/src/3rdparty/squirrel/squirrel/sqvm.cpp @@ -215,7 +215,7 @@ bool SQVM::ObjCmp(const SQObjectPtr &o1,const SQObjectPtr &o2,SQInteger &result) _RET_SUCCEED(_integer(res)) } } - //continues through (no break needed) + FALLTHROUGH; default: _RET_SUCCEED( _userpointer(o1) < _userpointer(o2)?-1:1 ); } @@ -287,6 +287,7 @@ void SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res) //else keeps going to the default } } + FALLTHROUGH; default: seprintf(buf, lastof(buf),"(%s : 0x%p)",GetTypeName(o),(void*)_rawval(o)); } @@ -539,7 +540,7 @@ bool SQVM::FOREACH_OP(SQObjectPtr &o1,SQObjectPtr &o2,SQObjectPtr _generator(o1)->Resume(this, arg_2+1); _FINISH(0); } - /* FALL THROUGH */ + FALLTHROUGH; default: Raise_Error("cannot iterate %s", GetTypeName(o1)); } @@ -769,7 +770,7 @@ exception_restore: ct_stackbase = _stackbase; goto common_call; } - /* FALL THROUGH */ + FALLTHROUGH; case _OP_CALL: { ct_tailcall = false; ct_target = arg0; @@ -1330,7 +1331,7 @@ bool SQVM::Set(const SQObjectPtr &self,const SQObjectPtr &key,const SQObjectPtr return true; } } - //keeps going + FALLTHROUGH; case OT_USERDATA: if(_delegable(self)->_delegate) { SQObjectPtr t; diff --git a/src/ai/ai_scanner.cpp b/src/ai/ai_scanner.cpp index 4eb2071479..5f16de3f91 100644 --- a/src/ai/ai_scanner.cpp +++ b/src/ai/ai_scanner.cpp @@ -114,7 +114,7 @@ AIInfo *AIScannerInfo::FindInfo(const char *nameParam, int versionParam, bool fo *e = '\0'; e++; versionParam = atoi(e); - /* FALL THROUGH, like we were calling this function with a version. */ + /* Continue, like we were calling this function with a version. */ } if (force_exact_match) { diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 577ea884d8..ee2ed13355 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -162,7 +162,7 @@ static bool IsValidCompanyManagerFace(CompanyManagerFace cmf) for (CompanyManagerFaceVariable cmfv = CMFV_CHEEKS; cmfv < CMFV_END; cmfv++) { switch (cmfv) { case CMFV_MOUSTACHE: if (!has_moustache) continue; break; - case CMFV_LIPS: // FALL THROUGH + case CMFV_LIPS: case CMFV_NOSE: if (has_moustache) continue; break; case CMFV_TIE_EARRING: if (!has_tie_earring) continue; break; case CMFV_GLASSES: if (!has_glasses) continue; break; diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 4d394203d4..31d4fdd1f0 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -318,7 +318,8 @@ struct CompanyFinancesWindow : Window { case WID_CF_EXPS_PRICE2: case WID_CF_EXPS_PRICE3: size->height = _expenses_list_types[type].GetHeight(); - /* FALL THROUGH */ + FALLTHROUGH; + case WID_CF_BALANCE_VALUE: case WID_CF_LOAN_VALUE: case WID_CF_TOTAL_VALUE: @@ -636,7 +637,8 @@ public: size->width = 0; break; } - /* FALL THROUGH */ + FALLTHROUGH; + case WID_SCL_PRI_COL_DROPDOWN: { int padding = this->square.width + NWidgetScrollbar::GetVerticalDimension().width + 10; for (const StringID *id = _colour_dropdown; id != endof(_colour_dropdown); id++) { @@ -892,7 +894,7 @@ void DrawCompanyManagerFace(CompanyManagerFace cmf, int colour, int x, int y) for (CompanyManagerFaceVariable cmfv = CMFV_CHEEKS; cmfv < CMFV_END; cmfv++) { switch (cmfv) { case CMFV_MOUSTACHE: if (!has_moustache) continue; break; - case CMFV_LIPS: // FALL THROUGH + case CMFV_LIPS: case CMFV_NOSE: if (has_moustache) continue; break; case CMFV_TIE_EARRING: if (!has_tie_earring) continue; break; case CMFV_GLASSES: if (!has_glasses) continue; break; @@ -1365,7 +1367,7 @@ public: /* OK button */ case WID_SCMF_ACCEPT: DoCommandP(0, 0, this->face, CMD_SET_COMPANY_MANAGER_FACE); - /* FALL THROUGH */ + FALLTHROUGH; /* Cancel button */ case WID_SCMF_CANCEL: diff --git a/src/console.cpp b/src/console.cpp index ece8599168..6e9b46f6b0 100644 --- a/src/console.cpp +++ b/src/console.cpp @@ -468,7 +468,7 @@ void IConsoleCmdExec(const char *cmdstr) tokenstream[tstream_i++] = *++cmdptr; break; } - /* FALL THROUGH */ + FALLTHROUGH; default: // Normal character tokenstream[tstream_i++] = *cmdptr; diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 47eefc65e9..a99f2e4dd6 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -445,7 +445,8 @@ struct DepotWindow : Window { switch (this->type) { case VEH_TRAIN: if (wagon) return MODE_ERROR; - /* FALL THROUGH */ + FALLTHROUGH; + case VEH_ROAD: if (xm <= this->flag_width) return MODE_START_STOP; break; diff --git a/src/economy.cpp b/src/economy.cpp index 7461d34b77..0106e87e14 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1726,7 +1726,7 @@ static void LoadUnloadVehicle(Vehicle *front) /* update stats */ int t; switch (front->type) { - case VEH_TRAIN: /* FALL THROUGH */ + case VEH_TRAIN: case VEH_SHIP: t = front->vcache.cached_max_speed; break; diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index d1ccd3bf42..5e9e8cef7e 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -126,7 +126,7 @@ struct EnginePreviewWindow : Window { switch (widget) { case WID_EP_YES: DoCommandP(0, this->window_number, 0, CMD_WANT_ENGINE_PREVIEW); - /* FALL THROUGH */ + FALLTHROUGH; case WID_EP_NO: if (!_shift_pressed) delete this; break; diff --git a/src/fileio.cpp b/src/fileio.cpp index 085c2c66dc..526f5b184f 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -522,7 +522,7 @@ FILE *FioFOpenFile(const char *filename, const char *mode, Subdirectory subdir, case BASESET_DIR: f = FioFOpenFile(filename, mode, OLD_GM_DIR, filesize); if (f != NULL) break; - /* FALL THROUGH */ + FALLTHROUGH; case NEWGRF_DIR: f = FioFOpenFile(filename, mode, OLD_DATA_DIR, filesize); break; @@ -1477,7 +1477,7 @@ uint FileScanner::Scan(const char *extension, Subdirectory sd, bool tars, bool r switch (sd) { case BASESET_DIR: num += this->Scan(extension, OLD_GM_DIR, tars, recursive); - /* FALL THROUGH */ + FALLTHROUGH; case NEWGRF_DIR: num += this->Scan(extension, OLD_DATA_DIR, tars, recursive); break; diff --git a/src/fios.cpp b/src/fios.cpp index 8ed01152f0..0d30e0965b 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -158,7 +158,8 @@ const char *FiosBrowseTo(const FiosItem *item) #elif defined(WIN32) || defined(__OS2__) seprintf(_fios_path, _fios_path_last, "%c:" PATHSEP, item->title[0]); #endif - /* FALL THROUGH */ + break; + case FIOS_TYPE_INVALID: break; diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index e6cd9625cc..f20cfd7927 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -702,7 +702,8 @@ public: this->vscroll->SetCount(this->fios_items.Length()); this->selected = NULL; _load_check_data.Clear(); - /* FALL THROUGH */ + FALLTHROUGH; + case 1: /* Selection changes */ if (!gui_scope) break; diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 85e5a92cc2..72e42ccbb3 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -126,7 +126,7 @@ void SpriteFontCache::InitializeUnicodeGlyphMap() SpriteID base; switch (this->fs) { default: NOT_REACHED(); - case FS_MONO: // Use normal as default for mono spaced font, i.e. FALL THROUGH + case FS_MONO: // Use normal as default for mono spaced font case FS_NORMAL: base = SPR_ASCII_SPACE; break; case FS_SMALL: base = SPR_ASCII_SPACE_SMALL; break; case FS_LARGE: base = SPR_ASCII_SPACE_BIG; break; diff --git a/src/game/game_scanner.cpp b/src/game/game_scanner.cpp index bc02f6afd2..38afdd1357 100644 --- a/src/game/game_scanner.cpp +++ b/src/game/game_scanner.cpp @@ -55,7 +55,7 @@ GameInfo *GameScannerInfo::FindInfo(const char *nameParam, int versionParam, boo *e = '\0'; e++; versionParam = atoi(e); - /* FALL THROUGH, like we were calling this function with a version. */ + /* Continue like we were calling this function with a version. */ } if (force_exact_match) { diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index b9077b9d77..41b3c573ff 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -785,7 +785,7 @@ public: DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT); break; } - /* FALL THROUGH */ + FALLTHROUGH; case CSD_CARGO: SetDParam(0, CargoSpec::Get(i->accepts_cargo[j])->name); diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 2d3871ffbd..03500c2a26 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -1007,10 +1007,12 @@ struct QueryStringWindow : public Window switch (widget) { case WID_QS_DEFAULT: this->editbox.text.DeleteAll(); - /* FALL THROUGH */ + FALLTHROUGH; + case WID_QS_OK: this->OnOk(); - /* FALL THROUGH */ + FALLTHROUGH; + case WID_QS_CANCEL: delete this; break; @@ -1160,7 +1162,8 @@ struct QueryWindow : public Window { this->proc(this->parent, true); this->proc = NULL; } - /* FALL THROUGH */ + FALLTHROUGH; + case WKC_ESC: delete this; return ES_HANDLED; diff --git a/src/music/extmidi.cpp b/src/music/extmidi.cpp index 12b3689e2a..d39a050f6c 100644 --- a/src/music/extmidi.cpp +++ b/src/music/extmidi.cpp @@ -124,7 +124,7 @@ void MusicDriver_ExtMidi::DoPlay() case -1: DEBUG(driver, 0, "extmidi: couldn't fork: %s", strerror(errno)); - /* FALL THROUGH */ + FALLTHROUGH; default: this->song[0] = '\0'; diff --git a/src/music/qtmidi.cpp b/src/music/qtmidi.cpp index dfd6f16eb3..9bc6a61740 100644 --- a/src/music/qtmidi.cpp +++ b/src/music/qtmidi.cpp @@ -242,7 +242,7 @@ void MusicDriver_QtMidi::Stop() case QT_STATE_PLAY: StopSong(); - /* FALL THROUGH */ + FALLTHROUGH; case QT_STATE_STOP: DisposeMovie(_quicktime_movie); @@ -267,13 +267,13 @@ void MusicDriver_QtMidi::PlaySong(const char *filename) case QT_STATE_PLAY: StopSong(); DEBUG(driver, 3, "qtmidi: previous tune stopped"); - /* FALL THROUGH */ + FALLTHROUGH; case QT_STATE_STOP: DisposeMovie(_quicktime_movie); DEBUG(driver, 3, "qtmidi: previous tune disposed"); _quicktime_state = QT_STATE_IDLE; - /* FALL THROUGH */ + FALLTHROUGH; case QT_STATE_IDLE: LoadMovieForMIDIFile(filename, &_quicktime_movie); @@ -294,7 +294,7 @@ void MusicDriver_QtMidi::StopSong() switch (_quicktime_state) { case QT_STATE_IDLE: - /* FALL THROUGH */ + FALLTHROUGH; case QT_STATE_STOP: DEBUG(driver, 3, "qtmidi: stop requested, but already idle"); diff --git a/src/network/core/udp.cpp b/src/network/core/udp.cpp index ce5f06b1f2..20b1ce1196 100644 --- a/src/network/core/udp.cpp +++ b/src/network/core/udp.cpp @@ -252,17 +252,20 @@ void NetworkUDPSocketHandler::ReceiveNetworkGameInfo(Packet *p, NetworkGameInfo *dst = c; dst = &c->next; } - /* FALL THROUGH */ } + FALLTHROUGH; + case 3: info->game_date = Clamp(p->Recv_uint32(), 0, MAX_DATE); info->start_date = Clamp(p->Recv_uint32(), 0, MAX_DATE); - /* FALL THROUGH */ + FALLTHROUGH; + case 2: info->companies_max = p->Recv_uint8 (); info->companies_on = p->Recv_uint8 (); info->spectators_max = p->Recv_uint8 (); - /* FALL THROUGH */ + FALLTHROUGH; + case 1: p->Recv_string(info->server_name, sizeof(info->server_name)); p->Recv_string(info->server_revision, sizeof(info->server_revision)); diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index f1e54f38da..68e1489874 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -492,10 +492,13 @@ struct NetworkChatWindow : public Window { virtual void OnClick(Point pt, int widget, int click_count) { switch (widget) { - /* Send */ - case WID_NC_SENDBUTTON: SendChat(this->message_editbox.text.buf, this->dtype, this->dest); - /* FALL THROUGH */ - case WID_NC_CLOSE: /* Cancel */ delete this; break; + case WID_NC_SENDBUTTON: /* Send */ + SendChat(this->message_editbox.text.buf, this->dtype, this->dest); + FALLTHROUGH; + + case WID_NC_CLOSE: /* Cancel */ + delete this; + break; } } diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index edfe4587f3..e3bcbb2d87 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -965,7 +965,8 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_CHAT(Packet *p) /* For speaking to company or giving money, we need the company-name */ case NETWORK_ACTION_GIVE_MONEY: if (!Company::IsValidID(ci_to->client_playas)) return NETWORK_RECV_STATUS_OKAY; - /* FALL THROUGH */ + FALLTHROUGH; + case NETWORK_ACTION_CHAT_COMPANY: { StringID str = Company::IsValidID(ci_to->client_playas) ? STR_COMPANY_NAME : STR_NETWORK_SPECTATORS; SetDParam(0, ci_to->client_playas); diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 1227d43dbb..4b1332c589 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -908,7 +908,8 @@ public: } return ES_HANDLED; } - /* FALL THROUGH, space is pressed and filter is focused. */ + /* space is pressed and filter is focused. */ + FALLTHROUGH; default: return ES_NOT_HANDLED; diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 520c4f60a8..3e4a4b0501 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -2053,7 +2053,8 @@ struct NetworkJoinStatusWindow : Window { progress = 15; // We don't have the final size yet; the server is still compressing! break; } - /* FALL THROUGH */ + FALLTHROUGH; + default: // Waiting is 15%, so the resting receivement of map is maximum 70% progress = 15 + _network_join_bytes * (100 - 15) / _network_join_bytes_total; } @@ -2182,7 +2183,7 @@ struct NetworkCompanyPasswordWindow : public Window { switch (widget) { case WID_NCP_OK: this->OnOk(); - /* FALL THROUGH */ + FALLTHROUGH; case WID_NCP_CANCEL: delete this; diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 6a33c73d89..bcee408528 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -1361,7 +1361,8 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co } default: DEBUG(net, 0, "[server] received unknown chat destination type %d. Doing broadcast instead", desttype); - /* FALL THROUGH */ + FALLTHROUGH; + case DESTTYPE_BROADCAST: FOR_ALL_CLIENT_SOCKETS(cs) { cs->SendChat(action, from_id, false, msg, data); @@ -1396,7 +1397,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_CHAT(Packet *p) switch (action) { case NETWORK_ACTION_GIVE_MONEY: if (!Company::IsValidID(ci->client_playas)) break; - /* FALL THROUGH */ + FALLTHROUGH; case NETWORK_ACTION_CHAT: case NETWORK_ACTION_CHAT_CLIENT: case NETWORK_ACTION_CHAT_COMPANY: diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 9c7188ec70..24b0238b33 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -2969,7 +2969,7 @@ static ChangeInfoResult CargoChangeInfo(uint cid, int numinfo, int prop, ByteRea case 0x0B: cs->town_effect = TE_FOOD; break; default: grfmsg(1, "CargoChangeInfo: Unknown town growth substitute value %d, setting to none.", substitute_type); - /* FALL THROUGH */ + FALLTHROUGH; case 0xFF: cs->town_effect = TE_NONE; break; } break; @@ -4094,7 +4094,7 @@ static ChangeInfoResult RailTypeChangeInfo(uint id, int numinfo, int prop, ByteR RailType rt = GetRailTypeByLabel(BSWAP32(label), false); if (rt != INVALID_RAILTYPE) { switch (prop) { - case 0x0F: SetBit(rti->powered_railtypes, rt); // Powered implies compatible. + case 0x0F: SetBit(rti->powered_railtypes, rt); FALLTHROUGH; // Powered implies compatible. case 0x0E: SetBit(rti->compatible_railtypes, rt); break; case 0x18: SetBit(rti->introduction_required_railtypes, rt); break; case 0x19: SetBit(rti->introduces_railtypes, rt); break; @@ -4211,7 +4211,7 @@ static ChangeInfoResult RailTypeReserveInfo(uint id, int numinfo, int prop, Byte break; } grfmsg(1, "RailTypeReserveInfo: Ignoring property 1D for rail type %u because no label was set", id + i); - /* FALL THROUGH */ + FALLTHROUGH; case 0x0E: // Compatible railtype list case 0x0F: // Powered railtype list @@ -4350,7 +4350,7 @@ static bool HandleChangeInfoResult(const char *caller, ChangeInfoResult cir, uin case CIR_UNKNOWN: grfmsg(0, "%s: Unknown property 0x%02X of feature 0x%02X, disabling", caller, property, feature); - /* FALL THROUGH */ + FALLTHROUGH; case CIR_INVALID_ID: { /* No debug message for an invalid ID, as it has already been output */ diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index c3007ac42d..c0aa160c25 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -1032,8 +1032,9 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { if (this->editable && this->active_sel != NULL) SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this); break; } - /* FALL THROUGH, with double click. */ + /* With double click, continue */ } + FALLTHROUGH; case WID_NS_REMOVE: { // Remove GRF if (this->active_sel == NULL || !this->editable) break; @@ -1087,8 +1088,9 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { if (this->editable && this->avail_sel != NULL && !HasBit(this->avail_sel->flags, GCF_INVALID)) SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this); break; } - /* FALL THROUGH, with double click. */ + /* With double click, continue */ } + FALLTHROUGH; case WID_NS_ADD: if (this->avail_sel == NULL || !this->editable || HasBit(this->avail_sel->flags, GCF_INVALID)) break; @@ -1225,10 +1227,12 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { } this->avails.ForceRebuild(); - /* FALL THROUGH */ + FALLTHROUGH; + case GOID_NEWGRF_LIST_EDITED: this->preset = -1; - /* FALL THROUGH */ + FALLTHROUGH; + case GOID_NEWGRF_PRESET_LOADED: { /* Update scrollbars */ int i = 0; diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index ef8e9fa9b7..e8486e7604 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -128,7 +128,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout case 0xFFFFFFFF: // current grf GrfID = GetIndustrySpec(current->type)->grf_prop.grffile->grfid; - /* FALL THROUGH */ + FALLTHROUGH; default: // use the grfid specified in register 100h SetBit(param_setID, 7); // bit 7 means it is not an old type diff --git a/src/newgrf_industries.h b/src/newgrf_industries.h index 57e44e8c05..94a5021662 100644 --- a/src/newgrf_industries.h +++ b/src/newgrf_industries.h @@ -48,9 +48,11 @@ struct IndustriesResolverObject : public ResolverObject { case VSG_SCOPE_PARENT: { TownScopeResolver *tsr = this->GetTown(); if (tsr != NULL) return tsr; - /* FALL-THROUGH */ } - default: return ResolverObject::GetScope(scope, relative); + FALLTHROUGH; + + default: + return ResolverObject::GetScope(scope, relative); } } }; diff --git a/src/newgrf_object.cpp b/src/newgrf_object.cpp index 3f48a819f5..058d5e0c00 100644 --- a/src/newgrf_object.cpp +++ b/src/newgrf_object.cpp @@ -232,7 +232,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte local_id, uint32 grfid, case 0xFFFFFFFF: // current grf grf_id = grfid; - /* FALL THROUGH */ + FALLTHROUGH; default: // use the grfid specified in register 100h idx = _object_mngr.GetID(local_id, grf_id); diff --git a/src/newgrf_object.h b/src/newgrf_object.h index 4a3b770d29..cbd06b6f6d 100644 --- a/src/newgrf_object.h +++ b/src/newgrf_object.h @@ -128,10 +128,11 @@ struct ObjectResolverObject : public ResolverObject { case VSG_SCOPE_PARENT: { TownScopeResolver *tsr = this->GetTown(); if (tsr != NULL) return tsr; - /* FALL-THROUGH */ } + FALLTHROUGH; - default: return ResolverObject::GetScope(scope, relative); + default: + return ResolverObject::GetScope(scope, relative); } } diff --git a/src/newgrf_station.h b/src/newgrf_station.h index ffb827cb3b..b9333c1053 100644 --- a/src/newgrf_station.h +++ b/src/newgrf_station.h @@ -59,8 +59,8 @@ struct StationResolverObject : public ResolverObject { case VSG_SCOPE_PARENT: { TownScopeResolver *tsr = this->GetTown(); if (tsr != NULL) return tsr; - /* FALL-THROUGH */ } + FALLTHROUGH; default: return ResolverObject::GetScope(scope, relative); diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index 57b29f3f53..db812f6c53 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -772,7 +772,8 @@ CommandCost CmdInsertOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 case OSL_PLATFORM_NEAR_END: case OSL_PLATFORM_MIDDLE: if (v->type != VEH_TRAIN) return CMD_ERROR; - /* FALL THROUGH */ + FALLTHROUGH; + case OSL_PLATFORM_FAR_END: break; @@ -880,7 +881,8 @@ CommandCost CmdInsertOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 case OCV_LOAD_PERCENTAGE: case OCV_RELIABILITY: if (new_order.GetConditionValue() > 100) return CMD_ERROR; - /* FALL THROUGH */ + FALLTHROUGH; + default: if (occ == OCC_IS_TRUE || occ == OCC_IS_FALSE) return CMD_ERROR; break; @@ -1466,7 +1468,8 @@ CommandCost CmdModifyOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 case OCV_LOAD_PERCENTAGE: case OCV_RELIABILITY: if (order->GetConditionValue() > 100) order->SetConditionValue(100); - /* FALL THROUGH */ + FALLTHROUGH; + default: if (occ == OCC_IS_TRUE || occ == OCC_IS_FALSE) order->SetConditionComparator(OCC_EQUALS); break; diff --git a/src/order_gui.cpp b/src/order_gui.cpp index 3ca29e087a..9045fac6b5 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -841,7 +841,7 @@ public: case VIWD_AUTOREPLACE: /* Autoreplace replaced the vehicle */ this->vehicle = Vehicle::Get(this->window_number); - /* FALL THROUGH */ + FALLTHROUGH; case VIWD_CONSIST_CHANGED: /* Vehicle composition was changed. */ diff --git a/src/pathfinder/yapf/yapf_destrail.hpp b/src/pathfinder/yapf/yapf_destrail.hpp index 681034a2f5..03519b059f 100644 --- a/src/pathfinder/yapf/yapf_destrail.hpp +++ b/src/pathfinder/yapf/yapf_destrail.hpp @@ -140,7 +140,8 @@ public: * waypoint. */ Yapf().DisableCache(true); } - /* FALL THROUGH */ + FALLTHROUGH; + case OT_GOTO_STATION: m_destTile = CalcClosestStationTile(v->current_order.GetDestination(), v->tile, v->current_order.IsType(OT_GOTO_STATION) ? STATION_RAIL : STATION_WAYPOINT); m_dest_station_id = v->current_order.GetDestination(); diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 5582666b1c..9f284fc305 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -554,8 +554,8 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u if (IsLevelCrossing(tile) && GetCrossingRailBits(tile) == trackbit) { return_cmd_error(STR_ERROR_ALREADY_BUILT); } - /* FALL THROUGH */ } + FALLTHROUGH; default: { /* Will there be flat water on the lower halftile? */ @@ -2444,33 +2444,60 @@ static void DrawTile_Track(TileInfo *ti) SpriteID ground = GetCustomRailSprite(rti, ti->tile, RTSG_GROUND); switch (GetRailDepotDirection(ti->tile)) { - case DIAGDIR_NE: if (!IsInvisibilitySet(TO_BUILDINGS)) break; // else FALL THROUGH - case DIAGDIR_SW: DrawGroundSprite(ground + RTO_X, PAL_NONE); break; - case DIAGDIR_NW: if (!IsInvisibilitySet(TO_BUILDINGS)) break; // else FALL THROUGH - case DIAGDIR_SE: DrawGroundSprite(ground + RTO_Y, PAL_NONE); break; - default: break; + case DIAGDIR_NE: + if (!IsInvisibilitySet(TO_BUILDINGS)) break; + FALLTHROUGH; + case DIAGDIR_SW: + DrawGroundSprite(ground + RTO_X, PAL_NONE); + break; + case DIAGDIR_NW: + if (!IsInvisibilitySet(TO_BUILDINGS)) break; + FALLTHROUGH; + case DIAGDIR_SE: + DrawGroundSprite(ground + RTO_Y, PAL_NONE); + break; + default: + break; } if (_settings_client.gui.show_track_reservation && HasDepotReservation(ti->tile)) { SpriteID overlay = GetCustomRailSprite(rti, ti->tile, RTSG_OVERLAY); switch (GetRailDepotDirection(ti->tile)) { - case DIAGDIR_NE: if (!IsInvisibilitySet(TO_BUILDINGS)) break; // else FALL THROUGH - case DIAGDIR_SW: DrawGroundSprite(overlay + RTO_X, PALETTE_CRASH); break; - case DIAGDIR_NW: if (!IsInvisibilitySet(TO_BUILDINGS)) break; // else FALL THROUGH - case DIAGDIR_SE: DrawGroundSprite(overlay + RTO_Y, PALETTE_CRASH); break; - default: break; + case DIAGDIR_NE: + if (!IsInvisibilitySet(TO_BUILDINGS)) break; + FALLTHROUGH; + case DIAGDIR_SW: + DrawGroundSprite(overlay + RTO_X, PALETTE_CRASH); + break; + case DIAGDIR_NW: + if (!IsInvisibilitySet(TO_BUILDINGS)) break; + FALLTHROUGH; + case DIAGDIR_SE: + DrawGroundSprite(overlay + RTO_Y, PALETTE_CRASH); + break; + default: + break; } } } else { /* PBS debugging, draw reserved tracks darker */ if (_game_mode != GM_MENU && _settings_client.gui.show_track_reservation && HasDepotReservation(ti->tile)) { switch (GetRailDepotDirection(ti->tile)) { - case DIAGDIR_NE: if (!IsInvisibilitySet(TO_BUILDINGS)) break; // else FALL THROUGH - case DIAGDIR_SW: DrawGroundSprite(rti->base_sprites.single_x, PALETTE_CRASH); break; - case DIAGDIR_NW: if (!IsInvisibilitySet(TO_BUILDINGS)) break; // else FALL THROUGH - case DIAGDIR_SE: DrawGroundSprite(rti->base_sprites.single_y, PALETTE_CRASH); break; - default: break; + case DIAGDIR_NE: + if (!IsInvisibilitySet(TO_BUILDINGS)) break; + FALLTHROUGH; + case DIAGDIR_SW: + DrawGroundSprite(rti->base_sprites.single_x, PALETTE_CRASH); + break; + case DIAGDIR_NW: + if (!IsInvisibilitySet(TO_BUILDINGS)) break; + FALLTHROUGH; + case DIAGDIR_SE: + DrawGroundSprite(rti->base_sprites.single_y, PALETTE_CRASH); + break; + default: + break; } } } diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 8b59671757..d5d9bc3a48 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -154,7 +154,7 @@ static void ConvertTownOwner() if (GB(_m[tile].m5, 4, 2) == ROAD_TILE_CROSSING && HasBit(_m[tile].m3, 7)) { _m[tile].m3 = OWNER_TOWN; } - /* FALL THROUGH */ + FALLTHROUGH; case MP_TUNNELBRIDGE: if (_m[tile].m1 & 0x80) SetTileOwner(tile, OWNER_TOWN); diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 733bc0eaf9..d7c3130271 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -185,7 +185,7 @@ void AfterLoadCompanyStats() } } } - /* FALL THROUGH */ + FALLTHROUGH; case MP_OBJECT: if (GetWaterClass(tile) == WATER_CLASS_CANAL) { diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index d7c7011890..2234659aba 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -433,8 +433,8 @@ void AfterLoadVehicles(bool part_of_load) RoadVehicle *rv = RoadVehicle::From(v); rv->roadtype = HasBit(EngInfo(v->First()->engine_type)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD; rv->compatible_roadtypes = RoadTypeToRoadTypes(rv->roadtype); - /* FALL THROUGH */ } + FALLTHROUGH; case VEH_TRAIN: case VEH_SHIP: diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp index 24c4919952..87d2906c55 100644 --- a/src/script/api/script_error.cpp +++ b/src/script/api/script_error.cpp @@ -40,7 +40,8 @@ ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::S case TEXT_TAB_SPECIAL: if (index < 0xE4) break; // Player name - /* FALL THROUGH */ + FALLTHROUGH; + case TEXT_TAB_TOWN: if (index < 0xC0) break; // Town name /* These strings are 'random' and have no meaning. diff --git a/src/settings.cpp b/src/settings.cpp index 9fba3a13ff..d819450221 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -178,7 +178,8 @@ static int ParseIntList(const char *p, int *items, int maxitems) /* Do not accept multiple commas between numbers */ if (!comma) return -1; comma = false; - /* FALL THROUGH */ + FALLTHROUGH; + case ' ': p++; break; diff --git a/src/signal.cpp b/src/signal.cpp index 8e870b53db..b37e15074a 100644 --- a/src/signal.cpp +++ b/src/signal.cpp @@ -504,7 +504,8 @@ static SigSegState UpdateSignalsInBuffer(Owner owner) _tbdset.Add(tile, INVALID_DIAGDIR); // start from depot inside break; } - /* FALL THROUGH */ + FALLTHROUGH; + case MP_STATION: case MP_ROAD: if ((TrackStatusToTrackBits(GetTileTrackStatus(tile, TRANSPORT_RAIL, 0)) & _enterdir_to_trackbits[dir]) != TRACK_BIT_NONE) { @@ -513,7 +514,8 @@ static SigSegState UpdateSignalsInBuffer(Owner owner) _tbdset.Add(tile + TileOffsByDiagDir(dir), ReverseDiagDir(dir)); break; } - /* FALL THROUGH */ + FALLTHROUGH; + default: /* jump to next tile */ tile = tile + TileOffsByDiagDir(dir); diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index 020ee1b6ea..15adef0890 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -514,7 +514,7 @@ struct SignWindow : Window, SignList { case WID_QES_OK: if (RenameSign(this->cur_sign, this->name_editbox.text.buf)) break; - /* FALL THROUGH */ + FALLTHROUGH; case WID_QES_CANCEL: delete this; diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index f4bcdece18..0bb2997e50 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -1229,10 +1229,12 @@ void SmallMapWindow::RebuildColourIndexIfNecessary() if (tbl->show_on_map && tbl->type == _smallmap_industry_highlight) { legend_colour = _smallmap_industry_highlight_state ? PC_WHITE : PC_BLACK; } - /* FALL THROUGH */ + FALLTHROUGH; + case SMT_LINKSTATS: SetDParam(0, tbl->legend); - /* FALL_THROUGH */ + FALLTHROUGH; + case SMT_OWNER: if (this->map_type != SMT_OWNER || tbl->company != INVALID_COMPANY) { if (this->map_type == SMT_OWNER) SetDParam(0, tbl->company); @@ -1246,7 +1248,8 @@ void SmallMapWindow::RebuildColourIndexIfNecessary() } break; } - /* FALL_THROUGH */ + FALLTHROUGH; + default: if (this->map_type == SMT_CONTOUR) SetDParam(0, tbl->height * TILE_HEIGHT_STEP); /* Anything that is not an industry or a company is using normal process */ @@ -1465,7 +1468,6 @@ int SmallMapWindow::GetPositionOnLegend(Point pt) break; case WID_SM_ENABLE_ALL: - /* FALL THROUGH */ case WID_SM_DISABLE_ALL: { LegendAndColour *tbl = NULL; switch (this->map_type) { diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 70a8834a91..579791d0d4 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -818,7 +818,7 @@ static void *HandleInvalidSpriteRequest(SpriteID sprite, SpriteType requested, S switch (requested) { case ST_NORMAL: if (sprite == SPR_IMG_QUERY) usererror("Uhm, would you be so kind not to load a NewGRF that makes the 'query' sprite a non-normal sprite?"); - /* FALL THROUGH */ + FALLTHROUGH; case ST_FONT: return GetRawSprite(SPR_IMG_QUERY, ST_NORMAL, allocator); case ST_RECOLOUR: diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index ea890688e5..5fd865a0db 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -3091,7 +3091,8 @@ static void TileLoop_Station(TileIndex tile) case STATION_DOCK: if (!IsTileFlat(tile)) break; // only handle water part - /* FALL THROUGH */ + FALLTHROUGH; + case STATION_OILRIG: //(station part) case STATION_BUOY: TileLoop_Water(tile); diff --git a/src/stdafx.h b/src/stdafx.h index 4616212f18..43e52ff279 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -156,6 +156,17 @@ #else #define FINAL #endif + + /* Use fallthrough attribute where supported */ + #if __GNUC__ >= 7 + #if __cplusplus > 201402L // C++17 + #define FALLTHROUGH [[fallthrough]] + #else + #define FALLTHROUGH __attribute__((fallthrough)) + #endif + #else + #define FALLTHROUGH + #endif #endif /* __GNUC__ */ #if defined(__WATCOMC__) @@ -164,6 +175,7 @@ #define GCC_PACK #define WARN_FORMAT(string, args) #define FINAL + #define FALLTHROUGH #include #endif /* __WATCOMC__ */ @@ -235,6 +247,13 @@ #define WARN_FORMAT(string, args) #define FINAL sealed + /* fallthrough attribute, VS 2017 */ + #if (_MSC_VER >= 1910) + #define FALLTHROUGH [[fallthrough]] + #else + #define FALLTHROUGH + #endif + #if defined(WINCE) int CDECL vsnprintf(char *str, size_t size, const char *format, va_list ap); #endif diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index 6274de8cdd..97749a8dcc 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -80,12 +80,14 @@ static void GenerateRockyArea(TileIndex end, TileIndex start) switch (GetTileType(tile)) { case MP_TREES: if (GetTreeGround(tile) == TREE_GROUND_SHORE) continue; - /* FALL THROUGH */ + FALLTHROUGH; + case MP_CLEAR: MakeClear(tile, CLEAR_ROCKS, 3); break; - default: continue; + default: + continue; } MarkTileDirtyByTile(tile); success = true; diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index ffea9a8642..664dc80347 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -197,7 +197,8 @@ struct TimetableWindow : Window { this->deparr_time_width = GetStringBoundingBox(STR_JUST_DATE_TINY).width; this->deparr_abbr_width = max(GetStringBoundingBox(STR_TIMETABLE_ARRIVAL_ABBREVIATION).width, GetStringBoundingBox(STR_TIMETABLE_DEPARTURE_ABBREVIATION).width); size->width = WD_FRAMERECT_LEFT + this->deparr_abbr_width + 10 + this->deparr_time_width + WD_FRAMERECT_RIGHT; - /* FALL THROUGH */ + FALLTHROUGH; + case WID_VT_ARRIVAL_DEPARTURE_SELECTION: case WID_VT_TIMETABLE_PANEL: resize->height = FONT_HEIGHT_NORMAL; diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 66092ff34f..daaad7e8d0 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -1244,7 +1244,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, RoadBits cur_rb, DiagDirection t case TL_3X3_GRID: // Use 2x2 grid afterwards! GrowTownWithExtraHouse(t1, TileAddByDiagDir(house_tile, target_dir)); - /* FALL THROUGH */ + FALLTHROUGH; case TL_2X2_GRID: rcmd = GetTownRoadGridElement(t1, tile, target_dir); @@ -1253,7 +1253,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, RoadBits cur_rb, DiagDirection t case TL_BETTER_ROADS: // Use original afterwards! GrowTownWithExtraHouse(t1, TileAddByDiagDir(house_tile, target_dir)); - /* FALL THROUGH */ + FALLTHROUGH; case TL_ORIGINAL: /* Allow a house at the edge. 60% chance or @@ -3259,7 +3259,7 @@ Town *ClosestTownFromTile(TileIndex tile, uint threshold) return town; } - /* FALL THROUGH */ + FALLTHROUGH; case MP_HOUSE: return Town::GetByTile(tile); diff --git a/src/town_gui.cpp b/src/town_gui.cpp index 142966b694..696b71afd2 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -267,9 +267,10 @@ public: this->sel_index = y; this->SetDirty(); } - /* FALL THROUGH, when double-clicking. */ + /* When double-clicking, continue */ if (click_count == 1 || y < 0) break; } + FALLTHROUGH; case WID_TA_EXECUTE: DoCommandP(this->town->xy, this->window_number, this->sel_index, CMD_DO_TOWN_ACTION | CMD_MSG(STR_ERROR_CAN_T_DO_THIS)); diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 608ce2fee1..fb1d2b1ee4 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2502,6 +2502,7 @@ public: case OT_GOTO_DEPOT: /* Skip service in depot orders when the train doesn't need service. */ if ((order->GetDepotOrderType() & ODTFB_SERVICE) && !this->v->NeedsServicing()) break; + FALLTHROUGH; case OT_GOTO_STATION: case OT_GOTO_WAYPOINT: this->v->current_order = *order; @@ -3608,7 +3609,7 @@ static bool TrainApproachingLineEnd(Train *v, bool signal, bool reverse) * for other directions, it will be 1, 3, 5, ..., 15 */ switch (v->direction) { case DIR_N : x = ~x + ~y + 25; break; - case DIR_NW: x = y; // FALL THROUGH + case DIR_NW: x = y; FALLTHROUGH; case DIR_NE: x = ~x + 16; break; case DIR_E : x = ~x + y + 9; break; case DIR_SE: x = y; break; diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp index c862f0dbc1..7240cf86d3 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -375,7 +375,8 @@ CommandCost CmdPlantTree(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 msg = STR_ERROR_CAN_T_BUILD_ON_WATER; continue; } - /* FALL THROUGH */ + FALLTHROUGH; + case MP_CLEAR: { if (IsBridgeAbove(tile)) { msg = STR_ERROR_SITE_UNSUITABLE; @@ -680,7 +681,7 @@ static void TileLoop_Trees(TileIndex tile) SetTreeGrowth(tile, 0); break; } - /* FALL THROUGH */ + FALLTHROUGH; case 2: { // add a neighbouring tree /* Don't plant extra trees if that's not allowed. */ diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 4dbdf24dff..dff9febc05 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1269,7 +1269,7 @@ bool Vehicle::HandleBreakdown() SetWindowDirty(WC_VEHICLE_VIEW, this->index); SetWindowDirty(WC_VEHICLE_DETAILS, this->index); - /* FALL THROUGH */ + FALLTHROUGH; case 1: /* Aircraft breakdowns end only when arriving at the airport */ if (this->type == VEH_AIRCRAFT) return false; diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index b9c24ddd01..b50457d211 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -817,8 +817,8 @@ struct RefitWindow : public Window { Vehicle *v = Vehicle::Get(this->window_number); this->selected_vehicle = v->index; this->num_vehicles = UINT8_MAX; - /* FALL THROUGH */ } + FALLTHROUGH; case 2: { // The vehicle selection has changed; rebuild the entire list. if (!gui_scope) break; @@ -843,8 +843,8 @@ struct RefitWindow : public Window { this->information_width = max_width; this->ReInit(); } - /* FALL THROUGH */ } + FALLTHROUGH; case 1: // A new cargo has been selected. if (!gui_scope) break; @@ -905,8 +905,8 @@ struct RefitWindow : public Window { if (_ctrl_pressed) this->num_vehicles = UINT8_MAX; break; } - /* FALL THROUGH */ } + FALLTHROUGH; default: /* Clear the selection. */ @@ -940,8 +940,8 @@ struct RefitWindow : public Window { this->InvalidateData(1); if (click_count == 1) break; - /* FALL THROUGH */ } + FALLTHROUGH; case WID_VR_REFIT: // refit button if (this->cargo != NULL) { @@ -2638,8 +2638,7 @@ public: str = STR_VEHICLE_STATUS_LEAVING; break; } - /* FALL THROUGH, if aircraft. Does this even happen? */ - + FALLTHROUGH; default: if (v->GetNumManualOrders() == 0) { str = STR_VEHICLE_STATUS_NO_ORDERS_VEL; diff --git a/src/vehiclelist.cpp b/src/vehiclelist.cpp index f1f5d0424a..bfe4e5ffd1 100644 --- a/src/vehiclelist.cpp +++ b/src/vehiclelist.cpp @@ -156,7 +156,7 @@ bool GenerateVehicleSortList(VehicleList *list, const VehicleListIdentifier &vli } break; } - /* FALL THROUGH */ + FALLTHROUGH; case VL_STANDARD: FOR_ALL_VEHICLES(v) { diff --git a/src/video/cocoa/event.mm b/src/video/cocoa/event.mm index c8d10717e3..1298961dce 100644 --- a/src/video/cocoa/event.mm +++ b/src/video/cocoa/event.mm @@ -610,7 +610,7 @@ static bool QZ_PollEvent() * the mouse position programmatically, which would trigger OS X to show * the default arrow cursor if the events are propagated. */ if (_cursor.fix_at) break; - /* FALL THROUGH */ + FALLTHROUGH; default: [ NSApp sendEvent:event ]; diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index e536ae8e5e..4a9861b643 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -680,7 +680,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP case WM_PALETTECHANGED: if ((HWND)wParam == hwnd) return 0; - /* FALL THROUGH */ + FALLTHROUGH; case WM_QUERYNEWPALETTE: { HDC hDC = GetWindowDC(hwnd); diff --git a/src/viewport.cpp b/src/viewport.cpp index a1bb2c81d1..df431ff3c0 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -2633,8 +2633,8 @@ static int CalcHeightdiff(HighLightStyle style, uint distance, TileIndex start_t byte style_t = (byte)(TileX(end_tile) > TileX(start_tile)); start_tile = TILE_ADD(start_tile, ToTileIndexDiff(heightdiff_area_by_dir[style_t])); end_tile = TILE_ADD(end_tile, ToTileIndexDiff(heightdiff_area_by_dir[2 + style_t])); - /* FALL THROUGH */ } + FALLTHROUGH; case HT_POINT: h0 = TileHeight(start_tile); @@ -2979,7 +2979,7 @@ void VpSelectTilesWithMethod(int x, int y, ViewportPlaceMethod method) case VPM_X_LIMITED: // Drag in X direction (limited size). limit = (_thd.sizelimit - 1) * TILE_SIZE; - /* FALL THROUGH */ + FALLTHROUGH; case VPM_FIX_X: // drag in Y direction x = sx; @@ -2988,7 +2988,7 @@ void VpSelectTilesWithMethod(int x, int y, ViewportPlaceMethod method) case VPM_Y_LIMITED: // Drag in Y direction (limited size). limit = (_thd.sizelimit - 1) * TILE_SIZE; - /* FALL THROUGH */ + FALLTHROUGH; case VPM_FIX_Y: // drag in X direction y = sy; @@ -3026,7 +3026,7 @@ calc_heightdiff_single_direction:; limit = (_thd.sizelimit - 1) * TILE_SIZE; x = sx + Clamp(x - sx, -limit, limit); y = sy + Clamp(y - sy, -limit, limit); - /* FALL THROUGH */ + FALLTHROUGH; case VPM_X_AND_Y: // drag an X by Y area if (_settings_client.gui.measure_tooltip) { diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index 4392eb2103..edce4cda58 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -437,7 +437,7 @@ CommandCost CmdBuildCanal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 MakeSea(tile); break; } - /* FALL THROUGH */ + FALLTHROUGH; default: MakeCanal(tile, _current_company, Random()); @@ -1015,7 +1015,7 @@ FloodingBehaviour GetFloodingBehaviour(TileIndex tile) Slope tileh = GetTileSlope(tile); return (IsSlopeWithOneCornerRaised(tileh) ? FLOOD_ACTIVE : FLOOD_DRYUP); } - /* FALL THROUGH */ + FALLTHROUGH; case MP_STATION: case MP_INDUSTRY: case MP_OBJECT: @@ -1064,7 +1064,7 @@ void DoFloodTile(TileIndex target) flooded = true; break; } - /* FALL THROUGH */ + FALLTHROUGH; case MP_CLEAR: if (DoCommand(target, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR).Succeeded()) { diff --git a/src/widget.cpp b/src/widget.cpp index 0f1743b907..4e411ada23 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -2287,8 +2287,8 @@ void NWidgetLeaf::SetupSmallestSize(Window *w, bool init_array) Dimension sprite_size = GetSpriteSize(_current_text_dir == TD_RTL ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); size.width = max(size.width, 30 + sprite_size.width); size.height = max(sprite_size.height, GetStringBoundingBox("_").height + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM); - /* FALL THROUGH */ } + FALLTHROUGH; case WWT_PUSHBTN: { static const Dimension extra = {WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM}; padding = &extra; diff --git a/src/window.cpp b/src/window.cpp index 8378f60f76..6538caffd2 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1277,26 +1277,33 @@ static uint GetWindowZPriority(const Window *w) switch (w->window_class) { case WC_ENDSCREEN: ++z_priority; + FALLTHROUGH; case WC_HIGHSCORE: ++z_priority; + FALLTHROUGH; case WC_TOOLTIPS: ++z_priority; + FALLTHROUGH; case WC_DROPDOWN_MENU: ++z_priority; + FALLTHROUGH; case WC_MAIN_TOOLBAR: case WC_STATUS_BAR: ++z_priority; + FALLTHROUGH; case WC_OSK: ++z_priority; + FALLTHROUGH; case WC_QUERY_STRING: case WC_SEND_NETWORK_MSG: ++z_priority; + FALLTHROUGH; case WC_ERRMSG: case WC_CONFIRM_POPUP_QUERY: @@ -1304,6 +1311,7 @@ static uint GetWindowZPriority(const Window *w) case WC_NETWORK_STATUS_WINDOW: case WC_SAVE_PRESET: ++z_priority; + FALLTHROUGH; case WC_GENERATE_LANDSCAPE: case WC_SAVELOAD: @@ -1315,15 +1323,19 @@ static uint GetWindowZPriority(const Window *w) case WC_AI_SETTINGS: case WC_TEXTFILE: ++z_priority; + FALLTHROUGH; case WC_CONSOLE: ++z_priority; + FALLTHROUGH; case WC_NEWS_WINDOW: ++z_priority; + FALLTHROUGH; default: ++z_priority; + FALLTHROUGH; case WC_MAIN_WINDOW: return z_priority; @@ -2867,7 +2879,7 @@ static void MouseLoop(MouseClick click, int mousewheel) if (!scrollwheel_scrolling || w == NULL || w->window_class != WC_SMALLMAP) break; /* We try to use the scrollwheel to scroll since we didn't touch any of the buttons. * Simulate a right button click so we can get started. */ - /* FALL THROUGH */ + FALLTHROUGH; case MC_RIGHT: DispatchRightClickEvent(w, x - w->left, y - w->top); break; From 6fcb1569898758a53919a0f7c613db209d96170d Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 17 Sep 2015 20:11:30 +0100 Subject: [PATCH 381/417] Add generic mechanism to cross-ref settings at load time. This is useful for loading settings from legacy/special versions, where the corresponding setting is somewhere else and/or a PATX setting, with duplicating all the info. (cherry picked from commit b5c453b21eaa9c9bff76bfb2e950d05ef7987ed7) --- src/settings.cpp | 46 ++++++++++++++++++++++++++++++----- src/settings_internal.h | 3 ++- src/table/settings.h.preamble | 15 +++++++----- src/table/settings.ini | 2 ++ 4 files changed, 53 insertions(+), 13 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index 183c9f4dd8..1c60215960 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2045,24 +2045,27 @@ bool SetSettingValue(uint index, const char *value, bool force_newgame) /** * Given a name of setting, return a setting description of it. - * @param name Name of the setting to return a setting description of - * @param i Pointer to an integer that will contain the index of the setting after the call, if it is successful. + * @param name Name of the setting to return a setting description of + * @param i Pointer to an integer that will contain the index of the setting after the call, if it is successful. + * @param ignore_version Return a setting even if it not valid for the current savegame version * @return Pointer to the setting description of setting \a name if it can be found, * \c NULL indicates failure to obtain the description */ -const SettingDesc *GetSettingFromName(const char *name, uint *i) +const SettingDesc *GetSettingFromName(const char *name, uint *i, bool ignore_version) { const SettingDesc *sd; /* First check all full names */ for (*i = 0, sd = _settings; sd->save.cmd != SL_END; sd++, (*i)++) { - if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; + if (sd->desc.name == NULL) continue; + if (!ignore_version && !SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; if (strcmp(sd->desc.name, name) == 0) return sd; } /* Then check the shortcut variant of the name. */ for (*i = 0, sd = _settings; sd->save.cmd != SL_END; sd++, (*i)++) { - if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; + if (sd->desc.name == NULL) continue; + if (!ignore_version && !SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; const char *short_name = strchr(sd->desc.name, '.'); if (short_name != NULL) { short_name++; @@ -2073,7 +2076,8 @@ const SettingDesc *GetSettingFromName(const char *name, uint *i) if (strncmp(name, "company.", 8) == 0) name += 8; /* And finally the company-based settings */ for (*i = 0, sd = _company_settings; sd->save.cmd != SL_END; sd++, (*i)++) { - if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; + if (sd->desc.name == NULL) continue; + if (!ignore_version && !SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; if (strcmp(sd->desc.name, name) == 0) return sd; } @@ -2185,6 +2189,29 @@ void IConsoleListSettings(const char *prefilter) IConsolePrintF(CC_WARNING, "Use 'setting' command to change a value"); } +/** + * Load handler for settings, which don't go in the PATX chunk, and which are a cross-reference to another setting + * @param osd SettingDesc struct containing all information + * @param object can be either NULL in which case we load global variables or + * a pointer to a struct which is getting saved + */ +static void LoadSettingsXref(const SettingDesc *osd, void *object) { + DEBUG(sl, 3, "PATS chunk: Loading xref setting: '%s'", osd->xref); + uint index = 0; + const SettingDesc *setting_xref = GetSettingFromName(osd->xref, &index, true); + assert(setting_xref != NULL); + + // Generate a new SaveLoad from the xref target using the version params from the source + SaveLoad sld = setting_xref->save; + sld.version_from = osd->save.version_from; + sld.version_to = osd->save.version_to; + sld.ext_feature_test = osd->save.ext_feature_test; + void *ptr = GetVariableAddress(object, &sld); + + if (!SlObjectMember(ptr, &sld)) return; + if (IsNumericType(sld.conv)) Write_ValidateSetting(ptr, setting_xref, ReadValue(ptr, sld.conv)); +} + /** * Save and load handler for settings, except for those which go in the PATX chunk * @param osd SettingDesc struct containing all information @@ -2193,9 +2220,15 @@ void IConsoleListSettings(const char *prefilter) */ static void LoadSettings(const SettingDesc *osd, void *object) { + extern uint16 _sl_version; + for (; osd->save.cmd != SL_END; osd++) { if (osd->patx_name != NULL) continue; const SaveLoad *sld = &osd->save; + if (osd->xref != NULL) { + if (sld->ext_feature_test.IsFeaturePresent(_sl_version, sld->version_from, sld->version_to)) LoadSettingsXref(osd, object); + continue; + } void *ptr = GetVariableAddress(object, sld); if (!SlObjectMember(ptr, sld)) continue; @@ -2217,6 +2250,7 @@ static void SaveSettings(const SettingDesc *sd, void *object) size_t length = 0; for (i = sd; i->save.cmd != SL_END; i++) { if (i->patx_name != NULL) continue; + if (i->xref != NULL) continue; length += SlCalcObjMemberLength(object, &i->save); } SlSetLength(length); diff --git a/src/settings_internal.h b/src/settings_internal.h index e356e7e5e6..2f0021392f 100644 --- a/src/settings_internal.h +++ b/src/settings_internal.h @@ -112,6 +112,7 @@ struct SettingDesc { SettingDescBase desc; ///< Settings structure (going to configuration file) SaveLoad save; ///< Internal structure (going to savegame, parts to config) const char *patx_name; ///< Name to save/load setting from in PATX chunk, if NULL save/load from PATS chunk as normal + const char *xref; ///< Name of SettingDesc to use instead of the contents of this one, useful for loading legacy savegames, if NULL save/load as normal bool IsEditable(bool do_command = false) const; SettingType GetType() const; @@ -126,7 +127,7 @@ struct SettingDesc { * offset in a certain struct */ typedef SettingDesc SettingDescGlobVarList; -const SettingDesc *GetSettingFromName(const char *name, uint *i); +const SettingDesc *GetSettingFromName(const char *name, uint *i, bool ignore_version = false); bool SetSettingValue(uint index, int32 value, bool force_newgame = false); bool SetSettingValue(uint index, const char *value, bool force_newgame = false); void SetCompanySetting(uint index, int32 value); diff --git a/src/table/settings.h.preamble b/src/table/settings.h.preamble index ed67d43c30..9e78a500ff 100644 --- a/src/table/settings.h.preamble +++ b/src/table/settings.h.preamble @@ -62,7 +62,7 @@ static size_t ConvertLandscape(const char *value); /* Macros for various objects to go in the configuration file. * This section is for global variables */ #define SDTG_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ - {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, NULL, cat), SLEG_GENERAL_X(sle_cmd, var, type | flags, length, from, to, extver), patxname} + {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, NULL, cat), SLEG_GENERAL_X(sle_cmd, var, type | flags, length, from, to, extver), patxname, NULL} #define SDTG_VAR(name, type, flags, guiflags, var, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ SDTG_GENERAL(name, SDT_NUMX, SL_VAR, type, flags, guiflags, var, 0, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to, cat, extver, patxname) @@ -83,14 +83,14 @@ static size_t ConvertLandscape(const char *value); SDTG_GENERAL(name, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, 0, 0, full, str, strhelp, strval, proc, from, to, cat, extver, patxname) #define SDTG_NULL(length, from, to, extver)\ - {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_NULL_X(length, from, to, extver), NULL} + {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_NULL_X(length, from, to, extver), NULL, NULL} -#define SDTG_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_END(), NULL} +#define SDTG_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_END(), NULL, NULL} /* Macros for various objects to go in the configuration file. * This section is for structures where their various members are saved */ #define SDT_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, strhelp, strval, proc, load, from, to, cat, extver, patxname)\ - {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, load, cat), SLE_GENERAL_X(sle_cmd, base, var, type | flags, length, from, to, extver), patxname} + {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, load, cat), SLE_GENERAL_X(sle_cmd, base, var, type | flags, length, from, to, extver), patxname, NULL} #define SDT_VAR(base, var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ SDT_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, base, var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, NULL, from, to, cat, extver, patxname) @@ -114,7 +114,7 @@ static size_t ConvertLandscape(const char *value); SDT_GENERAL(#var, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, 0, 0, full, str, strhelp, strval, proc, NULL, from, to, cat, extver, patxname) #define SDT_NULL(length, from, to, extver)\ - {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_CONDNULL_X(length, from, to, extver), NULL} + {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_CONDNULL_X(length, from, to, extver), NULL, NULL} #define SDTC_VAR(var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ @@ -132,5 +132,8 @@ static size_t ConvertLandscape(const char *value); #define SDTC_OMANY(var, type, flags, guiflags, def, max, full, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ SDTG_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, 0, max, 0, full, str, strhelp, strval, proc, from, to, cat, extver, patxname) -#define SDT_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_END(), NULL} +#define SDT_XREF(from, to, extver, xref)\ + {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_CONDNULL_X(0, from, to, extver), NULL, xref} + +#define SDT_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_END(), NULL, NULL} diff --git a/src/table/settings.ini b/src/table/settings.ini index 8d7826d7c7..e223ff1a7c 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -77,6 +77,7 @@ SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), SDT_NULL = SDT_NULL($length, $from, $to, $extver), +SDT_XREF = SDT_XREF( $from, $to, $extver, $xref), SDT_END = SDT_END() [defaults] @@ -93,6 +94,7 @@ to = SL_MAX_VERSION cat = SC_ADVANCED extver = SlXvFeatureTest() patxname = NULL +xref = From 46050820c5cfc602bd8bc7475a366ce53d29d54c Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 31 Aug 2015 09:58:10 +0100 Subject: [PATCH 382/417] Fix missing template definition in company_settings. (cherry picked from commit 6e505ceab154bc961b34152d8928b1adaae662d9) --- src/table/company_settings.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/src/table/company_settings.ini b/src/table/company_settings.ini index 8296890a74..ba3148e568 100644 --- a/src/table/company_settings.ini +++ b/src/table/company_settings.ini @@ -20,6 +20,7 @@ static const SettingDesc _company_settings[] = { [templates] SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), +SDT_NULL = SDT_NULL($length, $from, $to, $extver), SDT_END = SDT_END() [defaults] From a3f30a30dfe450206842ce106bcff51f26fa1bff Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 20 Aug 2017 07:11:08 +0000 Subject: [PATCH 383/417] (svn r27894) -Fix [FS#6608]: Typo fix in STATIOV_* string names (Wolf01) --- src/lang/afrikaans.txt | 4 ++-- src/lang/basque.txt | 4 ++-- src/lang/belarusian.txt | 4 ++-- src/lang/brazilian_portuguese.txt | 4 ++-- src/lang/bulgarian.txt | 4 ++-- src/lang/catalan.txt | 4 ++-- src/lang/croatian.txt | 4 ++-- src/lang/czech.txt | 4 ++-- src/lang/danish.txt | 4 ++-- src/lang/dutch.txt | 4 ++-- src/lang/english.txt | 4 ++-- src/lang/english_AU.txt | 4 ++-- src/lang/english_US.txt | 4 ++-- src/lang/estonian.txt | 4 ++-- src/lang/faroese.txt | 4 ++-- src/lang/finnish.txt | 4 ++-- src/lang/french.txt | 4 ++-- src/lang/gaelic.txt | 4 ++-- src/lang/galician.txt | 4 ++-- src/lang/german.txt | 4 ++-- src/lang/greek.txt | 4 ++-- src/lang/hebrew.txt | 4 ++-- src/lang/hungarian.txt | 4 ++-- src/lang/icelandic.txt | 4 ++-- src/lang/indonesian.txt | 4 ++-- src/lang/irish.txt | 4 ++-- src/lang/italian.txt | 4 ++-- src/lang/japanese.txt | 4 ++-- src/lang/korean.txt | 4 ++-- src/lang/latin.txt | 4 ++-- src/lang/latvian.txt | 4 ++-- src/lang/lithuanian.txt | 4 ++-- src/lang/luxembourgish.txt | 4 ++-- src/lang/norwegian_bokmal.txt | 4 ++-- src/lang/norwegian_nynorsk.txt | 4 ++-- src/lang/polish.txt | 4 ++-- src/lang/portuguese.txt | 4 ++-- src/lang/romanian.txt | 4 ++-- src/lang/russian.txt | 4 ++-- src/lang/serbian.txt | 4 ++-- src/lang/simplified_chinese.txt | 4 ++-- src/lang/slovak.txt | 4 ++-- src/lang/slovenian.txt | 4 ++-- src/lang/spanish.txt | 4 ++-- src/lang/spanish_MX.txt | 4 ++-- src/lang/swedish.txt | 4 ++-- src/lang/tamil.txt | 4 ++-- src/lang/thai.txt | 4 ++-- src/lang/traditional_chinese.txt | 4 ++-- src/lang/turkish.txt | 4 ++-- src/lang/ukrainian.txt | 4 ++-- src/lang/unfinished/frisian.txt | 4 ++-- src/lang/vietnamese.txt | 4 ++-- src/lang/welsh.txt | 4 ++-- src/station_gui.cpp | 2 +- 55 files changed, 109 insertions(+), 109 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 19140416bd..02c5e92135 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3113,8 +3113,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Aanvaar STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Wys lys van aanvaarde vrag STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Aanvaar: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Die stasie het eksklusiewe vervoer regte vir die dorp -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} het eksklusiewe vervoer regte in die dorp gekoop. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Die stasie het eksklusiewe vervoer regte vir die dorp +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} het eksklusiewe vervoer regte in die dorp gekoop. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Graderings STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Toon stasie graderings diff --git a/src/lang/basque.txt b/src/lang/basque.txt index d31feeeb9d..f761d45931 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3001,8 +3001,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Onartu STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Onartzen diren zamen zerrenda STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Onartzen da: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Geltoki honek herriko garraio eskubide esklusiboa dauka. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} garraioaren eskubide esklusiboak erosi ditu +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Geltoki honek herriko garraio eskubide esklusiboa dauka. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} garraioaren eskubide esklusiboak erosi ditu STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Zama balorazioak STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Geltokiaren zama balorazioak erakutsi diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 2db90c701a..fc469fe53e 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3445,8 +3445,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Прым STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Паказаць сьпіс прымаемых грузаў STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Прымае: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Гэта станцыя мае эксклюзыўныя транспартныя правы ў гэтым населеным пункце. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} набыў эксклюзыўныя транспартныя правы ў гэтым населеным пункце. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Гэта станцыя мае эксклюзыўныя транспартныя правы ў гэтым населеным пункце. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} набыў эксклюзыўныя транспартныя правы ў гэтым населеным пункце. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Рэйтынґ STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Паказаць рэйтынґ станцыі diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 87a8d1a7fc..f5ab33faf5 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3113,8 +3113,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Aceita STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Exibir lista de carga aceita STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Aceita: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Essa estação tem direitos de transporte exclusivos nessa cidade. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} adquiriu direitos exclusivos de transporte nessa cidade. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Essa estação tem direitos de transporte exclusivos nessa cidade. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} adquiriu direitos exclusivos de transporte nessa cidade. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Avaliações STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Exibir avaliações da estação diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index cebed13468..81ae04a8ac 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3035,8 +3035,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Прие STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Покажи списък с приетите товари STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Приема: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Тази станция има специални транспортни привилегии за града -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} закупи специални транспортни привилегии за града. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Тази станция има специални транспортни привилегии за града +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} закупи специални транспортни привилегии за града. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Рейтинги STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Покажи нивото на обслужване diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 2909a9c82d..3cbde7515f 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3117,8 +3117,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accepta STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostra la llista de càrregues admeses STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accepta: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Aquesta estació té els drets exclusius de transport en aquesta ciutat. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} ha comprat els drets exclusius de transport en aquesta ciutat. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Aquesta estació té els drets exclusius de transport en aquesta ciutat. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} ha comprat els drets exclusius de transport en aquesta ciutat. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Ratis STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Mostra els ratis de l'estació diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 32efffe157..13e90746c5 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3212,8 +3212,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Prihvać STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Pokaži popis tereta koji se prihvaća STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Prihvaća: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ova stanica ima ekskluzivna prava trasnporta u ovom gradu. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} kupljena ekskluzivna prava transporta u ovom gradu. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ova stanica ima ekskluzivna prava trasnporta u ovom gradu. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} kupljena ekskluzivna prava transporta u ovom gradu. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Ocjene STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Pokaži ocjene postaje diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 09c523bc38..c914cfdc4d 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3209,8 +3209,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Přijím STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Ukázat seznam přijímaného nákladu STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Přijímá: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Tato stanice má v tomto městě výhradní přepravní práva. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Společnost {YELLOW}{COMPANY}{BLACK} koupila v tomto městě výhradní přepravní práva. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Tato stanice má v tomto městě výhradní přepravní práva. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Společnost {YELLOW}{COMPANY}{BLACK} koupila v tomto městě výhradní přepravní práva. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Hodnocení STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Ukázat hodnocení společností diff --git a/src/lang/danish.txt b/src/lang/danish.txt index a6f2b072b7..18abcb7846 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3112,8 +3112,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accepter STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Vis liste over accepteret last STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accepterer: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK} Denne station har eksklusive transport rettigheder i denne by. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW} {COMPANY} {BLACK} købte eksklusive transport rettigheder i denne by. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK} Denne station har eksklusive transport rettigheder i denne by. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW} {COMPANY} {BLACK} købte eksklusive transport rettigheder i denne by. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Bedømmelse STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Vis stationens bedømmelse diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index c6d5cf6178..6ffcb8ac4d 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3114,8 +3114,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Acceptee STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Laat lijst van gevraagde goederen zien STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accepteert: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Dit station heeft exclusieve transportrechten in deze gemeente. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} kocht exclusieve transportrechten in deze gemeente +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Dit station heeft exclusieve transportrechten in deze gemeente. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} kocht exclusieve transportrechten in deze gemeente STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Rangen STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Bekijk stationsreputaties diff --git a/src/lang/english.txt b/src/lang/english.txt index 5d794483c8..0228f9c307 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3116,8 +3116,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accepts STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Show list of accepted cargo STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accepts: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}This station has exclusive transport rights in this town. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} bought exclusive transport rights in this town. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}This station has exclusive transport rights in this town. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} bought exclusive transport rights in this town. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Ratings STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Show station ratings diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 121fcb9803..a37f78d61c 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3079,8 +3079,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accepts STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Show list of accepted cargo STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accepts: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}This station has exclusive transport rights in this town. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} bought exclusive transport rights in this town. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}This station has exclusive transport rights in this town. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} bought exclusive transport rights in this town. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Ratings STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Show station ratings diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 4b039dc8ba..63314c4159 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3116,8 +3116,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accepts STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Show list of accepted cargo STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accepts: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}This station has exclusive transport rights in this town. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} bought exclusive transport rights in this town. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}This station has exclusive transport rights in this town. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} bought exclusive transport rights in this town. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Ratings STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Show station ratings diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 4de30054a1..a69b0da58a 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3170,8 +3170,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Võtab v STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Näita vastuvõetavate veoste nimistut STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Võtab vastu: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Antud jaamal on eksklusiivsed transpordiõigused selles linnas. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} ostis eksklusiivsed transpordiõigused antud linnas. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Antud jaamal on eksklusiivsed transpordiõigused selles linnas. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} ostis eksklusiivsed transpordiõigused antud linnas. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Hinnangud STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Näita jaamahinnangut diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index c683d46c01..3fcea7a53e 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2767,8 +2767,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Tekur í STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Vís lista yvir góðtiknan farm STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Tekur í móti: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Henda støðin hevur flutnings einkarættindi í hesari bygdini. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} keypti flutnings einkarættindi í hesi bygdini. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Henda støðin hevur flutnings einkarættindi í hesari bygdini. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} keypti flutnings einkarættindi í hesi bygdini. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Metingar STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Vís støð metingar diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 4bf726a354..98fd58031d 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3116,8 +3116,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Ottaa va STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Näytä luettelo vastaanotettavasta rahdista. STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Vastaanottaa: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Tällä asemalla on kuljetusyksinoikeus tässä kaupungissa. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} osti tämän kaupungin kuljetusyksinoikeuden. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Tällä asemalla on kuljetusyksinoikeus tässä kaupungissa. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} osti tämän kaupungin kuljetusyksinoikeuden. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Arviot STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Näytä aseman arviot. diff --git a/src/lang/french.txt b/src/lang/french.txt index 9866f5eecc..3b74d392b4 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3115,8 +3115,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accepte STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Afficher les marchandises acceptées STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accepte{NBSP}: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Cette station a les droits de transport exclusifs dans cette ville. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} a acheté les droits de transport exclusifs dans cette ville. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Cette station a les droits de transport exclusifs dans cette ville. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} a acheté les droits de transport exclusifs dans cette ville. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Qualité STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Afficher la qualité de service de la station diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 2263022c96..fa202dc6d4 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3357,8 +3357,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Na ghabh STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Seall liosta a' charago a thèid a ghabhail ris STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Gabhar ri: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Tha còirichean giùlain às-dùnach aig an stèisean seo sa bhaile seo. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{BLACK}Cheannaich {YELLOW}{COMPANY}{BLACK} còirichean giùlain às-dùnach sa bhaile seo. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Tha còirichean giùlain às-dùnach aig an stèisean seo sa bhaile seo. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{BLACK}Cheannaich {YELLOW}{COMPANY}{BLACK} còirichean giùlain às-dùnach sa bhaile seo. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Rangachaidhean STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Seall rangachaidhean nan stèiseanan diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 42cb7ee199..98119197b7 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3117,8 +3117,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Acepta STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostrar a lista da carga aceptada STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Acepta: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación ten dereitos de transporte exclusivos nesta cidade. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} comprou a exclusiva de dereitos de transporte nesta cidade. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación ten dereitos de transporte exclusivos nesta cidade. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} comprou a exclusiva de dereitos de transporte nesta cidade. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Puntuacións: STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Mostra-las puntuacións da estación diff --git a/src/lang/german.txt b/src/lang/german.txt index f0cc17660d..499eb6ee6b 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3117,8 +3117,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Angenomm STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Zeige Liste der angenommenen Frachtarten STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Nimmt an: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Diese Station hat in der zugehörigen Stadt exklusive Transportrechte . -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} hat die exklusiven Transportrechte in dieser Stadt erworben. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Diese Station hat in der zugehörigen Stadt exklusive Transportrechte . +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} hat die exklusiven Transportrechte in dieser Stadt erworben. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Bewertung STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Stationsbewertung anzeigen diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 35f7d570f5..28493787fe 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3222,8 +3222,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Δέχε STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Εμφάνιση λίστας αποδεκτών φορτίων STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Δέχεται: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Αυτός ο σταθμός έχει αποκλειστικά δικαιώματα μεταφοράς σε αυτήν την πόλη. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Η {YELLOW}{COMPANY}{BLACK} αγόρασε αποκλειστικά δικαιώματα για αυτήν την πόλη. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Αυτός ο σταθμός έχει αποκλειστικά δικαιώματα μεταφοράς σε αυτήν την πόλη. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Η {YELLOW}{COMPANY}{BLACK} αγόρασε αποκλειστικά δικαιώματα για αυτήν την πόλη. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Βαθμολογίες STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Εμφάνιση στατιστικών σταθμού diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index a61443f8aa..5fc7eb5f91 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3126,8 +3126,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}מקבל STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}הצג רשימת סוגי המטען שהתחנה מקבלת STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}מקבלת: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}לתחנה זו זכויות תעבורה בלעדיות בעיירה זו. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} רכשה זכויות תעבורה בלעדיות בעיירה זו. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}לתחנה זו זכויות תעבורה בלעדיות בעיירה זו. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} רכשה זכויות תעבורה בלעדיות בעיירה זו. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}דירוג STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}הצג את דירוג השירות diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index b93d68ef0e..a993dc305d 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3180,8 +3180,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Elfogad STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Az elfogadott áruk listájának mutatása STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Elfogad:{WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ez az állomás kizárólagos szállítási jogokkal rendelkezik ezen a településen. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} kizárólagos szállítási jogokat vásárolt a településen. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ez az állomás kizárólagos szállítási jogokkal rendelkezik ezen a településen. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} kizárólagos szállítási jogokat vásárolt a településen. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Vélemény STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Vélemény megmutatása az állomásról diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index e4cd730624..3202b99e62 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2925,8 +2925,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Tekur vi STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Sýna lista yfir móttækilegan varning STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Móttekur: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Þessi stöð er með sérleyfi til flutninga í þessum bæ. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} keypti sérleyfi til flutninga í þessum bæ. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Þessi stöð er með sérleyfi til flutninga í þessum bæ. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} keypti sérleyfi til flutninga í þessum bæ. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Einkunn STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Sýna einkunn stöðvar diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 4b7dcafd23..b9194ea0a7 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3108,8 +3108,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Menerima STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Tampilkan daftar kargo yang bisa diterima STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Menerima: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Stasiun memiliki hak transportasi eksklusif di kota ini -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} beli hak transportasi eksklusif di kota ini +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Stasiun memiliki hak transportasi eksklusif di kota ini +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} beli hak transportasi eksklusif di kota ini STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Peringkat STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Tampilkna peringkat dari stasiun diff --git a/src/lang/irish.txt b/src/lang/irish.txt index d8284fef1a..229580074d 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3112,8 +3112,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Glactar STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Taispeáin liosta den lastas a ghlactar leis STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Glactar le: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Tá cearta eisiacha iompair ag an stáisiún seo sa bhaile seo. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{BLACK}Cheannaigh {YELLOW}{COMPANY}{BLACK} cearta eisiacha iompair sa bhaile seo.. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Tá cearta eisiacha iompair ag an stáisiún seo sa bhaile seo. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{BLACK}Cheannaigh {YELLOW}{COMPANY}{BLACK} cearta eisiacha iompair sa bhaile seo.. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Rátálacha STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Taispeáin rátálacha na stáisiún diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 988a95758a..309f4e9f01 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3146,8 +3146,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accetta STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostra la lista dei carichi accettati STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accetta: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Questa stazione gode di diritti di trasporto esclusivi in questa città. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}La {COMPANY}{BLACK} ha acquistato diritti di trasporto esclusivi in questa città. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Questa stazione gode di diritti di trasporto esclusivi in questa città. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}La {COMPANY}{BLACK} ha acquistato diritti di trasporto esclusivi in questa città. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Valutazione STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Mostra la valutazione della stazione diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 6127155912..ed7584bfc1 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3113,8 +3113,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}受入 STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}受入れる貨物のリストを表示します STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}受入れ貨物: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}この停留施設は街の独占輸送契約の恩恵下にあります -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK}はこの街と独占輸送契約を締結しています +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}この停留施設は街の独占輸送契約の恩恵下にあります +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK}はこの街と独占輸送契約を締結しています STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}評価 STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}停留施設の評価を表示します diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 75df75a573..c03ce722b6 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3117,8 +3117,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}받음 STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}받는 화물의 목록 표시 STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}받음: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}이 역은 도시의 수송권을 독점하고 있는 역입니다. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} 이(가) 이 도시의 수송 독점권을 구매하였습니다. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}이 역은 도시의 수송권을 독점하고 있는 역입니다. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} 이(가) 이 도시의 수송 독점권을 구매하였습니다. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}등급 STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}역의 등급 표시 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 58f9e63b76..bd47867beb 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3318,8 +3318,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accipit STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Monstrare index onerum acceptorum STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Onera accepta: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Haec statio monopolio benefit. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} monopolium emit in hoc oppido. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Haec statio monopolio benefit. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} monopolium emit in hoc oppido. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Censiones STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Monstrare censiones stationum diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index ce4fd31d40..30f43b807a 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3046,8 +3046,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Pieņem STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Rādīt pieņemamo kravu sarakstu STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Pieņem: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Šai stacijai pieder izņēmuma pārvadājumu tiesības šajā pilsētā. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} ir nopirktas izņēmuma pārvadājumu tiesības šajā pilsētā. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Šai stacijai pieder izņēmuma pārvadājumu tiesības šajā pilsētā. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} ir nopirktas izņēmuma pārvadājumu tiesības šajā pilsētā. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Vērtējumi STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Rādīt stacijas vērtējumus diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 7b5b1dda6b..6d6d1428b8 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3331,8 +3331,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Priima STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Rodyti priimamų krovinių sąrašą STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Priima: {WHITE}{CARGO_LIST.ka} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Šiai stotelei priklauso išskirtinės šio miesto pervežimo teisės -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} įsigijo išskirtines pervežimo teises šiame mieste. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Šiai stotelei priklauso išskirtinės šio miesto pervežimo teisės +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} įsigijo išskirtines pervežimo teises šiame mieste. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Reitingai STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Rodyti stoties reitingus diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index d1d26f75d4..41150fc85a 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3116,8 +3116,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Akzepté STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Weis d'Lëscht vun den akzptéierten Wueren STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Akzeptéiert: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Des Statioun huet exklusiv Transportrechter an deser Stad -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} huet exklusiv Transportrechter an deser Stad kaf. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Des Statioun huet exklusiv Transportrechter an deser Stad +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} huet exklusiv Transportrechter an deser Stad kaf. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Bewäertungen STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Weis d'Statiounsbewäertungen diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index cc852eb300..535e83e6ce 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3120,8 +3120,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Godtar STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Vis liste over godtatte varer STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Godtar: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Denne stasjonen har eksklusive transportrettigheter i denne byen. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} kjøpte eksklusive transportrettigheter i denne byen. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Denne stasjonen har eksklusive transportrettigheter i denne byen. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} kjøpte eksklusive transportrettigheter i denne byen. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Vurderinger STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Vis stasjonsvurdering diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 50eb2d809c..516933dd7a 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3029,8 +3029,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Aksepter STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Syne liste over godtekne varer STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Godtek: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Eigaren av stasjonen har eksklusive transportrettar i den her byen. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} har kjøp eksklusive transportrettar i byen. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Eigaren av stasjonen har eksklusive transportrettar i den her byen. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} har kjøp eksklusive transportrettar i byen. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Vurderingar STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Syne stasjonsvurdering diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 5a134cf53b..2139d9d893 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3496,8 +3496,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Akceptuj STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Pokaż listę akceptowanych ładunków STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Akceptuje: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ta stacja posiada wyłączność na usługi transportowe w tym mieście. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Firma {YELLOW}{COMPANY}{BLACK} kupiła wyłączność na usługi transportowe w tym mieście. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ta stacja posiada wyłączność na usługi transportowe w tym mieście. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Firma {YELLOW}{COMPANY}{BLACK} kupiła wyłączność na usługi transportowe w tym mieście. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Oceny STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Pokaż ocenę stacji diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index e512d48fcc..8fc61c35ef 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3113,8 +3113,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Aceita STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostrar lista de carga aceite STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Aceita: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estação tem direitos de transporte exclusivos nesta cidade. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} comprou direitos exclusivos de transporte nesta cidade. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estação tem direitos de transporte exclusivos nesta cidade. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} comprou direitos exclusivos de transporte nesta cidade. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Avaliações STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Mostrar avaliações da estação diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 7975471457..69b3c11a18 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3071,8 +3071,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Acceptă STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Afişează lista de încărcături acceptate STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Acceptă: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Această staţie are drepturi exclusive de transport în acest oraş. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} a cumpărat drepturi exclusive de transport în acest oraş. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Această staţie are drepturi exclusive de transport în acest oraş. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} a cumpărat drepturi exclusive de transport în acest oraş. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Evaluări STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Afişează evaluările staţiei diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 1285bc4cc7..bdc0a8dd7f 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3296,8 +3296,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Прин STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Показать список принимаемых грузов STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Принимается: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Компания-владелец этой станции обладает эксклюзивными правами перевозки пассажиров и грузов в этом городе. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} приобрела эксклюзивные права на перевозку пассажиров и грузов в этом городе. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Компания-владелец этой станции обладает эксклюзивными правами перевозки пассажиров и грузов в этом городе. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} приобрела эксклюзивные права на перевозку пассажиров и грузов в этом городе. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Рейтинг STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Показать рейтинг станции diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index e20bfe3f35..5a81456990 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3307,8 +3307,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Prihvata STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Prikaži spisak tovara koje stanica prihvata STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Prihvata: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ova stanica ima ekskluzivna transportna prava u ovom gradu. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} je kupio ekskluzivna prava prevoza u ovom gradu. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ova stanica ima ekskluzivna transportna prava u ovom gradu. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} je kupio ekskluzivna prava prevoza u ovom gradu. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Ocene STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Prikaži ocene stanice diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 1f7b219deb..b00dfef89e 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3113,8 +3113,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}接受 STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}显示接受的货物列表 STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}接受:{WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}这个车站在这个镇里享有独家经营权 -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} 购买了本城镇专属经营权 +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}这个车站在这个镇里享有独家经营权 +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} 购买了本城镇专属经营权 STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}评价 STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}显示车站评价 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 69731252c7..eaf1b59285 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3180,8 +3180,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Prijíma STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Zobraziť zoznam prijímaného nákladu STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Prijíma: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Táto stanica má exkluzívne prepravné práva v tomto meste. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Spoločnosť {YELLOW}{COMPANY}{BLACK} si kúpila exkluzívne prepravné práva v tomto meste +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Táto stanica má exkluzívne prepravné práva v tomto meste. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Spoločnosť {YELLOW}{COMPANY}{BLACK} si kúpila exkluzívne prepravné práva v tomto meste STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Hodnotenie STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Zobraziť hodnotenia stanice diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 6d6abd5e07..5f1598beb6 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3265,8 +3265,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Sprejema STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Prikaži seznam sprejetega tovora STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Sprejema: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ta postaja ima ekskluzivne pravice v tem mestu. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} je odkupilo ekskluzivne prevozne pravice v tem mestu. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ta postaja ima ekskluzivne pravice v tem mestu. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} je odkupilo ekskluzivne prevozne pravice v tem mestu. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Ocene STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Prikaz ocen postaje diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 552239dcda..5e27b22c4d 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3117,8 +3117,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Acepta STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostrar lista de carga aceptada STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Acepta: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación tiene derechos de transporte exclusivos en este municipio. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} compró derechos de transporte exclusivo en este municipio. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación tiene derechos de transporte exclusivos en este municipio. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} compró derechos de transporte exclusivo en este municipio. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Calificación STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Ver calificación de la estación diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 28f0757163..828ca842a7 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3117,8 +3117,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Recibe STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostrar lista de cargamento recibido STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Recibe: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación tiene los derechos exclusivos de transporte en este pueblo. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} compró los derechos exclusivos de transporte en este pueblo. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación tiene los derechos exclusivos de transporte en este pueblo. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} compró los derechos exclusivos de transporte en este pueblo. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Evaluación STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Ver evaluación de la estación diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index a204cf1287..e884079d44 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3116,8 +3116,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Accepter STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Visa lista över accepterat gods STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Accepterar: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Den här stationen har exklusiva transporträttigheter i den här staden. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} har köpt exklusiva transporträttigheter i den här staden. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Den här stationen har exklusiva transporträttigheter i den här staden. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} har köpt exklusiva transporträttigheter i den här staden. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Värderingar STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Visa stationens klassificering diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 6bb76a36da..c0df044d1f 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2747,8 +2747,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}ஏற STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}ஏற்றுக்கொள்ளப்படும் சரக்குகளின் பட்டியலினைக் காட்டு STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}ஏற்றுக்கொள்பவை: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}இந்த நிலையம் இந்த நகரின் முழு போக்குவரத்து உரிமைகளையும் பெற்றுள்ளது. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} இந்த நகரின் மொத்த போக்குவரத்து உரிமைகளையும் வாங்கியது. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}இந்த நிலையம் இந்த நகரின் முழு போக்குவரத்து உரிமைகளையும் பெற்றுள்ளது. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} இந்த நகரின் மொத்த போக்குவரத்து உரிமைகளையும் வாங்கியது. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}தரங்கள் STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}நிலைய தரத்தினைக் காட்டவும் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 091e5d496a..1d2ff09156 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3044,8 +3044,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}ปิ STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}ปิดหน้าต่างความนิยมลงและแสดงเฉพาะรายการสินค้าที่สถานีรองรับและรอการขนส่ง STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}กำลังต้องการ: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}สถานนีนี้มีสัมปทานขนส่งจากเมืองนี้ -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} ซื้อสัมปทานขนส่งที่เมืองนี้ +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}สถานนีนี้มีสัมปทานขนส่งจากเมืองนี้ +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} ซื้อสัมปทานขนส่งที่เมืองนี้ STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}ความพึงพอใจ STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}แสดงความพึงพอใจของสถานี diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index e0da7acb0b..7346889e4a 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3112,8 +3112,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}接受 STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}顯示接受的貨物種類 STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}接受:{WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}此車站享有所屬市鎮的專屬運輸權 -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK}已購買此市鎮的專屬運輸權 +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}此車站享有所屬市鎮的專屬運輸權 +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK}已購買此市鎮的專屬運輸權 STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}評價 STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}顯示車站評價 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index e1d24fa0f0..f34035c22c 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3117,8 +3117,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}İstenen STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}İstenen kargoların listesini göster STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}İstenen: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Bu istasyon şehrin ulaşım haklarına sahip. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} bu şehirdeki ulaşım haklarını satın aldı. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Bu istasyon şehrin ulaşım haklarına sahip. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} bu şehirdeki ulaşım haklarını satın aldı. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Değerlendirmeler STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}İstasyon değerlendirmelerini göster diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 80d6cf8ad5..1b3e3a42bb 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3243,8 +3243,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Прий STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Показати список приймання вантажів STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Приймає: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ця станція має ексклюзивні права на перевезення. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} отримала ексклюзивні права на перевезення. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Ця станція має ексклюзивні права на перевезення. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} отримала ексклюзивні права на перевезення. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Рейтинг STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Показати рейтинг станції diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index c84f894877..2b0b989323 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2877,8 +2877,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK} STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Akseptearre fracht sjen litte STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Aksepteart: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Dit stasjon hat eksklusyfe transportrjochten in dizze plak. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} Hat eksklusyfe transportrjochten in dizze plak kocht. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Dit stasjon hat eksklusyfe transportrjochten in dizze plak. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} Hat eksklusyfe transportrjochten in dizze plak kocht. STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Stasjonwurdearing sjen litte STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Moanlikse foarried en wurdearring: diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 03f7ce918f..bb43f2ef36 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3114,8 +3114,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Chấp n STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Liệt kê hàng hoá được chấp nhận STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Chấp nhận: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Trạm này độc quyền vận tải tại thị trấn này. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} đã mua quyền vận tải độc quyền ở đô thị này. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Trạm này độc quyền vận tải tại thị trấn này. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} đã mua quyền vận tải độc quyền ở đô thị này. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Uy tín STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Hiện uy tín ga, bến, cảng diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index e44e63893b..4519d0e919 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3113,8 +3113,8 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Derbyn STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Dangos rhestr o'r llwythi sy'n cael eu derbyn STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Derbyn: {WHITE}{CARGO_LIST} -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Mae gan yr orsaf hon hawliau cludo cyfyngol yn y dref hon. -STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Mae {YELLOW}{COMPANY}{BLACK} wedi prynnu hawliau cludo cyfyngol yn y dref hon. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Mae gan yr orsaf hon hawliau cludo cyfyngol yn y dref hon. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :Mae {YELLOW}{COMPANY}{BLACK} wedi prynnu hawliau cludo cyfyngol yn y dref hon. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Perfformiad STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Dangos graddfeydd gorsaf diff --git a/src/station_gui.cpp b/src/station_gui.cpp index 7399fe0067..aa20170180 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -1820,7 +1820,7 @@ struct StationViewWindow : public Window { if (st->town->exclusive_counter > 0) { SetDParam(0, st->town->exclusivity); - y = DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, r.bottom, st->town->exclusivity == st->owner ? STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF : STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY); + y = DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, r.bottom, st->town->exclusivity == st->owner ? STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF : STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY); y += WD_PAR_VSEP_WIDE; } From 7efce319ff56144f89157c107489487cdc8e414b Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 20 Aug 2017 08:28:05 +0000 Subject: [PATCH 384/417] (svn r27895) -Fix [FS#6606]: Tooltip of 'increase service interval' said 'decrease' (adf88) --- src/vehicle_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index b50457d211..8ebd73a8af 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1830,7 +1830,7 @@ static const NWidgetPart _nested_train_vehicle_details_widgets[] = { NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_VD_DECREASE_SERVICING_INTERVAL), SetFill(0, 1), SetDataTip(AWV_DECREASE, STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_VD_INCREASE_SERVICING_INTERVAL), SetFill(0, 1), - SetDataTip(AWV_INCREASE, STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP), + SetDataTip(AWV_INCREASE, STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_VD_SERVICE_INTERVAL_DROPDOWN), SetFill(0, 1), SetDataTip(STR_EMPTY, STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP), NWidget(WWT_PANEL, COLOUR_GREY, WID_VD_SERVICING_INTERVAL), SetFill(1, 1), SetResize(1, 0), EndContainer(), From a3d15858263a78a828a3aa0664b033d9949d01aa Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sun, 20 Aug 2017 01:39:49 +0100 Subject: [PATCH 385/417] Add settings callback field to re-order setting options in GUI --- src/settings_gui.cpp | 4 +++- src/settings_internal.h | 2 ++ src/table/company_settings.ini | 3 ++- src/table/currency_settings.ini | 3 ++- src/table/gameopt_settings.ini | 5 +++-- src/table/misc_settings.ini | 3 ++- src/table/settings.h.preamble | 36 +++++++++++++++++++-------------- src/table/settings.ini | 11 +++++++--- src/table/win32_settings.ini | 2 +- src/table/window_settings.ini | 3 ++- 10 files changed, 46 insertions(+), 26 deletions(-) diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 0420ba15b3..b0dabeb41d 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -2092,7 +2092,9 @@ struct GameSettingsWindow : Window { DropDownList *list = new DropDownList(); for (int i = sdb->min; i <= (int)sdb->max; i++) { - *list->Append() = new DropDownListStringItem(sdb->str_val + i - sdb->min, i, false); + int val = sd->orderproc ? sd->orderproc(i - sdb->min) : i; + assert_msg(val >= sdb->min && val <= (int)sdb->max, "min: %d, max: %d, val: %d", sdb->min, sdb->max, val); + *list->Append() = new DropDownListStringItem(sdb->str_val + val - sdb->min, val, false); } ShowDropDownListAt(this, list, value, -1, wi_rect, COLOUR_ORANGE, true); diff --git a/src/settings_internal.h b/src/settings_internal.h index 2f0021392f..4838bef805 100644 --- a/src/settings_internal.h +++ b/src/settings_internal.h @@ -89,6 +89,7 @@ enum SettingType { typedef bool OnChange(int32 var); ///< callback prototype on data modification typedef size_t OnConvert(const char *value); ///< callback prototype for conversion error +typedef int OnGuiOrder(uint nth); ///< callback prototype for GUI ordering /** Properties of config file settings. */ struct SettingDescBase { @@ -113,6 +114,7 @@ struct SettingDesc { SaveLoad save; ///< Internal structure (going to savegame, parts to config) const char *patx_name; ///< Name to save/load setting from in PATX chunk, if NULL save/load from PATS chunk as normal const char *xref; ///< Name of SettingDesc to use instead of the contents of this one, useful for loading legacy savegames, if NULL save/load as normal + OnGuiOrder *orderproc; ///< Callback procedure for GUI re-ordering bool IsEditable(bool do_command = false) const; SettingType GetType() const; diff --git a/src/table/company_settings.ini b/src/table/company_settings.ini index ba3148e568..92d8b30ae8 100644 --- a/src/table/company_settings.ini +++ b/src/table/company_settings.ini @@ -19,7 +19,7 @@ static const SettingDesc _company_settings[] = { }; [templates] SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname, $orderproc), SDT_NULL = SDT_NULL($length, $from, $to, $extver), SDT_END = SDT_END() @@ -37,6 +37,7 @@ to = SL_MAX_VERSION cat = SC_ADVANCED extver = SlXvFeatureTest() patxname = NULL +orderproc = NULL diff --git a/src/table/currency_settings.ini b/src/table/currency_settings.ini index 6a8665379a..94e568f7b2 100644 --- a/src/table/currency_settings.ini +++ b/src/table/currency_settings.ini @@ -11,7 +11,7 @@ static const SettingDesc _currency_settings[] = { [post-amble] }; [templates] -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL, $orderproc), SDT_CHR = SDT_CHR($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), SDT_END = SDT_END() @@ -29,6 +29,7 @@ from = 0 to = SL_MAX_VERSION cat = SC_ADVANCED extver = SlXvFeatureTest() +orderproc = NULL diff --git a/src/table/gameopt_settings.ini b/src/table/gameopt_settings.ini index a5bc766ecb..798a6c9083 100644 --- a/src/table/gameopt_settings.ini +++ b/src/table/gameopt_settings.ini @@ -42,12 +42,12 @@ static const SettingDesc _gameopt_settings[] = { }; [templates] SDTG_GENERAL = SDTG_GENERAL($name, $sdt_cmd, $sle_cmd, $type, $flags, $guiflags, $var, $length, $def, $min, $max, $interval, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL, $orderproc), SDT_NULL = SDT_NULL($length, $from, $to, $extver), SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $load, $cat, $extver, NULL), -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL, $orderproc), SDT_END = SDT_END() [defaults] @@ -63,6 +63,7 @@ from = 0 to = SL_MAX_VERSION cat = SC_ADVANCED extver = SlXvFeatureTest() +orderproc = NULL diff --git a/src/table/misc_settings.ini b/src/table/misc_settings.ini index 06bae18013..401d952bab 100644 --- a/src/table/misc_settings.ini +++ b/src/table/misc_settings.ini @@ -20,7 +20,7 @@ SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), SDTG_STR = SDTG_STR($name, $type, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL, $orderproc), SDTG_END = SDTG_END() [defaults] @@ -36,6 +36,7 @@ from = 0 to = SL_MAX_VERSION cat = SC_ADVANCED extver = SlXvFeatureTest() +orderproc = NULL diff --git a/src/table/settings.h.preamble b/src/table/settings.h.preamble index 9e78a500ff..8e53410de6 100644 --- a/src/table/settings.h.preamble +++ b/src/table/settings.h.preamble @@ -61,11 +61,14 @@ static size_t ConvertLandscape(const char *value); /* Macros for various objects to go in the configuration file. * This section is for global variables */ -#define SDTG_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ - {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, NULL, cat), SLEG_GENERAL_X(sle_cmd, var, type | flags, length, from, to, extver), patxname, NULL} +#define SDTG_GENERAL2(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, strhelp, strval, proc, from, to, cat, extver, patxname, orderproc)\ + {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, NULL, cat), SLEG_GENERAL_X(sle_cmd, var, type | flags, length, from, to, extver), patxname, NULL, orderproc} -#define SDTG_VAR(name, type, flags, guiflags, var, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ - SDTG_GENERAL(name, SDT_NUMX, SL_VAR, type, flags, guiflags, var, 0, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to, cat, extver, patxname) +#define SDTG_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ + SDTG_GENERAL2(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, strhelp, strval, proc, from, to, cat, extver, patxname, NULL) + +#define SDTG_VAR(name, type, flags, guiflags, var, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname, orderproc)\ + SDTG_GENERAL2(name, SDT_NUMX, SL_VAR, type, flags, guiflags, var, 0, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to, cat, extver, patxname, orderproc) #define SDTG_BOOL(name, flags, guiflags, var, def, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ SDTG_GENERAL(name, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, var, 0, def, 0, 1, 0, NULL, str, strhelp, strval, proc, from, to, cat, extver, patxname) @@ -83,17 +86,20 @@ static size_t ConvertLandscape(const char *value); SDTG_GENERAL(name, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, 0, 0, full, str, strhelp, strval, proc, from, to, cat, extver, patxname) #define SDTG_NULL(length, from, to, extver)\ - {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_NULL_X(length, from, to, extver), NULL, NULL} + {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_NULL_X(length, from, to, extver), NULL, NULL, NULL} -#define SDTG_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_END(), NULL, NULL} +#define SDTG_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_END(), NULL, NULL, NULL} /* Macros for various objects to go in the configuration file. * This section is for structures where their various members are saved */ -#define SDT_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, strhelp, strval, proc, load, from, to, cat, extver, patxname)\ - {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, load, cat), SLE_GENERAL_X(sle_cmd, base, var, type | flags, length, from, to, extver), patxname, NULL} +#define SDT_GENERAL2(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, strhelp, strval, proc, load, from, to, cat, extver, patxname, orderproc)\ + {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, load, cat), SLE_GENERAL_X(sle_cmd, base, var, type | flags, length, from, to, extver), patxname, NULL, orderproc} -#define SDT_VAR(base, var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ - SDT_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, base, var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, NULL, from, to, cat, extver, patxname) +#define SDT_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, strhelp, strval, proc, load, from, to, cat, extver, patxname)\ + SDT_GENERAL2(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, strhelp, strval, proc, load, from, to, cat, extver, patxname, NULL) + +#define SDT_VAR(base, var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname, orderproc)\ + SDT_GENERAL2(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, base, var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, NULL, from, to, cat, extver, patxname, orderproc) #define SDT_BOOL(base, var, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ SDT_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, base, var, 1, def, 0, 1, 0, NULL, str, strhelp, strval, proc, NULL, from, to, cat, extver, patxname) @@ -114,11 +120,11 @@ static size_t ConvertLandscape(const char *value); SDT_GENERAL(#var, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, 0, 0, full, str, strhelp, strval, proc, NULL, from, to, cat, extver, patxname) #define SDT_NULL(length, from, to, extver)\ - {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_CONDNULL_X(length, from, to, extver), NULL, NULL} + {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_CONDNULL_X(length, from, to, extver), NULL, NULL, NULL} -#define SDTC_VAR(var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ - SDTG_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to, cat, extver, patxname) +#define SDTC_VAR(var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to, cat, extver, patxname, orderproc)\ + SDTG_GENERAL2(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to, cat, extver, patxname, orderproc) #define SDTC_BOOL(var, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat, extver, patxname)\ SDTG_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, _settings_client.var, 1, def, 0, 1, 0, NULL, str, strhelp, strval, proc, from, to, cat, extver, patxname) @@ -133,7 +139,7 @@ static size_t ConvertLandscape(const char *value); SDTG_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, 0, max, 0, full, str, strhelp, strval, proc, from, to, cat, extver, patxname) #define SDT_XREF(from, to, extver, xref)\ - {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_CONDNULL_X(0, from, to, extver), NULL, xref} + {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_CONDNULL_X(0, from, to, extver), NULL, xref, NULL} -#define SDT_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_END(), NULL, NULL} +#define SDT_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_END(), NULL, NULL, NULL} diff --git a/src/table/settings.ini b/src/table/settings.ini index e223ff1a7c..459ae21888 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -51,6 +51,10 @@ static bool UpdateClientConfigValues(int32 p1); #endif /* ENABLE_NETWORK */ /* End - Callback Functions for the various settings */ +/* Begin - GUI order callbacks */ + +/* End - GUI order callbacks */ + /* Some settings do not need to be synchronised when playing in multiplayer. * These include for example the GUI settings and will not be saved with the * savegame. @@ -65,17 +69,17 @@ const SettingDesc _settings[] = { }; [templates] SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname, $orderproc), SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), SDTC_BOOL = SDTC_BOOL( $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), SDTC_LIST = SDTC_LIST( $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), SDTC_STR = SDTC_STR( $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), -SDTC_VAR = SDTC_VAR( $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), +SDTC_VAR = SDTC_VAR( $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname, $orderproc), SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $load, $cat, $extver, $patxname), SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname, $orderproc), SDT_NULL = SDT_NULL($length, $from, $to, $extver), SDT_XREF = SDT_XREF( $from, $to, $extver, $xref), SDT_END = SDT_END() @@ -95,6 +99,7 @@ cat = SC_ADVANCED extver = SlXvFeatureTest() patxname = NULL xref = +orderproc = NULL diff --git a/src/table/win32_settings.ini b/src/table/win32_settings.ini index a22e1a54e7..9c576c6b8e 100644 --- a/src/table/win32_settings.ini +++ b/src/table/win32_settings.ini @@ -18,7 +18,7 @@ static const SettingDescGlobVarList _win32_settings[] = { #endif /* WIN32 */ [templates] SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL, $orderproc), SDTG_END = SDTG_END() [defaults] diff --git a/src/table/window_settings.ini b/src/table/window_settings.ini index a7b1742040..f2e8f0111e 100644 --- a/src/table/window_settings.ini +++ b/src/table/window_settings.ini @@ -13,7 +13,7 @@ static const SettingDesc _window_settings[] = { }; [templates] SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL, $orderproc), SDT_END = SDT_END() [defaults] @@ -30,6 +30,7 @@ from = 0 to = SL_MAX_VERSION cat = SC_ADVANCED extver = SlXvFeatureTest() +orderproc = NULL From 3bedb43de43301e41350c53f3d084ed57092d5bd Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 20 Aug 2017 21:04:21 +0000 Subject: [PATCH 386/417] (svn r27896) -Fix: some warnings --- src/3rdparty/squirrel/squirrel/sqvm.cpp | 2 +- src/fios.cpp | 2 +- src/pathfinder/npf/npf.cpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/3rdparty/squirrel/squirrel/sqvm.cpp b/src/3rdparty/squirrel/squirrel/sqvm.cpp index a738244bae..c66c4aca59 100644 --- a/src/3rdparty/squirrel/squirrel/sqvm.cpp +++ b/src/3rdparty/squirrel/squirrel/sqvm.cpp @@ -1102,7 +1102,7 @@ exception_trap: _lasterror = currerror; return false; } - assert(0); + NOT_REACHED(); } bool SQVM::CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr &constructor) diff --git a/src/fios.cpp b/src/fios.cpp index 0d30e0965b..5e78fb1b4d 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -77,7 +77,7 @@ void FileList::BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperati { this->Clear(); - assert(fop == SLO_LOAD || SLO_SAVE); + assert(fop == SLO_LOAD || fop == SLO_SAVE); switch (abstract_filetype) { case FT_NONE: break; diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index ebaf2ac574..1867b4b18d 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -1236,6 +1236,7 @@ bool NPFTrainFindNearestSafeTile(const Train *v, TileIndex tile, Trackdir trackd /* We set this in case the target is also the start tile, we will just * return a not found then */ start1.user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; + start1.user_data[NPF_NODE_FLAGS] = 0; start1.direction = trackdir; NPFSetFlag(&start1, NPF_FLAG_IGNORE_RESERVED, true); From 30a25f45cec4eed710e7dc3f674fe28963e6db23 Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 24 Aug 2017 14:50:55 +0000 Subject: [PATCH 387/417] (svn r27897) -Add [FS#6577]: Project file generator for kdevelop 4/5 (adf88) --- .gitignore | 3 + .hgignore | 3 + projects/gen-kdev4.sh | 203 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 209 insertions(+) create mode 100755 projects/gen-kdev4.sh diff --git a/.gitignore b/.gitignore index 5aa8cb7849..4bf58b05c1 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,9 @@ bundles/* docs/aidocs/* docs/gamedocs/* docs/source/* +.kdev4 +.kdev4/* +*.kdev4 media/openttd.desktop media/openttd.desktop.install objs/* diff --git a/.hgignore b/.hgignore index debab32b0e..17b2557f80 100644 --- a/.hgignore +++ b/.hgignore @@ -13,6 +13,9 @@ config.pwd docs/aidocs/* docs/gamedocs/* docs/source/* +.kdev4 +.kdev4/* +*.kdev4 Makefile Makefile.am Makefile.bundle diff --git a/projects/gen-kdev4.sh b/projects/gen-kdev4.sh new file mode 100755 index 0000000000..4ea5dbc2a8 --- /dev/null +++ b/projects/gen-kdev4.sh @@ -0,0 +1,203 @@ +#!/bin/sh + +# $Id$ + +# This file is part of OpenTTD. +# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + +# echo without interpretation of backslash escapes and without +# adding newline at the end - just the string as it is +rawprint() +{ + printf '%s' "$@" +} + +encode_dword() +{ + printf '\x%02x' \ + `expr $1 / 16777216 % 256` \ + `expr $1 / 65536 % 256` \ + `expr $1 / 256 % 256` \ + `expr $1 % 256` +} + +encode_string() +{ + # turn string into UTF-16 and hexdump it + hex_utf16=`rawprint "$1" | iconv -t UTF-16BE | od -t x1 -A n | tr -d -c '[:xdigit:]'`; + + encode_dword `rawprint "$hex_utf16" | wc -m | xargs -I {} expr {} / 2` # length = num hex digits / 2 + rawprint "$hex_utf16" | sed 's/../\\x&/g' # put '\x' prefix before every pair of digits +} + +encode_single_define() +{ + encode_string `rawprint "$1" | grep -o '^[^=]*'` # everything before '=' + rawprint '\x00\x00\x00\n\x00' + encode_string `rawprint "$1" | sed 's/^[^=]*=\?//'` # everything after '=' +} + +# $1 - newline-separated list of defines +encode_defines() +{ + # add some fixed defines and discard empty lines from the tail + defines=`printf 'va_list\nva_args\n%s' "$1"` + + # count lines (no newline at the end so add one) + encode_dword `printf '%s\n' "$defines" | wc -l` + + while [ -n "$defines" ]; do + encode_single_define `rawprint "$defines" | head -n 1` + defines=`rawprint "$defines" | tail -n +2` + done +} + +encode_includes() +{ + encode_dword 3 # number of custom includes + encode_string "$1/src/stdafx.h" + encode_string "$1/objs/lang" + encode_string "$1/objs/setting" +} + +# escape with a backslash (\) characters special to the sed replace string: \ & +# also escape our custom filed separator that we will be using in sed: @ +escape_sed_special() +{ + sed -e 's/[\&@]/\\&/g' +} + + + +PROJECT_DIR=`pwd` +DIR_NAME=`pwd | xargs -0 basename` + +USAGE_TEXT='Usage: + + projects/gen-kdev4 [PROJECT_NAME|-h|--help] + +PROJECT_NAME is the name of the project that will be displayed in KDevelop. +Before executing, cd into OpenTTD folder and run ./configure script. + +-h, --help + print help and exit' + +case "$# $1" in + '1 -h' | '1 --help') printf 'Generate OpenTTD project files for KDevelop 4+\n\n%s\n' "$USAGE_TEXT"; exit 0;; + 1*) PROJECT_NAME="$1";; + 0*) PROJECT_NAME="$DIR_NAME";; + *) printf 'Wrong arguments given. %s\n' "$USAGE_TEXT" >&2; exit 1;; +esac + +CFLAGS=`grep '^using CFLAGS\.\.\.' config.log 2>/dev/null` +if [ -z "$CFLAGS" ]; then + echo "OpenTTD config.log not found" >&2 + echo "cd into OpenTTD first and run 'configure'" >&2 + exit 1 +fi +DEFINES=`eval "printf '%s\n' $CFLAGS" | grep '^\-D' | cut -c3-` + +PROJECT_NAME_SED=s@!!PROJECT_NAME!!@`rawprint "$PROJECT_NAME" | escape_sed_special`@g +PROJECT_DIR_SED=s@!!PROJECT_DIR!!@`rawprint "$PROJECT_DIR" | escape_sed_special`@g +CUSTOM_DEFINES_SED=s@!!CUSTOM_DEFINES!!@`encode_defines "$DEFINES" | escape_sed_special`@g +CUSTOM_INCLUDES_SED=s@!!CUSTOM_INCLUDES!!@`encode_includes "$PROJECT_DIR" | escape_sed_special`@g + +mkdir -p .kdev4 + +sed -e "$PROJECT_NAME_SED" \ + >"$PROJECT_DIR/$DIR_NAME.kdev4" \ + << "EOF" +[Project] +Manager=KDevCustomMakeManager +Name=!!PROJECT_NAME!! +EOF + +sed -e "$PROJECT_DIR_SED" -e "$CUSTOM_DEFINES_SED" -e "$CUSTOM_INCLUDES_SED" \ + >"$PROJECT_DIR/.kdev4/$DIR_NAME.kdev4" \ + << "EOF" +[CustomDefinesAndIncludes][ProjectPath0] +Defines=!!CUSTOM_DEFINES!! +Includes=!!CUSTOM_INCLUDES!! +Path=. + +[Defines And Includes][Compiler] +Name=GCC +Path=gcc +Type=GCC + +[Filters] +size=10 + +[Filters][0] +inclusive=0 +pattern=.* +targets=3 + +[Filters][1] +inclusive=0 +pattern=.svn +targets=2 + +[Filters][2] +inclusive=0 +pattern=.hg +targets=2 + +[Filters][3] +inclusive=0 +pattern=.git +targets=2 + +[Filters][4] +inclusive=0 +pattern=*.rej +targets=1 + +[Filters][5] +inclusive=0 +pattern=*.orig +targets=1 + +[Filters][6] +inclusive=0 +pattern=*~ +targets=1 + +[Filters][7] +inclusive=0 +pattern=.*.kate-swp +targets=1 + +[Filters][8] +inclusive=0 +pattern=.*.swp +targets=1 + +[Filters][9] +inclusive=0 +pattern=/objs +targets=2 + +[Launch] +Launch Configurations=Launch Configuration 0 + +[Launch][Launch Configuration 0] +Configured Launch Modes=execute +Configured Launchers=nativeAppLauncher +Name=Launch OpenTTD\s +Type=Native Application + +[Launch][Launch Configuration 0][Data] +Arguments=-d 1 +Dependencies=@Variant(\x00\x00\x00\t\x00\x00\x00\x00\x00) +Dependency Action=Nothing +EnvironmentGroup= +Executable=file://!!PROJECT_DIR!!/bin/openttd +External Terminal=konsole --noclose --workdir %workdir -e %exe +Project Target= +Use External Terminal=false +Working Directory=file://!!PROJECT_DIR!!/bin +isExecutable=true +EOF From 16fc68dff05920ac10fbfb38978ddab62fa2f56d Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 24 Aug 2017 17:45:40 +0000 Subject: [PATCH 388/417] (svn r27898) -Update from Eints: dutch: 18 changes by habell --- src/lang/dutch.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 6ffcb8ac4d..6b3a35682a 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Uit STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scrollen met linkermuisknop: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Schakel scrollen met de linkermuis knop in door te slepen. Dit is vooral handig bij het gebruik van een touch-screen voor scrollen +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Sluit window met rechts-klik: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Sluit een venster door met de rechtermuisknop erin te klikken. Schakelt de tooltip uit met de rechtermuisknop! STR_CONFIG_SETTING_AUTOSAVE :Automatisch opslaan: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Kies interval tussen automatische spelopslag @@ -3294,6 +3296,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vereist: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereist: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vereist +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}wachtend +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING} @@ -3362,6 +3369,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Verwijder alle STR_GROUP_RENAME_CAPTION :{BLACK}Hernoem een groep +STR_GROUP_PROFIT_THIS_YEAR :Winst dit jaar: +STR_GROUP_PROFIT_LAST_YEAR :Winst vorig jaar: +STR_GROUP_OCCUPANCY :Huidig gebruik: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nieuwe railvoertuigen @@ -3394,6 +3405,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Alle vrachttype STR_PURCHASE_INFO_ALL_BUT :Alles behalve {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. trekkracht: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Bereik: {GOLD}{COMMA} tegels +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Vliegtuig type: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Railvoertuigkeuzelijst. Klik op een railvoertuig voor informatie. Ctrl+klik voor wijzigen verbergen voertuig type STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Wegvoertuigkeuzelijst. Klik op een wegvoertuig voor informatie. Ctrl+klik voor wijzigen verbergen voertuig type @@ -3528,6 +3540,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :zweeflocomotief STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Brandstofprijs: {CURRENCY_LONG}/jr{}Capaciteit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER} Max. T.E.: {6:FORCE}{}Bedrijfskosten: {4:CURRENCY_LONG}/yr{}Capaciteit: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Prijs: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Vliegtuig type: {STRING}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Prijs: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Vliegtuig type: {STRING}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Prijs: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Vliegtuig type: {STRING} Bereik: {COMMA} tiles{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Prijs: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Vliegtuig type: {STRING} Bereik: {COMMA} tiles{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} @@ -3650,6 +3666,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ja{P ar STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ja{P ar ren} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Vliegtuig type: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Vliegtuig type: {LTBLUE}{STRING} {BLACK}Bereik: {LTBLUE}{COMMA} tegels STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kracht: {LTBLUE}{POWER}{BLACK} Max. snelheid: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kracht: {LTBLUE}{POWER}{BLACK} Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Max. T.K.: {LTBLUE}{FORCE} From d279bccffa55d1587a0d4a6b496519c8670735dd Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 26 Aug 2017 12:12:59 +0000 Subject: [PATCH 389/417] (svn r27899) -Feature: Draw vertical separators at tile distance in the train depot GUI. This only applies if all vehicles use consistent lengths, i.e. either if only using default vehicles, or if only using NewGRF vehicles with 32px reference width. (based on patch by Wolf01) --- src/depot_gui.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index a99f2e4dd6..15291f6b63 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -147,6 +147,7 @@ static void TrainDepotMoveVehicle(const Vehicle *wagon, VehicleID sel, const Veh static VehicleCellSize _base_block_sizes_depot[VEH_COMPANY_END]; ///< Cell size for vehicle images in the depot view. static VehicleCellSize _base_block_sizes_purchase[VEH_COMPANY_END]; ///< Cell size for vehicle images in the purchase list. +static uint _consistent_train_width; ///< Whether trains of all lengths are consistently scaled. Either TRAININFO_DEFAULT_VEHICLE_WIDTH, VEHICLEINFO_FULL_VEHICLE_WIDTH, or 0. /** * Get the GUI cell size for a vehicle image. @@ -219,6 +220,34 @@ void InitDepotWindowBlockSizes() InitBlocksizeForVehicles(vt, EIT_IN_DEPOT); InitBlocksizeForVehicles(vt, EIT_PURCHASE); } + + _consistent_train_width = TRAININFO_DEFAULT_VEHICLE_WIDTH; + bool first = true; + const Engine *e; + FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) { + if (!e->IsEnabled()) continue; + + uint w = TRAININFO_DEFAULT_VEHICLE_WIDTH; + if (e->GetGRF() != NULL && is_custom_sprite(e->u.rail.image_index)) { + w = e->GetGRF()->traininfo_vehicle_width; + if (w != VEHICLEINFO_FULL_VEHICLE_WIDTH) { + /* Hopeless. + * This is a NewGRF vehicle that uses TRAININFO_DEFAULT_VEHICLE_WIDTH. + * If the vehicles are shorter than 8/8 we have fractional lengths, which are not consistent after rounding. + */ + _consistent_train_width = 0; + break; + } + } + + if (first) { + _consistent_train_width = w; + first = false; + } else if (w != _consistent_train_width) { + _consistent_train_width = 0; + break; + } + } } static void DepotSellAllConfirmationCallback(Window *w, bool confirmed); @@ -292,7 +321,10 @@ struct DepotWindow : Window { const Train *u = Train::From(v); free_wagon = u->IsFreeWagon(); - uint x_space = free_wagon ? ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) : 0; + uint x_space = free_wagon ? + ScaleGUITrad(_consistent_train_width != 0 ? _consistent_train_width : TRAININFO_DEFAULT_VEHICLE_WIDTH) : + 0; + DrawTrainImage(u, image_left + (rtl ? 0 : x_space), image_right - (rtl ? x_space : 0), sprite_y - 1, this->sel, EIT_IN_DEPOT, free_wagon ? 0 : this->hscroll->GetPosition(), this->vehicle_over); @@ -340,6 +372,28 @@ struct DepotWindow : Window { /* Set the row and number of boxes in each row based on the number of boxes drawn in the matrix */ const NWidgetCore *wid = this->GetWidget(WID_D_MATRIX); + + /* Draw vertical separators at whole tiles. + * This only works in two cases: + * - All vehicles use VEHICLEINFO_FULL_VEHICLE_WIDTH as reference width. + * - All vehicles are 8/8. This cannot be checked for NewGRF, so instead we check for "all vehicles are original vehicles". + */ + if (this->type == VEH_TRAIN && _consistent_train_width != 0) { + int w = ScaleGUITrad(2 * _consistent_train_width); + int col = _colour_gradient[wid->colour][4]; + int image_left = rtl ? r.left + this->count_width : r.left + this->header_width; + int image_right = rtl ? r.right - this->header_width : r.right - this->count_width; + if (rtl) { + for (int x = image_right - w; x > image_left; x -= w) { + GfxDrawLine(x, r.top, x, r.bottom, col, 1, 3); + } + } else { + for (int x = image_left + w; x < image_right; x += w) { + GfxDrawLine(x, r.top, x, r.bottom, col, 1, 3); + } + } + } + uint16 rows_in_display = wid->current_y / wid->resize_y; uint16 num = this->vscroll->GetPosition() * this->num_columns; From 5aecfd11f0d2bfc1cdef07e0a51c523e6cdf1c44 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 27 Aug 2017 11:48:38 +0000 Subject: [PATCH 390/417] (svn r27900) -Change [FS#6568]: Remove the gap between windows when positioning them after opening. -Fix: Make automatic window-positioning RTL-aware. -Fix: Automatic window-positioning now uses GUI-scale/style dependent sizes/distances instead of fixed pixel values. --- src/widget_type.h | 4 +- src/window.cpp | 98 ++++++++++++++++++++++++++++++----------------- 2 files changed, 65 insertions(+), 37 deletions(-) diff --git a/src/widget_type.h b/src/widget_type.h index 39efbb4637..163d45800e 100644 --- a/src/widget_type.h +++ b/src/widget_type.h @@ -779,13 +779,13 @@ public: static void InvalidateDimensionCache(); static Dimension dropdown_dimension; ///< Cached size of a dropdown widget. + static Dimension resizebox_dimension; ///< Cached size of a resizebox widget. + static Dimension closebox_dimension; ///< Cached size of a closebox widget. private: static Dimension shadebox_dimension; ///< Cached size of a shadebox widget. static Dimension debugbox_dimension; ///< Cached size of a debugbox widget. static Dimension defsizebox_dimension; ///< Cached size of a defsizebox widget. static Dimension stickybox_dimension; ///< Cached size of a stickybox widget. - static Dimension resizebox_dimension; ///< Cached size of a resizebox widget. - static Dimension closebox_dimension; ///< Cached size of a closebox widget. }; /** diff --git a/src/window.cpp b/src/window.cpp index 6538caffd2..a447ef0a96 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1555,16 +1555,16 @@ void Window::FindWindowPlacementAndResize(int def_width, int def_height) * @param top Top edge of the rectangle * @param width Width of the rectangle * @param height Height of the rectangle + * @param toolbar_y Height of main toolbar * @param pos If rectangle is good, use this parameter to return the top-left corner of the new window * @return Boolean indication that the rectangle is a good place for the new window */ -static bool IsGoodAutoPlace1(int left, int top, int width, int height, Point &pos) +static bool IsGoodAutoPlace1(int left, int top, int width, int height, int toolbar_y, Point &pos) { int right = width + left; int bottom = height + top; - const Window *main_toolbar = FindWindowByClass(WC_MAIN_TOOLBAR); - if (left < 0 || (main_toolbar != NULL && top < main_toolbar->height) || right > _screen.width || bottom > _screen.height) return false; + if (left < 0 || top < toolbar_y || right > _screen.width || bottom > _screen.height) return false; /* Make sure it is not obscured by any window. */ const Window *w; @@ -1592,17 +1592,25 @@ static bool IsGoodAutoPlace1(int left, int top, int width, int height, Point &po * @param top Top edge of the rectangle * @param width Width of the rectangle * @param height Height of the rectangle + * @param toolbar_y Height of main toolbar * @param pos If rectangle is good, use this parameter to return the top-left corner of the new window * @return Boolean indication that the rectangle is a good place for the new window */ -static bool IsGoodAutoPlace2(int left, int top, int width, int height, Point &pos) +static bool IsGoodAutoPlace2(int left, int top, int width, int height, int toolbar_y, Point &pos) { + bool rtl = _current_text_dir == TD_RTL; + /* Left part of the rectangle may be at most 1/4 off-screen, * right part of the rectangle may be at most 1/2 off-screen */ - if (left < -(width >> 2) || left > _screen.width - (width >> 1)) return false; + if (rtl) { + if (left < -(width >> 1) || left > _screen.width - (width >> 2)) return false; + } else { + if (left < -(width >> 2) || left > _screen.width - (width >> 1)) return false; + } + /* Bottom part of the rectangle may be at most 1/4 off-screen */ - if (top < 22 || top > _screen.height - (height >> 2)) return false; + if (top < toolbar_y || top > _screen.height - (height >> 2)) return false; /* Make sure it is not obscured by any window. */ const Window *w; @@ -1632,11 +1640,14 @@ static Point GetAutoPlacePosition(int width, int height) { Point pt; + bool rtl = _current_text_dir == TD_RTL; + /* First attempt, try top-left of the screen */ const Window *main_toolbar = FindWindowByClass(WC_MAIN_TOOLBAR); - if (IsGoodAutoPlace1(0, main_toolbar != NULL ? main_toolbar->height + 2 : 2, width, height, pt)) return pt; + const int toolbar_y = main_toolbar != NULL ? main_toolbar->height : 0; + if (IsGoodAutoPlace1(rtl ? _screen.width - width : 0, toolbar_y, width, height, toolbar_y, pt)) return pt; - /* Second attempt, try around all existing windows with a distance of 2 pixels. + /* Second attempt, try around all existing windows. * The new window must be entirely on-screen, and not overlap with an existing window. * Eight starting points are tried, two at each corner. */ @@ -1644,39 +1655,41 @@ static Point GetAutoPlacePosition(int width, int height) FOR_ALL_WINDOWS_FROM_BACK(w) { if (w->window_class == WC_MAIN_WINDOW) continue; - if (IsGoodAutoPlace1(w->left + w->width + 2, w->top, width, height, pt)) return pt; - if (IsGoodAutoPlace1(w->left - width - 2, w->top, width, height, pt)) return pt; - if (IsGoodAutoPlace1(w->left, w->top + w->height + 2, width, height, pt)) return pt; - if (IsGoodAutoPlace1(w->left, w->top - height - 2, width, height, pt)) return pt; - if (IsGoodAutoPlace1(w->left + w->width + 2, w->top + w->height - height, width, height, pt)) return pt; - if (IsGoodAutoPlace1(w->left - width - 2, w->top + w->height - height, width, height, pt)) return pt; - if (IsGoodAutoPlace1(w->left + w->width - width, w->top + w->height + 2, width, height, pt)) return pt; - if (IsGoodAutoPlace1(w->left + w->width - width, w->top - height - 2, width, height, pt)) return pt; + if (IsGoodAutoPlace1(w->left + w->width, w->top, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace1(w->left - width, w->top, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace1(w->left, w->top + w->height, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace1(w->left, w->top - height, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace1(w->left + w->width, w->top + w->height - height, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace1(w->left - width, w->top + w->height - height, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace1(w->left + w->width - width, w->top + w->height, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace1(w->left + w->width - width, w->top - height, width, height, toolbar_y, pt)) return pt; } - /* Third attempt, try around all existing windows with a distance of 2 pixels. + /* Third attempt, try around all existing windows. * The new window may be partly off-screen, and must not overlap with an existing window. * Only four starting points are tried. */ FOR_ALL_WINDOWS_FROM_BACK(w) { if (w->window_class == WC_MAIN_WINDOW) continue; - if (IsGoodAutoPlace2(w->left + w->width + 2, w->top, width, height, pt)) return pt; - if (IsGoodAutoPlace2(w->left - width - 2, w->top, width, height, pt)) return pt; - if (IsGoodAutoPlace2(w->left, w->top + w->height + 2, width, height, pt)) return pt; - if (IsGoodAutoPlace2(w->left, w->top - height - 2, width, height, pt)) return pt; + if (IsGoodAutoPlace2(w->left + w->width, w->top, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace2(w->left - width, w->top, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace2(w->left, w->top + w->height, width, height, toolbar_y, pt)) return pt; + if (IsGoodAutoPlace2(w->left, w->top - height, width, height, toolbar_y, pt)) return pt; } - /* Fourth and final attempt, put window at diagonal starting from (0, 24), try multiples - * of (+5, +5) + /* Fourth and final attempt, put window at diagonal starting from (0, toolbar_y), try multiples + * of the closebox */ - int left = 0, top = 24; + int left = rtl ? _screen.width - width : 0, top = toolbar_y; + int offset_x = rtl ? -NWidgetLeaf::closebox_dimension.width : NWidgetLeaf::closebox_dimension.width; + int offset_y = max(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM); restart: FOR_ALL_WINDOWS_FROM_BACK(w) { if (w->left == left && w->top == top) { - left += 5; - top += 5; + left += offset_x; + top += offset_y; goto restart; } } @@ -1725,16 +1738,31 @@ static Point LocalGetWindowPlacement(const WindowDesc *desc, int16 sm_width, int int16 default_width = max(desc->GetDefaultWidth(), sm_width); int16 default_height = max(desc->GetDefaultHeight(), sm_height); - if (desc->parent_cls != 0 /* WC_MAIN_WINDOW */ && - (w = FindWindowById(desc->parent_cls, window_number)) != NULL && - w->left < _screen.width - 20 && w->left > -60 && w->top < _screen.height - 20) { - - pt.x = w->left + ((desc->parent_cls == WC_BUILD_TOOLBAR || desc->parent_cls == WC_SCEN_LAND_GEN) ? 0 : 10); - if (pt.x > _screen.width + 10 - default_width) { - pt.x = (_screen.width + 10 - default_width) - 20; + if (desc->parent_cls != 0 /* WC_MAIN_WINDOW */ && (w = FindWindowById(desc->parent_cls, window_number)) != NULL) { + bool rtl = _current_text_dir == TD_RTL; + if (desc->parent_cls == WC_BUILD_TOOLBAR || desc->parent_cls == WC_SCEN_LAND_GEN) { + pt.x = w->left + (rtl ? w->width - default_width : 0); + pt.y = w->top + w->height; + return pt; + } else { + /* Position child window with offset of closebox, but make sure that either closebox or resizebox is visible + * - Y position: closebox of parent + closebox of child + statusbar + * - X position: closebox on left/right, resizebox on right/left (depending on ltr/rtl) + */ + int indent_y = max(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM); + if (w->top + 3 * indent_y < _screen.height) { + pt.y = w->top + indent_y; + int indent_close = NWidgetLeaf::closebox_dimension.width; + int indent_resize = NWidgetLeaf::resizebox_dimension.width; + if (_current_text_dir == TD_RTL) { + pt.x = max(w->left + w->width - default_width - indent_close, 0); + if (pt.x + default_width >= indent_close && pt.x + indent_resize <= _screen.width) return pt; + } else { + pt.x = min(w->left + indent_close, _screen.width - default_width); + if (pt.x + default_width >= indent_resize && pt.x + indent_close <= _screen.width) return pt; + } + } } - pt.y = w->top + ((desc->parent_cls == WC_BUILD_TOOLBAR || desc->parent_cls == WC_SCEN_LAND_GEN) ? w->height : 10); - return pt; } switch (desc->default_pos) { From 3e2ec8a5450a54450e266ada906fa277429c4703 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 27 Aug 2017 13:14:37 +0000 Subject: [PATCH 391/417] (svn r27901) -Codechange: GetWindowZPriority only needs a WindowClass; this way it can also be used for WindowDesc before a Window instance is created. (3298) --- src/window.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/window.cpp b/src/window.cpp index a447ef0a96..2ce1124ed9 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1264,17 +1264,17 @@ static inline bool IsVitalWindow(const Window *w) * Get the z-priority for a given window. This is used in comparison with other z-priority values; * a window with a given z-priority will appear above other windows with a lower value, and below * those with a higher one (the ordering within z-priorities is arbitrary). - * @param w The window to get the z-priority for - * @pre w->window_class != WC_INVALID + * @param wc The window class of window to get the z-priority for + * @pre wc != WC_INVALID * @return The window's z-priority */ -static uint GetWindowZPriority(const Window *w) +static uint GetWindowZPriority(WindowClass wc) { - assert(w->window_class != WC_INVALID); + assert(wc != WC_INVALID); uint z_priority = 0; - switch (w->window_class) { + switch (wc) { case WC_ENDSCREEN: ++z_priority; FALLTHROUGH; @@ -1358,11 +1358,11 @@ static void AddWindowToZOrdering(Window *w) /* Search down the z-ordering for its location. */ Window *v = _z_front_window; uint last_z_priority = UINT_MAX; - while (v != NULL && (v->window_class == WC_INVALID || GetWindowZPriority(v) > GetWindowZPriority(w))) { + while (v != NULL && (v->window_class == WC_INVALID || GetWindowZPriority(v->window_class) > GetWindowZPriority(w->window_class))) { if (v->window_class != WC_INVALID) { /* Sanity check z-ordering, while we're at it. */ - assert(last_z_priority >= GetWindowZPriority(v)); - last_z_priority = GetWindowZPriority(v); + assert(last_z_priority >= GetWindowZPriority(v->window_class)); + last_z_priority = GetWindowZPriority(v->window_class); } v = v->z_back; From b3d37c0032bf5721125c0dd7c4deac0a46b3c388 Mon Sep 17 00:00:00 2001 From: adf88 Date: Sun, 27 Aug 2017 16:07:24 +0000 Subject: [PATCH 392/417] (svn r27902) -Feature [FS#6614]: Preserve PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR environment variables in config.cache file (just like other variabes CFLAGS, LDFLAGS etc.) so they can be resused when OpenTTD re-configures itself --- config.lib | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/config.lib b/config.lib index 3d10aaa3fd..bc2224f68f 100644 --- a/config.lib +++ b/config.lib @@ -172,7 +172,7 @@ set_default() { with_grfcodec with_nforenum with_sse - CC CXX CFLAGS CXXFLAGS LDFLAGS CFLAGS_BUILD CXXFLAGS_BUILD LDFLAGS_BUILD" + CC CXX CFLAGS CXXFLAGS LDFLAGS CFLAGS_BUILD CXXFLAGS_BUILD LDFLAGS_BUILD PKG_CONFIG_PATH PKG_CONFIG_LIBDIR" } detect_params() { @@ -473,6 +473,8 @@ detect_params() { CFLAGS_BUILD=* | --CFLAGS_BUILD=* | --CFLAGS-BUILD=*) CFLAGS_BUILD="$optarg";; CXXFLAGS_BUILD=* | --CXXFLAGS_BUILD=* | --CXXFLAGS-BUILD=*) CXXFLAGS_BUILD="$optarg";; LDFLAGS_BUILD=* | --LDFLAGS_BUILD=* | --LDFLAGS-BUILD=*) LDFLAGS_BUILD="$optarg";; + PKG_CONFIG_PATH=* | --PKG_CONFIG_PATH=* | --PKG-CONFIG-PATH=*) PKG_CONFIG_PATH="$optarg";; + PKG_CONFIG_LIBDIR=* | --PKG_CONFIG_LIBDIR=* | --PKG-CONFIG-LIBDIR=*) PKG_CONFIG_LIBDIR="$optarg";; --ignore-extra-parameters) ignore_extra_parameters="1";; @@ -517,6 +519,20 @@ save_params() { echo "" >> $config_log } +# Export a variable so tools like pkg-config can see it when invoked. +# If the variable contains an empty string then unset it. +# $1 - name of the variable to export or unset +export_or_unset() { + eval local value=\$$1 + if [ -n "$value" ]; then + export $1; + log 2 "using $1=$value"; + else + unset $1; + log 2 "not using $1"; + fi +} + check_params() { # Some params want to be in full uppercase, else they might not work as # expected.. fix that here @@ -525,6 +541,16 @@ check_params() { os=`echo $os | tr '[a-z]' '[A-Z]'` cpu_type=`echo $cpu_type | tr '[a-z]' '[A-Z]'` + # Export some variables to be used by pkg-config + # + # PKG_CONFIG_LIBDIR variable musn't be set if we are not willing to + # override the default pkg-config search path, it musn't be an empty + # string. If the variable is empty (e.g. when an empty string comes + # from config.cache) then unset it. This way the "don't override" state + # will be properly preserved when (re)configuring. + export_or_unset PKG_CONFIG_PATH + export_or_unset PKG_CONFIG_LIBDIR + # Check if all params have valid values # Endian only allows AUTO, LE and, BE @@ -3562,6 +3588,8 @@ showhelp() { echo " CFLAGS_BUILD C compiler flags for build time tool generation" echo " CXXFLAGS_BUILD C++ compiler flags for build time tool generation" echo " LDFLAGS_BUILD linker flags for build time tool generation" + echo " PKG_CONFIG_PATH additional library search paths (see \"man pkg-config\")" + echo " PKG_CONFIG_LIBDIR replace the default library search path (see \"man pkg-config\")" echo "" echo "Use these variables to override the choices made by 'configure' or to help" echo "it to find libraries and programs with nonstandard names/locations." From f1bf1f25bf56283e41b28852037b3eb20cea4316 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 30 Aug 2017 17:45:39 +0000 Subject: [PATCH 393/417] (svn r27903) -Update from Eints: vietnamese: 37 changes by myquartz --- src/lang/vietnamese.txt | 60 +++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index bb43f2ef36..c9ef33616e 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1373,6 +1373,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Tắt STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Cuộn chuột trái: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Cho phép cuộn bản đồ bằng cách kéo với nút trái chuột. Tùy chọn này sẽ hữu ích khi dùng màn hình cảm ứng STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Đóng cửa số khi click chuột phải: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Đóng cửa sổ bằng cách bấm chuột phải vào đó. Ngăn tooltip bằng cách bấm phải! STR_CONFIG_SETTING_AUTOSAVE :Tự động save: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Chọn chu kỳ giữa mỗi lần tự động save @@ -1762,6 +1763,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Kiểm t STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Hiển thị thiết lập AI và Game script STR_INTRO_TOOLTIP_QUIT :{BLACK}Thoát 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Gói đồ họa cơ sở đang chọn bị thiếu {NUM} sprite. Hãy cập nhật gói cơ sở này. STR_INTRO_TRANSLATION :{BLACK}Bản dịch này thiếu {NUM} chuỗi. Hãy giúp OpenTTD hoàn thiện hơn bằng cách đăng ký làm biên dịch viên. Xem readme.txt để biết thêm chi tiết. # Quit window @@ -2603,29 +2605,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Cánh đồng STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Đất tuyết phủ STR_LAI_CLEAR_DESCRIPTION_DESERT :Hoang mạc -STR_LAI_RAIL_DESCRIPTION_TRACK :Đường ray Đường ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Đường ray Đường ray với đèn hiệu khóa -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Đường ray Đường ray với đèn tín hiệu cửa thoát -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Đường ray Đường ray với đèn tín hiệu kết hợp -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Đường ray Đường ray với đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Đường ray Đường ray với đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn tín hiệu báo trước -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn tín hiệu cửa thoát -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn tín hiệu kết hợp -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Đường ray Đường ray với đèn hiệu khóa và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước và đèn tín hiệu cửa thoát -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước và đèn tín hiệu kết hợp -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước và đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Đường ray Đường ray với đèn tín hiệu báo trước và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Đường ray Đường ray với đèn tín hiệu cửa thoát và đèn tín hiệu kết hợp -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Đường ray Đường ray với đèn tín hiệu cửa thoát và đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Đường ray Đường ray với đèn tín hiệu cửa thoát và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Đường ray Đường ray với đèn tín hiệu kết hợp và đèn dẫn đường -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Đường ray Đường ray với đèn tín hiệu kết hợp và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Đường ray Đường ray với đèn dẫn đường và đèn dẫn đường 1-chiều -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Xưởng tàu hỏa Đường ray +STR_LAI_RAIL_DESCRIPTION_TRACK :Đường ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Đường ray với đèn hiệu khóa +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Đường ray với đèn tín hiệu báo trước +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Đường ray với đèn tín hiệu cửa thoát +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Đường ray với đèn tín hiệu kết hợp +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Đường ray với đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Đường ray với đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Đường ray với đèn hiệu khóa và đèn tín hiệu báo trước +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Đường ray với đèn hiệu khóa và đèn tín hiệu cửa thoát +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Đường ray với đèn hiệu khóa và đèn tín hiệu kết hợp +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Đường ray với đèn hiệu khóa và đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Đường ray với đèn hiệu khóa và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Đường ray với đèn tín hiệu báo trước và đèn tín hiệu cửa thoát +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Đường ray với đèn tín hiệu báo trước và đèn tín hiệu kết hợp +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Đường ray với đèn tín hiệu báo trước và đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Đường ray với đèn tín hiệu báo trước và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Đường ray với đèn tín hiệu cửa thoát và đèn tín hiệu kết hợp +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Đường ray với đèn tín hiệu cửa thoát và đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Đường ray với đèn tín hiệu cửa thoát và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Đường ray với đèn tín hiệu kết hợp và đèn dẫn đường +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Đường ray với đèn tín hiệu kết hợp và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Đường ray với đèn dẫn đường và đèn dẫn đường 1-chiều +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Xưởng tàu hỏa STR_LAI_ROAD_DESCRIPTION_ROAD :Đường bộ STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Đường phố có đèn @@ -3294,8 +3296,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Yêu c STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Yêu cầu: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Cần cung cấp STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}đang chờ STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING} @@ -3364,7 +3369,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Xoá tất cả STR_GROUP_RENAME_CAPTION :{BLACK}Đổi tên nhóm +STR_GROUP_PROFIT_THIS_YEAR :Lợi nhuận năm nay: STR_GROUP_PROFIT_LAST_YEAR :Lợi nhuận năm trước: +STR_GROUP_OCCUPANCY :Hiện đang dùng: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Tàu Hỏa Mới @@ -3532,6 +3540,9 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :đầu máy đ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Giá thành: {CURRENCY_LONG} Tải trọng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER}{}Chi phí hoạt động: {CURRENCY_LONG}/năm{}Sức chứa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Giá: {CURRENCY_LONG} Nặng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER} Max. T.E.: {6:FORCE}{}Giá vận hành: {4:CURRENCY_LONG}/yr{}Năng suất: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Kiểu máy bay: {STRING}{}Sức chứa: {CARGO_LONG}, {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}GIá: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Kiểu máy bay: {STRING}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Kiểu máy bay: {STRING} Tầm xa: {COMMA} ô{}Sức chứa: {CARGO_LONG}, {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Kiểu máy bay: {STRING} Tầm xa: {COMMA} ô{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm # Autoreplace window @@ -3562,6 +3573,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Bấm đ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Chuyển qua lại cửa sổ thay thế đầu máy và toa xe STR_REPLACE_ENGINES :Đầu máy STR_REPLACE_WAGONS :Toa xe +STR_REPLACE_ALL_RAILTYPE :Tất cả toa xe đầu máy STR_REPLACE_HELP_RAILTYPE :{BLACK}Chọn kiểu đường ray bạn muốn thay thế STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Hiện thị đầu máy nào đang được thay thế, nếu có @@ -3654,6 +3666,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} năm ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} năm ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Tốc độ tối đa: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Tốc độ tối đa: {LTBLUE}{VELOCITY} {BLACK}Kiểu máy bay: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Tốc độ tối đa: {LTBLUE}{VELOCITY} {BLACK}Kiểu máy bay: {LTBLUE}{STRING} {BLACK}Tầm bay: {LTBLUE}{COMMA} ô STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Tải trọng: {LTBLUE}{WEIGHT_SHORT} {BLACK}Công suất: {LTBLUE}{POWER}{BLACK} Tốc độ tối đa: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Tải trọng: {LTBLUE}{WEIGHT_SHORT} {BLACK}Công suất: {LTBLUE}{POWER}{BLACK} Tốc độ tối đa: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} From dbf7ed502a52c374607329043046745abf70ee52 Mon Sep 17 00:00:00 2001 From: adf88 Date: Thu, 31 Aug 2017 06:47:17 +0000 Subject: [PATCH 394/417] (svn r27904) -Fix [FS#6593]: When last vehicle is removed from shared orders group, hide the "Stop sharing" button in vehile orders window --- src/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vehicle.cpp b/src/vehicle.cpp index dff9febc05..e4a8c7bf1f 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -2677,7 +2677,7 @@ void Vehicle::RemoveFromShared() if (this->orders.list->GetNumVehicles() == 1) { /* When there is only one vehicle, remove the shared order list window. */ DeleteWindowById(GetWindowClassForVehicleType(this->type), vli.Pack()); - InvalidateVehicleOrder(this->FirstShared(), 0); + InvalidateVehicleOrder(this->FirstShared(), VIWD_MODIFY_ORDERS); } else if (were_first) { /* If we were the first one, update to the new first one. * Note: FirstShared() is already the new first */ From 322a053de7b97e71b196e6460036d389e53dc209 Mon Sep 17 00:00:00 2001 From: adf88 Date: Thu, 31 Aug 2017 06:48:55 +0000 Subject: [PATCH 395/417] (svn r27905) -Fix [FS#6585]: Keep the "link" between industry chain and smallmap windows whenever possible --- src/smallmap_gui.cpp | 19 ++++++++++++++++--- src/smallmap_gui.h | 3 ++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 0bb2997e50..4ea887c066 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -572,6 +572,12 @@ static const byte _vehicle_type_colours[6] = { }; +/** Notify the industry chain window to stop sending newly selected industries. */ +/* static */ void SmallMapWindow::BreakIndustryChainLink() +{ + InvalidateWindowClassesData(WC_INDUSTRY_CARGOES, NUM_INDUSTRYTYPES); +} + inline Point SmallMapWindow::SmallmapRemapCoords(int x, int y) const { Point pt; @@ -1069,6 +1075,12 @@ SmallMapWindow::SmallMapWindow(WindowDesc *desc, int window_number) : Window(des this->SetOverlayCargoMask(); } +SmallMapWindow::~SmallMapWindow() +{ + delete this->overlay; + this->BreakIndustryChainLink(); +} + /** * Rebuilds the colour indices used for fast access to the smallmap contour colours based on the heightlevel. */ @@ -1278,6 +1290,7 @@ void SmallMapWindow::SwitchMapType(SmallMapType map_type) this->SetupWidgetData(); if (map_type == SMT_LINKSTATS) this->overlay->RebuildCache(); + if (map_type != SMT_INDUSTRY) this->BreakIndustryChainLink(); this->SetDirty(); } @@ -1329,6 +1342,8 @@ void SmallMapWindow::SelectLegendItem(int click_pos, LegendAndColour *legend, in } else { legend[click_pos].show_on_map = !legend[click_pos].show_on_map; } + + if (this->map_type == SMT_INDUSTRY) this->BreakIndustryChainLink(); } /** @@ -1383,9 +1398,6 @@ int SmallMapWindow::GetPositionOnLegend(Point pt) /* virtual */ void SmallMapWindow::OnClick(Point pt, int widget, int click_count) { - /* User clicked something, notify the industry chain window to stop sending newly selected industries. */ - InvalidateWindowClassesData(WC_INDUSTRY_CARGOES, NUM_INDUSTRYTYPES); - switch (widget) { case WID_SM_MAP: { // Map window /* @@ -1473,6 +1485,7 @@ int SmallMapWindow::GetPositionOnLegend(Point pt) switch (this->map_type) { case SMT_INDUSTRY: tbl = _legend_from_industries; + this->BreakIndustryChainLink(); break; case SMT_OWNER: tbl = &(_legend_land_owners[NUM_NO_COMPANY_ENTRIES]); diff --git a/src/smallmap_gui.h b/src/smallmap_gui.h index 2903544a69..c3151b1a71 100644 --- a/src/smallmap_gui.h +++ b/src/smallmap_gui.h @@ -82,6 +82,7 @@ protected: uint8 refresh; ///< Refresh counter, zeroed every FORCE_REFRESH_PERIOD ticks. LinkGraphOverlay *overlay; + static void BreakIndustryChainLink(); Point SmallmapRemapCoords(int x, int y) const; /** @@ -173,7 +174,7 @@ public: friend class NWidgetSmallmapDisplay; SmallMapWindow(WindowDesc *desc, int window_number); - virtual ~SmallMapWindow() { delete this->overlay; } + virtual ~SmallMapWindow(); void SmallMapCenterOnCurrentPos(); Point GetStationMiddle(const Station *st) const; From 0f8c868ea22c05ee17c460cd4ec738f3bf382292 Mon Sep 17 00:00:00 2001 From: adf88 Date: Thu, 31 Aug 2017 06:51:01 +0000 Subject: [PATCH 396/417] (svn r27906) -Cleanup: Remove some NPF code with no effect and mark possible bug about never used NPF_FLAG_IGNORE_RESERVED flag --- src/pathfinder/npf/npf.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index 1867b4b18d..fb98332373 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -1031,12 +1031,8 @@ static NPFFoundTargetData NPFRouteToStationOrTileTwoWay(TileIndex tile1, Trackdi start1.tile = tile1; start2.tile = tile2; - /* We set this in case the target is also the start tile, we will just - * return a not found then */ - start1.user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; start1.direction = trackdir1; start2.direction = trackdir2; - start2.user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindStationOrTile, NPFCalcStationOrTileHeuristic, user, 0); } @@ -1063,12 +1059,8 @@ static NPFFoundTargetData NPFRouteToDepotBreadthFirstTwoWay(TileIndex tile1, Tra start1.tile = tile1; start2.tile = tile2; - /* We set this in case the target is also the start tile, we will just - * return a not found then */ - start1.user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; start1.direction = trackdir1; start2.direction = trackdir2; - start2.user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; /* perform a breadth first search. Target is NULL, * since we are just looking for any depot...*/ @@ -1233,12 +1225,15 @@ bool NPFTrainFindNearestSafeTile(const Train *v, TileIndex tile, Trackdir trackd AyStarNode start1; start1.tile = tile; - /* We set this in case the target is also the start tile, we will just - * return a not found then */ - start1.user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; - start1.user_data[NPF_NODE_FLAGS] = 0; start1.direction = trackdir; - NPFSetFlag(&start1, NPF_FLAG_IGNORE_RESERVED, true); + /* FIXME: NPFRouteInternal is wiping out any flags on startup, also the + * NPF_FLAG_IGNORE_RESERVED flag that was intended to be set on this line. + * The flag was never set properly, since introdued in r13948. Now the line + * is commented out to silence compiler warnings (using uninitialized 'flags'). + * Currently the NPF_FLAG_IGNORE_RESERVED is nowhere used. It has to be + * decided what to do with this flag. + * + * NPFSetFlag(&start1, NPF_FLAG_IGNORE_RESERVED, true); */ RailTypes railtypes = v->compatible_railtypes; if (override_railtype) railtypes |= GetRailTypeInfo(v->railtype)->compatible_railtypes; From 7757f5050a86c5b9dce444385e0404424edf5ad5 Mon Sep 17 00:00:00 2001 From: adf88 Date: Thu, 31 Aug 2017 06:54:22 +0000 Subject: [PATCH 397/417] (svn r27907) -Fix: AirportSpec::rotation was memleaking --- src/newgrf.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 24b0238b33..2f02b049b6 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -7915,6 +7915,7 @@ static void ResetCustomAirports() } free(as->table); free(as->depot_table); + free(as->rotation); free(as); } From 13106675de9e277400899dde7dd1c9ae3db0b8b7 Mon Sep 17 00:00:00 2001 From: adf88 Date: Thu, 31 Aug 2017 06:55:38 +0000 Subject: [PATCH 398/417] (svn r27908) -Codechange: Mark airport tile tables and FTAs "const" to be sure that they are really constant --- src/airport.cpp | 2 +- src/newgrf.cpp | 2 +- src/newgrf_airport.h | 4 ++-- src/table/airport_defaults.h | 40 ++++++++++++++++++------------------ 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/airport.cpp b/src/airport.cpp index a50c049c23..7985e017aa 100644 --- a/src/airport.cpp +++ b/src/airport.cpp @@ -27,7 +27,7 @@ * @param delta_z Height of the airport above the land. */ #define AIRPORT_GENERIC(name, terminals, num_helipads, flags, delta_z) \ - static AirportFTAClass _airportfta_ ## name(_airport_moving_data_ ## name, terminals, \ + static const AirportFTAClass _airportfta_ ## name(_airport_moving_data_ ## name, terminals, \ num_helipads, _airport_entries_ ## name, flags, _airport_fta_ ## name, delta_z); /** diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 2f02b049b6..4759c8a19c 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -3750,7 +3750,7 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, B const AirportTileTable *copy_from; try { for (byte j = 0; j < as->num_table; j++) { - as->rotation[j] = (Direction)buf->ReadByte(); + const_cast(as->rotation[j]) = (Direction)buf->ReadByte(); for (int k = 0;; k++) { att[k].ti.x = buf->ReadByte(); // Offsets from northermost tile att[k].ti.y = buf->ReadByte(); diff --git a/src/newgrf_airport.h b/src/newgrf_airport.h index 5a917c6bd1..867362e9ad 100644 --- a/src/newgrf_airport.h +++ b/src/newgrf_airport.h @@ -100,7 +100,7 @@ struct HangarTileTable { struct AirportSpec { const struct AirportFTAClass *fsm; ///< the finite statemachine for the default airports const AirportTileTable * const *table; ///< list of the tiles composing the airport - Direction *rotation; ///< the rotation of each tiletable + const Direction *rotation; ///< the rotation of each tiletable byte num_table; ///< number of elements in the table const HangarTileTable *depot_table; ///< gives the position of the depots on the airports byte nof_depots; ///< the number of hangar tiles in this airport @@ -133,7 +133,7 @@ struct AirportSpec { return (byte)(this - specs); } - static AirportSpec dummy; ///< The dummy airport. + static const AirportSpec dummy; ///< The dummy airport. private: static AirportSpec specs[NUM_AIRPORTS]; ///< Specs of the airports. diff --git a/src/table/airport_defaults.h b/src/table/airport_defaults.h index 01a55ce89e..593e157ac3 100644 --- a/src/table/airport_defaults.h +++ b/src/table/airport_defaults.h @@ -28,7 +28,7 @@ #define MKEND {{-0x80, 0}, 0} /** Tiles for Country Airfield (small) */ -static AirportTileTable _tile_table_country_0[] = { +static const AirportTileTable _tile_table_country_0[] = { MK(0, 0, APT_SMALL_BUILDING_1), MK(1, 0, APT_SMALL_BUILDING_2), MK(2, 0, APT_SMALL_BUILDING_3), @@ -44,12 +44,12 @@ static AirportTileTable _tile_table_country_0[] = { MKEND }; -static AirportTileTable *_tile_table_country[] = { +static const AirportTileTable * const _tile_table_country[] = { _tile_table_country_0, }; /** Tiles for Commuter Airfield (small) */ -static AirportTileTable _tile_table_commuter_0[] = { +static const AirportTileTable _tile_table_commuter_0[] = { MK(0, 0, APT_TOWER), MK(1, 0, APT_BUILDING_3), MK(2, 0, APT_HELIPAD_2_FENCE_NW), @@ -73,12 +73,12 @@ static AirportTileTable _tile_table_commuter_0[] = { MKEND }; -static AirportTileTable *_tile_table_commuter[] = { +static const AirportTileTable * const _tile_table_commuter[] = { _tile_table_commuter_0, }; /** Tiles for City Airport (large) */ -static AirportTileTable _tile_table_city_0[] = { +static const AirportTileTable _tile_table_city_0[] = { MK(0, 0, APT_BUILDING_1), MK(1, 0, APT_APRON_FENCE_NW), MK(2, 0, APT_STAND_1), @@ -118,12 +118,12 @@ static AirportTileTable _tile_table_city_0[] = { MKEND }; -static AirportTileTable *_tile_table_city[] = { +static const AirportTileTable * const _tile_table_city[] = { _tile_table_city_0, }; /** Tiles for Metropolitain Airport (large) - 2 runways */ -static AirportTileTable _tile_table_metropolitan_0[] = { +static const AirportTileTable _tile_table_metropolitan_0[] = { MK(0, 0, APT_BUILDING_1), MK(1, 0, APT_APRON_FENCE_NW), MK(2, 0, APT_STAND_1), @@ -163,12 +163,12 @@ static AirportTileTable _tile_table_metropolitan_0[] = { MKEND }; -static AirportTileTable *_tile_table_metropolitan[] = { +static const AirportTileTable * const _tile_table_metropolitan[] = { _tile_table_metropolitan_0, }; /** Tiles for International Airport (large) - 2 runways */ -static AirportTileTable _tile_table_international_0[] = { +static const AirportTileTable _tile_table_international_0[] = { MK(0, 0, APT_RUNWAY_END_FENCE_NW), MK(1, 0, APT_RUNWAY_FENCE_NW), MK(2, 0, APT_RUNWAY_FENCE_NW), @@ -221,12 +221,12 @@ static AirportTileTable _tile_table_international_0[] = { MKEND }; -static AirportTileTable *_tile_table_international[] = { +static const AirportTileTable * const _tile_table_international[] = { _tile_table_international_0, }; /** Tiles for International Airport (large) - 2 runways */ -static AirportTileTable _tile_table_intercontinental_0[] = { +static const AirportTileTable _tile_table_intercontinental_0[] = { MK(0, 0, APT_RADAR_FENCE_NE), MK(1, 0, APT_RUNWAY_END_FENCE_NE_NW), MK(2, 0, APT_RUNWAY_FENCE_NW), @@ -329,22 +329,22 @@ static AirportTileTable _tile_table_intercontinental_0[] = { MKEND }; -static AirportTileTable *_tile_table_intercontinental[] = { +static const AirportTileTable * const _tile_table_intercontinental[] = { _tile_table_intercontinental_0, }; /** Tiles for Heliport */ -static AirportTileTable _tile_table_heliport_0[] = { +static const AirportTileTable _tile_table_heliport_0[] = { MK(0, 0, APT_HELIPORT), MKEND }; -static AirportTileTable *_tile_table_heliport[] = { +static const AirportTileTable * const _tile_table_heliport[] = { _tile_table_heliport_0, }; /** Tiles for Helidepot */ -static AirportTileTable _tile_table_helidepot_0[] = { +static const AirportTileTable _tile_table_helidepot_0[] = { MK(0, 0, APT_LOW_BUILDING_FENCE_N), MK(1, 0, APT_DEPOT_SE), MK(0, 1, APT_HELIPAD_2_FENCE_NE_SE), @@ -352,12 +352,12 @@ static AirportTileTable _tile_table_helidepot_0[] = { MKEND }; -static AirportTileTable *_tile_table_helidepot[] = { +static const AirportTileTable * const _tile_table_helidepot[] = { _tile_table_helidepot_0, }; /** Tiles for Helistation */ -static AirportTileTable _tile_table_helistation_0[] = { +static const AirportTileTable _tile_table_helistation_0[] = { MK(0, 0, APT_DEPOT_SE), MK(1, 0, APT_LOW_BUILDING_FENCE_NW), MK(2, 0, APT_HELIPAD_3_FENCE_NW), @@ -369,11 +369,11 @@ static AirportTileTable _tile_table_helistation_0[] = { MKEND }; -static AirportTileTable *_tile_table_helistation[] = { +static const AirportTileTable * const _tile_table_helistation[] = { _tile_table_helistation_0, }; -static Direction _default_airports_rotation[] = { +static const Direction _default_airports_rotation[] = { DIR_N, }; @@ -410,7 +410,7 @@ extern const AirportSpec _origin_airport_specs[] = { assert_compile(NEW_AIRPORT_OFFSET == lengthof(_origin_airport_specs)); -AirportSpec AirportSpec::dummy = AS_GENERIC(&_airportfta_dummy, NULL, _default_airports_rotation, 0, NULL, 0, 0, 0, 0, 0, MIN_YEAR, MIN_YEAR, 0, ATP_TTDP_LARGE, APC_BEGIN, STR_NULL, 0, false); +const AirportSpec AirportSpec::dummy = AS_GENERIC(&_airportfta_dummy, NULL, _default_airports_rotation, 0, NULL, 0, 0, 0, 0, 0, MIN_YEAR, MIN_YEAR, 0, ATP_TTDP_LARGE, APC_BEGIN, STR_NULL, 0, false); #undef AS #undef AS_ND From eaf8d0ee0748a0bc669b0cef0221a5a40c670c9c Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 31 Aug 2017 17:45:38 +0000 Subject: [PATCH 399/417] (svn r27909) -Update from Eints: spanish (mexican): 4 changes by Absay --- src/lang/spanish_MX.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 828ca842a7..f472e8234c 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -985,8 +985,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elegir el tamaño de los elementos de la interfaz STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal -STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble -STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádruple +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Doble +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Cuádruple STR_GAME_OPTIONS_BASE_GRF :{BLACK}Gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Elegir los gráficos base @@ -1305,7 +1305,7 @@ STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Nivel de inicio STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :En los mapas de clima Subártico, la elevación a la cual la nieve comienza. La nieve también afecta a la generación de industrias y a los requisitos de crecimiento de los pueblos STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Irregularidad del terreno: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Solo TerraGenesis) Cantidad de colinas: los terrenos más planos tienen menos colinas, aunque suelen ser más extensas. Los terrenos más accidentados tienen múltiples colinas, lo cual puede resultar repetitivo -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Muy Suave +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Muy suave STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Suave STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rugoso STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Muy rugoso @@ -1759,7 +1759,7 @@ STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Elegir m STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Mostrar las opciones de juego STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Mostrar tabla de puntuaciones STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Mostrar configuración -STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Muestra configuración de NewGRF +STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Mostrar configuración de NewGRF STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Revisar si hay nuevos contenidos actualizados para descargar STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' From f1e54b4375eddaeab064b9f5db077d1275a85039 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 1 Sep 2017 17:45:42 +0000 Subject: [PATCH 400/417] (svn r27910) -Update from Eints: spanish (mexican): 10 changes by Absay dutch: 145 changes by mrLeopold --- src/lang/dutch.txt | 290 ++++++++++++++++++++-------------------- src/lang/spanish_MX.txt | 20 +-- 2 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 6b3a35682a..ca1ce4be2c 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -53,7 +53,7 @@ STR_CARGO_PLURAL_TOYS :Speelgoed STR_CARGO_PLURAL_CANDY :Snoep STR_CARGO_PLURAL_COLA :Cola STR_CARGO_PLURAL_COTTON_CANDY :Suikerspinnen -STR_CARGO_PLURAL_BUBBLES :Bubbels +STR_CARGO_PLURAL_BUBBLES :Bellen STR_CARGO_PLURAL_TOFFEE :Toffee STR_CARGO_PLURAL_BATTERIES :Batterijen STR_CARGO_PLURAL_PLASTIC :Plastic @@ -262,7 +262,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Door het # Query window STR_BUTTON_DEFAULT :{BLACK}Standaard STR_BUTTON_CANCEL :{BLACK}Annuleren -STR_BUTTON_OK :{BLACK}OK +STR_BUTTON_OK :{BLACK}Oké # On screen keyboard window STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ . @@ -597,7 +597,7 @@ STR_COMPANY_LEAGUE_COMPANY_NAME :{ORANGE}{COMPAN STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER :Ingenieur STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER :Verkeersleider STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRANSPORT_COORDINATOR :Transportcoördinator -STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR :Route-opzichter +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR :Routeopzichter STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR :Onderdirecteur STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE :Directeur STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN :Voorzitter @@ -1140,7 +1140,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Midden STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Rechts STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximale beginlening: {STRING} -STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximale bedrag een bedrijf kan lenen (zonder rekening te houden met de inflatie) +STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximaal bedrag dat een bedrijf kan lenen (zonder rekening te houden met de inflatie) STR_CONFIG_SETTING_INTEREST_RATE :Rente van lening: {STRING} STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Percentage rente op lening; bepaald ook het inflatiecijfer wanneer ingeschakeld STR_CONFIG_SETTING_RUNNING_COSTS :Onderhoudskosten: {STRING} @@ -1158,15 +1158,15 @@ STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Wanneer ingesch STR_CONFIG_SETTING_TRAIN_REVERSING :Niet toestaan dat treinen keren in stations: {STRING} STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Indien ingeschakeld zullen treinen niet omkeren in niet-eind stations, zelfs als er een kortere weg naar hun volgende bestemming is bij omkeren STR_CONFIG_SETTING_DISASTERS :Rampen: {STRING} -STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Schakel rampen die af en toe voertuigen of infrastructuur kunnen blokkeren of vernietigen -STR_CONFIG_SETTING_CITY_APPROVAL :Gemeenteraad's houding ten opzichte van herstructurering gebied: {STRING} +STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Schakel rampen die af en toe voertuigen of infrastructuur kunnen blokkeren of vernietigen in/uit +STR_CONFIG_SETTING_CITY_APPROVAL :De houding van de gemeenteraad ten opzichte van herstructurering gebied: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Kies hoeveel lawaai en schade aan het milieu door bedrijven de stadswaardering en hun acties beïnvloeden in hun bouwgebied STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximum kaarthoogte: {STRING} -STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Stel de maximum toegestande hoogte voor bergen op de kaart in +STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Stel de maximum toegestane hoogte voor bergen op de kaart in STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Je kunt de maximum kaarthoogte niet in deze waarde wijzigen. Minstens één berg op de kaart is hoger STR_CONFIG_SETTING_AUTOSLOPE :Omgeving aanpassen onder gebouwen, spoorwegen, enz. toestaan: {STRING} -STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Laat het aanpassen van funderingne onder gebouwen en spoor toe zonder deze te verwijderen +STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Staat het aanpassen van funderingen onder gebouwen en sporen toe zonder deze te verwijderen STR_CONFIG_SETTING_CATCHMENT :Gebruik meer realistische handelsgebieden: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Heb verschillende grootte verzorgingsgebied voor verschillende typen stations en luchthavens STR_CONFIG_SETTING_EXTRADYNAMITE :Sta verwijderen van meer stedelijke wegen, bruggen en tunnels toe: {STRING} @@ -1186,16 +1186,16 @@ STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Hellingsterkte voor wegvoertuigen: {STRING} STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Steilheid van een schuine tegel voor een wegvoertuig. Hogere waarden maken het moeilijker om een heuvel te beklimmen STR_CONFIG_SETTING_FORBID_90_DEG :Verbied treinen en schepen om 90° te draaien: {STRING} -STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 graden draaien treden op wanneer een horizontale baan direct gevolgd door een verticale baan stuk op de aangrenzende tegel, waardoor de trein daarna 90 graad wanneer het doorlopen van de tegel rand plaats van de gebruikelijke 45 graden voor andere spoor combinaties. Dit geldt ook voor de draaicirkel van schepen -STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Sta het samenvoegen van niet direct aaneensluitende stations toe: {STRING} -STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Sta toe dat er aanvullende onderdelen aan een station worden geplaatst, zonder dat reed bestaande onderdelen beïnvloed worden. Gebruikt Ctrl+Click tijdens het plaatsen van nieuwe onderdelen. +STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Draaiingen met 90° treden op wanneer een horizontale baan direct gevolgd wordt door een verticaal baanstuk op de aangrenzende tegel, waardoor de trein daarna 90 graden draait wanneer de tegelrand wordt overgestoken in plaats van de gebruikelijke 45 graden voor andere spoorcombinaties. Dit geldt ook voor de draaicirkel van schepen +STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Sta het samenvoegen van indirect aansluitende stations toe: {STRING} +STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Sta toe dat er aanvullende onderdelen aan een station worden geplaatst zonder dat reeds bestaande onderdelen beïnvloed worden. Ctrl+klik is vereist tijdens het plaatsen van nieuwe onderdelen. STR_CONFIG_SETTING_INFLATION :Inflatie: {STRING} -STR_CONFIG_SETTING_INFLATION_HELPTEXT :Schakel de inflatie in de economie in, waar de kosten iets sneller stijgen dan de betalingen -STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximum brug lengte: {STRING} +STR_CONFIG_SETTING_INFLATION_HELPTEXT :Schakel inflatie in de economie in, waardoor de kosten iets sneller stijgen dan de betalingen +STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximum bruglengte: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximum lengte voor te bouwen bruggen STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Maximum brughoogte: {STRING} -STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Maximum hoogte ombruggen te bouwen -STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximum tunnel lengte: {STRING} +STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Maximum hoogte om bruggen te bouwen +STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximum tunnellengte: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Maximum lengte voor te bouwen tunnels STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Handmatige bouwmethode voor primaire industrieën: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Wijze van financiering van een primaire industrie. 'geen' betekent dat het niet mogelijk is om te financieren, 'prospectie' betekent dat financiering mogelijk is, maar de bouw vindt plaats in een willekeurige plek op de kaart en kan mislukken ook, "als andere bedrijfstakken": ruwe industrieën kan worden geconstrueerd door bedrijven als verwerkende industrie in elke positie zij willen @@ -1223,19 +1223,19 @@ STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :aan het einde STR_CONFIG_SETTING_AUTOSCROLL :Verschuif scherm als muis aan de rand is: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Wanneer aan, start een subvenster met scrollen wanneer de muis vlak bij de rand van het venster komt STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Uitgeschakeld -STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Hoofd kijkvenster, alleen volledigscherm -STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Hoofd kijkvenster +STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Hoofdkijkvenster, alleen volledig scherm +STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Hoofdkijkvenster STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Elk kijkvenster STR_CONFIG_SETTING_BRIBE :Omkopen van de gemeente toestaan: {STRING} -STR_CONFIG_SETTING_BRIBE_HELPTEXT :Toestaan dat bedrijven mogen proberen de plaatselijke gemeente autoriteit om te kopen. Als de omkoping wordt opgemerkt door een inspecteur, zal de onderneming niet in staat zijn om in de stad actie te ondernemen voor zes maanden +STR_CONFIG_SETTING_BRIBE_HELPTEXT :Toestaan dat bedrijven mogen proberen de plaatselijke autoriteiten om te kopen. Als de omkoping wordt opgemerkt door een inspecteur, zal de onderneming niet in staat zijn om in de stad actie te ondernemen voor zes maanden STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Kopen van exclusieve transportrechten toestaan: {STRING} -STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Wanneer een bedrijf de exclusieve transportrechten van een stad koopt, ontvangen de stations (zowel passagiers als vracht) van tegenstander geen vracht voor één heel jaar. +STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Wanneer een bedrijf de exclusieve transportrechten van een stad koopt, ontvangen de stations (zowel passagiers als vracht) van de tegenstanders geen vracht voor één heel jaar. STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Financiering van gebouwen toestaan: {STRING} STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Deze optie staat bedrijven toe meer geld te geven aan steden voor de financiering van nieuwe huizen. -STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Financieren van lokale wegreconstructie toestaan: {STRING} +STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Financieren van lokale wegherbouwing toestaan: {STRING} STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Deze optie staat bedrijven toe geld te geven aan steden voor het herbouwen van wegen, zodat op wegbedrijven gesaboteerd worden. STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Geld geven aan andere bedrijven toestaan: {STRING} -STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Sta toe dat bedrijven geld naar elkaar overmaken in een multiplayer spel. +STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Sta toe dat bedrijven geld naar elkaar overmaken in een multiplayerspel. STR_CONFIG_SETTING_FREIGHT_TRAINS :Gewichtsfactor voor vracht om zware treinen te simuleren: {STRING} STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Stel de impact van het vervoer van vracht bij treinen. Een hogere waarde maakt het vervoer van vracht veeleisender voor treinen, met name in heuvels STR_CONFIG_SETTING_PLANE_SPEED :Vliegtuig snelheidsfactor: {STRING} @@ -1252,7 +1252,7 @@ STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Sta doorrijhalt STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Laat het bouwen van doorrijhaltes toe op wegen van andere bedrijven STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Deze instelling kan niet gewijzigd worden als er voertuigen zijn STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Onderhoud infrastructuur: {STRING} -STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Wanneer ingeschakeld, infrastructuur veroorzaakt onderhoudskosten. De kosten groeit boven-proportioneel met de grootte van het netwerk, hetgeen van hogere invloed is op grotere bedrijven dan kleinere +STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Wanneer dit is ingeschakeld, veroorzaakt de infrastructuur onderhoudskosten. De kosten groeien boven-proportioneel met de grootte van het netwerk, waardoor grotere bedrijven hierdoor meer worden beïnvloed dan kleinere STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Vliegvelden verlopen niet: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Het inschakelen van deze instelling zorgt ervoor dat elke luchthaven soort altijd beschikbaar blijft na de introductie @@ -1277,26 +1277,26 @@ STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} maand{P STR_CONFIG_SETTING_AUTORENEW_MONEY :Minimum benodigd geld voor automatisch vernieuwen: {STRING} STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimale hoeveelheid geld die op de bank moet blijven alvorens automatisch vernieuwen voertuigen te starten STR_CONFIG_SETTING_ERRMSG_DURATION :Duur van foutbericht: {STRING} -STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duur voor het weergeven van foutmeldingen in een rood venster. Merk op dat sommige (kritische) foutmeldingen niet automatisch wordt gesloten na deze tijd, deze moeten handmatig worden gesloten +STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duur voor het weergeven van foutberichten in een rood venster. Merk op dat sommige (kritische) foutmeldingen niet automatisch worden gesloten na deze tijd, deze moeten handmatig worden gesloten STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} seconde{P 0 "" n} STR_CONFIG_SETTING_HOVER_DELAY :Toon tooltips: {STRING} -STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Vertraging voordat tooltips worden weergegeven wanneer de muis over een interface-element. Als alternatief kunnen tooltips worden gebonden aan de rechter muisknop wanneer de waarde 0 is. +STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Vertraging voordat tooltips worden weergegeven wanneer de muis over een interface-element. Als alternatief kunnen tooltips worden gebonden aan de rechtermuisknop wanneer de waarde 0 is. STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Wijs aan voor {COMMA} seconde{P 0 "" n} STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Rechtsklik STR_CONFIG_SETTING_POPULATION_IN_LABEL :Geef het inwoneraantal bij een stad weer: {STRING} STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Toon de populatie van een stad in hun tekst op de kaart STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Dikte van de lijnen in grafieken: {STRING} -STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Breedte van de lijnen in de grafiek. Een dunne lijn is preciezer leesbaar, een dikke lijn is makkelijker te zien en kleuren zijn gemakkelijker herkenbaar.e lijn +STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Breedte van de lijnen in de grafiek. Een dunne lijn is preciezer leesbaar, een dikke lijn is makkelijker te zien en kleuren zijn makkelijker om te onderscheiden STR_CONFIG_SETTING_LANDSCAPE :Landschap: {STRING} -STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landschappen definiëren basis gameplay scenario's met verschillende vracht en stadsgroei eisen. NewGRF en Game Scripts kunnen fijne instellingen hebben +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landschappen definiëren standaard gameplayscenario's met verschillende vracht- en stadsgroei-eisen. NewGRF en spelscripts kunnen daarentegen fijnere controle bieden STR_CONFIG_SETTING_LAND_GENERATOR :Landgenerator: {STRING} -STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :De originele generator afhankelijk van de basis graphics set, en composeert vaste landschap vormen. TerraGenesis is een Perlin-ruis gebaseerde generator met fijnere instellingen +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :De originele generator hangt af van de standaard graphicsset en stelt vaste landschapsvormen samen. TerraGenesis is een op Perlin noise gebaseerde generator met fijnere besturingsinstellingen STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Origineel STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Terrein type: {STRING} STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Alleen TerraGenesis) Heuvelachtigheid van het landschap -STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industrie-dichtheid: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industriedichtheid: {STRING} STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Stel in hoeveel industrieën moeten worden gegenereerd en welk niveau tijdens het spel moet worden gehandhaafd STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum afstand van de rand voor Olierafinaderijen: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Olieraffinaderijen worden alleen gebouwd nabij de kaart grens, dat is aan de kust van eiland kaarten @@ -1323,8 +1323,8 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Draaiing van ho STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Tegen de klok in STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Met de klok mee STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :De hoogte van een plat scenario wordt: {STRING} -STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Een of meer vakjes aan de noordelijke rand zijn niet leeg -STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Een of meer vakjes aan de rand zijn geen water +STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Eén of meer vakjes aan de noordelijke rand zijn niet leeg +STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Eén of meer vakjes aan de rand zijn geen water STR_CONFIG_SETTING_STATION_SPREAD :Maximale stationsgrootte: {STRING} STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Maximum gebied waar onderdelen van één station op verspreid mogen zijn. Grotere gebieden vertragen het spel! @@ -1342,7 +1342,7 @@ STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :Gedrag wanneer STR_CONFIG_SETTING_SMOOTH_SCROLLING :Vloeiend scrollen kijkvenster: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Bepalen hoe de hoofdweergave schuift naar een specifieke positie bij het klikken op de minikaart of bij de afgifte van een opdracht om naar een specifiek object op de kaart. Indien ingeschakeld, de viewport scrollt soepel, als deze uitgeschakeld gaat u rechtstreeks naar de beoogde plek STR_CONFIG_SETTING_MEASURE_TOOLTIP :Toon dimensie-informatie bij het gebruik van diverse bouwgereedschappen: {STRING} -STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Geef tegel-afstanden en hoogteverschillen bij het slepen tijdens de bouw werkzaamheden +STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Geef tegelafstanden en hoogteverschillen weer bij het slepen tijdens het bouwen STR_CONFIG_SETTING_LIVERIES :Laat alle voertuigkleuren zien: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Beheer het gebruik van voertuigspecifieke levering voor voertuigen (in tegenstelling tot bedrijfsspecifieke leveringen). STR_CONFIG_SETTING_LIVERIES_NONE :Niets @@ -1371,7 +1371,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+klik STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Uit STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scrollen met linkermuisknop: {STRING} -STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Schakel scrollen met de linkermuis knop in door te slepen. Dit is vooral handig bij het gebruik van een touch-screen voor scrollen +STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Schakel scrollen met de linkermuisknop in door te slepen. Dit is vooral handig bij het gebruik van een touchscreen voor scrollen STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Sluit window met rechts-klik: {STRING} STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Sluit een venster door met de rechtermuisknop erin te klikken. Schakelt de tooltip uit met de rechtermuisknop! @@ -1379,7 +1379,7 @@ STR_CONFIG_SETTING_AUTOSAVE :Automatisch ops STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Kies interval tussen automatische spelopslag STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Gebruik {STRING} datumformaat voor naamgeving van opgeslagen spellen -STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Formaat van de datum in op te slaan spel bestandsnamen +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Formaat van de datum in savegamebestandsnamen STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :lang (31e dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) @@ -1389,13 +1389,13 @@ STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Wanneer ingesch STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Toestaan wanneer gepauzeerd: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Selecteer welke acties kunnen worden uitgevoerd terwijl het spel is gepauzeerd STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Geen mogelijkheden -STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Alle niet-constructie mogelijkheden +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Alle niet-constructiemogelijkheden STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Alles behalve landschapsaanpassingen STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Alle mogelijkheden STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gebruik groepen voor voertuigenlijst: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Schakel het gebruik van de geavanceerde voertuigenlijsten in voor het groeperen van voertuigen STR_CONFIG_SETTING_LOADING_INDICATORS :Gebruik laadindicatoren: {STRING} -STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Geef aan of laad indicatoren worden weergegeven boven ladende of lossende voertuigen +STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Geef aan of laadindicatoren worden weergegeven boven ladende of lossende voertuigen STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Toon dienstregeling in tikken ipv in dagen: {STRING} STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Toon reistijden in tijdtabellen in het spelticks in plaats van dagen STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Toon aankomst- en vertrektijden in dienstregeling: {STRING} @@ -1403,7 +1403,7 @@ STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Geef de verwach STR_CONFIG_SETTING_QUICKGOTO :Snel voertuigorders maken: {STRING} STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Pre-selecteer de 'Ga naar cursor' bij het openen van de orders venster STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Standaard spoorsoort (bij nieuw of opgeslagen spel): {STRING} -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Rail type om te selecteren na het starten of het laden van een spel. 'eerst beschikbare' selecteert de oudste vorm van tracks, 'laatst beschikbare' het nieuwste type van tracks selecteert, en 'meest gebruikte' selecteert het type die op dit moment het meest in gebruik is +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Spoortype om te selecteren na het starten of het laden van een spel. 'eerst beschikbare' selecteert de oudste vorm van sporen, 'laatst beschikbare' selecteert het nieuwste type van sporen, en 'meest gebruikte' selecteert het type dat op dit moment het meest in gebruik is STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Eerst beschikbare STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Laatst beschikbare STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Meest gebruikte @@ -1412,7 +1412,7 @@ STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Geef gereservee STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Hou bouwgereedschappen actief na gebruik: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Houd de bouwhulpmiddelen voor bruggen, tunnels, enz. open na gebruik STR_CONFIG_SETTING_EXPENSES_LAYOUT :Groepeer uitgaven in bedrijfsfinanciënscherm: {STRING} -STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Definieer de lay-out voor het bedrijf uitgaven venster +STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Definieer de lay-out voor het bedrijfsuitgavenvenster STR_CONFIG_SETTING_SOUND_TICKER :Nieuwsticker: {STRING} STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Speel geluidseffect voor samenvatting nieuwsberichten @@ -1432,33 +1432,33 @@ STR_CONFIG_SETTING_SOUND_AMBIENT :Omgeving: {STRI STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Speel omgevingsgeluidseffecten van landschap, industrieën en steden STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Bouwen van infrastructuur uitschakelen wanneer geen geschikt voertuig beschikbaar is: {STRING} -STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Wanneer ingeschakeld, de infrastructuur is alleen beschikbaar als er ook voertuigen beschikbaar zijn, het voorkomen van verspilling van tijd en geld aan onbruikbare infrastructuur +STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Wanneer je dit inschakelt, is de infrastructuur alleen beschikbaar als er ook voertuigen beschikbaar zijn. Dit voorkomt verspilling van tijd en geld aan onbruikbare infrastructuur STR_CONFIG_SETTING_MAX_TRAINS :Maximum aantal treinen per bedrijf: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Maximum aantal treinen dat een bedrijf kan hebben STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximum aantal wegvoertuigen per bedrijf: {STRING} -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximum aantal wegvoertuigen die een bedrijf kan hebben +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximum aantal wegvoertuigen dat een bedrijf kan hebben STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximum aantal vliegtuigen per bedrijf: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Maximum aantal vliegtuigen dat een bedrijf kan hebben STR_CONFIG_SETTING_MAX_SHIPS :Maximum aantal schepen per bedrijf: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maximum aantal schepen dat een bedrijf kan hebben STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Treinen voor de computer uitschakelen: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Het inschakelen van deze instelling maakt het bouwen van treinen onmogelijk voor een computer-speler +STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Het inschakelen van deze instelling maakt het bouwen van treinen onmogelijk voor een computerspeler STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Wegvoertuigen voor de computer uitschakelen: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Het inschakelen van deze instelling maakt het bouwen van wegvoertuigen onmogelijk voor een computer-speler +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Het inschakelen van deze instelling maakt het bouwen van wegvoertuigen onmogelijk voor een computerspeler STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Vliegtuigen voor de computer uitschakelen: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Het inschakelen van deze instelling maakt het het bouwen van vliegtuigen onmogelijk voor een computer-speler +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Het inschakelen van deze instelling maakt het het bouwen van vliegtuigen onmogelijk voor een computerspeler STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Schepen voor de computer uitschakelen: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Het inschakelen van deze instelling maakt het het bouwen van schepen onmogelijk voor een computer-speler +STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Het inschakelen van deze instelling maakt het het bouwen van schepen onmogelijk voor een computerspeler STR_CONFIG_SETTING_AI_PROFILE :Standaard instellingenprofiel: {STRING} -STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Kies welk instellingsprofiel moet worden gebruikt bij willekeurige AI's of als startwaardes, wanneer een nieuwe AI of Game Script wordt toegevoegd +STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Kies welk instellingsprofiel moet worden gebruikt bij willekeurige AI's of als startwaardes, wanneer een nieuwe AI of spelscript wordt toegevoegd STR_CONFIG_SETTING_AI_PROFILE_EASY :Makkelijk STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Gemiddeld STR_CONFIG_SETTING_AI_PROFILE_HARD :Moeilijk STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Laat computerspelers toe in netwerkspel: {STRING} -STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Sta door computer gegenereerde speler toe deel te nemen in multiplayer spelen. +STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Sta door computer gegenereerde speler toe deel te nemen in multiplayerspellen STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes voordat scripts worden gestopt: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximum aantal berekeningsstappen die een script kan maken in een beurt @@ -1517,30 +1517,30 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Samengevat STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Volledig STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Kleurenfoto's komen in: {STRING} -STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Jaar dat de krant aankondigingen in kleur worden afgedrukt. Voor dit jaar wordt zwart-wit gebruikt +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Jaar dat de krant aankondigt in kleur te gaan afdrukken. Voor dit jaar wordt zwart-wit gebruikt STR_CONFIG_SETTING_STARTING_YEAR :Beginjaar: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Vloeiende economie inschakelen (meer, kleinere veranderingen): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Wanneer ingeschakeld, industrie produktie verandert vaker en in kleinere stappen. Deze instelling heeft meestal geen effect, als de industrie soorten worden geleverd door een NewGRF STR_CONFIG_SETTING_ALLOW_SHARES :Sta het kopen van aandelen van andere bedrijven toe: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wanneer ingeschakeld, toestaan kopen en verkopen van bedrijfsaandelen. Aandelen zullen alleen beschikbaar zijn voor bedrijven die een bepaalde leeftijd hebben bereikt +STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wanneer ingeschakeld is het toegestaan om bedrijfsaandelen te kopen en te verkopen. Aandelen zullen alleen beschikbaar zijn voor bedrijven die een bepaalde leeftijd hebben bereikt STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage van routeopbrengst in overdrachtssysteem: {STRING} -STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage van het inkomen besteed aan de intermediaire delen in feeder-systemen, waardoor meer controle over de inkomsten is +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage van het inkomen besteed aan de intermediaire delen in feedersystemen waardoor er meer controle over de inkomsten is STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Bij slepen, plaats seinen elke: {STRING} -STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Stel de afstand waarop signalen worden gebouwd op een spoor tot aan de volgende hindernis (signaal, kruising), als signalen worden gesleept +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Stel de afstand waarop signalen worden gebouwd op een spoor in totaan de volgende hindernis (signaal, kruising) als signalen worden gesleept STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} tegel{P 0 "" s} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Bij slepen, hou vaste afstand tussen seinen: {STRING} -STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Selecteer het gedrag van het sein plaatsing bij Ctrl + slepen seinen. Indien uitgeschakeld, worden seinen rondom tunnels of bruggen om lange stukken te vermijden, zonder seinen. Indien ingeschakeld, worden seinen geplaatst elke N tegels, waardoor de uitlijning van de seinen op parallelle sporen makkelijker is +STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Selecteer het gedrag van seinplaatsing wanneer je met Ctrl+slepen seinen plaatst. Indien dit uitgeschakeld is, dan worden seinen rondom tunnels of bruggen geplaatst om lange stukken te vermijden zonder seinen. Indien dit ingeschakeld is, dan worden seinen om de N tegels geplaatst, waardoor de uitlijning van de seinen op parallelle sporen makkelijker is STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Plaats automatisch armseinen voor: {STRING} STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Stel het jaar waarin elektrische seinen zal worden gebruikt voor sporen. Voor dit jaar zal niet-elektrische seinen worden gebruikt (die exact dezelfde functie hebben, maar verschillend uiterlijk) -STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Activeer sein-GUI: {STRING} -STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Toon een venster voor het kiezen van soorten seinen om te bouwen, in plaats van alleen window-loos sein-type rotatie met Ctrl + klikken op bouwen seinen +STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Activeer de seininterface: {STRING} +STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Toon een venster waar je de soorten seinen kunt kiezen om te bouwen in plaats van alleen vensterloze seintyperotatie met Ctrl+klikken op gebouwde seinen STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Seintype dat standaard moet worden gebouwd: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Standaard te gebruiken sein. STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Normale seinen STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Routeseinen STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :Eenrichtingsrouteseinen -STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Blader door seintypen: {STRING} -STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Selecteer welke soorten seinen worden gebruikt, wanneer Ctrl + klikken op een buildsein met het sein gereedschap +STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Blader door seintypes: {STRING} +STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Selecteer welke soorten seinen worden gebruikt wanneer je Ctrl + klikt op een bouwsignaal met het seingereedschap STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Alleen normaal STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Alleen routeseinen STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Allemaal @@ -1600,69 +1600,69 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Normaal STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Snel STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Heel snel STR_CONFIG_SETTING_LARGER_TOWNS :Verhouding van gemeenten die steden zullen worden: {STRING} -STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Aantal steden dat een stad wordt, dus een stad die begint groter en groeit sneller +STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Aantal steden die een stad worden, dus een stad die groter begint en sneller groeit STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 op {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Geen -STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Stadsgroei-indicator: {STRING} +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Stadsgroeiindicator: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gemiddelde grootte van steden in vergelijking tot normale steden bij het begin van het spel. -STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Bijwerken distributie grafiek elke {STRING}{NBSP}dag{P 0:2 "" en} +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Werk distributiegrafiek elke {STRING}{NBSP}dag{P 0:2 "" en} bij STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tijd tussen opeenvolgende herberekeningen van de link grafiek. Elke herberekening berekent de plannen voor een component van de grafiek. Dat betekent dat een waarde X voor deze instelling betekent niet dat de hele grafiek wordt elke X dagen worden bijgewerkt. Slechts een component wil. Hoe korter u instellen hoe meer CPU-tijd nodig is om het te berekenen zal zijn. Hoe langer je instellen hoe langer het zal duren totdat de lading distributie start op nieuwe routes. STR_CONFIG_SETTING_LINKGRAPH_TIME :Neem {STRING}{NBSP}dag{P 0:2 "" en} voor de herberekening van de distributie grafiek STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Tijd gebruikt voor elke herberekening van een link grafiek component. Wanneer een herberekening wordt gestart, wordt een thread voortgebracht die mag lopen voor dit aantal dagen. Hoe korter u dit instelt des te waarschijnlijker het is dat de draad niet is voltooid als het zou moeten. Dan stopt het spel totdat het is ("lag"). Hoe langer je instellen hoe langer het duurt voor de distributie aan te passen wanneer routes te wijzigen. STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :handmatig STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asymmetrisch STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :symmetrisch -STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributie-modus voor passagiers: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributiemodus voor passagiers: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"symmetrisch" betekent dat ongeveer hetzelfde aantal passagiers gaan van een station A naar station B als een van B naar A. "asymmetrische" betekent dat willekeurig aantal passagiers kunnen gaan in beide richtingen. "handmatig" betekent dat er geen automatische distributie zal plaatsvinden voor passagiers. -STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Distributie-modus voor post: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"symmetrisch" betekent dat ongeveer dezelfde hoeveelheid e-mail wordt verzonden van een station A naar station B als een van B naar A. "asymmetrische" dat willekeurige hoeveelheden post in beide richtingen worden verzonden. "handmatig" betekent dat er geen automatische distributie zal plaatsvinden voor post. -STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Distributie-modus voor de GEPANTSERDE lading klasse: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :De GEPANTSERDE lading klasse bevat waardevolle spullen in het gematigde klimaat, diamanten in de subtropische of goud in subarctische klimaat. NewGRFs kan dat veranderen. "symmetrisch" betekent dat ongeveer dezelfde hoeveelheid lading die wordt verzonden van een station A naar station B als een van B naar A. "asymmetrische" dat willekeurige deze vracht kan in beide richtingen worden verzonden. "handmatig" betekent dat er geen automatische distributie zal plaatsvinden voor die lading. Het wordt aanbevolen om dit op asymmetrische of handmatig bij het spelen van subarctische, zoals banken zullen geen goud terug te sturen naar goudmijnen. Voor gematigde en subtropische kunt u ook kiezen symmetrische als banken zullen waardevolle spullen terugsturen naar de oorsprong bank van enkele lading van kostbaarheden. -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Distributie-modus voor andere vrachtsoorten: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"symmetrisch" betekent dat willekeurige hoeveelheden lading in beide richtingen kan worden gestuurd. "manual" betekent dat er geen automatische distributie zal plaatsvinden voor die lading. +STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Distributiemodus voor post: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"symmetrisch" betekent dat ongeveer dezelfde hoeveelheid post zal worden verzonden van een station A naar een station B als B naar A. "asymmetrisch" betekent dat willekeurige hoeveelheden post in beide richtingen worden verzonden. "handmatig" betekent dat er geen automatische distributie zal plaatsvinden voor post. +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Distributiemodus voor de GEPANTSERDE ladingsklasse: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :De GEPANTSERDE ladingsklasse bevat waardevolle spullen in het gematigde klimaat, diamanten in het subtropische klimaat of goud in het subarctische klimaat. NewGRF's kunnen dat veranderen. "symmetrisch" betekent dat ongeveer dezelfde hoeveelheid lading wordt verzonden van een station A naar station B als een van B naar A. "asymmetrisch" betekent dat deze vracht willekeurig in beide richtingen kan worden verzonden. "handmatig" betekent dat er geen automatische distributie zal plaatsvinden voor die lading. Het wordt aanbevolen om dit op asymmetrisch of handmatig te zetten bij het spelen van subarctisch klimaat, omdat banken geen goud zullen terugsturen naar goudmijnen. Voor gematigde en subtropische klimaten kan je ook symmetrisch kiezen, omdat banken waardevolle spullen zullen terugsturen naar de oorspronkelijke bank. +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Distributiemodus voor andere vrachtsoorten: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"symmetrisch" betekent dat willekeurige hoeveelheden lading in beide richtingen kunnen worden gestuurd. "handmatig" betekent dat er geen automatische distributie zal plaatsvinden voor die lading. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Verdeelnauwkeurigheid: {STRING} -STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Hoe hoger de instelling des te meer CPU-tijd de berekening van de link grafiek zal gebruiken. Als het te lang duurt kan vertraging opleveren. Als u deze instelt op een lage waarde, echter, zal de verdeling onnauwkeurig zijn, en de lading zal niet altijd worden verzonden naar de plaatsen die u verwacht. +STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Hoe hoger de instelling, des te meer CPU-tijd de berekening van de linkgrafiek zal gebruiken. Als het te lang duurt, kan dan dat lag opleveren. Als je dit echter op een lage waarde instelt, zal de verdeling onnauwkeurig zijn, en kan het zijn dat vracht niet wordt gestuurd naar de plekken waar het naartoe moet gaan. STR_CONFIG_SETTING_DEMAND_DISTANCE :Effect van afstand op de vraag: {STRING} -STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Als je dit op een waarde hoger dan 0, de afstand tussen het station van herkomst A van enige vracht en een mogelijke bestemming B zal een effect hebben op de hoeveelheid lading verzonden van A naar B. Hoe verder weg B is van A des te minder lading wordt verzonden. Hoe hoger u deze instelt, zal het minder lading worden gezonden naar verder geleden stations en meer lading zal worden verzonden naar dichtbij gelegen stations. +STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Als je dit op een waarde hoger dan 0 zet, dan zal de afstand tussen het station van herkomst A met enige vracht en een mogelijke bestemming B effect hebben op de hoeveelheid lading verzonden van A naar B. Hoe verder weg B is van A, des te minder lading wordt verzonden. Hoe hoger je deze instelt, hoe minder lading wordt verzonden naar verder geleden stations en meer lading zal worden verzonden naar dichtbij gelegen stations. STR_CONFIG_SETTING_DEMAND_SIZE :Hoeveelheid van de kerende vracht voor symmetrische modus: {STRING} -STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Door dit op minder dan 100% te zetten lijkt de symmetrische verdeling meer op het asymmetrische verdeling. Minder vracht zal geforceerd worden teruggestuurd als er een bepaalde hoeveelheid wordt verzonden naar een station. Op 0% van de symmetrische verdeling gedraagt deze zicht als de asymmetrische verdeling. +STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Door dit op minder dan 100% te zetten lijkt de symmetrische verdeling meer op de asymmetrische verdeling. Minder vracht zal geforceerd worden om zich terug te sturen als er een bepaalde hoeveelheid wordt verzonden naar een station. Op 0% van de symmetrische verdeling gedraagt deze zicht als de asymmetrische verdeling. STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Verzadiging van korte routes voor het gebruik van ruime routes: {STRING} STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Vaak zijn er meerdere routes mogelijk tussen twee stations. Cargodist zal de kortste route eerst verzadigen, gebruik dan de tweede kortste route tot die verzadigd is en ga zo maar door. Verzadiging wordt bepaald door een schatting van de capaciteit en het geplande gebruik. Zodra alle routes verzadigd zijn, maar er is meer vraag, zal alle wegen overbelast worden, die met hoge capaciteit eerst. In veel gevallen zat het algoritme niet nauwkeurig de capaciteit inschatten, helaas. Met deze instelling kunt u aangeven tot welk percentage een korter pad moet worden verzadigd eer de eerst volgende langere route wordt gekozen. Zet deze op minder dan 100% om overvolle stations in geval van overschat capaciteit te voorkomen. -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Snelheid eenheden: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Wanneer een snelheid wordt weergegeven in de gebruikersinterface, laten dat in de geselecteerde eenheden zien -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Snelheidseenheden: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Wanneer een snelheid wordt weergegeven in de gebruikersinterface, dan moet het worden getoond in de geselecteerde eenheden +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperiaal (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrisch (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) -STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Voertuig kracht eenheden: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Als het verbruik van een voertuig wordt weergegeven in de gebruikersinterface, laten dat in de geselecteerde eenheden zien -STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Imperial (hp) +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Voertuigkrachteenheden: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Als het verbruik van een voertuig wordt weergegeven in de gebruikersinterface, dan moet het worden getoond in de geselecteerde eenheden +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Imperiaal (hp) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Metrisch (hp) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :SI (kW) -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Gewichten eenheden: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT :Wanneer er gewichten worden weergegeven in de gebruikersinterface, laten dat in de geselecteerde eenheden zien -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :Imperial (short t/ton) +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Gewichtseenheden: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT :Wanneer er gewichten worden weergegeven in de gebruikersinterface, dan moeten ze worden getoond in de geselecteerde eenheden +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :Imperiaal (short t/ton) STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :Metrisch (t/ton) STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :SI (kg) -STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :Volume eenheden: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT :Wanneer volumes worden getoond in de gebruikersinterface, laten dat in de geselecteerde eenheden zien -STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :Imperial (gal) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :Volume-eenheden: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT :Wanneer volumes worden getoond in de gebruikersinterface, dan moeten ze worden getoond in de geselecteerde eenheden +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :Imperiaal (gal) STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Metrisch (l) STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³) -STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Trekkracht eenheden: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Trekkrachteenheden: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :Wanneer trekkracht, wordt weergegeven in de gebruikersinterface, laten dat in de geselecteerde eenheden zien -STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperial (lbf) +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperiaal (lbf) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Metrisch (kgf) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :SI (kN) -STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :hoogte eenheden: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :Wanneer hoogtes worden weergegeven in de gebruikersinterface, laten dat in de geselecteerde eenheden zien -STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Hoogte-eenheden: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :Wanneer hoogtes worden weergegeven in de gebruikersinterface, moet het worden getoond in de geselecteerde eenheden +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperiaal (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrisch (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) @@ -1681,7 +1681,7 @@ STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physics STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routebepaling STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Beperkingen STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Rampen / Ongelukken -STR_CONFIG_SETTING_GENWORLD :{ORANGE}Wereld generatie +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Wereldgeneratie STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Omgeving STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoriteiten STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Steden @@ -1711,17 +1711,17 @@ STR_CONFIG_ERROR_ARRAY :{WHITE}... fout STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... ongeldige waarde '{STRING}' voor '{STRING}' STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... karakters gevonden aan het einde van instellingen '{STRING}' STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... negeer NewGRF '{STRING}': dubbel GRF ID met '{STRING}' -STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... negeer ongeldig NewGRF '{STRING}': {STRING} +STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... negeer ongeldige NewGRF '{STRING}': {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :niet gevonden STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :onveilig voor statisch gebruik STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :systeem NewGRF STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :niet compatibel met deze versie van OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :onbekend -STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... compressie niveau '{STRING}' is niet geldig -STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... savegame formaat '{STRING}' is niet beschikbaar. Valt terug naar '{STRING}' -STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... negeert Basis Grafische set '{STRING}': niet gevonden -STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... negeert Basis Geluid set '{STRING}': niet gevonden -STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... negeert Basis Muziek set '{STRING}': niet gevonden +STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... compressieniveau '{STRING}' is niet geldig +STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... savegameformaat '{STRING}' is niet beschikbaar. Valt terug naar '{STRING}' +STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... negeert standaard graphicsset '{STRING}': niet gevonden +STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... negeert standaard geluidsset '{STRING}': niet gevonden +STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... negeert standaard muziekset '{STRING}': niet gevonden STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Geen geheugen meer STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Toewijzen van {BYTES} van spritecache mislukt. De spritecache werd teruggebracht tot {BYTES}. Dit zal de prestaties van OpenTTD verlagen. Om het geheugen te verminderen kunt u proberen om 32bpp graphics en / of zoom-in levels uit te schakelen @@ -1792,7 +1792,7 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}Weet je # Cheat window STR_CHEATS :{WHITE}Cheats STR_CHEATS_TOOLTIP :{BLACK}Keuzevakjes geven aan of je deze cheat eerder hebt gebruikt -STR_CHEATS_WARNING :{BLACK}Waarschuwing! Je staat op het punt je medespelers te verraden. Bedenk dat zo'n schande eeuwig wordt onthouden +STR_CHEATS_WARNING :{BLACK}Waarschuwing! Je staat op het punt je medespelers te verraden. Onthoud dat zo'n schande eeuwig wordt onthouden STR_CHEAT_MONEY :{LTBLUE}Verhoog geld met {CURRENCY_LONG} STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Spelen als bedrijf: {ORANGE}{COMMA} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magische bulldozer (industrieën en andere onverplaatsbare objecten verwijderen): {ORANGE}{STRING} @@ -2356,19 +2356,19 @@ STR_STATION_CLASS_WAYP :Controleposten # Signal window STR_BUILD_SIGNAL_CAPTION :{WHITE}Seinkeuze -STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Bloksein (armsein){}Dit is het simpelste soort sein, dat slechts één trein tegelijk in hetzelfde blok toelaat +STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Bloksein (armsein){}Dit is het simpelste soort sein dat slechts één trein tegelijk in hetzelfde blok toelaat STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Ingangssein (semafoor){}Groen zolang als er één of meer groene uitgangsseinen zijn volgend na dit sein. Anders is deze rood STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Uitgangssein (armsein){}Gedraagt zich hetzelfde als een gewoon bloksein, maar is nodig om ingangs- en combinatieseinen te sturen STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Combinatiesein (armsein){}Het combinatiesein gedraagt zich als zowel ingangs- als uitgangssein. Zo kun je grote netwerken van beginseinen maken -STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Routesein (armsein){}Een routesein laat meer dan één trein tegelijk in een seinblok toe, als de trein een route kan reserveren naar een veilige stopplaats. Routeseinen kunnen van achteren worden gepasseerd -STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Eenrichtingsrouteseinen (armsein){}Een routesein laat meer dan één trein tegelijk in een seinblok toe, als de trein een route kan reserveren naar een veilige stopplaats. Eenrichtingsrouteseinen kunnen niet van achteren worden gepasseerd +STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Routesein (armsein){}Een routesein laat meer dan één trein tegelijk in een seinblok toe als de trein een route kan reserveren naar een veilige stopplaats. Routeseinen kunnen van achteren worden gepasseerd +STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Eenrichtingsrouteseinen (armsein){}Een routesein laat meer dan één trein tegelijk in een seinblok toe als de trein een route kan reserveren naar een veilige stopplaats. Eenrichtingsrouteseinen kunnen niet van achteren worden gepasseerd STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Standaard sein (elektrisch){}Seinen zijn nodig om te voorkomen dat treinen botsen bij netwerken met meer dan één trein -STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Ingangssein (electrisch){}Groen als er meer dan één groen uitgangssein is in de volgende sectie. Anders is deze rood +STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Ingangssein (elektrisch){}Groen als er meer dan één groen uitgangssein is in de volgende sectie. Anders is deze rood STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Uitgangssein (elektrisch){}Gedraagt zich hetzelfde als een standaard sein, maar is nodig om ingangs- & combinatie-seinen aan te sturen -STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Combinatiesein (electric){}Het combinatiesein gedraagt zich als zowel ingangs- als uitgangs-sein. Zo kun je grote netwerken van beginseinen maken -STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Routeseinen (elektrisch){}Een routesein laat meer dan één trein tegelijk op een seinblok toe, als de trein een route kan reserveren naar een veilige stopplaats. Routeseinen kunnen van achteren worden gepasseerd -STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Eenrichtingsrouteseinen (elektrisch){}Een routesein laat meer dan één trein tegelijk op een seinblok toe, als de trein een route kan reserveren naar een veilige stopplaats. Eenrichtingsrouteseinen kunnen niet van achteren worden gepasseerd -STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Sein ombouwen{}Indien geselecteerd, zal door te klikken op een bestaand sein deze worden omgebouwd naar het geselecteerde seintype en variant, Ctrl+klik verandert de bestaande variant (armsein/elektrisch). Shift+klik toont de geschatte ombouwkosten +STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Combinatiesein (elektrisch){}Het combinatiesein gedraagt zich als zowel ingangs- als uitgangssein. Zo kun je grote netwerken van beginseinen maken +STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Routeseinen (elektrisch){}Een routesein laat meer dan één trein tegelijk op een seinblok toe als de trein een route kan reserveren naar een veilige stopplaats. Routeseinen kunnen van achteren worden gepasseerd +STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Eenrichtingsrouteseinen (elektrisch){}Een routesein laat meer dan één trein tegelijk op een seinblok toe als de trein een route kan reserveren naar een veilige stopplaats. Eenrichtingsrouteseinen kunnen niet van achteren worden gepasseerd +STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Sein ombouwen{}Als dit geselecteerd is, dan zal door te klikken op een bestaand sein deze worden omgebouwd naar het geselecteerde seintype en variant, Ctrl+klik verandert de bestaande variant (armsein/elektrisch). Shift+klik toont de geschatte ombouwkosten STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Dichtheid van seinen bij het slepen STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Verklein dichtheid van seinen bij het slepen STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Vergroot dichtheid van seinen bij het slepen @@ -2379,10 +2379,10 @@ STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Kies typ STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Brugkeuze - klik op de gewenste brug om die te bouwen STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} -STR_BRIDGE_NAME_SUSPENSION_STEEL :Hang, Staal +STR_BRIDGE_NAME_SUSPENSION_STEEL :Hangend, Staal STR_BRIDGE_NAME_GIRDER_STEEL :Koker, Staal STR_BRIDGE_NAME_CANTILEVER_STEEL :Cantilever, Staal -STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Hang, Beton +STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Hangend, Beton STR_BRIDGE_NAME_WOODEN :Hout STR_BRIDGE_NAME_CONCRETE :Beton STR_BRIDGE_NAME_TUBULAR_STEEL :Buis, Staal @@ -2468,7 +2468,7 @@ STR_AIRPORT_HELISTATION :Helikopterstati STR_AIRPORT_CLASS_SMALL :Kleine vliegvelden STR_AIRPORT_CLASS_LARGE :Grote vliegvelden STR_AIRPORT_CLASS_HUB :Centraal vliegveld -STR_AIRPORT_CLASS_HELIPORTS :Helikopter-vliegvelden +STR_AIRPORT_CLASS_HELIPORTS :Helikoptervliegvelden STR_STATION_BUILD_NOISE :{BLACK}Geluidsoverlast: {GOLD}{COMMA} @@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrein in bedr STR_ABOUT_OPENTTD :{WHITE}Over OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originele copyright {COPYRIGHT} 1995 Chris Sawyer, alle rechten voorbehouden STR_ABOUT_VERSION :{BLACK}OpenTTD versie {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Het OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Het OpenTTD-team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spel Opslaan @@ -2938,7 +2938,7 @@ STR_NEWGRF_BROKEN :{WHITE}Gedrag v STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Wagon '{1:ENGINE}' gewijzigde status van aandrijfeenheid wanneer niet in een depot STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Het verandert de lengte van voertuig '{1:ENGINE}' terwijl het niet in een depot is STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Het wijzigde voertuigcapaciteit voor '{1:ENGINE}' wanneer niet in een depot of ombouwen -STR_BROKEN_VEHICLE_LENGTH :{WHITE}Trein '{VEHICLE}' behorend bij '{COMPANY}' heeft een ongeldige lengte. Het is waarschijnlijk veroorzaakt door problemen met NewGRFs. Het spel kan desynchroniseren of vastlopen +STR_BROKEN_VEHICLE_LENGTH :{WHITE}Trein '{VEHICLE}' behorend bij '{COMPANY}' heeft een ongeldige lengte. Het is waarschijnlijk veroorzaakt door problemen met NewGRF's. Het spel kan desynchroniseren of vastlopen STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' geeft onjuiste informatie STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Vracht-/ombouwinformatie voor '{1:ENGINE}' wijkt af van aanschaflijst na het bouwen. Dit kan resulteren in problemen bij ombouwen door automatisch vernieuwen/vervangen @@ -3148,14 +3148,14 @@ STR_STATION_VIEW_GROUP_D_S_V :Bestemming-Bron STR_STATION_VIEW_GROUP_D_V_S :Bestemming-Via-Bron ############ range for rating starts -STR_CARGO_RATING_APPALLING :Teleurstellend +STR_CARGO_RATING_APPALLING :Verschrikkelijk STR_CARGO_RATING_VERY_POOR :Erg slecht STR_CARGO_RATING_POOR :Slecht STR_CARGO_RATING_MEDIOCRE :Matig STR_CARGO_RATING_GOOD :Goed STR_CARGO_RATING_VERY_GOOD :Erg goed -STR_CARGO_RATING_EXCELLENT :Geweldig -STR_CARGO_RATING_OUTSTANDING :Uitstekend +STR_CARGO_RATING_EXCELLENT :Uitstekend +STR_CARGO_RATING_OUTSTANDING :Voortreffelijk ############ range for rating ends STR_STATION_VIEW_CENTER_TOOLTIP :{BLACK}Centreer het scherm op de locatie van het station. Ctrl+klik opent een nieuw venster op de locatie van het station @@ -3237,7 +3237,7 @@ STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Bouw bed STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}Bekijk bedrijfshoofdkwartier STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Toon bedrijfshoofdkwartier STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Verplaats bedrijfshoofdkwartier -STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Herbouw bedrijfshoofdkwartier ergens anders voor 1% van de bedrijfswaarde. Shift+klik toont verwachte kosten zonder HQ te verplaatsen +STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Herbouw bedrijfshoofdkwartier ergens anders voor 1% van de bedrijfswaarde. Shift+klik toont verwachte kosten zonder hoofdkwartier te verplaatsen STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Details STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Bekijken gedetailleerde aantallen infrastructuur @@ -3250,8 +3250,8 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Verander STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Naam directeur STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Verander de naam van de directeur -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Koop 25% aandeel in bedrijf -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Verkoop 25% aandeel in bedrijf +STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Koop een aandeel van 25% in dit bedrijf +STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Verkoop een aandeel van 25% in dit bedrijf STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Koop een aandeel van 25% in dit bedrijf. Shift+klik toont verwachte kosten zonder te kopen STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Verkoop een aandeel van 25% in dit bedrijf. Shift+klik toont verwachte kosten zonder te kopen @@ -3266,11 +3266,11 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Spoordele STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Seinen STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Wegdelen: STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD :{WHITE}Weg -STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Tramrails -STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Water tegels: +STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Tramsporen +STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Watertegels: STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanalen STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stations: -STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Stationtegels +STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Stationstegels STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS :{WHITE}Vliegvelden STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENCY_LONG}/jr @@ -3375,12 +3375,12 @@ STR_GROUP_OCCUPANCY :Huidig gebruik: STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window -STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nieuwe railvoertuigen -STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nieuwe elektrische railvoertuigen -STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nieuwe monorailrailvoertuigen -STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nieuwe zweefrailvoertuigen +STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nieuwe spoorvoertuigen +STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nieuwe elektrische spoorvoertuigen +STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nieuwe monorailvoertuigen +STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nieuwe zweefspoorvoertuigen -STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Railvoertuigen +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nieuwe spoorvoertuigen STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nieuwe wegvoertuigen STR_BUY_VEHICLE_SHIP_CAPTION :Nieuwe schepen STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nieuwe vliegtuigen @@ -3407,17 +3407,17 @@ STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. tre STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Bereik: {GOLD}{COMMA} tegels STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Vliegtuig type: {GOLD}{STRING} -STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Railvoertuigkeuzelijst. Klik op een railvoertuig voor informatie. Ctrl+klik voor wijzigen verbergen voertuig type -STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Wegvoertuigkeuzelijst. Klik op een wegvoertuig voor informatie. Ctrl+klik voor wijzigen verbergen voertuig type -STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Schipkeuzelijst. Klik op een schip voor informatie. Ctrl+klik voor wijzigen verbergen schip type -STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Vliegtuigkeuzelijst. Klik op een vliegtuig voor informatie. Ctrl+clik voor Wijzigen voor verbergenvlieftuig type +STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Spoorvoertuigkeuzelijst. Klik op een spoorvoertuig voor informatie. Ctrl+klik voor het aan/uitzetten van het verbergen van het voertuigtype +STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Wegvoertuigkeuzelijst. Klik op een wegvoertuig voor informatie. Ctrl+klik om het verbergen van het voertuigtype aan/uit te zetten. +STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Schipskeuzelijst. Klik op een schip voor informatie. Ctrl+klik voor het aan/uitzetten voor het verbergen van het schipstype +STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Vliegtuigkeuzelijst. Klik op een vliegtuig voor informatie. Ctrl+klik voor om het verbergen van het vliegtuigtype aan te zetten STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Koop spoorvoertuig STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Koop wegvoertuig STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Koop schip STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Koop vliegtuig -STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Koop het geselecteerde railvoertuig. Shift+klik toont verwachte kosten zonder te kopen +STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Koop het geselecteerde spoorvoertuig. Shift+klik toont verwachte kosten zonder te kopen STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Koop het geselecteerde wegvoertuig. Shift+klik toont verwachte kosten zonder te kopen STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Koop het geselecteerde schip. Shift+klik toont verwachte kosten zonder te kopen STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Koop het geselecteerde vliegtuig. Shift+klik toont verwachte kosten zonder te kopen @@ -3427,10 +3427,10 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Hernoem STR_BUY_VEHICLE_SHIP_RENAME_BUTTON :{BLACK}Hernoem STR_BUY_VEHICLE_AIRCRAFT_RENAME_BUTTON :{BLACK}Hernoem -STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Hernoem type van railvoertuig -STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Hernoem type van wegvoertuig -STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Hernoem type van schip -STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Hernoem type van vliegtuig +STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Hernoem type spoorvoertuig +STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Hernoem type wegvoertuig +STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Hernoem type schip +STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Hernoem type vliegtuig STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Verberg STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Verberg @@ -3442,10 +3442,10 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Toon STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Toon STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Toon -STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wijzig verberg/toon van treintype -STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wijzig verberg/toon van wegvoertuigtype -STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wijzig verberg/toon van schiptype -STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wijzig verberg/toon van vliegtuigtype +STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wijzigt het verbergen/tonen van het treintype +STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wijzigt het verbergen/tonen van het wegvoertuigtype +STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wijzigt het verbergen/tonen van het schipstype +STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wijzigt het verbergen/tonen van het vliegtuigtype STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Hernoem type van railvoertuig STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Hernoem type van wegvoertuig @@ -3969,32 +3969,32 @@ STR_DATE_YEAR_TOOLTIP :{BLACK}Selectee # AI debug window -STR_AI_DEBUG :{WHITE}AI/Game Script Debug +STR_AI_DEBUG :{WHITE}AI/Spelscriptdebug STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM}) STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Naam van het script STR_AI_DEBUG_SETTINGS :{BLACK}Instellingen STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Wijzig de instellingen van het script STR_AI_DEBUG_RELOAD :{BLACK}Herlaad computerspeler STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Verwijder computerspeler, herlaad het script en herstart computerspeler -STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Afbreken als een AI logbericht overeenstemt met de afbreektekst aan/uitschakelen +STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Afbreken in/uitschakelen als een AI-logbericht overeenstemt met de afbreektekst STR_AI_DEBUG_BREAK_ON_LABEL :{BLACK}Afbreken op: STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}Afbreken aan -STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}Als een AI logbericht overeenstemt met deze string wordt het spel gepauzeerd +STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}Als een AI-logbericht overeenstemt met deze string, dan wordt het spel gepauzeerd STR_AI_DEBUG_MATCH_CASE :{BLACK}Hoofdlettergevoelig -STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}Hoofdlettergevoeligheid bij vergelijken van AI logberichten t.o.v. de afbreekstring aan/uitzetten +STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}Hoofdlettergevoeligheid aan/uizetten bij het vergelijken van AI-logberichten t.o.v. de afbreekstring STR_AI_DEBUG_CONTINUE :{BLACK}Doorgaan STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Het spel vervolgen en de AI voortzetten -STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Toon debug gegevens van deze AI -STR_AI_GAME_SCRIPT :{BLACK}Game Script -STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Controleer het Game Script log +STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Toon debuggegevens van deze AI +STR_AI_GAME_SCRIPT :{BLACK}Spelscript +STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Controleer de log van het spelscript STR_ERROR_AI_NO_AI_FOUND :Geen geschikte AI gevonden.{} Deze AI is een 'dummy' en voert niets uit.{}Verschillende AI's kunnen worden gedownload via het 'Online Content' systeem STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Eén van de actieve scripts is vastgelopen. Meld dit a.u.b. bij de auteur van dit script met een schermprint van het AI/Spel script Debugscherm STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI/Spel script debugvenster is alleen beschikbaar voor de server # AI configuration window -STR_AI_CONFIG_CAPTION :{WHITE}AI/Spel script configuratie -STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Het Game Script dat in het volgende spel geladen wordt +STR_AI_CONFIG_CAPTION :{WHITE}AI/Spelscriptconfiguratie +STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Het spelscript dat in het volgende spel geladen wordt STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}De AI's die in het volgende spel geladen worden STR_AI_CONFIG_HUMAN_PLAYER :Menselijke speler STR_AI_CONFIG_RANDOM_AI :Willekeurige AI @@ -4005,13 +4005,13 @@ STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Geselect STR_AI_CONFIG_MOVE_DOWN :{BLACK}Omlaag verplaatsen STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}De geselecteerde AI naar omlaag verplaatsen in de lijst -STR_AI_CONFIG_GAMESCRIPT :{SILVER}Game Script +STR_AI_CONFIG_GAMESCRIPT :{SILVER}Spelscript STR_AI_CONFIG_AI :{SILVER}AI's STR_AI_CONFIG_CHANGE :{BLACK}Kies{STRING} STR_AI_CONFIG_CHANGE_NONE : STR_AI_CONFIG_CHANGE_AI :AI -STR_AI_CONFIG_CHANGE_GAMESCRIPT :Game Script +STR_AI_CONFIG_CHANGE_GAMESCRIPT :Spelscript STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Laad een ander script STR_AI_CONFIG_CONFIGURE :{BLACK}Configureer STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Configureer de parameters van het script @@ -4019,7 +4019,7 @@ STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Configur # Available AIs window STR_AI_LIST_CAPTION :{WHITE}Beschikbaar {STRING} STR_AI_LIST_CAPTION_AI :AI's -STR_AI_LIST_CAPTION_GAMESCRIPT :Game Scripts +STR_AI_LIST_CAPTION_GAMESCRIPT :Spelscripts STR_AI_LIST_TOOLTIP :{BLACK}Klik om een script te selecteren STR_AI_LIST_AUTHOR :{LTBLUE}Auteur: {ORANGE}{STRING} @@ -4034,7 +4034,7 @@ STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Script n # AI Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters STR_AI_SETTINGS_CAPTION_AI :AI -STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Game Script +STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Spelscript STR_AI_SETTINGS_CLOSE :{BLACK}Sluiten STR_AI_SETTINGS_RESET :{BLACK}Herstellen STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index f472e8234c..11e2c22f12 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -168,7 +168,7 @@ STR_ABBREV_ALL :{TINY_FONT}TOD # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}pasajero{P "" s} STR_BAGS :{COMMA}{NBSP}bolsa{P "" s} -STR_TONS :{COMMA}{NBSP}tonelada{P "" s} +STR_TONS :{G=f}{COMMA}{NBSP}tonelada{P "" s} STR_LITERS :{COMMA}{NBSP}litro{P "" s} STR_ITEMS :{COMMA}{NBSP}artículo{P "" s} STR_CRATES :{COMMA}{NBSP}caja{P "" s} @@ -204,8 +204,8 @@ 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}tonelada{P "" s} -STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP}tonelada{P "" s} +STR_UNITS_WEIGHT_LONG_IMPERIAL :{G=f}{COMMA}{NBSP}tonelada{P "" s} +STR_UNITS_WEIGHT_LONG_METRIC :{G=f}{COMMA}{NBSP}tonelada{P "" s} STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}kg STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}gal @@ -683,7 +683,7 @@ STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Clic en STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Clic en la pista de música para quitarla del programa actual (solo Personal 1 y 2) # Highscore window -STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Lista de empresas que han alcanzado {NUM} +STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Lista de empresas que han llegado a {NUM} STR_HIGHSCORE_TOP_COMPANIES_NETWORK_GAME :{BIG_FONT}{BLACK}Tabla de clasificación de empresas en {NUM} STR_HIGHSCORE_POSITION :{BIG_FONT}{BLACK}{COMMA}. STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN :Hombre de negocios @@ -1065,7 +1065,7 @@ STR_SEA_LEVEL_CUSTOM_PERCENTAGE :Personalizado ( STR_RIVERS_NONE :Ninguno STR_RIVERS_FEW :Muy pocos -STR_RIVERS_MODERATE :Regular +STR_RIVERS_MODERATE :Algunos STR_RIVERS_LOT :Muchos STR_DISASTER_NONE :Ninguno @@ -2317,12 +2317,12 @@ STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Construcción d STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Construir tramo de vías férreas en una orientación. Ctrl quita o coloca vías. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Construir tramo de vías férreas con orientación automática. Ctrl quita o coloca vías. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Construir depósito de trenes (para comprar y dar mantenimiento a trenes). Mayús muestra una estimación del precio -STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Construir puesto guía sobre vías férreas. Ctrl activa la unión de puestos guías. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Construir punto guía sobre vías férreas. Ctrl activa la unión de puntos guías. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Construir estación de ferrocarril. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Instalar señales de ferrocarril. Ctrl cambia entre señales mecánicas y eléctricas{}Al arrastrar sobre las vías se instalan señales a lo largo de un tramo recto elegido. Ctrl instala señales hasta el siguiente desvío u otra señal{}Ctrl+Clic cambia a la herramienta de selección de señales. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Construir puente de ferrocarril. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Construir túnel de ferrocarril. Mayús muestra una estimación del precio -STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Quitar vías férreas, señales, estaciones y puestos guías. Al mantener pulsado Ctrl se quitan también las vías al retirar estaciones o puestos guías +STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Quitar vías férreas, señales, estaciones y puntos guías. Al mantener pulsado Ctrl se quitan también las vías al retirar estaciones o puntos guías STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Convertir o actualizar tipos de vías férreas. Mayús muestra una estimación del precio STR_RAIL_NAME_RAILROAD :Ferrocarril @@ -3857,7 +3857,7 @@ STR_ORDER_GO_TO_STATION :{STRING} {STATI STR_ORDER_IMPLICIT :(Implícito) -STR_ORDER_FULL_LOAD :(Llenar) +STR_ORDER_FULL_LOAD :(Llenar todo) STR_ORDER_FULL_LOAD_ANY :(Llenar cualquiera) STR_ORDER_NO_LOAD :(No cargar) STR_ORDER_UNLOAD :(Descargar y cargar) @@ -4495,7 +4495,7 @@ STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_1 :Edificio de ofi STR_TOWN_BUILDING_NAME_SMALL_BLOCK_OF_FLATS_1 :Conjunto habitacional pequeño STR_TOWN_BUILDING_NAME_CHURCH_1 :Iglesia STR_TOWN_BUILDING_NAME_LARGE_OFFICE_BLOCK_1 :Complejo de oficinas -STR_TOWN_BUILDING_NAME_TOWN_HOUSES_1 :Casas del pueblo +STR_TOWN_BUILDING_NAME_TOWN_HOUSES_1 :Casas de pueblo STR_TOWN_BUILDING_NAME_HOTEL_1 :Hotel STR_TOWN_BUILDING_NAME_STATUE_1 :Estatua STR_TOWN_BUILDING_NAME_FOUNTAIN_1 :Fuente @@ -4876,7 +4876,7 @@ STR_FORMAT_COMPANY_NUM :(Empresa {COMMA STR_FORMAT_GROUP_NAME :Grupo {COMMA} STR_FORMAT_INDUSTRY_NAME :{1:STRING}, {0:TOWN} STR_FORMAT_WAYPOINT_NAME :Punto guía, {TOWN} -STR_FORMAT_WAYPOINT_NAME_SERIAL :Puesto guía #{1:COMMA}, {0:TOWN} +STR_FORMAT_WAYPOINT_NAME_SERIAL :Punto guía #{1:COMMA}, {0:TOWN} STR_FORMAT_DEPOT_NAME_TRAIN :Depósito de trenes, {TOWN} STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :Depósito de trenes #{1:COMMA}, {0:TOWN} From 6d1effd3c935dce2f4c5ac036c8e8b57812d6725 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 2 Sep 2017 17:45:39 +0000 Subject: [PATCH 401/417] (svn r27911) -Update from Eints: korean: 1 change by telk5093 hebrew: 4 changes by dnd_man --- src/lang/hebrew.txt | 4 ++++ src/lang/korean.txt | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 5fc7eb5f91..6acc603e3d 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1386,6 +1386,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :כבוי STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :גלילה בלחיצה שמאלית: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :אפשר גלילת המפה באמצעות גרירתה עם כפתור העכבר השמאלי. אפשרות זו שימושית במיוחד בעת שימוש במסך מגע לצורך גלילה +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :סגירת חלון בכפתור ימני: {STRING} STR_CONFIG_SETTING_AUTOSAVE :שמירה אוטומטית: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :בחר פרק זמן בין שמירות אוטומטיות @@ -2603,6 +2604,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}שם מ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}{LTBLUE}{STRING}: שדרוג גראפי STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK} :מקבל {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({1:STRING} {0:COMMA}/8 ) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}סוג מסילה: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}מגבלת מהירות על המסילה: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}הגבלת מהירות בכביש: {LTBLUE}{VELOCITY} @@ -3374,6 +3376,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :הסר את כ STR_GROUP_RENAME_CAPTION :{BLACK}שנה שם קבוצה +STR_GROUP_PROFIT_LAST_YEAR :רווח שנה שעברה: # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :רכבות חדשות @@ -3406,6 +3409,7 @@ STR_PURCHASE_INFO_ALL_TYPES :כל סוגי STR_PURCHASE_INFO_ALL_BUT :{CARGO_LIST} כל סוגי המטען למעט STR_PURCHASE_INFO_MAX_TE :{BLACK}כוח סחיבה מקסימלי: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}טווח: {GOLD}{COMMA} משבצות +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}סוג כלי טיס: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK} בחירת קרונות - לחץ על קרון לקבלת מידע STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}רשימת כלי הרכב - בחר כלי רכב למידע diff --git a/src/lang/korean.txt b/src/lang/korean.txt index c03ce722b6..9c6d98c05b 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -479,7 +479,7 @@ STR_ABOUT_MENU_GIANT_SCREENSHOT :스크린샷 STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'에 대해서 STR_ABOUT_MENU_SPRITE_ALIGNER :스프라이트 정렬도구 STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :박스 경계선 보기 전환 -STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :더러운 블록 색상 전환 +STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :시각적 업데이트 블록 표시 전환 ############ range ends here ############ range for ordinal numbers used for the place in the highscore window From 6f98cde882e2e9b4dd2a3a340eb8666e3a4889f6 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Sun, 3 Sep 2017 13:06:29 +0000 Subject: [PATCH 402/417] (svn r27912) -Fix (r13948): [NPF] Reserved track bits were not accounted for when trying to find any safe position. --- src/pathfinder/npf/npf.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index fb98332373..ee60dace40 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -961,7 +961,7 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) * multiple targets that are spread around, we should perform a breadth first * search by specifiying CalcZero as our heuristic. */ -static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start_tile1, AyStarNode *start2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStar_EndNodeCheck target_proc, AyStar_CalculateH heuristic_proc, AyStarUserData *user, uint reverse_penalty) +static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start_tile1, AyStarNode *start2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStar_EndNodeCheck target_proc, AyStar_CalculateH heuristic_proc, AyStarUserData *user, uint reverse_penalty, bool ignore_reserved = false) { int r; NPFFoundTargetData result; @@ -982,12 +982,14 @@ static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start start1->user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; start1->user_data[NPF_NODE_FLAGS] = 0; NPFSetFlag(start1, NPF_FLAG_IGNORE_START_TILE, ignore_start_tile1); + NPFSetFlag(start1, NPF_FLAG_IGNORE_RESERVED, ignore_reserved); _npf_aystar.AddStartNode(start1, 0); if (start2 != NULL) { start2->user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; start2->user_data[NPF_NODE_FLAGS] = 0; NPFSetFlag(start2, NPF_FLAG_IGNORE_START_TILE, ignore_start_tile2); NPFSetFlag(start2, NPF_FLAG_REVERSE, true); + NPFSetFlag(start2, NPF_FLAG_IGNORE_RESERVED, ignore_reserved); _npf_aystar.AddStartNode(start2, reverse_penalty); } @@ -1226,14 +1228,6 @@ bool NPFTrainFindNearestSafeTile(const Train *v, TileIndex tile, Trackdir trackd AyStarNode start1; start1.tile = tile; start1.direction = trackdir; - /* FIXME: NPFRouteInternal is wiping out any flags on startup, also the - * NPF_FLAG_IGNORE_RESERVED flag that was intended to be set on this line. - * The flag was never set properly, since introdued in r13948. Now the line - * is commented out to silence compiler warnings (using uninitialized 'flags'). - * Currently the NPF_FLAG_IGNORE_RESERVED is nowhere used. It has to be - * decided what to do with this flag. - * - * NPFSetFlag(&start1, NPF_FLAG_IGNORE_RESERVED, true); */ RailTypes railtypes = v->compatible_railtypes; if (override_railtype) railtypes |= GetRailTypeInfo(v->railtype)->compatible_railtypes; @@ -1241,7 +1235,7 @@ bool NPFTrainFindNearestSafeTile(const Train *v, TileIndex tile, Trackdir trackd /* perform a breadth first search. Target is NULL, * since we are just looking for any safe tile...*/ AyStarUserData user = { v->owner, TRANSPORT_RAIL, railtypes, ROADTYPES_NONE }; - return NPFRouteInternal(&start1, true, NULL, false, &fstd, NPFFindSafeTile, NPFCalcZero, &user, 0).res_okay; + return NPFRouteInternal(&start1, true, NULL, false, &fstd, NPFFindSafeTile, NPFCalcZero, &user, 0, true).res_okay; } bool NPFTrainCheckReverse(const Train *v) From 43f162c664719d51c7f2466b8957252b76265728 Mon Sep 17 00:00:00 2001 From: adf88 Date: Sun, 10 Sep 2017 14:02:13 +0000 Subject: [PATCH 403/417] (svn r27913) -Fix: 'unban' console command was not handling IPv6 adresses properly --- src/console_cmds.cpp | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 9cfc8e8f9d..d9706f7bf9 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -562,20 +562,25 @@ DEF_CONSOLE_CMD(ConUnBan) if (argc != 2) return false; - uint index = (strchr(argv[1], '.') == NULL) ? atoi(argv[1]) : 0; - index--; - uint i = 0; - - for (char **iter = _network_ban_list.Begin(); iter != _network_ban_list.End(); iter++, i++) { - if (strcmp(_network_ban_list[i], argv[1]) == 0 || index == i) { - free(_network_ban_list[i]); - _network_ban_list.Erase(iter); - IConsolePrint(CC_DEFAULT, "IP unbanned."); - return true; - } + /* Try by IP. */ + uint index; + for (index = 0; index < _network_ban_list.Length(); index++) { + if (strcmp(_network_ban_list[index], argv[1]) == 0) break; + } + + /* Try by index. */ + if (index >= _network_ban_list.Length()) { + index = atoi(argv[1]) - 1U; // let it wrap + } + + if (index < _network_ban_list.Length()) { + free(_network_ban_list[index]); + _network_ban_list.Erase(_network_ban_list.Get(index)); + IConsolePrint(CC_DEFAULT, "IP unbanned."); + } else { + IConsolePrint(CC_DEFAULT, "IP not in ban-list."); } - IConsolePrint(CC_DEFAULT, "IP not in ban-list."); return true; } From be48b325fdf6d905a889eb429c1e9bf13a79d046 Mon Sep 17 00:00:00 2001 From: adf88 Date: Sun, 10 Sep 2017 14:03:29 +0000 Subject: [PATCH 404/417] (svn r27914) -Fix/Feature: 'unban' console command - fix invalid help text and be more verbose --- src/console_cmds.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index d9706f7bf9..3b65224de8 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -553,9 +553,8 @@ DEF_CONSOLE_CMD(ConBan) DEF_CONSOLE_CMD(ConUnBan) { - if (argc == 0) { - IConsoleHelp("Unban a client from a network game. Usage: 'unban '"); + IConsoleHelp("Unban a client from a network game. Usage: 'unban '"); IConsoleHelp("For a list of banned IP's, see the command 'banlist'"); return true; } @@ -574,11 +573,14 @@ DEF_CONSOLE_CMD(ConUnBan) } if (index < _network_ban_list.Length()) { + char msg[64]; + seprintf(msg, lastof(msg), "Unbanned %s", _network_ban_list[index]); + IConsolePrint(CC_DEFAULT, msg); free(_network_ban_list[index]); _network_ban_list.Erase(_network_ban_list.Get(index)); - IConsolePrint(CC_DEFAULT, "IP unbanned."); } else { - IConsolePrint(CC_DEFAULT, "IP not in ban-list."); + IConsolePrint(CC_DEFAULT, "Invalid list index or IP not in ban-list."); + IConsolePrint(CC_DEFAULT, "For a list of banned IP's, see the command 'banlist'"); } return true; From bd68ed916dc0733b6a8bd801bc96f9b2117abc6d Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 11 Sep 2017 18:31:32 +0000 Subject: [PATCH 405/417] (svn r27915) -Fix (r27730) [FS#6620]: Glyphs in range U+0020 to U+00FF may only be defined in orig_extra.grf, not in openttd.grf. --- bin/baseset/openttd.grf | Bin 508098 -> 498506 bytes bin/baseset/orig_dos.obg | 2 +- bin/baseset/orig_dos_de.obg | 2 +- bin/baseset/orig_extra.grf | Bin 318212 -> 327856 bytes bin/baseset/orig_win.obg | 2 +- media/extra_grf/chars.nfo | 240 +------------------------- media/extra_grf/chars_orig_extra.nfo | 249 +++++++++++++++++++++++++++ media/extra_grf/orig_extra.nfo | 1 + 8 files changed, 254 insertions(+), 242 deletions(-) create mode 100644 media/extra_grf/chars_orig_extra.nfo diff --git a/bin/baseset/openttd.grf b/bin/baseset/openttd.grf index 168d00fbd858c29245a6d8f029e5f9d342502cb7..85d3fc8adc6f90cb9912c0ea79d0dbee280581a5 100644 GIT binary patch delta 44 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 G{r?B9^8V-m delta 36 pcmdncDAKY`n1zMmzvxDmNsP@->g`VIj6lo;#LU~B)LHUw0sz#v3nTyl diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index 049a3dca9b..2b7d43478d 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -76,7 +76,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -ORIG_EXTRA.GRF = 73b921a42814c47a84945b7e9add5d9f +ORIG_EXTRA.GRF = 0b10a95c0adee710ecca9c3d676be4f3 [origin] default = You can find it on your Transport Tycoon Deluxe CD-ROM. diff --git a/media/extra_grf/chars.nfo b/media/extra_grf/chars.nfo index 26db641b35..32462f8c1c 100644 --- a/media/extra_grf/chars.nfo +++ b/media/extra_grf/chars.nfo @@ -8,245 +8,7 @@ // -1 * 0 0C "Font characters by PaulC, Bilbo and Jasper Vries" -// Replace original characters - - -1 * 5 0A 01 02 41 00 - -1 sprites/chars.png 8bpp 10 10 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 20 10 4 12 0 -1 normal - -1 * 5 0A 01 02 86 00 - -1 sprites/chars.png 8bpp 50 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 70 10 9 12 0 -1 normal - -1 * 5 0A 01 01 8A 00 - -1 sprites/chars.png 8bpp 120 10 6 12 0 -1 normal - -1 * 5 0A 01 01 A0 00 - -1 sprites/chars.png 8bpp 230 10 10 12 0 -1 normal - -1 * 5 0A 01 04 A2 00 - -1 sprites/chars.png 8bpp 260 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 290 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 320 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 350 10 8 12 0 -1 normal - -1 * 5 0A 01 06 A7 00 - -1 sprites/chars.png 8bpp 410 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 440 10 12 12 0 -1 normal - -1 sprites/chars.png 8bpp 470 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 480 10 7 12 0 -1 normal - -1 sprites/chars.png 8bpp 500 10 7 12 0 -1 normal - -1 sprites/chars.png 8bpp 520 10 7 12 0 -1 normal - -1 * 5 0A 01 03 AE 00 - -1 sprites/chars.png 8bpp 560 10 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 570 10 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 580 10 5 12 0 -1 normal - -1 * 5 0A 01 05 B3 00 - -1 sprites/chars.png 8bpp 620 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 640 10 9 12 0 -1 normal - -1 sprites/chars.png 8bpp 660 10 9 12 0 -1 normal - -1 sprites/chars.png 8bpp 680 10 9 12 0 -1 normal - -1 sprites/chars.png 8bpp 700 10 9 12 0 -1 normal - -1 * 5 0A 01 03 BB 00 - -1 sprites/chars.png 8bpp 770 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 10 70 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 30 70 8 12 0 -1 normal - -1 * 5 0A 01 01 BF 00 - -1 sprites/chars.png 8bpp 70 70 9 12 0 -1 normal - -1 * 5 0A 01 05 C1 00 - -1 sprites/chars.png 8bpp 450 70 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 110 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 120 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 130 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 140 70 6 12 0 -1 normal - -1 * 5 0A 01 01 C7 00 - -1 sprites/chars.png 8bpp 160 70 6 12 0 -1 normal - -1 * 5 0A 01 03 CA 00 - -1 sprites/chars.png 8bpp 200 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 210 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 220 70 6 12 0 -1 normal - -1 * 5 0A 01 04 CE 00 - -1 sprites/chars.png 8bpp 230 70 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 240 70 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 250 70 5 12 0 -1 normal - -1 sprites/chars.png 8bpp 260 70 5 12 0 -1 normal - -1 * 5 0A 01 05 D3 00 - -1 sprites/chars.png 8bpp 290 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 310 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 320 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 330 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 340 70 6 12 0 -1 normal - -1 * 5 0A 01 03 DB 00 - -1 sprites/chars.png 8bpp 390 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 400 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 410 70 6 12 0 -1 normal - -1 * 5 0A 01 02 DF 00 - -1 sprites/chars.png 8bpp 420 70 7 12 0 -1 normal - -1 sprites/chars.png 8bpp 430 70 6 12 0 -1 normal - -1 * 5 0A 01 01 22 01 - -1 sprites/chars.png 8bpp 20 30 2 7 0 0 normal - -1 * 5 0A 01 01 7D 01 - -1 sprites/chars.png 8bpp 220 30 4 7 0 0 normal - -1 * 5 0A 01 02 80 01 - -1 sprites/chars.png 8bpp 230 30 9 7 0 0 normal - -1 sprites/chars.png 8bpp 250 30 3 7 0 0 normal - -1 * 5 0A 01 01 89 01 - -1 sprites/chars.png 8bpp 470 30 3 7 0 0 normal - -1 * 5 0A 01 01 9F 01 - -1 sprites/chars.png 8bpp 70 90 3 7 0 0 normal - -1 * 5 0A 01 01 A9 01 - -1 sprites/chars.png 8bpp 190 90 3 7 0 0 normal - -1 * 5 0A 01 02 BF 01 - -1 sprites/chars.png 8bpp 420 90 3 7 0 0 normal - -1 sprites/chars.png 8bpp 430 90 3 7 0 0 normal - -1 * 5 0A 01 01 02 02 - -1 sprites/chars.png 8bpp 20 40 4 21 0 -2 normal - -1 * 5 0A 01 01 41 02 - -1 sprites/chars.png 8bpp 30 40 14 21 0 -2 normal - -1 * 5 0A 01 06 46 02 - -1 sprites/chars.png 8bpp 50 40 10 21 0 -2 normal - -1 sprites/chars.png 8bpp 70 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 90 40 3 21 0 -2 normal - -1 sprites/chars.png 8bpp 100 40 13 21 0 -2 normal - -1 sprites/chars.png 8bpp 120 40 7 21 0 -2 normal - -1 sprites/chars.png 8bpp 130 40 16 21 0 -2 normal - -1 * 5 0A 01 01 50 02 - -1 sprites/chars.png 8bpp 150 40 16 21 0 -2 normal - -1 * 5 0A 01 04 52 02 - -1 sprites/chars.png 8bpp 170 40 8 21 0 -2 normal - -1 sprites/chars.png 8bpp 180 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 190 40 6 21 0 -2 normal - -1 sprites/chars.png 8bpp 200 40 6 21 0 -2 normal - -1 * 5 0A 01 01 5C 02 - -1 sprites/chars.png 8bpp 210 40 7 21 0 -2 normal - -1 * 5 0A 01 01 60 02 - -1 sprites/chars.png 8bpp 230 40 16 21 0 -2 normal - -1 * 5 0A 01 07 62 02 - -1 sprites/chars.png 8bpp 260 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 290 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 320 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 350 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 380 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 410 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 440 40 24 21 0 -2 normal - -1 * 5 0A 01 18 6A 02 - -1 sprites/chars.png 8bpp 480 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 500 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 520 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 540 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 560 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 570 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 580 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 590 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 600 40 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 620 40 18 21 0 -2 normal - -1 sprites/chars.png 8bpp 640 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 660 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 680 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 700 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 720 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 740 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 750 40 16 21 0 -2 normal - -1 sprites/chars.png 8bpp 770 40 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 10 100 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 30 100 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 50 100 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 70 100 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 90 100 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 450 100 14 21 0 -2 normal - -1 * 5 0A 01 01 85 02 - -1 sprites/chars.png 8bpp 140 100 12 21 0 -2 normal - -1 * 5 0A 01 01 88 02 - -1 sprites/chars.png 8bpp 170 100 19 21 0 -2 normal - -1 * 5 0A 01 02 92 02 - -1 sprites/chars.png 8bpp 270 100 11 21 0 -2 normal - -1 sprites/chars.png 8bpp 290 100 15 21 0 -2 normal - -1 * 5 0A 01 01 97 02 - -1 sprites/chars.png 8bpp 340 100 11 21 0 -2 normal - -1 * 5 0A 01 02 99 02 - -1 sprites/chars.png 8bpp 360 100 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 370 100 11 21 0 -2 normal - -1 * 5 0A 01 01 A0 02 - -1 sprites/chars.png 8bpp 430 100 14 21 0 -2 normal - -// New characters, all fonts except monospaced - -// U+007B: Left Curly Bracket -// U+007C: Vertical Line -// U+007D: Right Curly Bracket -// U+007E: Tilde - -1 * 14 12 03 00 04 7B 00 01 04 7B 00 02 04 7B 00 - -1 sprites/chars.png 8bpp 10 130 5 12 0 -1 normal - -1 sprites/chars.png 8bpp 20 130 3 12 0 -1 normal - -1 sprites/chars.png 8bpp 30 130 5 12 0 -1 normal - -1 sprites/chars.png 8bpp 50 130 7 12 0 -1 normal - -1 sprites/chars.png 8bpp 10 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 20 150 1 7 0 0 normal - -1 sprites/chars.png 8bpp 30 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 50 150 4 7 0 0 normal - -1 sprites/chars.png 8bpp 10 160 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 20 160 3 21 0 -2 normal - -1 sprites/chars.png 8bpp 30 160 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 50 160 10 21 0 -2 normal - -// U+007F: No-Break Space - -1 * 14 12 03 00 01 7F 00 01 01 7F 00 02 01 7F 00 - -1 sprites/chars.png 8bpp 70 130 2 12 0 -1 normal - -1 sprites/chars.png 8bpp 70 150 1 7 0 0 normal - -1 sprites/chars.png 8bpp 70 160 5 21 0 -2 normal - -// U+00AA: Feminine Ordinal Indicator - -1 * 14 12 03 00 01 AA 00 01 01 AA 00 02 01 AA 00 - -1 sprites/chars.png 8bpp 80 130 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 80 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 80 160 7 21 0 -2 normal - -// U+00AC: Not Sign -// U+00AD: Soft Hyphen - -1 * 14 12 03 00 02 AC 00 01 02 AC 00 02 02 AC 00 - -1 sprites/chars.png 8bpp 90 130 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 110 130 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 90 150 4 7 0 0 normal - -1 sprites/chars.png 8bpp 110 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 90 160 12 21 0 -2 normal - -1 sprites/chars.png 8bpp 110 160 9 21 0 -2 normal - -// U+00AF: Macron - -1 * 14 12 03 00 01 AF 00 01 01 AF 00 02 01 AF 00 - -1 sprites/chars.png 8bpp 130 130 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 130 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 130 160 12 21 0 -2 normal - -// U+00B4: Acute Accent -// U+00B5: Micro Sign -// U+00B6: Pilcrow Sign -// U+00B7: Middle Dot -// U+00B8: Cedilla -// U+00B9: Superscript One - -1 * 14 12 03 00 06 B4 00 01 06 B4 00 02 06 B4 00 - -1 sprites/chars.png 8bpp 150 130 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 160 130 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 180 130 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 200 130 3 12 0 -1 normal - -1 sprites/chars.png 8bpp 210 130 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 220 130 5 12 0 -1 normal - -1 sprites/chars.png 8bpp 150 150 2 7 0 0 normal - -1 sprites/chars.png 8bpp 160 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 180 150 6 7 0 0 normal - -1 sprites/chars.png 8bpp 200 150 1 7 0 0 normal - -1 sprites/chars.png 8bpp 210 150 2 7 0 0 normal - -1 sprites/chars.png 8bpp 220 150 2 7 0 0 normal - -1 sprites/chars.png 8bpp 150 160 4 21 0 -2 normal - -1 sprites/chars.png 8bpp 160 160 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 180 160 13 21 0 -2 normal - -1 sprites/chars.png 8bpp 200 160 3 21 0 -2 normal - -1 sprites/chars.png 8bpp 210 160 5 21 0 -2 normal - -1 sprites/chars.png 8bpp 220 160 6 21 0 -2 normal - -// U+00BC: Vulgar Fraction One Quarter -// U+00BD: Vulgar Fraction One Half - -1 * 14 12 03 00 02 BC 00 01 02 BC 00 02 02 BC 00 - -1 sprites/chars.png 8bpp 230 130 10 12 0 -1 normal - -1 sprites/chars.png 8bpp 250 130 10 12 0 -1 normal - -1 sprites/chars.png 8bpp 230 150 9 7 0 0 normal - -1 sprites/chars.png 8bpp 250 150 9 7 0 0 normal - -1 sprites/chars.png 8bpp 230 160 16 21 0 -2 normal - -1 sprites/chars.png 8bpp 250 160 16 21 0 -2 normal +// Note: Characters in range U+0020..U+00FF may only be defined in chars_orig_extra.nfo. // New characters, all fonts diff --git a/media/extra_grf/chars_orig_extra.nfo b/media/extra_grf/chars_orig_extra.nfo new file mode 100644 index 0000000000..7979e79450 --- /dev/null +++ b/media/extra_grf/chars_orig_extra.nfo @@ -0,0 +1,249 @@ +// +// $Id$ +// +// This file is part of OpenTTD. +// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . +// + -1 * 0 0C "Font characters by PaulC, Bilbo and Jasper Vries" + +// Replace original characters + + -1 * 5 0A 01 02 41 00 + -1 sprites/chars.png 8bpp 10 10 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 20 10 4 12 0 -1 normal + -1 * 5 0A 01 02 86 00 + -1 sprites/chars.png 8bpp 50 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 70 10 9 12 0 -1 normal + -1 * 5 0A 01 01 8A 00 + -1 sprites/chars.png 8bpp 120 10 6 12 0 -1 normal + -1 * 5 0A 01 01 A0 00 + -1 sprites/chars.png 8bpp 230 10 10 12 0 -1 normal + -1 * 5 0A 01 04 A2 00 + -1 sprites/chars.png 8bpp 260 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 290 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 320 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 350 10 8 12 0 -1 normal + -1 * 5 0A 01 06 A7 00 + -1 sprites/chars.png 8bpp 410 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 440 10 12 12 0 -1 normal + -1 sprites/chars.png 8bpp 470 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 480 10 7 12 0 -1 normal + -1 sprites/chars.png 8bpp 500 10 7 12 0 -1 normal + -1 sprites/chars.png 8bpp 520 10 7 12 0 -1 normal + -1 * 5 0A 01 03 AE 00 + -1 sprites/chars.png 8bpp 560 10 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 570 10 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 580 10 5 12 0 -1 normal + -1 * 5 0A 01 05 B3 00 + -1 sprites/chars.png 8bpp 620 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 640 10 9 12 0 -1 normal + -1 sprites/chars.png 8bpp 660 10 9 12 0 -1 normal + -1 sprites/chars.png 8bpp 680 10 9 12 0 -1 normal + -1 sprites/chars.png 8bpp 700 10 9 12 0 -1 normal + -1 * 5 0A 01 03 BB 00 + -1 sprites/chars.png 8bpp 770 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 10 70 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 30 70 8 12 0 -1 normal + -1 * 5 0A 01 01 BF 00 + -1 sprites/chars.png 8bpp 70 70 9 12 0 -1 normal + -1 * 5 0A 01 05 C1 00 + -1 sprites/chars.png 8bpp 450 70 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 110 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 120 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 130 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 140 70 6 12 0 -1 normal + -1 * 5 0A 01 01 C7 00 + -1 sprites/chars.png 8bpp 160 70 6 12 0 -1 normal + -1 * 5 0A 01 03 CA 00 + -1 sprites/chars.png 8bpp 200 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 210 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 220 70 6 12 0 -1 normal + -1 * 5 0A 01 04 CE 00 + -1 sprites/chars.png 8bpp 230 70 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 240 70 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 250 70 5 12 0 -1 normal + -1 sprites/chars.png 8bpp 260 70 5 12 0 -1 normal + -1 * 5 0A 01 05 D3 00 + -1 sprites/chars.png 8bpp 290 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 310 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 320 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 330 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 340 70 6 12 0 -1 normal + -1 * 5 0A 01 03 DB 00 + -1 sprites/chars.png 8bpp 390 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 400 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 410 70 6 12 0 -1 normal + -1 * 5 0A 01 02 DF 00 + -1 sprites/chars.png 8bpp 420 70 7 12 0 -1 normal + -1 sprites/chars.png 8bpp 430 70 6 12 0 -1 normal + -1 * 5 0A 01 01 22 01 + -1 sprites/chars.png 8bpp 20 30 2 7 0 0 normal + -1 * 5 0A 01 01 7D 01 + -1 sprites/chars.png 8bpp 220 30 4 7 0 0 normal + -1 * 5 0A 01 02 80 01 + -1 sprites/chars.png 8bpp 230 30 9 7 0 0 normal + -1 sprites/chars.png 8bpp 250 30 3 7 0 0 normal + -1 * 5 0A 01 01 89 01 + -1 sprites/chars.png 8bpp 470 30 3 7 0 0 normal + -1 * 5 0A 01 01 9F 01 + -1 sprites/chars.png 8bpp 70 90 3 7 0 0 normal + -1 * 5 0A 01 01 A9 01 + -1 sprites/chars.png 8bpp 190 90 3 7 0 0 normal + -1 * 5 0A 01 02 BF 01 + -1 sprites/chars.png 8bpp 420 90 3 7 0 0 normal + -1 sprites/chars.png 8bpp 430 90 3 7 0 0 normal + -1 * 5 0A 01 01 02 02 + -1 sprites/chars.png 8bpp 20 40 4 21 0 -2 normal + -1 * 5 0A 01 01 41 02 + -1 sprites/chars.png 8bpp 30 40 14 21 0 -2 normal + -1 * 5 0A 01 06 46 02 + -1 sprites/chars.png 8bpp 50 40 10 21 0 -2 normal + -1 sprites/chars.png 8bpp 70 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 90 40 3 21 0 -2 normal + -1 sprites/chars.png 8bpp 100 40 13 21 0 -2 normal + -1 sprites/chars.png 8bpp 120 40 7 21 0 -2 normal + -1 sprites/chars.png 8bpp 130 40 16 21 0 -2 normal + -1 * 5 0A 01 01 50 02 + -1 sprites/chars.png 8bpp 150 40 16 21 0 -2 normal + -1 * 5 0A 01 04 52 02 + -1 sprites/chars.png 8bpp 170 40 8 21 0 -2 normal + -1 sprites/chars.png 8bpp 180 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 190 40 6 21 0 -2 normal + -1 sprites/chars.png 8bpp 200 40 6 21 0 -2 normal + -1 * 5 0A 01 01 5C 02 + -1 sprites/chars.png 8bpp 210 40 7 21 0 -2 normal + -1 * 5 0A 01 01 60 02 + -1 sprites/chars.png 8bpp 230 40 16 21 0 -2 normal + -1 * 5 0A 01 07 62 02 + -1 sprites/chars.png 8bpp 260 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 290 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 320 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 350 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 380 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 410 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 440 40 24 21 0 -2 normal + -1 * 5 0A 01 18 6A 02 + -1 sprites/chars.png 8bpp 480 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 500 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 520 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 540 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 560 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 570 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 580 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 590 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 600 40 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 620 40 18 21 0 -2 normal + -1 sprites/chars.png 8bpp 640 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 660 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 680 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 700 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 720 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 740 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 750 40 16 21 0 -2 normal + -1 sprites/chars.png 8bpp 770 40 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 10 100 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 30 100 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 50 100 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 70 100 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 90 100 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 450 100 14 21 0 -2 normal + -1 * 5 0A 01 01 85 02 + -1 sprites/chars.png 8bpp 140 100 12 21 0 -2 normal + -1 * 5 0A 01 01 88 02 + -1 sprites/chars.png 8bpp 170 100 19 21 0 -2 normal + -1 * 5 0A 01 02 92 02 + -1 sprites/chars.png 8bpp 270 100 11 21 0 -2 normal + -1 sprites/chars.png 8bpp 290 100 15 21 0 -2 normal + -1 * 5 0A 01 01 97 02 + -1 sprites/chars.png 8bpp 340 100 11 21 0 -2 normal + -1 * 5 0A 01 02 99 02 + -1 sprites/chars.png 8bpp 360 100 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 370 100 11 21 0 -2 normal + -1 * 5 0A 01 01 A0 02 + -1 sprites/chars.png 8bpp 430 100 14 21 0 -2 normal + +// New characters, all fonts except monospaced + +// U+007B: Left Curly Bracket +// U+007C: Vertical Line +// U+007D: Right Curly Bracket +// U+007E: Tilde + -1 * 14 12 03 00 04 7B 00 01 04 7B 00 02 04 7B 00 + -1 sprites/chars.png 8bpp 10 130 5 12 0 -1 normal + -1 sprites/chars.png 8bpp 20 130 3 12 0 -1 normal + -1 sprites/chars.png 8bpp 30 130 5 12 0 -1 normal + -1 sprites/chars.png 8bpp 50 130 7 12 0 -1 normal + -1 sprites/chars.png 8bpp 10 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 20 150 1 7 0 0 normal + -1 sprites/chars.png 8bpp 30 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 50 150 4 7 0 0 normal + -1 sprites/chars.png 8bpp 10 160 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 20 160 3 21 0 -2 normal + -1 sprites/chars.png 8bpp 30 160 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 50 160 10 21 0 -2 normal + +// U+007F: No-Break Space + -1 * 14 12 03 00 01 7F 00 01 01 7F 00 02 01 7F 00 + -1 sprites/chars.png 8bpp 70 130 2 12 0 -1 normal + -1 sprites/chars.png 8bpp 70 150 1 7 0 0 normal + -1 sprites/chars.png 8bpp 70 160 5 21 0 -2 normal + +// U+00AA: Feminine Ordinal Indicator + -1 * 14 12 03 00 01 AA 00 01 01 AA 00 02 01 AA 00 + -1 sprites/chars.png 8bpp 80 130 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 80 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 80 160 7 21 0 -2 normal + +// U+00AC: Not Sign +// U+00AD: Soft Hyphen + -1 * 14 12 03 00 02 AC 00 01 02 AC 00 02 02 AC 00 + -1 sprites/chars.png 8bpp 90 130 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 110 130 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 90 150 4 7 0 0 normal + -1 sprites/chars.png 8bpp 110 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 90 160 12 21 0 -2 normal + -1 sprites/chars.png 8bpp 110 160 9 21 0 -2 normal + +// U+00AF: Macron + -1 * 14 12 03 00 01 AF 00 01 01 AF 00 02 01 AF 00 + -1 sprites/chars.png 8bpp 130 130 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 130 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 130 160 12 21 0 -2 normal + +// U+00B4: Acute Accent +// U+00B5: Micro Sign +// U+00B6: Pilcrow Sign +// U+00B7: Middle Dot +// U+00B8: Cedilla +// U+00B9: Superscript One + -1 * 14 12 03 00 06 B4 00 01 06 B4 00 02 06 B4 00 + -1 sprites/chars.png 8bpp 150 130 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 160 130 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 180 130 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 200 130 3 12 0 -1 normal + -1 sprites/chars.png 8bpp 210 130 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 220 130 5 12 0 -1 normal + -1 sprites/chars.png 8bpp 150 150 2 7 0 0 normal + -1 sprites/chars.png 8bpp 160 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 180 150 6 7 0 0 normal + -1 sprites/chars.png 8bpp 200 150 1 7 0 0 normal + -1 sprites/chars.png 8bpp 210 150 2 7 0 0 normal + -1 sprites/chars.png 8bpp 220 150 2 7 0 0 normal + -1 sprites/chars.png 8bpp 150 160 4 21 0 -2 normal + -1 sprites/chars.png 8bpp 160 160 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 180 160 13 21 0 -2 normal + -1 sprites/chars.png 8bpp 200 160 3 21 0 -2 normal + -1 sprites/chars.png 8bpp 210 160 5 21 0 -2 normal + -1 sprites/chars.png 8bpp 220 160 6 21 0 -2 normal + +// U+00BC: Vulgar Fraction One Quarter +// U+00BD: Vulgar Fraction One Half + -1 * 14 12 03 00 02 BC 00 01 02 BC 00 02 02 BC 00 + -1 sprites/chars.png 8bpp 230 130 10 12 0 -1 normal + -1 sprites/chars.png 8bpp 250 130 10 12 0 -1 normal + -1 sprites/chars.png 8bpp 230 150 9 7 0 0 normal + -1 sprites/chars.png 8bpp 250 150 9 7 0 0 normal + -1 sprites/chars.png 8bpp 230 160 16 21 0 -2 normal + -1 sprites/chars.png 8bpp 250 160 16 21 0 -2 normal diff --git a/media/extra_grf/orig_extra.nfo b/media/extra_grf/orig_extra.nfo index 03a8ff6741..534badab03 100644 --- a/media/extra_grf/orig_extra.nfo +++ b/media/extra_grf/orig_extra.nfo @@ -75,6 +75,7 @@ // // The real data of the GRF is acquired from several subfiles. // +#include "chars_orig_extra.nfo" #include "shore.nfo" #include "fix_graphics.nfo" #include "canals_extra.nfo" From 7bb2dedbd52da5943196e317637f667c3fc8354e Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 24 Sep 2017 13:35:27 +0000 Subject: [PATCH 406/417] (svn r27916) -Codechange: Enable usage of static_assert for MSVC --- src/stdafx.h | 2 +- src/viewport_sprite_sorter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/stdafx.h b/src/stdafx.h index 43e52ff279..237ead346d 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -383,7 +383,7 @@ typedef unsigned char byte; /* Compile time assertions. Prefer c++0x static_assert(). * Older compilers cannot evaluate some expressions at compile time, * typically when templates are involved, try assert_tcompile() in those cases. */ -#if defined(__STDCXX_VERSION__) || defined(__GXX_EXPERIMENTAL_CXX0X__) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(static_assert) +#if defined(__STDCXX_VERSION__) || defined(__GXX_EXPERIMENTAL_CXX0X__) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(static_assert) || (defined(_MSC_VER) && _MSC_VER >= 1600) /* __STDCXX_VERSION__ is c++0x feature macro, __GXX_EXPERIMENTAL_CXX0X__ is used by gcc, __GXX_EXPERIMENTAL_CPP0X__ by icc */ #define assert_compile(expr) static_assert(expr, #expr ) #define assert_tcompile(expr) assert_compile(expr) diff --git a/src/viewport_sprite_sorter.h b/src/viewport_sprite_sorter.h index 19b903e152..324ece3020 100644 --- a/src/viewport_sprite_sorter.h +++ b/src/viewport_sprite_sorter.h @@ -37,7 +37,7 @@ struct ParentSpriteToDraw { int32 left; ///< minimal screen X coordinate of sprite (= x + sprite->x_offs), reference point for child sprites int32 top; ///< minimal screen Y coordinate of sprite (= y + sprite->y_offs), reference point for child sprites - int first_child; ///< the first child to draw. + int32 first_child; ///< the first child to draw. bool comparison_done; ///< Used during sprite sorting: true if sprite has been compared with all other sprites }; From db3410e196e21b2cae9bea8648eebde26186dafe Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 24 Sep 2017 16:00:29 +0000 Subject: [PATCH 407/417] (svn r27917) -Add: MSVC 2017 project file generator. Most noticeable, std:c++latest is enabled. --- projects/generate | 15 + projects/generate.vbs | 15 + projects/langs_vs150.vcxproj | 390 +++ projects/langs_vs150.vcxproj.filters | 176 ++ projects/langs_vs150.vcxproj.filters.in | 12 + projects/langs_vs150.vcxproj.in | 61 + projects/openttd_vs150.vcxproj | 1323 +++++++++ projects/openttd_vs150.vcxproj.filters | 3050 ++++++++++++++++++++ projects/openttd_vs150.vcxproj.filters.in | 13 + projects/openttd_vs150.vcxproj.in | 344 +++ projects/settings_vs150.vcxproj | 54 + projects/settings_vs150.vcxproj.filters | 35 + projects/settings_vs150.vcxproj.filters.in | 15 + projects/settings_vs150.vcxproj.in | 48 + 14 files changed, 5551 insertions(+) create mode 100644 projects/langs_vs150.vcxproj create mode 100644 projects/langs_vs150.vcxproj.filters create mode 100644 projects/langs_vs150.vcxproj.filters.in create mode 100644 projects/langs_vs150.vcxproj.in create mode 100644 projects/openttd_vs150.vcxproj create mode 100644 projects/openttd_vs150.vcxproj.filters create mode 100644 projects/openttd_vs150.vcxproj.filters.in create mode 100644 projects/openttd_vs150.vcxproj.in create mode 100644 projects/settings_vs150.vcxproj create mode 100644 projects/settings_vs150.vcxproj.filters create mode 100644 projects/settings_vs150.vcxproj.filters.in create mode 100644 projects/settings_vs150.vcxproj.in diff --git a/projects/generate b/projects/generate index bd177bf71b..6e4ded57b0 100755 --- a/projects/generate +++ b/projects/generate @@ -22,6 +22,15 @@ then exit 1 fi +# openttd_vs150.sln is for MSVC 2017 +# openttd_vs150.vcxproj is for MSVC 2017 +# openttd_vs150.vcxproj.filters is for MSVC 2017 +# langs_vs150.vcxproj is for MSVC 2017 +# strgen_vs150.vcxproj is for MSVC 2017 +# strgen_vs150.vcxproj.filters is for MSVC 2017 +# generate_vs150.vcxproj is for MSVC 2017 +# version_vs150.vcxproj is for MSVC 2017 + # openttd_vs140.sln is for MSVC 2015 # openttd_vs140.vcxproj is for MSVC 2015 # openttd_vs140.vcxproj.filters is for MSVC 2015 @@ -317,15 +326,21 @@ generate "$openttdvcxproj" "openttd_vs100.vcxproj" generate "$openttdfiles" "openttd_vs100.vcxproj.filters" "$openttdfilters" generate "$openttdvcxproj" "openttd_vs140.vcxproj" generate "$openttdfiles" "openttd_vs140.vcxproj.filters" "$openttdfilters" +generate "$openttdvcxproj" "openttd_vs150.vcxproj" +generate "$openttdfiles" "openttd_vs150.vcxproj.filters" "$openttdfilters" generate "$lang" "langs_vs80.vcproj" generate "$lang" "langs_vs90.vcproj" generate "$langvcxproj" "langs_vs100.vcxproj" generate "$langfiles" "langs_vs100.vcxproj.filters" generate "$langvcxproj" "langs_vs140.vcxproj" generate "$langfiles" "langs_vs140.vcxproj.filters" +generate "$langvcxproj" "langs_vs150.vcxproj" +generate "$langfiles" "langs_vs150.vcxproj.filters" generate "$settings" "settings_vs80.vcproj" "$settingscommand" generate "$settings" "settings_vs90.vcproj" "$settingscommand" generate "$settingsvcxproj" "settings_vs100.vcxproj" "$settingscommand" generate "$settingsfiles" "settings_vs100.vcxproj.filters" generate "$settingsvcxproj" "settings_vs140.vcxproj" "$settingscommand" generate "$settingsfiles" "settings_vs140.vcxproj.filters" +generate "$settingsvcxproj" "settings_vs150.vcxproj" "$settingscommand" +generate "$settingsfiles" "settings_vs150.vcxproj.filters" diff --git a/projects/generate.vbs b/projects/generate.vbs index 6692b45e7f..c4bfb71d6d 100755 --- a/projects/generate.vbs +++ b/projects/generate.vbs @@ -10,6 +10,15 @@ Option Explicit Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") +' openttd_vs150.sln is for MSVC 2017 +' openttd_vs150.vcxproj is for MSVC 2017 +' openttd_vs150.vcxproj.filters is for MSVC 2017 +' langs_vs150.vcxproj is for MSVC 2017 +' strgen_vs150.vcxproj is for MSVC 2017 +' strgen_vs150.vcxproj.filters is for MSVC 2017 +' generate_vs150.vcxproj is for MSVC 2017 +' version_vs150.vcxproj is for MSVC 2017 + ' openttd_vs140.sln is for MSVC 2015 ' openttd_vs140.vcxproj is for MSVC 2015 ' openttd_vs140.vcxproj.filters is for MSVC 2015 @@ -380,6 +389,8 @@ generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs100.vcxproj", Null generate openttdfiles, ROOT_DIR & "/projects/openttd_vs100.vcxproj.filters", openttdfilters generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs140.vcxproj", Null generate openttdfiles, ROOT_DIR & "/projects/openttd_vs140.vcxproj.filters", openttdfilters +generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs150.vcxproj", Null +generate openttdfiles, ROOT_DIR & "/projects/openttd_vs150.vcxproj.filters", openttdfilters Dim lang, langvcxproj, langfiles lang = load_lang_data(ROOT_DIR & "/src/lang", langvcxproj, langfiles) @@ -389,6 +400,8 @@ generate langvcxproj, ROOT_DIR & "/projects/langs_vs100.vcxproj", Null generate langfiles, ROOT_DIR & "/projects/langs_vs100.vcxproj.filters", Null generate langvcxproj, ROOT_DIR & "/projects/langs_vs140.vcxproj", Null generate langfiles, ROOT_DIR & "/projects/langs_vs140.vcxproj.filters", Null +generate langvcxproj, ROOT_DIR & "/projects/langs_vs150.vcxproj", Null +generate langfiles, ROOT_DIR & "/projects/langs_vs150.vcxproj.filters", Null Dim settings, settingsvcxproj, settingscommand, settingsfiles settings = load_settings_data(ROOT_DIR & "/src/table", settingsvcxproj, settingscommand, settingsfiles) @@ -398,3 +411,5 @@ generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs100.vcxproj", setting generate settingsfiles, ROOT_DIR & "/projects/settings_vs100.vcxproj.filters", Null generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs140.vcxproj", settingscommand generate settingsfiles, ROOT_DIR & "/projects/settings_vs140.vcxproj.filters", Null +generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs150.vcxproj", settingscommand +generate settingsfiles, ROOT_DIR & "/projects/settings_vs150.vcxproj.filters", Null diff --git a/projects/langs_vs150.vcxproj b/projects/langs_vs150.vcxproj new file mode 100644 index 0000000000..5c339038d4 --- /dev/null +++ b/projects/langs_vs150.vcxproj @@ -0,0 +1,390 @@ + + + + + Debug + Win32 + + + + langs + {0F066B23-18DF-4284-8265-F4A5E7E3B966} + langs + MakeFileProj + + + + Utility + false + v141 + + + + + + + + + + ..\bin\lang\ + ..\objs\langs\ + + + + Generating strings.h + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\objs\langs\table + + + ./langs.tlb + + + + + + + Generating english language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\english.lng;%(Outputs) + + + Generating afrikaans language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\afrikaans.lng;%(Outputs) + + + Generating arabic_egypt language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\arabic_egypt.lng;%(Outputs) + + + Generating basque language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\basque.lng;%(Outputs) + + + Generating belarusian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\belarusian.lng;%(Outputs) + + + Generating brazilian_portuguese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\brazilian_portuguese.lng;%(Outputs) + + + Generating bulgarian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\bulgarian.lng;%(Outputs) + + + Generating catalan language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\catalan.lng;%(Outputs) + + + Generating croatian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\croatian.lng;%(Outputs) + + + Generating czech language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\czech.lng;%(Outputs) + + + Generating danish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\danish.lng;%(Outputs) + + + Generating dutch language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\dutch.lng;%(Outputs) + + + Generating english_AU language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\english_AU.lng;%(Outputs) + + + Generating english_US language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\english_US.lng;%(Outputs) + + + Generating esperanto language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\esperanto.lng;%(Outputs) + + + Generating estonian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\estonian.lng;%(Outputs) + + + Generating faroese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\faroese.lng;%(Outputs) + + + Generating finnish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\finnish.lng;%(Outputs) + + + Generating french language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\french.lng;%(Outputs) + + + Generating gaelic language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\gaelic.lng;%(Outputs) + + + Generating galician language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\galician.lng;%(Outputs) + + + Generating german language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\german.lng;%(Outputs) + + + Generating greek language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\greek.lng;%(Outputs) + + + Generating hebrew language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\hebrew.lng;%(Outputs) + + + Generating hungarian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\hungarian.lng;%(Outputs) + + + Generating icelandic language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\icelandic.lng;%(Outputs) + + + Generating indonesian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\indonesian.lng;%(Outputs) + + + Generating irish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\irish.lng;%(Outputs) + + + Generating italian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\italian.lng;%(Outputs) + + + Generating japanese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\japanese.lng;%(Outputs) + + + Generating korean language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\korean.lng;%(Outputs) + + + Generating latin language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\latin.lng;%(Outputs) + + + Generating latvian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\latvian.lng;%(Outputs) + + + Generating lithuanian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\lithuanian.lng;%(Outputs) + + + Generating luxembourgish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\luxembourgish.lng;%(Outputs) + + + Generating malay language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\malay.lng;%(Outputs) + + + Generating norwegian_bokmal language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\norwegian_bokmal.lng;%(Outputs) + + + Generating norwegian_nynorsk language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\norwegian_nynorsk.lng;%(Outputs) + + + Generating polish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\polish.lng;%(Outputs) + + + Generating portuguese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\portuguese.lng;%(Outputs) + + + Generating romanian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\romanian.lng;%(Outputs) + + + Generating russian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\russian.lng;%(Outputs) + + + Generating serbian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\serbian.lng;%(Outputs) + + + Generating simplified_chinese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\simplified_chinese.lng;%(Outputs) + + + Generating slovak language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\slovak.lng;%(Outputs) + + + Generating slovenian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\slovenian.lng;%(Outputs) + + + Generating spanish_MX language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\spanish_MX.lng;%(Outputs) + + + Generating spanish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\spanish.lng;%(Outputs) + + + Generating swedish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\swedish.lng;%(Outputs) + + + Generating tamil language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\tamil.lng;%(Outputs) + + + Generating thai language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\thai.lng;%(Outputs) + + + Generating traditional_chinese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\traditional_chinese.lng;%(Outputs) + + + Generating turkish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\turkish.lng;%(Outputs) + + + Generating ukrainian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\ukrainian.lng;%(Outputs) + + + Generating vietnamese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\vietnamese.lng;%(Outputs) + + + Generating welsh language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\welsh.lng;%(Outputs) + + + + + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} + false + + + + + + diff --git a/projects/langs_vs150.vcxproj.filters b/projects/langs_vs150.vcxproj.filters new file mode 100644 index 0000000000..0afc8c969a --- /dev/null +++ b/projects/langs_vs150.vcxproj.filters @@ -0,0 +1,176 @@ + + + + + {2a164580-9033-4a01-974b-b21da507efda} + + + + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + diff --git a/projects/langs_vs150.vcxproj.filters.in b/projects/langs_vs150.vcxproj.filters.in new file mode 100644 index 0000000000..0d60ee9595 --- /dev/null +++ b/projects/langs_vs150.vcxproj.filters.in @@ -0,0 +1,12 @@ + + + + + {2a164580-9033-4a01-974b-b21da507efda} + + + + +!!FILES!! + + diff --git a/projects/langs_vs150.vcxproj.in b/projects/langs_vs150.vcxproj.in new file mode 100644 index 0000000000..4600e36b6f --- /dev/null +++ b/projects/langs_vs150.vcxproj.in @@ -0,0 +1,61 @@ + + + + + Debug + Win32 + + + + langs + {0F066B23-18DF-4284-8265-F4A5E7E3B966} + langs + MakeFileProj + + + + Utility + false + v141 + + + + + + + + + + ..\bin\lang\ + ..\objs\langs\ + + + + Generating strings.h + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\objs\langs\table + + + ./langs.tlb + + + + + + + Generating english language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\english.lng;%(Outputs) + +!!FILES!! + + + + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} + false + + + + + + diff --git a/projects/openttd_vs150.vcxproj b/projects/openttd_vs150.vcxproj new file mode 100644 index 0000000000..a93c5a300b --- /dev/null +++ b/projects/openttd_vs150.vcxproj @@ -0,0 +1,1323 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + openttd + {668328A0-B40E-4CDB-BD72-D0064424414A} + openttd + + + + Application + false + Unicode + v141 + + + Application + false + Unicode + true + v141 + + + Application + false + Unicode + v141 + + + Application + false + Unicode + true + v141 + + + + + + + + + + + + + + + + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + false + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + false + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(ProjectDir)..\bin + + + + .\Release/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Full + AnySuitable + true + Size + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + 4Bytes + false + true + + + + + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies) + true + %(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + true + false + + + MachineX86 + true + 5.01 + + + PerMonitorHighDPIAware + + + + + .\Debug/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Disabled + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies) + true + LIBCMT.lib;%(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + false + + + MachineX86 + 5.01 + + + PerMonitorHighDPIAware + + + + + X64 + .\Release/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Full + AnySuitable + true + Size + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + Default + false + true + + + + + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies) + true + %(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + true + MachineX64 + true + 5.02 + + + PerMonitorHighDPIAware + + + + + X64 + .\Debug/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Disabled + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + + + + + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + Cdecl + Default + true + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies) + true + LIBCMT.lib;%(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + MachineX64 + 5.02 + + + PerMonitorHighDPIAware + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {0f066b23-18df-4284-8265-f4a5e7e3b966} + false + + + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} + false + + + {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} + false + + + + diff --git a/projects/openttd_vs150.vcxproj.filters b/projects/openttd_vs150.vcxproj.filters new file mode 100644 index 0000000000..06800ffdaf --- /dev/null +++ b/projects/openttd_vs150.vcxproj.filters @@ -0,0 +1,3050 @@ + + + + + {c76ff9f1-1e62-46d8-8d55-000000000000} + + + {c76ff9f1-1e62-46d8-8d55-000000000001} + + + {c76ff9f1-1e62-46d8-8d55-000000000002} + + + {c76ff9f1-1e62-46d8-8d55-000000000003} + + + {c76ff9f1-1e62-46d8-8d55-000000000004} + + + {c76ff9f1-1e62-46d8-8d55-000000000005} + + + {c76ff9f1-1e62-46d8-8d55-000000000006} + + + {c76ff9f1-1e62-46d8-8d55-000000000007} + + + {c76ff9f1-1e62-46d8-8d55-000000000008} + + + {c76ff9f1-1e62-46d8-8d55-000000000009} + + + {c76ff9f1-1e62-46d8-8d55-000000000010} + + + {c76ff9f1-1e62-46d8-8d55-000000000011} + + + {c76ff9f1-1e62-46d8-8d55-000000000012} + + + {c76ff9f1-1e62-46d8-8d55-000000000013} + + + {c76ff9f1-1e62-46d8-8d55-000000000014} + + + {c76ff9f1-1e62-46d8-8d55-000000000015} + + + {c76ff9f1-1e62-46d8-8d55-000000000016} + + + {c76ff9f1-1e62-46d8-8d55-000000000017} + + + {c76ff9f1-1e62-46d8-8d55-000000000018} + + + {c76ff9f1-1e62-46d8-8d55-000000000019} + + + {c76ff9f1-1e62-46d8-8d55-000000000020} + + + {c76ff9f1-1e62-46d8-8d55-000000000021} + + + {c76ff9f1-1e62-46d8-8d55-000000000022} + + + {c76ff9f1-1e62-46d8-8d55-000000000023} + + + {c76ff9f1-1e62-46d8-8d55-000000000024} + + + {c76ff9f1-1e62-46d8-8d55-000000000025} + + + {c76ff9f1-1e62-46d8-8d55-000000000026} + + + {c76ff9f1-1e62-46d8-8d55-000000000027} + + + {c76ff9f1-1e62-46d8-8d55-000000000028} + + + {c76ff9f1-1e62-46d8-8d55-000000000029} + + + {c76ff9f1-1e62-46d8-8d55-000000000030} + + + {c76ff9f1-1e62-46d8-8d55-000000000031} + + + {c76ff9f1-1e62-46d8-8d55-000000000032} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + MD5 + + + MD5 + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI API + + + Game API + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Drivers + + + Drivers + + + Drivers + + + Sprite loaders + + + Sprite loaders + + + Sprite loaders + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Pathfinder + + + Pathfinder + + + Pathfinder + + + Pathfinder + + + Pathfinder + + + Pathfinder + + + NPF + + + NPF + + + NPF + + + NPF + + + NPF + + + NPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + Video + + + Video + + + Video + + + Video + + + Music + + + Music + + + Music + + + Sound + + + Sound + + + Sound + + + Windows files + + + Windows files + + + Windows files + + + Threading + + + Threading + + + + + + + diff --git a/projects/openttd_vs150.vcxproj.filters.in b/projects/openttd_vs150.vcxproj.filters.in new file mode 100644 index 0000000000..cda491072c --- /dev/null +++ b/projects/openttd_vs150.vcxproj.filters.in @@ -0,0 +1,13 @@ + + + +!!FILTERS!! + + +!!FILES!! + + + + + + diff --git a/projects/openttd_vs150.vcxproj.in b/projects/openttd_vs150.vcxproj.in new file mode 100644 index 0000000000..c669462c47 --- /dev/null +++ b/projects/openttd_vs150.vcxproj.in @@ -0,0 +1,344 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + openttd + {668328A0-B40E-4CDB-BD72-D0064424414A} + openttd + + + + Application + false + Unicode + v141 + + + Application + false + Unicode + true + v141 + + + Application + false + Unicode + v141 + + + Application + false + Unicode + true + v141 + + + + + + + + + + + + + + + + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + false + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + false + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(ProjectDir)..\bin + + + + .\Release/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Full + AnySuitable + true + Size + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + 4Bytes + false + true + + + + + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies) + true + %(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + true + false + + + MachineX86 + true + 5.01 + + + PerMonitorHighDPIAware + + + + + .\Debug/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Disabled + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies) + true + LIBCMT.lib;%(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + false + + + MachineX86 + 5.01 + + + PerMonitorHighDPIAware + + + + + X64 + .\Release/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Full + AnySuitable + true + Size + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + Default + false + true + + + + + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies) + true + %(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + true + MachineX64 + true + 5.02 + + + PerMonitorHighDPIAware + + + + + X64 + .\Debug/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Disabled + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + + + + + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + Cdecl + Default + true + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies) + true + LIBCMT.lib;%(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + MachineX64 + 5.02 + + + PerMonitorHighDPIAware + + + +!!FILES!! + + + + + + + + {0f066b23-18df-4284-8265-f4a5e7e3b966} + false + + + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} + false + + + {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} + false + + + + diff --git a/projects/settings_vs150.vcxproj b/projects/settings_vs150.vcxproj new file mode 100644 index 0000000000..ed6f5bab18 --- /dev/null +++ b/projects/settings_vs150.vcxproj @@ -0,0 +1,54 @@ + + + + + Debug + Win32 + + + + settings + {0817F629-589E-4A3B-B81A-8647BC571E35} + settings + + + + Makefile + v141 + + + + + + + + + +..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini + + + + ..\objs\settings\table\ + ..\objs\settings\table\ + $(SettingsCommandLine) + $(SettingsCommandLine) + del ..\objs\settings\table\settings.h + ..\objs\settings\table\settings.h + + + + + + + + + + + + + + + + + + diff --git a/projects/settings_vs150.vcxproj.filters b/projects/settings_vs150.vcxproj.filters new file mode 100644 index 0000000000..8caf9fa0a6 --- /dev/null +++ b/projects/settings_vs150.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {21deca6c-8df4-4f34-9dad-17d7781cd5a0} + + + + + INI + + + INI + + + INI + + + INI + + + INI + + + INI + + + INI + + + + + + + diff --git a/projects/settings_vs150.vcxproj.filters.in b/projects/settings_vs150.vcxproj.filters.in new file mode 100644 index 0000000000..08f90670d2 --- /dev/null +++ b/projects/settings_vs150.vcxproj.filters.in @@ -0,0 +1,15 @@ + + + + + {21deca6c-8df4-4f34-9dad-17d7781cd5a0} + + + +!!FILES!! + + + + + + diff --git a/projects/settings_vs150.vcxproj.in b/projects/settings_vs150.vcxproj.in new file mode 100644 index 0000000000..e4a60227cb --- /dev/null +++ b/projects/settings_vs150.vcxproj.in @@ -0,0 +1,48 @@ + + + + + Debug + Win32 + + + + settings + {0817F629-589E-4A3B-B81A-8647BC571E35} + settings + + + + Makefile + v141 + + + + + + + + + +!!FILTERS!! + + + + ..\objs\settings\table\ + ..\objs\settings\table\ + $(SettingsCommandLine) + $(SettingsCommandLine) + del ..\objs\settings\table\settings.h + ..\objs\settings\table\settings.h + + +!!FILES!! + + + + + + + + + From b9ed60d3072636551f2ace63635b884504b6c642 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 24 Sep 2017 16:19:29 +0000 Subject: [PATCH 408/417] (svn r27918) -Fix (r27917): Next attempt for MSVC 2017 --- projects/generate | 28 +++--- projects/generate.vbs | 28 +++--- projects/generate_vs141.vcxproj | 40 ++++++++ ...angs_vs150.vcxproj => langs_vs141.vcxproj} | 0 ...oj.filters => langs_vs141.vcxproj.filters} | 0 ...ters.in => langs_vs141.vcxproj.filters.in} | 0 ...s150.vcxproj.in => langs_vs141.vcxproj.in} | 0 projects/openttd_vs141.sln | 94 ++++++++++++++++++ ...td_vs150.vcxproj => openttd_vs141.vcxproj} | 0 ....filters => openttd_vs141.vcxproj.filters} | 0 ...rs.in => openttd_vs141.vcxproj.filters.in} | 0 ...50.vcxproj.in => openttd_vs141.vcxproj.in} | 0 ...s_vs150.vcxproj => settings_vs141.vcxproj} | 0 ...filters => settings_vs141.vcxproj.filters} | 0 ...s.in => settings_vs141.vcxproj.filters.in} | 0 ...0.vcxproj.in => settings_vs141.vcxproj.in} | 0 projects/settingsgen_vs141.vcxproj | 83 ++++++++++++++++ projects/settingsgen_vs141.vcxproj.filters | 32 +++++++ projects/strgen_vs141.vcxproj | 95 +++++++++++++++++++ projects/strgen_vs141.vcxproj.filters | 35 +++++++ projects/version_vs141.vcxproj | 42 ++++++++ 21 files changed, 449 insertions(+), 28 deletions(-) create mode 100644 projects/generate_vs141.vcxproj rename projects/{langs_vs150.vcxproj => langs_vs141.vcxproj} (100%) rename projects/{langs_vs150.vcxproj.filters => langs_vs141.vcxproj.filters} (100%) rename projects/{langs_vs150.vcxproj.filters.in => langs_vs141.vcxproj.filters.in} (100%) rename projects/{langs_vs150.vcxproj.in => langs_vs141.vcxproj.in} (100%) create mode 100644 projects/openttd_vs141.sln rename projects/{openttd_vs150.vcxproj => openttd_vs141.vcxproj} (100%) rename projects/{openttd_vs150.vcxproj.filters => openttd_vs141.vcxproj.filters} (100%) rename projects/{openttd_vs150.vcxproj.filters.in => openttd_vs141.vcxproj.filters.in} (100%) rename projects/{openttd_vs150.vcxproj.in => openttd_vs141.vcxproj.in} (100%) rename projects/{settings_vs150.vcxproj => settings_vs141.vcxproj} (100%) rename projects/{settings_vs150.vcxproj.filters => settings_vs141.vcxproj.filters} (100%) rename projects/{settings_vs150.vcxproj.filters.in => settings_vs141.vcxproj.filters.in} (100%) rename projects/{settings_vs150.vcxproj.in => settings_vs141.vcxproj.in} (100%) create mode 100644 projects/settingsgen_vs141.vcxproj create mode 100644 projects/settingsgen_vs141.vcxproj.filters create mode 100644 projects/strgen_vs141.vcxproj create mode 100644 projects/strgen_vs141.vcxproj.filters create mode 100644 projects/version_vs141.vcxproj diff --git a/projects/generate b/projects/generate index 6e4ded57b0..e82559a911 100755 --- a/projects/generate +++ b/projects/generate @@ -22,14 +22,14 @@ then exit 1 fi -# openttd_vs150.sln is for MSVC 2017 -# openttd_vs150.vcxproj is for MSVC 2017 -# openttd_vs150.vcxproj.filters is for MSVC 2017 -# langs_vs150.vcxproj is for MSVC 2017 -# strgen_vs150.vcxproj is for MSVC 2017 -# strgen_vs150.vcxproj.filters is for MSVC 2017 -# generate_vs150.vcxproj is for MSVC 2017 -# version_vs150.vcxproj is for MSVC 2017 +# openttd_vs141.sln is for MSVC 2017 +# openttd_vs141.vcxproj is for MSVC 2017 +# openttd_vs141.vcxproj.filters is for MSVC 2017 +# langs_vs141.vcxproj is for MSVC 2017 +# strgen_vs141.vcxproj is for MSVC 2017 +# strgen_vs141.vcxproj.filters is for MSVC 2017 +# generate_vs141.vcxproj is for MSVC 2017 +# version_vs141.vcxproj is for MSVC 2017 # openttd_vs140.sln is for MSVC 2015 # openttd_vs140.vcxproj is for MSVC 2015 @@ -326,21 +326,21 @@ generate "$openttdvcxproj" "openttd_vs100.vcxproj" generate "$openttdfiles" "openttd_vs100.vcxproj.filters" "$openttdfilters" generate "$openttdvcxproj" "openttd_vs140.vcxproj" generate "$openttdfiles" "openttd_vs140.vcxproj.filters" "$openttdfilters" -generate "$openttdvcxproj" "openttd_vs150.vcxproj" -generate "$openttdfiles" "openttd_vs150.vcxproj.filters" "$openttdfilters" +generate "$openttdvcxproj" "openttd_vs141.vcxproj" +generate "$openttdfiles" "openttd_vs141.vcxproj.filters" "$openttdfilters" generate "$lang" "langs_vs80.vcproj" generate "$lang" "langs_vs90.vcproj" generate "$langvcxproj" "langs_vs100.vcxproj" generate "$langfiles" "langs_vs100.vcxproj.filters" generate "$langvcxproj" "langs_vs140.vcxproj" generate "$langfiles" "langs_vs140.vcxproj.filters" -generate "$langvcxproj" "langs_vs150.vcxproj" -generate "$langfiles" "langs_vs150.vcxproj.filters" +generate "$langvcxproj" "langs_vs141.vcxproj" +generate "$langfiles" "langs_vs141.vcxproj.filters" generate "$settings" "settings_vs80.vcproj" "$settingscommand" generate "$settings" "settings_vs90.vcproj" "$settingscommand" generate "$settingsvcxproj" "settings_vs100.vcxproj" "$settingscommand" generate "$settingsfiles" "settings_vs100.vcxproj.filters" generate "$settingsvcxproj" "settings_vs140.vcxproj" "$settingscommand" generate "$settingsfiles" "settings_vs140.vcxproj.filters" -generate "$settingsvcxproj" "settings_vs150.vcxproj" "$settingscommand" -generate "$settingsfiles" "settings_vs150.vcxproj.filters" +generate "$settingsvcxproj" "settings_vs141.vcxproj" "$settingscommand" +generate "$settingsfiles" "settings_vs141.vcxproj.filters" diff --git a/projects/generate.vbs b/projects/generate.vbs index c4bfb71d6d..a2f4679a69 100755 --- a/projects/generate.vbs +++ b/projects/generate.vbs @@ -10,14 +10,14 @@ Option Explicit Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") -' openttd_vs150.sln is for MSVC 2017 -' openttd_vs150.vcxproj is for MSVC 2017 -' openttd_vs150.vcxproj.filters is for MSVC 2017 -' langs_vs150.vcxproj is for MSVC 2017 -' strgen_vs150.vcxproj is for MSVC 2017 -' strgen_vs150.vcxproj.filters is for MSVC 2017 -' generate_vs150.vcxproj is for MSVC 2017 -' version_vs150.vcxproj is for MSVC 2017 +' openttd_vs141.sln is for MSVC 2017 +' openttd_vs141.vcxproj is for MSVC 2017 +' openttd_vs141.vcxproj.filters is for MSVC 2017 +' langs_vs141.vcxproj is for MSVC 2017 +' strgen_vs141.vcxproj is for MSVC 2017 +' strgen_vs141.vcxproj.filters is for MSVC 2017 +' generate_vs141.vcxproj is for MSVC 2017 +' version_vs141.vcxproj is for MSVC 2017 ' openttd_vs140.sln is for MSVC 2015 ' openttd_vs140.vcxproj is for MSVC 2015 @@ -389,8 +389,8 @@ generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs100.vcxproj", Null generate openttdfiles, ROOT_DIR & "/projects/openttd_vs100.vcxproj.filters", openttdfilters generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs140.vcxproj", Null generate openttdfiles, ROOT_DIR & "/projects/openttd_vs140.vcxproj.filters", openttdfilters -generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs150.vcxproj", Null -generate openttdfiles, ROOT_DIR & "/projects/openttd_vs150.vcxproj.filters", openttdfilters +generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs141.vcxproj", Null +generate openttdfiles, ROOT_DIR & "/projects/openttd_vs141.vcxproj.filters", openttdfilters Dim lang, langvcxproj, langfiles lang = load_lang_data(ROOT_DIR & "/src/lang", langvcxproj, langfiles) @@ -400,8 +400,8 @@ generate langvcxproj, ROOT_DIR & "/projects/langs_vs100.vcxproj", Null generate langfiles, ROOT_DIR & "/projects/langs_vs100.vcxproj.filters", Null generate langvcxproj, ROOT_DIR & "/projects/langs_vs140.vcxproj", Null generate langfiles, ROOT_DIR & "/projects/langs_vs140.vcxproj.filters", Null -generate langvcxproj, ROOT_DIR & "/projects/langs_vs150.vcxproj", Null -generate langfiles, ROOT_DIR & "/projects/langs_vs150.vcxproj.filters", Null +generate langvcxproj, ROOT_DIR & "/projects/langs_vs141.vcxproj", Null +generate langfiles, ROOT_DIR & "/projects/langs_vs141.vcxproj.filters", Null Dim settings, settingsvcxproj, settingscommand, settingsfiles settings = load_settings_data(ROOT_DIR & "/src/table", settingsvcxproj, settingscommand, settingsfiles) @@ -411,5 +411,5 @@ generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs100.vcxproj", setting generate settingsfiles, ROOT_DIR & "/projects/settings_vs100.vcxproj.filters", Null generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs140.vcxproj", settingscommand generate settingsfiles, ROOT_DIR & "/projects/settings_vs140.vcxproj.filters", Null -generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs150.vcxproj", settingscommand -generate settingsfiles, ROOT_DIR & "/projects/settings_vs150.vcxproj.filters", Null +generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs141.vcxproj", settingscommand +generate settingsfiles, ROOT_DIR & "/projects/settings_vs141.vcxproj.filters", Null diff --git a/projects/generate_vs141.vcxproj b/projects/generate_vs141.vcxproj new file mode 100644 index 0000000000..2db93cf097 --- /dev/null +++ b/projects/generate_vs141.vcxproj @@ -0,0 +1,40 @@ + + + + + Debug + Win32 + + + + generate + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34} + generate + + + + Utility + v141 + + + + + + + + + + + + + Document + Running %27generate.vbs%27 ... + cscript "$(ProjectDir)generate.vbs" + %(FullPath);%(AdditionalInputs) + $(SolutionDir)openttd_vs80.vcproj;$(SolutionDir)openttd_vs90.vcproj;$(SolutionDir)openttd_vs100.vcxproj;$(SolutionDir)openttd_vs100.vcxproj.filters;$(SolutionDir)langs_vs80.vcproj;$(SolutionDir)langs_vs90.vcproj;$(SolutionDir)langs_vs100.vcxproj;%(Outputs) + + + + + + diff --git a/projects/langs_vs150.vcxproj b/projects/langs_vs141.vcxproj similarity index 100% rename from projects/langs_vs150.vcxproj rename to projects/langs_vs141.vcxproj diff --git a/projects/langs_vs150.vcxproj.filters b/projects/langs_vs141.vcxproj.filters similarity index 100% rename from projects/langs_vs150.vcxproj.filters rename to projects/langs_vs141.vcxproj.filters diff --git a/projects/langs_vs150.vcxproj.filters.in b/projects/langs_vs141.vcxproj.filters.in similarity index 100% rename from projects/langs_vs150.vcxproj.filters.in rename to projects/langs_vs141.vcxproj.filters.in diff --git a/projects/langs_vs150.vcxproj.in b/projects/langs_vs141.vcxproj.in similarity index 100% rename from projects/langs_vs150.vcxproj.in rename to projects/langs_vs141.vcxproj.in diff --git a/projects/openttd_vs141.sln b/projects/openttd_vs141.sln new file mode 100644 index 0000000000..e314c628a7 --- /dev/null +++ b/projects/openttd_vs141.sln @@ -0,0 +1,94 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openttd", "openttd_vs141.vcxproj", "{668328A0-B40E-4CDB-BD72-D0064424414A}" + ProjectSection(ProjectDependencies) = postProject + {0817F629-589E-4A3B-B81A-8647BC571E35} = {0817F629-589E-4A3B-B81A-8647BC571E35} + {E9548DE9-F089-49B7-93A6-30BE2CC311C7} = {E9548DE9-F089-49B7-93A6-30BE2CC311C7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "strgen", "strgen_vs141.vcxproj", "{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "langs", "langs_vs141.vcxproj", "{0F066B23-18DF-4284-8265-F4A5E7E3B966}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version_vs141.vcxproj", "{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generate", "generate_vs141.vcxproj", "{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settings", "settings_vs141.vcxproj", "{0817F629-589E-4A3B-B81A-8647BC571E35}" + ProjectSection(ProjectDependencies) = postProject + {E9548DE9-F089-49B7-93A6-30BE2CC311C7} = {E9548DE9-F089-49B7-93A6-30BE2CC311C7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settingsgen", "settingsgen_vs141.vcxproj", "{E9548DE9-F089-49B7-93A6-30BE2CC311C7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|Win32.ActiveCfg = Debug|Win32 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|Win32.Build.0 = Debug|Win32 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|x64.ActiveCfg = Debug|x64 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|x64.Build.0 = Debug|x64 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|Win32.ActiveCfg = Release|Win32 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|Win32.Build.0 = Release|Win32 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|x64.ActiveCfg = Release|x64 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|x64.Build.0 = Release|x64 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|Win32.ActiveCfg = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|Win32.Build.0 = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|x64.ActiveCfg = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|x64.Build.0 = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|Win32.ActiveCfg = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|Win32.Build.0 = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|x64.ActiveCfg = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|x64.Build.0 = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|Win32.ActiveCfg = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|Win32.Build.0 = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|x64.ActiveCfg = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|x64.Build.0 = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|Win32.ActiveCfg = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|Win32.Build.0 = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|x64.ActiveCfg = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|x64.Build.0 = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|Win32.ActiveCfg = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|Win32.Build.0 = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|x64.ActiveCfg = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|x64.Build.0 = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|Win32.ActiveCfg = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|Win32.Build.0 = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|x64.ActiveCfg = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|x64.Build.0 = Debug|Win32 + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Debug|Win32.ActiveCfg = Debug|Win32 + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Debug|x64.ActiveCfg = Debug|Win32 + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Release|Win32.ActiveCfg = Debug|Win32 + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Release|x64.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|Win32.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|Win32.Build.0 = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|x64.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|x64.Build.0 = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Release|Win32.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Release|Win32.Build.0 = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Release|x64.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Release|x64.Build.0 = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|Win32.Build.0 = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|x64.ActiveCfg = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|x64.Build.0 = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|Win32.ActiveCfg = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|Win32.Build.0 = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.ActiveCfg = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.Build.0 = Debug|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(DPCodeReviewSolutionGUID) = preSolution + DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} + EndGlobalSection +EndGlobal diff --git a/projects/openttd_vs150.vcxproj b/projects/openttd_vs141.vcxproj similarity index 100% rename from projects/openttd_vs150.vcxproj rename to projects/openttd_vs141.vcxproj diff --git a/projects/openttd_vs150.vcxproj.filters b/projects/openttd_vs141.vcxproj.filters similarity index 100% rename from projects/openttd_vs150.vcxproj.filters rename to projects/openttd_vs141.vcxproj.filters diff --git a/projects/openttd_vs150.vcxproj.filters.in b/projects/openttd_vs141.vcxproj.filters.in similarity index 100% rename from projects/openttd_vs150.vcxproj.filters.in rename to projects/openttd_vs141.vcxproj.filters.in diff --git a/projects/openttd_vs150.vcxproj.in b/projects/openttd_vs141.vcxproj.in similarity index 100% rename from projects/openttd_vs150.vcxproj.in rename to projects/openttd_vs141.vcxproj.in diff --git a/projects/settings_vs150.vcxproj b/projects/settings_vs141.vcxproj similarity index 100% rename from projects/settings_vs150.vcxproj rename to projects/settings_vs141.vcxproj diff --git a/projects/settings_vs150.vcxproj.filters b/projects/settings_vs141.vcxproj.filters similarity index 100% rename from projects/settings_vs150.vcxproj.filters rename to projects/settings_vs141.vcxproj.filters diff --git a/projects/settings_vs150.vcxproj.filters.in b/projects/settings_vs141.vcxproj.filters.in similarity index 100% rename from projects/settings_vs150.vcxproj.filters.in rename to projects/settings_vs141.vcxproj.filters.in diff --git a/projects/settings_vs150.vcxproj.in b/projects/settings_vs141.vcxproj.in similarity index 100% rename from projects/settings_vs150.vcxproj.in rename to projects/settings_vs141.vcxproj.in diff --git a/projects/settingsgen_vs141.vcxproj b/projects/settingsgen_vs141.vcxproj new file mode 100644 index 0000000000..2b356f2eab --- /dev/null +++ b/projects/settingsgen_vs141.vcxproj @@ -0,0 +1,83 @@ + + + + + Debug + Win32 + + + + settingsgen + {E9548DE9-F089-49B7-93A6-30BE2CC311C7} + settings + + + + Application + MultiByte + v141 + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ..\objs\settings\ + ..\objs\settings\ + settings_gen + + + + + + + + %(Inputs) + + + MinSpace + Size + SETTINGSGEN;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + All + $(IntDir)$(TargetName).pdb + Level3 + true + ProgramDatabase + MultiThreadedDebug + + + $(OutDir)settings_gen.exe + true + false + + + Console + 5.01 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/settingsgen_vs141.vcxproj.filters b/projects/settingsgen_vs141.vcxproj.filters new file mode 100644 index 0000000000..c8afe0c8ed --- /dev/null +++ b/projects/settingsgen_vs141.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + {a4678737-b3b3-4be5-9db1-fa6ccd164c59} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + + + + + + diff --git a/projects/strgen_vs141.vcxproj b/projects/strgen_vs141.vcxproj new file mode 100644 index 0000000000..addc6f10a5 --- /dev/null +++ b/projects/strgen_vs141.vcxproj @@ -0,0 +1,95 @@ + + + + + Debug + Win32 + + + + strgen + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1} + strgen + + + + Application + false + MultiByte + v141 + + + + + + + + + + $(SolutionDir)..\objs\strgen\ + $(SolutionDir)..\objs\strgen\ + false + AllRules.ruleset + + + + + + .\Debug/strgen.tlb + + + + + /MP %(AdditionalOptions) + MinSpace + Size + STRGEN;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + Default + MultiThreadedDebug + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + true + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x041d + + + true + true + $(IntDir)strgen.pdb + Console + false + + + MachineX86 + 5.01 + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/strgen_vs141.vcxproj.filters b/projects/strgen_vs141.vcxproj.filters new file mode 100644 index 0000000000..58864ee691 --- /dev/null +++ b/projects/strgen_vs141.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {5894294c-d4dc-41f0-be31-e56cff4e0405} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + + + + + + + + diff --git a/projects/version_vs141.vcxproj b/projects/version_vs141.vcxproj new file mode 100644 index 0000000000..5d8ee8c74f --- /dev/null +++ b/projects/version_vs141.vcxproj @@ -0,0 +1,42 @@ + + + + + Debug + Win32 + + + + version + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC} + version + + + + Makefile + MultiByte + v141 + + + + + + + + + + $(SolutionDir)..\objs\version\ + $(SolutionDir)..\objs\version\ + cscript "$(ProjectDir)/determineversion.vbs" + cscript "$(ProjectDir)/determineversion.vbs" + ..\src\rev.cpp + del ..\src\rev.cpp + + + + + + + + + From 6120e69f218915b73e7747504a1148133d4bc486 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 24 Sep 2017 17:35:51 +0000 Subject: [PATCH 409/417] (svn r27919) -Fix: MSVC 2015 and 2017 project files referenced some MSVC 2010 files --- projects/openttd_vs140.vcxproj | 6 +++--- projects/openttd_vs140.vcxproj.in | 6 +++--- projects/openttd_vs141.vcxproj | 6 +++--- projects/openttd_vs141.vcxproj.in | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index eb8494167d..2aefabddd4 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -1306,15 +1306,15 @@ - + {0f066b23-18df-4284-8265-f4a5e7e3b966} false - + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} false - + {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} false diff --git a/projects/openttd_vs140.vcxproj.in b/projects/openttd_vs140.vcxproj.in index 9d873283fa..98b6481dcd 100644 --- a/projects/openttd_vs140.vcxproj.in +++ b/projects/openttd_vs140.vcxproj.in @@ -327,15 +327,15 @@ - + {0f066b23-18df-4284-8265-f4a5e7e3b966} false - + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} false - + {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} false diff --git a/projects/openttd_vs141.vcxproj b/projects/openttd_vs141.vcxproj index a93c5a300b..c735569b33 100644 --- a/projects/openttd_vs141.vcxproj +++ b/projects/openttd_vs141.vcxproj @@ -1306,15 +1306,15 @@ - + {0f066b23-18df-4284-8265-f4a5e7e3b966} false - + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} false - + {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} false diff --git a/projects/openttd_vs141.vcxproj.in b/projects/openttd_vs141.vcxproj.in index c669462c47..9afda46b7c 100644 --- a/projects/openttd_vs141.vcxproj.in +++ b/projects/openttd_vs141.vcxproj.in @@ -327,15 +327,15 @@ - + {0f066b23-18df-4284-8265-f4a5e7e3b966} false - + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} false - + {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} false From 0d1f88c09a8e9f27562ccf63360d968b31b517d7 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 24 Sep 2017 17:38:03 +0000 Subject: [PATCH 410/417] (svn r27920) -Fix: MSVC 2015 and 2017 project files referenced some MSVC 2010 files --- projects/langs_vs140.vcxproj | 2 +- projects/langs_vs140.vcxproj.in | 2 +- projects/langs_vs141.vcxproj | 2 +- projects/langs_vs141.vcxproj.in | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/projects/langs_vs140.vcxproj b/projects/langs_vs140.vcxproj index b866630d00..317fd34a11 100644 --- a/projects/langs_vs140.vcxproj +++ b/projects/langs_vs140.vcxproj @@ -379,7 +379,7 @@ - + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} false diff --git a/projects/langs_vs140.vcxproj.in b/projects/langs_vs140.vcxproj.in index f75ef9d6b5..3271fecffa 100644 --- a/projects/langs_vs140.vcxproj.in +++ b/projects/langs_vs140.vcxproj.in @@ -50,7 +50,7 @@ !!FILES!! - + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} false diff --git a/projects/langs_vs141.vcxproj b/projects/langs_vs141.vcxproj index 5c339038d4..2444b0e0e7 100644 --- a/projects/langs_vs141.vcxproj +++ b/projects/langs_vs141.vcxproj @@ -379,7 +379,7 @@ - + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} false diff --git a/projects/langs_vs141.vcxproj.in b/projects/langs_vs141.vcxproj.in index 4600e36b6f..b73d52c5c9 100644 --- a/projects/langs_vs141.vcxproj.in +++ b/projects/langs_vs141.vcxproj.in @@ -50,7 +50,7 @@ !!FILES!! - + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} false From 3c1e6d5a886f11e53fa1df14cc230063616aa383 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 27 Sep 2017 17:45:38 +0000 Subject: [PATCH 411/417] (svn r27921) -Update from Eints: polish: 22 changes by McZapkie --- src/lang/polish.txt | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 2139d9d893..11e2b1a0c2 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -757,7 +757,7 @@ STR_SETTINGS_MENU_NEWGRF_SETTINGS :Ustawienia NewG STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :Opcje przeźroczystości STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED :Wyświetlanie nazw miast STR_SETTINGS_MENU_STATION_NAMES_DISPLAYED :Wyświetlanie nazw stacji -STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED :Wyświetlanie nazw pkt. orientacyjnych +STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED :Wyświetlanie nazw posterunków STR_SETTINGS_MENU_SIGNS_DISPLAYED :Wyświetlanie napisów STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS :Znaki konkurentów i nazwy są wyświetlane STR_SETTINGS_MENU_FULL_ANIMATION :Pełna animacja @@ -1009,7 +1009,7 @@ STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Ilość STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Ilość zarobionych pieniędzy w kwartale z największym zyskiem z ostatnich 12 kwartałów STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Ilość ładunku przewiezionego w poprzednich 4 kwartałach STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}Ilość różnych typów ładunku przewiezionych w ostatnim kwartale -STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Ilość pieniędzy w ręku +STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Ilość dostępnych środków pieniężnych STR_PERFORMANCE_DETAIL_LOAN_TOOLTIP :{BLACK}Wielkość pożyczki wziętej przez firmę STR_PERFORMANCE_DETAIL_TOTAL_TOOLTIP :{BLACK}Suma przyznanych punktów @@ -1781,7 +1781,7 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :W tabelach czas STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Pokazuj przyjazdy i odjazdy w rozkładach: {STRING} STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Wyświetlanie przewidywanego przyjazdu i odjazdu w rozkładach STR_CONFIG_SETTING_QUICKGOTO :Szybkie tworzenie poleceń pojazdu: {STRING} -STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Po wybraniu stacji docelowej automatycznie włącz ponownie narzędzie 'idź do' +STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Po wybraniu stacji docelowej automatycznie włącz ponownie narzędzie 'jedź do' STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Domyślny typ torów: {STRING} STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Rodzaj torów wybierany przy rozpoczęciu lub załadowaniu gry. 'Pierwszy dostępny' wybiera najstarszy rodzaj torów, 'najnowszy' wybiera najnowszy rodzaj torów, a 'najczęściej używany' wybiera ten, który jest używany najczęściej STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :pierwszy dostępny @@ -2696,12 +2696,12 @@ STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Konstrukcja lin STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Budowa torów kolejowych. Ctrl przełącza buduj/usuń dla konstrukcji kolejowych. Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Zbuduj tory kolejowe za pomocą trybu Autotory. Ctrl przełącza buduj/usuń dla konstrukcji kolejowych. Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Budowa warsztatów (do kupowania i serwisowania pociągów). Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów -STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Zamiana torów na pkt. orientacyjny. Ctrl umożliwia łączenie pkt. orientacyjnych. Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów +STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Zamiana torów na posterunek. Ctrl umożliwia łączenie posterunków. Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Zbuduj stację kolejową. Ctrl umożliwia łączenie stacji. Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Zbuduj sygnały kolejowe. Ctrl przełącza semafory/sygnały świetlne{}Przeciągnięcie pozwala na budowę sygnałów wzdłuż prostej linii torów. Ctrl pozwala na budowę sygnałów do następnego skrzyżowania{}Ctrl+klik przełącza do okna wyboru sygnałów. Shift przełącza pomiędzy budowaniem a szacowaniem kosztów STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Zbuduj most kolejowy. Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Zbuduj tunel kolejowy. Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów -STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Przełącz buduj/usuń dla torów kolejowych, sygnałów, pkt. orientacyjnych i stacji. Przetrzymanie Ctrl usuwa także tory kolejowe z pkt. orientacyjnych i stacji +STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Przełącz buduj/usuń dla torów kolejowych, sygnałów, posterunków i stacji. Przetrzymanie Ctrl usuwa także tory kolejowe z posterunków i stacji STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Zamiana typu torów. Shift przełącza pomiędzy trybem budowania a szacowaniem jego kosztów STR_RAIL_NAME_RAILROAD :Kolej @@ -2714,8 +2714,8 @@ STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}Ukierunk STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}Wybierz ukierunkowanie warsztatów # Rail waypoint construction window -STR_WAYPOINT_CAPTION :{WHITE}Pkt. orientacyjny -STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Wybierz typ pkt. orientacyjnego +STR_WAYPOINT_CAPTION :{WHITE}Posterunek +STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Wybierz typ posterunku # Rail station construction window STR_STATION_BUILD_RAIL_CAPTION :{WHITE}Wybór stacji @@ -2732,7 +2732,7 @@ STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Wybierz STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Wybierz typ stacji do zbudowania STR_STATION_CLASS_DFLT :Typowa stacja -STR_STATION_CLASS_WAYP :Pkt. orientacyjne +STR_STATION_CLASS_WAYP :Posterunki # Signal window STR_BUILD_SIGNAL_CAPTION :{WHITE}Wybór sygnałów @@ -3553,8 +3553,8 @@ STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Nie zezw # Waypoint/buoy view window STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT} -STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centruj główny widok na pkt. orientacyjnym. Ctrl+klik otwiera nowy podgląd na lokacji pkt. orientacyjnego -STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Zmień nazwę pkt. orientacyjnego +STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centruj główny widok na posterunku. Ctrl+klik otwiera nowy podgląd na lokacji posterunku +STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Zmień nazwę posterunku STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centruj główny widok na pozycji boi. Ctrl+klik otwiera nowy podgląd na lokacji boi STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Zmień nazwę boji @@ -4144,10 +4144,10 @@ STR_ORDERS_END_OF_SHARED_ORDERS :- - Koniec wsp # Order bottom buttons STR_ORDER_NON_STOP :{BLACK}Non-stop -STR_ORDER_GO_TO :Idź do -STR_ORDER_GO_NON_STOP_TO :Idź bez przerwy do -STR_ORDER_GO_VIA :Idź przez -STR_ORDER_GO_NON_STOP_VIA :Idź bez przerwy przez +STR_ORDER_GO_TO :Jedź do +STR_ORDER_GO_NON_STOP_TO :Jedź bez przerwy do +STR_ORDER_GO_VIA :Jedź przez +STR_ORDER_GO_NON_STOP_VIA :Jedź bez przerwy przez STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Zmień sposób przejazdu w podświetlonym poleceniu STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Pełny załadunek któregoś z towarów @@ -4158,9 +4158,9 @@ STR_ORDER_DROP_NO_LOADING :Nie ładować STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Zmień sposób załadunku w podświetlonym poleceniu STR_ORDER_TOGGLE_UNLOAD :{BLACK}Rozładuj i załaduj -STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Wyładuj jeśli akceptowane -STR_ORDER_DROP_UNLOAD :Rozładuj i załaduj -STR_ORDER_DROP_TRANSFER :Przeładunek +STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Rozładuj jeśli akceptowane +STR_ORDER_DROP_UNLOAD :Rozładuj wszystko +STR_ORDER_DROP_TRANSFER :Pozostaw do przeładunku STR_ORDER_DROP_NO_UNLOADING :Nie rozładowuj STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Zmień sposób wyładunku w podświetlonym poleceniu @@ -4210,8 +4210,8 @@ STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Usuń ws STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Przestań dzielić STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Przestań dzielić listę poleceń. Ctrl+Klik dodatkowo usuwa wszystkie polecenia tego pojazdu -STR_ORDERS_GO_TO_BUTTON :{BLACK}Idź do -STR_ORDER_GO_TO_NEAREST_DEPOT :Idź do najbliższego serwisu +STR_ORDERS_GO_TO_BUTTON :{BLACK}Jedź do +STR_ORDER_GO_TO_NEAREST_DEPOT :Jedź do najbliższego serwisu STR_ORDER_GO_TO_NEAREST_HANGAR :Leć do najbliższego hangaru STR_ORDER_CONDITIONAL :Warunkowy skok poleceń STR_ORDER_SHARE :Współdzielenie poleceń @@ -4220,8 +4220,8 @@ STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Wstaw no STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Pokaż wszystkie pojazdy współdzielące te polecenia # String parts to build the order string -STR_ORDER_GO_TO_WAYPOINT :Idź przez {WAYPOINT} -STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Idź bez zatrzymywania przez {WAYPOINT} +STR_ORDER_GO_TO_WAYPOINT :Jedź przez {WAYPOINT} +STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Jedź bez zatrzymywania przez {WAYPOINT} STR_ORDER_SERVICE_AT :Serwisuj w STR_ORDER_SERVICE_NON_STOP_AT :Serwisuj non-stop w @@ -4240,7 +4240,7 @@ STR_ORDER_STOP_ORDER :(Stop) STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING} -STR_ORDER_IMPLICIT :(Sugerujący) +STR_ORDER_IMPLICIT :(zasugerowany) STR_ORDER_FULL_LOAD :(Pełny załadunek) STR_ORDER_FULL_LOAD_ANY :(Pełny załadunek dowolnego towaru) From ac5074fb53a989312b8d56be151064823f81313d Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 28 Sep 2017 17:45:40 +0000 Subject: [PATCH 412/417] (svn r27922) -Update from Eints: polish: 12 changes by McZapkie --- src/lang/polish.txt | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 11e2b1a0c2..2c6f6576ef 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -790,7 +790,7 @@ STR_SUBSIDIES_MENU_SUBSIDIES :Subsydia ############ range ends here ############ range for graph menu starts -STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH :Wykres obrotu +STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH :Wykres dochodów STR_GRAPH_MENU_INCOME_GRAPH :Wykres przychodów STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH :Wykres przewożonego ładunku STR_GRAPH_MENU_PERFORMANCE_HISTORY_GRAPH :Ocena działalności firmy @@ -1520,7 +1520,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :wyśrodkowany STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :z prawej strony STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksymalna wysokość początkowej pożyczki: {STRING} -STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksymalna wysokość pożyczki jaką firma może zaciągnąć (nie uwzględnia inflacji) +STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksymalna wysokość pożyczki, jaką firma może zaciągnąć (bez uwzględnienia inflacji) STR_CONFIG_SETTING_INTEREST_RATE :Oprocentowanie: {STRING} STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Oprocentowanie pożyczki; kontroluje też inflację, jeśli jest włączona STR_CONFIG_SETTING_RUNNING_COSTS :Koszty amortyzacji: {STRING} @@ -1858,7 +1858,7 @@ STR_CONFIG_SETTING_NOSERVICE :Wyłącz serwis STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Kiedy włączone, pojazdy nie są serwisowane, jeśli nie mogą się popsuć STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Włącz limity prędkości wagonów: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Kiedy włączone, użyj także ograniczenia prędkości dla wagonów do obliczenia maksymalnej prędkości pociągu -STR_CONFIG_SETTING_DISABLE_ELRAILS :Zabroń korzystania z kolei elektrycznych: {STRING} +STR_CONFIG_SETTING_DISABLE_ELRAILS :Tylko jeden rodzaj torów: {STRING} STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Włączając to ustawienie, nie jest już wymagane elektryfikowanie torów, aby elektrowozy mogły po nich jeździć STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Przybycie pierwszego pojazdu do stacji gracza: {STRING} @@ -2004,7 +2004,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asymetrycznie" STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Dokładność dystrybucji: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Im wyżej ustawisz, tym wiecej czasu zajmie procesorowi obliczenie wykresu. Jeśli zajmuje zbyt dużo czasu, może pojawić sie lag. Natomiast zbyt mała ilość powoduje niedokładną dystrybucję, co można zauważyć gdy towar nie jest wysyłany do miejsc do których się spodziewasz aby dotarł. STR_CONFIG_SETTING_DEMAND_DISTANCE :Wpływ odległości na dystrybucję: {STRING} -STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Jeśli ustawisz tę wartość na więcej niż 0, to dystans pomiędzy stacją początkową A jakiegoś towaru a prawdopodobną stacją docelową B będzie miało wpływ na ilość towaru wysłanego z A do B. Im dalej z A do B, tym mniej towaru zostanie wysłane. Im wększa wartość, tym mniej towaru będzie wysłane do dalekich stacji, a więcej towaru będzie wysłane do bliższych stacji. +STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Jeśli ładunki z jednej stacji trafiają na kilka różnych stacji, na ich dystrybucję wpływ ma odległość. Im wyższą wartość ustawisz, tym bliższe stacje będą preferowane. Zerowa wartość ustawienia sprawi, że odległość nie będzie wpływała na podział dystrybucji. STR_CONFIG_SETTING_DEMAND_SIZE :Ilość powracającego ładunku dla trybu symetrycznego: {STRING} STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Ustawiając to na mniej niż 100% powoduje, że symetryczna dystrybucja zachowuje się podobnie do asymetrycznej. Mniej towaru będzie zwróconego jeśli pewna ilość zostanie wysłana do stacji. Jeśli ustawisz to na 0%, to symetryczna dystrybucja zachowuje się jak asymetryczna. STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Zapełnienie krótkich tras przed wybraniem tras o dużej przepustowości: {STRING} @@ -2684,8 +2684,8 @@ STR_STATION_BUILD_SUPPLIES_CARGO :{BLACK}Zasoby: STR_JOIN_STATION_CAPTION :{WHITE}Połącz stację STR_JOIN_STATION_CREATE_SPLITTED_STATION :{YELLOW}Zbuduj oddzielną stację -STR_JOIN_WAYPOINT_CAPTION :{WHITE}Połącz pkt. orientacyjne -STR_JOIN_WAYPOINT_CREATE_SPLITTED_WAYPOINT :{YELLOW}Zbuduj oddzielny pkt. orientacyjny +STR_JOIN_WAYPOINT_CAPTION :{WHITE}Połącz posterunki +STR_JOIN_WAYPOINT_CREATE_SPLITTED_WAYPOINT :{YELLOW}Zbuduj oddzielny posterunek # Rail construction toolbar STR_RAIL_TOOLBAR_RAILROAD_CONSTRUCTION_CAPTION :Konstrukcja linii kolejowej @@ -3030,7 +3030,7 @@ STR_LAI_STATION_DESCRIPTION_TRUCK_LOADING_AREA :Stacja załadun STR_LAI_STATION_DESCRIPTION_BUS_STATION :Przystanek STR_LAI_STATION_DESCRIPTION_SHIP_DOCK :Port STR_LAI_STATION_DESCRIPTION_BUOY :Boja -STR_LAI_STATION_DESCRIPTION_WAYPOINT :Pkt. orientacyjny +STR_LAI_STATION_DESCRIPTION_WAYPOINT :Posterunek STR_LAI_WATER_DESCRIPTION_WATER :Woda STR_LAI_WATER_DESCRIPTION_CANAL :Kanał @@ -4640,15 +4640,15 @@ STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Należy STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Należy najpierw usunąć lotnisko # Waypoint related errors -STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Przylega do więcej niż jednego istniejącego pkt. orientacyjnego -STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Zbyt blisko innego pkt. orientacyjnego +STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Przylega do więcej niż jednego istniejącego posterunku +STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Zbyt blisko innego posterunku STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}Nie można budować tutaj punktu orientacyjnego... STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}Nie można tutaj ustawić boi... -STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}Nie można zmienić nazwy pkt. orientacyjnego... +STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}Nie można zmienić nazwy posterunku... -STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}Nie można usunąć stąd kolejowego punktu orientacyjnego... -STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}Musisz usunąć najpierw punkt nawigacyjny +STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}Nie można usunąć stąd posterunku kolejowego... +STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}Musisz usunąć najpierw posterunek kolejowy STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... boja na drodze STR_ERROR_BUOY_IS_IN_USE :{WHITE}... boja w użyciu przez inna firmę! From 278400042d53cfbcefba5dd2a12fd64f23162908 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 1 Oct 2017 17:45:39 +0000 Subject: [PATCH 413/417] (svn r27923) -Update from Eints: polish: 15 changes by McZapkie --- src/lang/polish.txt | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 2c6f6576ef..28049b85d7 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -1781,7 +1781,7 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :W tabelach czas STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Pokazuj przyjazdy i odjazdy w rozkładach: {STRING} STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Wyświetlanie przewidywanego przyjazdu i odjazdu w rozkładach STR_CONFIG_SETTING_QUICKGOTO :Szybkie tworzenie poleceń pojazdu: {STRING} -STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Po wybraniu stacji docelowej automatycznie włącz ponownie narzędzie 'jedź do' +STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Po wybraniu stacji docelowej automatycznie włącz ponownie narzędzie 'idź do' STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Domyślny typ torów: {STRING} STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Rodzaj torów wybierany przy rozpoczęciu lub załadowaniu gry. 'Pierwszy dostępny' wybiera najstarszy rodzaj torów, 'najnowszy' wybiera najnowszy rodzaj torów, a 'najczęściej używany' wybiera ten, który jest używany najczęściej STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :pierwszy dostępny @@ -1859,7 +1859,7 @@ STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Kiedy włączon STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Włącz limity prędkości wagonów: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Kiedy włączone, użyj także ograniczenia prędkości dla wagonów do obliczenia maksymalnej prędkości pociągu STR_CONFIG_SETTING_DISABLE_ELRAILS :Tylko jeden rodzaj torów: {STRING} -STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Włączając to ustawienie, nie jest już wymagane elektryfikowanie torów, aby elektrowozy mogły po nich jeździć +STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Przy włączonym ustawieniu nie jest już wymagane elektryfikowanie torów, aby elektrowozy mogły po nich jeździć STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Przybycie pierwszego pojazdu do stacji gracza: {STRING} STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Wyświetl wiadomość w gazecie kiedy pierwszy pojazd dojedzie do stacji gracza @@ -1903,8 +1903,8 @@ STR_CONFIG_SETTING_SMOOTH_ECONOMY :Pozwól na łag STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Kiedy włączone, produkcja zakładów zmienia się częściej, ale mniejszymi krokami. To ustawienie zazwyczaj nie daje żadnego efektu, jeśli typy zakładów są pobierane z NewGRFów STR_CONFIG_SETTING_ALLOW_SHARES :Pozwól kupować udziały w innych firmach: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kiedy włączone, pozwala na kupowanie i sprzedawanie udziałów w firmie. Udziały będą dostępne tylko dla firm z odpowiednim stażem -STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Udział w zyskach w przypadku częściowego transportu (przeładunku): {STRING} -STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Udział procentowy dochodu pośrednika otrzymywany za transfer towaru. Umożliwia kontrolę nad całościowym dochodem za dowóz towarów w łańcuchu dowozowym +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Podział przychodów w przypadku przeładunków: {STRING} +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Manipulowanie zrównoważeniem podziałów w łańcuchu dowozowym: przy 0% przychód zostanie zaksięgowany na konto wyłącznie ostatniego pojazdu w łańcuchu, wyższa wartość zwiększa zrównoważenie podziału STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Podczas przeciągania ustaw semafor co: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Ustaw dystans, na jakim semafory będą budowane przy torach aż do następnej przeszkody (semafor, zwrotnica), przy przeciąganiu STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} p{P ole ola ól} @@ -2413,7 +2413,7 @@ STR_NETWORK_GAME_LOBBY_COMPANY_NAME :{SILVER}Nazwa f STR_NETWORK_GAME_LOBBY_INAUGURATION_YEAR :{SILVER}Inauguracja: {WHITE}{NUM} STR_NETWORK_GAME_LOBBY_VALUE :{SILVER}Wartość firmy: {WHITE}{CURRENCY_LONG} STR_NETWORK_GAME_LOBBY_CURRENT_BALANCE :{SILVER}Bieżący bilans: {WHITE}{CURRENCY_LONG} -STR_NETWORK_GAME_LOBBY_LAST_YEARS_INCOME :{SILVER}Przychód w ostatnim roku: {WHITE}{CURRENCY_LONG} +STR_NETWORK_GAME_LOBBY_LAST_YEARS_INCOME :{SILVER}Dochód w ostatnim roku: {WHITE}{CURRENCY_LONG} STR_NETWORK_GAME_LOBBY_PERFORMANCE :{SILVER}Wydajność: {WHITE}{NUM} STR_NETWORK_GAME_LOBBY_VEHICLES :{SILVER}Pojazdy: {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {SHIP}, {NUM} {PLANE} @@ -2424,7 +2424,7 @@ STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Nowa fir STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Rozpoczęcie działalności nowej firmy STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Obserwuj grę STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Oglądaj grę jako widz -STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Połącz z firmą +STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Dołącz do firmy STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}Pomóż zarządzać tą firmą # Network connecting window @@ -4144,10 +4144,10 @@ STR_ORDERS_END_OF_SHARED_ORDERS :- - Koniec wsp # Order bottom buttons STR_ORDER_NON_STOP :{BLACK}Non-stop -STR_ORDER_GO_TO :Jedź do -STR_ORDER_GO_NON_STOP_TO :Jedź bez przerwy do -STR_ORDER_GO_VIA :Jedź przez -STR_ORDER_GO_NON_STOP_VIA :Jedź bez przerwy przez +STR_ORDER_GO_TO :Idź do +STR_ORDER_GO_NON_STOP_TO :Idź bezpośrednio do +STR_ORDER_GO_VIA :Idź przez +STR_ORDER_GO_NON_STOP_VIA :Idź bezpośrednio poprzez STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Zmień sposób przejazdu w podświetlonym poleceniu STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Pełny załadunek któregoś z towarów @@ -4210,8 +4210,8 @@ STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Usuń ws STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Przestań dzielić STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Przestań dzielić listę poleceń. Ctrl+Klik dodatkowo usuwa wszystkie polecenia tego pojazdu -STR_ORDERS_GO_TO_BUTTON :{BLACK}Jedź do -STR_ORDER_GO_TO_NEAREST_DEPOT :Jedź do najbliższego serwisu +STR_ORDERS_GO_TO_BUTTON :{BLACK}Idź do +STR_ORDER_GO_TO_NEAREST_DEPOT :Idź do najbliższego serwisu STR_ORDER_GO_TO_NEAREST_HANGAR :Leć do najbliższego hangaru STR_ORDER_CONDITIONAL :Warunkowy skok poleceń STR_ORDER_SHARE :Współdzielenie poleceń @@ -4220,8 +4220,8 @@ STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Wstaw no STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Pokaż wszystkie pojazdy współdzielące te polecenia # String parts to build the order string -STR_ORDER_GO_TO_WAYPOINT :Jedź przez {WAYPOINT} -STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Jedź bez zatrzymywania przez {WAYPOINT} +STR_ORDER_GO_TO_WAYPOINT :Idź przez {WAYPOINT} +STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Idź bezpośrednio poprzez {WAYPOINT} STR_ORDER_SERVICE_AT :Serwisuj w STR_ORDER_SERVICE_NON_STOP_AT :Serwisuj non-stop w @@ -4240,7 +4240,7 @@ STR_ORDER_STOP_ORDER :(Stop) STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING} -STR_ORDER_IMPLICIT :(zasugerowany) +STR_ORDER_IMPLICIT :(sugerowany) STR_ORDER_FULL_LOAD :(Pełny załadunek) STR_ORDER_FULL_LOAD_ANY :(Pełny załadunek dowolnego towaru) From 0502a9c33200057c42da9fa6ab1a2e06abe9244b Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 4 Oct 2017 17:45:38 +0000 Subject: [PATCH 414/417] (svn r27924) -Update from Eints: hebrew: 5 changes by Metheny --- src/lang/hebrew.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 6acc603e3d..aa596d784f 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1387,6 +1387,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :כבוי STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :גלילה בלחיצה שמאלית: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :אפשר גלילת המפה באמצעות גרירתה עם כפתור העכבר השמאלי. אפשרות זו שימושית במיוחד בעת שימוש במסך מגע לצורך גלילה STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :סגירת חלון בכפתור ימני: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :סוגר חלון על-ידי לחיצה ימנית בתוכו. מבטל הצגת מידע בלחיצה ימנית! STR_CONFIG_SETTING_AUTOSAVE :שמירה אוטומטית: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :בחר פרק זמן בין שמירות אוטומטיות @@ -3308,6 +3309,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{YELLOW}{3:STRI STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{YELLOW}{5:STRING}{4:STRING},{3:STRING}{2:STRING},{1:STRING}{0:STRING}{BLACK} :דורש ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}דורש +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}ממתין ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{YELLOW}{1:STRING}{0:STRING}{BLACK} :מייצר @@ -3377,6 +3381,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :הסר את כ STR_GROUP_RENAME_CAPTION :{BLACK}שנה שם קבוצה STR_GROUP_PROFIT_LAST_YEAR :רווח שנה שעברה: +STR_GROUP_OCCUPANCY :שימוש נוכחי: # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :רכבות חדשות From 6f5dc695fa41822aef84480ef2d6dcda974e128b Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 5 Oct 2017 18:09:46 +0100 Subject: [PATCH 415/417] Add templated versions of CeilDiv and Ceil maths functions --- src/core/math_func.hpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/core/math_func.hpp b/src/core/math_func.hpp index df9142462b..2149d1d269 100644 --- a/src/core/math_func.hpp +++ b/src/core/math_func.hpp @@ -318,6 +318,18 @@ static inline uint CeilDiv(uint a, uint b) return (a + b - 1) / b; } +/** + * Computes ceil(a / b) for non-negative a and b (templated). + * @param a Numerator + * @param b Denominator + * @return Quotient, rounded up + */ +template +static inline T CeilDivT(T a, T b) +{ + return (a + b - 1) / b; +} + /** * Computes ceil(a / b) * b for non-negative a and b. * @param a Numerator @@ -329,6 +341,18 @@ static inline uint Ceil(uint a, uint b) return CeilDiv(a, b) * b; } +/** + * Computes ceil(a / b) * b for non-negative a and b (templated). + * @param a Numerator + * @param b Denominator + * @return a rounded up to the nearest multiple of b. + */ +template +static inline T CeilT(T a, T b) +{ + return CeilDivT(a, b) * b; +} + /** * Computes round(a / b) for signed a and unsigned b. * @param a Numerator From 2b38268e2f3924bec04766a361579dff29859aa6 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 5 Oct 2017 18:20:29 +0100 Subject: [PATCH 416/417] Add printf format codes for 64-bit unsigned integers --- src/stdafx.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/stdafx.h b/src/stdafx.h index 9187fdc8a7..7fbd61f560 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -339,10 +339,12 @@ /* MSVCRT of course has to have a different syntax for long long *sigh* */ #if defined(_MSC_VER) || defined(__MINGW32__) #define OTTD_PRINTF64 "%I64d" + #define OTTD_PRINTF64U "%I64u" #define OTTD_PRINTFHEX64 "%I64x" #define PRINTF_SIZE "%Iu" #else #define OTTD_PRINTF64 "%lld" + #define OTTD_PRINTF64U "%llu" #define OTTD_PRINTFHEX64 "%llx" #define PRINTF_SIZE "%zu" #endif From 15fea054fbd0faf2d4635f8259d07a6f69332082 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Fri, 12 Jan 2018 01:13:49 +0000 Subject: [PATCH 417/417] Add function pointer mode to SlXvFeatureTest --- src/saveload/extended_ver_sl.cpp | 2 ++ src/saveload/extended_ver_sl.h | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index 7a3e0ced88..7fdec374bb 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -60,6 +60,8 @@ bool SlXvFeatureTest::IsFeaturePresent(uint16 savegame_version, uint16 savegame_ { bool savegame_version_ok = savegame_version >= savegame_version_from && savegame_version <= savegame_version_to; + if (this->functor) return (*this->functor)(savegame_version, savegame_version_ok); + if (this->feature == XSLFI_NULL) return savegame_version_ok; bool feature_ok = SlXvIsFeaturePresent(this->feature, this->min_version, this->max_version); diff --git a/src/saveload/extended_ver_sl.h b/src/saveload/extended_ver_sl.h index b495c60c4e..72d8fa2691 100644 --- a/src/saveload/extended_ver_sl.h +++ b/src/saveload/extended_ver_sl.h @@ -39,11 +39,14 @@ enum SlXvFeatureTestOperator { * Structure to describe an extended feature version test, and how it combines with a traditional savegame version test */ struct SlXvFeatureTest { + using TestFunctorPtr = bool (*)(uint16, bool); ///< Return true if feature present, first parameter is standard savegame version, second is whether standard savegame version is within bounds + private: uint16 min_version; uint16 max_version; SlXvFeatureIndex feature; SlXvFeatureTestOperator op; + TestFunctorPtr functor = nullptr; public: SlXvFeatureTest() @@ -52,6 +55,9 @@ struct SlXvFeatureTest { SlXvFeatureTest(SlXvFeatureTestOperator op_, SlXvFeatureIndex feature_, uint16 min_version_ = 1, uint16 max_version_ = 0xFFFF) : min_version(min_version_), max_version(max_version_), feature(feature_), op(op_) { } + SlXvFeatureTest(TestFunctorPtr functor_) + : min_version(0), max_version(0), feature(XSLFI_NULL), op(XSLFTO_OR), functor(functor_) { } + bool IsFeaturePresent(uint16 savegame_version, uint16 savegame_version_from, uint16 savegame_version_to) const; };