diff --git a/Makefile.bundle.in b/Makefile.bundle.in index 63edb62d97..969b2ebcf0 100644 --- a/Makefile.bundle.in +++ b/Makefile.bundle.in @@ -172,6 +172,7 @@ install: bundle $(Q)install -d "$(INSTALL_BINARY_DIR)" $(Q)install -d "$(INSTALL_ICON_DIR)" $(Q)install -d "$(INSTALL_DATA_DIR)/ai" + $(Q)install -d "$(INSTALL_DATA_DIR)/game" $(Q)install -d "$(INSTALL_DATA_DIR)/baseset" $(Q)install -d "$(INSTALL_DATA_DIR)/lang" $(Q)install -d "$(INSTALL_DATA_DIR)/scripts" @@ -182,6 +183,7 @@ else endif $(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang" $(Q)install -m 644 "$(BUNDLE_DIR)/ai/"* "$(INSTALL_DATA_DIR)/ai" + $(Q)install -m 644 "$(BUNDLE_DIR)/game/"* "$(INSTALL_DATA_DIR)/game" $(Q)install -m 644 "$(BUNDLE_DIR)/baseset/"* "$(INSTALL_DATA_DIR)/baseset" $(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts" ifndef DO_NOT_INSTALL_DOCS diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index 29bcf4b7ec..090fbb15f2 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -811,7 +811,7 @@ static byte AircraftGetEntryPoint(const Aircraft *v, const AirportFTAClass *apc, /* We are northwest or southeast of the airport */ dir = delta_y < 0 ? DIAGDIR_NW : DIAGDIR_SE; } - dir = ChangeDiagDir(dir, (DiagDirDiff)ReverseDiagDir(DirToDiagDir(rotation))); + dir = ChangeDiagDir(dir, DiagDirDifference(DIAGDIR_NE, DirToDiagDir(rotation))); return apc->entry_points[dir]; } diff --git a/src/command.cpp b/src/command.cpp index 1a26cdc5d4..b76efa86ab 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -352,7 +352,7 @@ static const Command _command_proc_table[] = { DEF_CMD(CmdChangeTimetable, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_CHANGE_TIMETABLE DEF_CMD(CmdSetVehicleOnTime, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_SET_VEHICLE_ON_TIME DEF_CMD(CmdAutofillTimetable, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_AUTOFILL_TIMETABLE - DEF_CMD(CmdAutomateTimetable, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_AUTOMATE_TIMETABLE] + DEF_CMD(CmdAutomateTimetable, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_AUTOMATE_TIMETABLE DEF_CMD(CmdSetTimetableStart, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_SET_TIMETABLE_START DEF_CMD(CmdOpenCloseAirport, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_OPEN_CLOSE_AIRPORT diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 1343acb91b..0be6679583 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -1764,7 +1764,8 @@ struct CompanyInfrastructureWindow : Window if (this->railtypes != RAILTYPES_NONE) { /* Draw name of each valid railtype. */ - for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { + RailType rt; + FOR_ALL_SORTED_RAILTYPES(rt) { if (HasBit(this->railtypes, rt)) { SetDParam(0, GetRailTypeInfo(rt)->strings.name); DrawString(r.left + offs_left, r.right - offs_right, y += FONT_HEIGHT_NORMAL, STR_WHITE_STRING); @@ -1781,7 +1782,8 @@ struct CompanyInfrastructureWindow : Window case WID_CI_RAIL_COUNT: { /* Draw infrastructure count for each valid railtype. */ uint32 rail_total = c->infrastructure.GetRailTotal(); - for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { + RailType rt; + FOR_ALL_SORTED_RAILTYPES(rt) { if (HasBit(this->railtypes, rt)) { this->DrawCountLine(r, y, c->infrastructure.rail[rt], RailMaintenanceCost(rt, c->infrastructure.rail[rt], rail_total)); } diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index fe75708ddf..4aff4700b3 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -229,6 +229,7 @@ struct DepotWindow : Window { VehicleID vehicle_over; ///< Rail vehicle over which another one is dragged, \c INVALID_VEHICLE if none. VehicleType type; bool generate_list; + int hovered_widget; ///< Index of the widget being hovered during drag/drop. -1 if no drag is in progress. VehicleList vehicle_list; VehicleList wagon_list; uint unitnumber_digits; @@ -243,6 +244,7 @@ struct DepotWindow : Window { this->sel = INVALID_VEHICLE; this->vehicle_over = INVALID_VEHICLE; this->generate_list = true; + this->hovered_widget = -1; this->type = type; this->num_columns = 1; // for non-trains this gets set in FinishInitNested() this->unitnumber_digits = 2; @@ -867,11 +869,29 @@ struct DepotWindow : Window { this->sel = INVALID_VEHICLE; this->vehicle_over = INVALID_VEHICLE; this->SetWidgetDirty(WID_D_MATRIX); + + if (this->hovered_widget != -1) { + this->SetWidgetLoweredState(this->hovered_widget, false); + this->SetWidgetDirty(this->hovered_widget); + this->hovered_widget = -1; + } } virtual void OnMouseDrag(Point pt, int widget) { - if (this->type != VEH_TRAIN || this->sel == INVALID_VEHICLE) return; + if (this->sel == INVALID_VEHICLE) return; + if (widget != this->hovered_widget) { + if (this->hovered_widget == WID_D_SELL || this->hovered_widget == WID_D_SELL_CHAIN) { + this->SetWidgetLoweredState(this->hovered_widget, false); + this->SetWidgetDirty(this->hovered_widget); + } + this->hovered_widget = widget; + if (this->hovered_widget == WID_D_SELL || this->hovered_widget == WID_D_SELL_CHAIN) { + this->SetWidgetLoweredState(this->hovered_widget, true); + this->SetWidgetDirty(this->hovered_widget); + } + } + if (this->type != VEH_TRAIN) return; /* A rail vehicle is dragged.. */ if (widget != WID_D_MATRIX) { // ..outside of the depot matrix. @@ -958,7 +978,9 @@ struct DepotWindow : Window { default: this->sel = INVALID_VEHICLE; this->SetDirty(); + break; } + this->hovered_widget = -1; _cursor.vehchain = false; } diff --git a/src/direction_func.h b/src/direction_func.h index 8889485842..12aee58639 100644 --- a/src/direction_func.h +++ b/src/direction_func.h @@ -61,11 +61,11 @@ static inline Direction ReverseDir(Direction d) /** - * Calculate the difference between to directions + * Calculate the difference between two directions * * @param d0 The first direction as the base * @param d1 The second direction as the offset from the base - * @return The difference how the second directions drifts of the first one. + * @return The difference how the second direction drifts of the first one. */ static inline DirDiff DirDifference(Direction d0, Direction d1) { @@ -79,7 +79,7 @@ static inline DirDiff DirDifference(Direction d0, Direction d1) /** * Applies two differences together * - * This function adds two differences together and return the resulting + * This function adds two differences together and returns the resulting * difference. So adding two DIRDIFF_REVERSE together results in the * DIRDIFF_SAME difference. * @@ -123,6 +123,20 @@ static inline DiagDirection ReverseDiagDir(DiagDirection d) return (DiagDirection)(2 ^ d); } +/** + * Calculate the difference between two DiagDirection values + * + * @param d0 The first direction as the base + * @param d1 The second direction as the offset from the base + * @return The difference how the second direction drifts of the first one. + */ +static inline DiagDirDiff DiagDirDifference(DiagDirection d0, DiagDirection d1) +{ + assert(IsValidDiagDirection(d0)); + assert(IsValidDiagDirection(d1)); + /* Cast to uint so compiler can use bitmask. Result can never be negative. */ + return (DiagDirDiff)((uint)(d0 - d1) % 4); +} /** * Applies a difference on a DiagDirection diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 5c55c860ee..a8187c6ea3 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -41,7 +41,7 @@ STR_CARGO_PLURAL_VALUABLES :مقتنيات STR_CARGO_PLURAL_COPPER_ORE :منجم نحاس STR_CARGO_PLURAL_MAIZE :ذرة STR_CARGO_PLURAL_FRUIT :فواكة -STR_CARGO_PLURAL_DIAMONDS :جواهر +STR_CARGO_PLURAL_DIAMONDS :ألماس STR_CARGO_PLURAL_FOOD :طعام STR_CARGO_PLURAL_PAPER :ورق STR_CARGO_PLURAL_GOLD :ذهب @@ -97,10 +97,10 @@ STR_CARGO_SINGULAR_FIZZY_DRINK :مشروب غا STR_QUANTITY_NOTHING : STR_QUANTITY_PASSENGERS :{COMMA} راكب STR_QUANTITY_COAL :{WEIGHT_LONG} من الفحم -STR_QUANTITY_MAIL :{COMMA} صندوق من البريد +STR_QUANTITY_MAIL :{COMMA}{NBSP} كيس بريد STR_QUANTITY_OIL :{VOLUME_LONG} من النفط -STR_QUANTITY_LIVESTOCK :{COMMA}راس من الماشية -STR_QUANTITY_GOODS :{COMMA} قفص من البضائع +STR_QUANTITY_LIVESTOCK :{COMMA}{NBSP}رأس ماشية +STR_QUANTITY_GOODS :{COMMA}{NBSP} صندوق بضائع STR_QUANTITY_GRAIN :{WEIGHT_LONG} من الحبوب STR_QUANTITY_WOOD :{WEIGHT_LONG} من الخشب STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} من خام الحديد @@ -109,16 +109,16 @@ STR_QUANTITY_VALUABLES :{COMMA}صندو STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} من خام النحاس STR_QUANTITY_MAIZE :{WEIGHT_LONG} من الذرة STR_QUANTITY_FRUIT :{WEIGHT_LONG} من الفواكة -STR_QUANTITY_DIAMONDS :{COMMA}كيس من الجواهر +STR_QUANTITY_DIAMONDS :{COMMA}{NBSP}كيس ألماس STR_QUANTITY_FOOD :{WEIGHT_LONG} من الطعام STR_QUANTITY_PAPER :{WEIGHT_LONG} من الورق -STR_QUANTITY_GOLD :{COMMA}كيس من الذهب +STR_QUANTITY_GOLD :{COMMA}{NBSP} كيس ذهب STR_QUANTITY_WATER :{VOLUME_LONG} من المياة STR_QUANTITY_WHEAT :{WEIGHT_LONG} من القمح STR_QUANTITY_RUBBER :{VOLUME_LONG} من المطاط STR_QUANTITY_SUGAR :{WEIGHT_LONG} من السكر -STR_QUANTITY_TOYS :{COMMA}الالعاب -STR_QUANTITY_SWEETS :{COMMA} كيس من الحلويات +STR_QUANTITY_TOYS :{COMMA}{NBSP} لعبة +STR_QUANTITY_SWEETS :{COMMA}{NBSP} كيس حلويات STR_QUANTITY_COLA :{VOLUME_LONG} من الكولا STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} من الحلاوة القطنية STR_QUANTITY_BUBBLES :{COMMA}فقاعات @@ -165,12 +165,12 @@ STR_ABBREV_NONE :{TINY_FONT}لا STR_ABBREV_ALL :{TINY_FONT}الكل # 'Mode' of transport for cargoes -STR_PASSENGERS :{COMMA} ركاب -STR_BAGS :{COMMA} صناديق -STR_TONS :{COMMA} اطنان/طن -STR_LITERS :{COMMA} لتر +STR_PASSENGERS :{COMMA}{NBSP} راكب +STR_BAGS :{COMMA}{NBSP} كيس +STR_TONS :{COMMA}{NBSP} طن +STR_LITERS :{COMMA}{NBSP} لتر STR_ITEMS :{COMMA} وحدة -STR_CRATES :{COMMA} صناديق +STR_CRATES :{COMMA}{NBSP} صندوق # Colours, do not shuffle STR_COLOUR_DARK_BLUE :ازرق غامق @@ -191,32 +191,32 @@ STR_COLOUR_GREY :رمادي STR_COLOUR_WHITE :ابيض # Units used in OpenTTD -STR_UNITS_VELOCITY_IMPERIAL :{COMMA}ميل/س -STR_UNITS_VELOCITY_METRIC :{COMMA}كم/س -STR_UNITS_VELOCITY_SI :{COMMA}م/ث +STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}ميل/س +STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}كم/س +STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}م/ث -STR_UNITS_POWER_IMPERIAL :{COMMA}حصان -STR_UNITS_POWER_METRIC :{COMMA}حصان -STR_UNITS_POWER_SI :{COMMA}ك واط +STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}حصان +STR_UNITS_POWER_METRIC :{COMMA}{NBSP}حصان +STR_UNITS_POWER_SI :{COMMA}{NBSP}ك واط -STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}ت -STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}طن -STR_UNITS_WEIGHT_SHORT_SI :{COMMA}كجم +STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}{NBSP} طن +STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}{NBSP}طن +STR_UNITS_WEIGHT_SHORT_SI :{COMMA}{NBSP}كجم -STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} طن -STR_UNITS_WEIGHT_LONG_SI :{COMMA}كجم +STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP} طن +STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}كجم -STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}غال -STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}ل -STR_UNITS_VOLUME_SHORT_SI :{COMMA}م3 +STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}غال +STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}ل +STR_UNITS_VOLUME_SHORT_SI :{COMMA}{NBSP}م3 -STR_UNITS_VOLUME_LONG_METRIC :{COMMA} لتر -STR_UNITS_VOLUME_LONG_SI :{COMMA}م3 +STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP} لتر +STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}م3 -STR_UNITS_FORCE_SI :{COMMA} كيلو نيوتن +STR_UNITS_FORCE_SI :{COMMA}{NBSP} كيلو نيوتن -STR_UNITS_HEIGHT_IMPERIAL :{COMMA} قدم -STR_UNITS_HEIGHT_SI :{COMMA} متر +STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP} قدم +STR_UNITS_HEIGHT_SI :{COMMA}{NBSP} متر # Common window strings STR_LIST_FILTER_OSKTITLE :{BLACK} ادخل فلتر @@ -286,7 +286,7 @@ STR_SORT_BY_ENGINE_ID :نوع المح STR_SORT_BY_COST :التكلفة STR_SORT_BY_POWER :الطاقة STR_SORT_BY_TRACTIVE_EFFORT :قوة الجذب -STR_SORT_BY_INTRO_DATE :بداية التشغيل +STR_SORT_BY_INTRO_DATE :بداية الإنتاج STR_SORT_BY_RUNNING_COST :تكلفة التشغيل STR_SORT_BY_POWER_VS_RUNNING_COST :القوة/تكلفة التشغيل STR_SORT_BY_CARGO_CAPACITY :سعة الشحن @@ -351,6 +351,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 :إعدادات اﻹضافات STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :خيارات الشفافية @@ -941,7 +942,12 @@ 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_DROPDOWN_NORMAL :تقريب عادي +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :تقريب ×2 +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :تقريب ×4 STR_GAME_OPTIONS_BASE_GRF :{BLACK} الواجهة الرسومية الاساسية STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK} اختر مجموعة الواجهة الرسومية @@ -1036,6 +1042,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 :متقبل @@ -1044,6 +1051,7 @@ 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 :إسحب الكل @@ -1053,11 +1061,11 @@ STR_CONFIG_SETTING_RESTRICT_BASIC :اﻹعدادا STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}احصر القائمة على انواع اعدادات محددة STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :كل الاعدادات -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :اعدادات العميل (غير مخزن في المحفوظات, يؤثر على كل الالعاب) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :اعدادات اللعبة (مخزن في المحفوظات, يؤثر على الالعاب الجديدة فقط) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :اعدادات اللعبة (مخزن في المحفوظات, يؤثر على اللعبة الحالية فقط) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :اعدادات الشركة (مخزن في المحفوظات, يؤثر على الالعاب الجديدة فقط) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :اعدادات الشركة (مخزن في المحفوظات: يؤثر على الشركة الحالية فقط) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :اعدادات العميل (لا يخزن في الحفظ ؛ يطبق على كل الالعاب) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :اعدادات اللعبة (يخزن في الحفظ ؛ يطبق على الالعاب الجديدة فقط) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :اعدادات اللعبة (يخزن في الحفظ ؛ يطبق على اللعبة الحالية فقط) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :اعدادات الشركة (يخزن في الحفظ ؛ يطبق على الالعاب الجديدة فقط) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :اعدادات الشركة (يخزن في الحفظ ؛ يطبق على الشركة الحالية فقط) STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}عرض جميع النتائج بالنسبة للإعداد {}{SILVER} الفئة {BLACK} إلى {WHITE}{STRING} {BLACK}و{SILVER}نوع {BLACK} إلى{WHITE} جميع انواع الإعدادات STR_CONFIG_SETTINGS_NONE :{WHITE} - بدون - @@ -1078,7 +1086,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :متوسط STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :يمين -STR_CONFIG_SETTING_AUTOSLOPE :السماح باعادة بناء التلال تحت المباني, الطرق, الخ .-الانحدار الذاتي- {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :السماح بتحريك الأرض تحت المباني, الطرق, الخ : {STRING} STR_CONFIG_SETTING_CATCHMENT :السماح بحدود اكثر واقعية للمحطات بحسب الحجم: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :السماح بحذف اكثر من الطرق المملوكة للمدينة و الجسور و غيرها: {STRING} STR_CONFIG_SETTING_SMOKE_AMOUNT :كمية دخان/شرار القطارات:{STRING} @@ -1204,7 +1212,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :لا تصرف STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :الكل ما عدا عمليات البناء STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :الكل ما عدا خيارات تعديل الخريطة STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :كل تصرف -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :استخدام قائمة العربات المطورة: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :استخدام المجموعات في قائمة العربات : {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS :تفعيل مؤشر التحميل: {STRING} STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :عرض جدولة الأعمال بالمهام بدلا من الأيام: {STRING} STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :عرض الوصول و المغادرة في جدولة الاعمال: {STRING} @@ -1400,6 +1408,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}لعب STR_INTRO_GAME_OPTIONS :{BLACK}إعدادات اللعبه STR_INTRO_HIGHSCORE :{BLACK}قائمه المتفوقين +STR_INTRO_CONFIG_SETTINGS_TREE :الاعدادات STR_INTRO_NEWGRF_SETTINGS :{BLACK} اعدادات NewGRF STR_INTRO_ONLINE_CONTENT :{BLACK} إبحث عن المحتوى عبر الشبكه العنكبوتيه STR_INTRO_SCRIPT_SETTINGS :{BLACK}إعدادات الذكاء الصناعى @@ -1418,6 +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_NEWGRF_SETTINGS :{BLACK}عرض إعدادات اﻹضافات STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK} ابحث عن محتوى جديد او تحديث STR_INTRO_TOOLTIP_QUIT :{BLACK}اغلاق'OpenTTD' @@ -2373,6 +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_SNOW_LINE_QUERY_CAPT :{WHITE}غير مستوى خط الثلج STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}غير سنة البداية @@ -2592,8 +2603,8 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} تم توصيلة STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (مازال مطلوب) STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (تم توصيلة) -STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK} يوم -STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK} يوم{} (مول) +STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK}{NBSP} يوم +STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK}{NBSP} يوم (ممول) 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}وسط الشاشة الاساسية على موقع المدينة @@ -2863,7 +2874,7 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :لاتنتمي STR_GROUP_DEFAULT_SHIPS :مركبة لاتنتمي لأي مجموعة STR_GROUP_DEFAULT_AIRCRAFTS :طائرة لاتنتمي لأي مجموعة -STR_GROUPS_CLICK_ON_GROUP_FOR_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}أعد تسمية المجموعة المختارة @@ -3158,7 +3169,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_DAYS :{BLACK}فترات الصيانة: {LTBLUE}{COMMA}{NBSP} يوم {BLACK} اخر صيانة: {LTBLUE}{DATE_LONG} STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}فترات الصيانة: {LTBLUE}{COMMA}% {BLACK} الصيانة الأخيرة: {LTBLUE}{DATE_LONG} STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}زيادة فترات الصيانة بقدر 10. ومع مفتاح كنترول بمقدار 5. STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK} انقاص فترات الصيانة بمعدل 10. Ctrl+ الضغط الانقاص بمعدل 5. @@ -3250,8 +3261,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}غير STR_ORDER_REFIT :{BLACK}اعادة تهيئة STR_ORDER_REFIT_TOOLTIP :{BLACK}اختر نوع البضائع المنقولة لتهيئة العربات في هذا الامر. اضغط كنترول لازالة تعليمات التهيئة. -STR_ORDER_REFIT_AUTO :{BLACK}ملائمة ذاتية -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}اختر اي نوع من الحملة تريد ملائمتها ذاتيا. +STR_ORDER_REFIT_AUTO :{BLACK}ملائمة في محطة +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}اختر اي نوع من الحمولة تريد ملائمتها . اضغط مع ctrl لإزالة الملائمة . الملائمة في المحطات لن تكون ما لم تقبل العربة ذلك . STR_ORDER_DROP_REFIT_AUTO :شحنة ثابتة STR_ORDER_DROP_REFIT_AUTO_ANY :البضائع المتاحة @@ -3342,13 +3353,13 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(عدم انز STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :-عدم انزال الشحنة و الانتظار للحمولة القصوى لاي شحنة- STR_ORDER_NO_UNLOAD_NO_LOAD :(لا تفريغ و لا تحميل) -STR_ORDER_AUTO_REFIT :(ملائمة ذاتية ل {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(تحميل كلي مع الملائمة الذاتية لـ {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(تحميل كلي لاي بضاعة مع الملائمة الذاتية لـ {STRING}) -STR_ORDER_UNLOAD_REFIT :(تفريغ الحمولة و شحن البضائع مع الملائمة الذاتية لـ {STRING}) +STR_ORDER_AUTO_REFIT :(ملائمة لـ {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(تحميل كلي مع الملائمة لـ {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(تحميل كلي لأي بضاعة مع الملائمة لـ {STRING}) +STR_ORDER_UNLOAD_REFIT :(تفريغ الحمولة و شحن البضائع مع الملائمة لـ {STRING}) STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(تفرغ الحمولة و الانتظار للتحميل الكلي مع الملائمة لـ {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(التفريغ و الانتظار للتحميل الكلي لاي بضاعة مع الملائمة الذاتية لـ {STRING}) -STR_ORDER_TRANSFER_REFIT :(تحويل البضاعة و اخذ البضاعة مع الملائمة الذاتية لـ {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(التفريغ و الانتظار للتحميل الكلي لأي بضاعة مع الملائمة لـ {STRING}) +STR_ORDER_TRANSFER_REFIT :(تحويل البضاعة و أخذ البضاعة مع الملائمة لـ {STRING}) STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(تحويل البضاعة و الانتظار للحمولة القصوى مع الملائمة الذاتية لـ {STRING}) STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(تحويل البضاعة و الانتظار لاي حمولة كاملة مع الملائمة الذاتية لـ {STRING}) STR_ORDER_NO_UNLOAD_REFIT :(عدم التفريغ و تحميل البضائع مع الملائمة الذاتية لـ {STRING}) @@ -3620,7 +3631,7 @@ STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... قر STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... قريبة جدا من مدينة أخرى STR_ERROR_TOO_MANY_TOWNS :{WHITE}... المدن كثيرة جدا STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... لا يوجد فراغ في الخريطة -STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}لن تبني البلدية طرق جديدة. بامكانك تمكين البلدية من بناء الطرق الجديدة عن طريق الاعدادات المتقدمة --> الاقتصاد --> المدن +STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}لن تبني البلدية طرق جديدة. بإمكانك تمكين بناء الطرق الجديدة عن طريق الاعدادات --> البيئة--> المدن STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}اعمال الطرق قيد التنفيذ STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}لا يمكن ازالة هذه المدينة {}محطة او ورشة مرتبطة بالمدينة او هناك مربع مملوك للمدينة لا يمكن لزالته STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... لا يوجد مكان مناسب للمجسم بداخل هذة المدينة/البلدة diff --git a/src/lang/english.txt b/src/lang/english.txt index 349471435b..270bbca68a 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2882,7 +2882,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Go to th STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Previous sprite STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolour/font sprites and wrapping around from the first sprite to the last STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation of the currently selected sprite. The alignment is ignored when drawing this sprite -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets. Ctrl+Click to move the sprite eight units at a time STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Reset relative STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reset the current relative offsets STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absolute) @@ -3946,7 +3946,7 @@ STR_TIMETABLE_AUTOFILL :{BLACK}Autofill STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Fill the timetable automatically with the values from the next journey (Ctrl+Click to try to keep waiting times) STR_TIMETABLE_AUTOMATE :{BLACK}Automate -STR_TIMETABLE_AUTOMATE_TOOLTIP :{BLACK}Manage the timetables automatically by updating the values for each journey +STR_TIMETABLE_AUTOMATE_TOOLTIP :{BLACK}Manage the timetables automatically by updating the values for each journey (Ctrl+Click when disabling to keep the current timetable) STR_TIMETABLE_EXPECTED :{BLACK}Expected STR_TIMETABLE_SCHEDULED :{BLACK}Scheduled diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 6a1a669d81..25936e3f9f 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -197,31 +197,31 @@ STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}me STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}dk STR_UNITS_POWER_METRIC :{COMMA}{NBSP}dk -STR_UNITS_POWER_SI :{COMMA}kW +STR_UNITS_POWER_SI :{COMMA}{NBSP}kW -STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}t -STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}t -STR_UNITS_WEIGHT_SHORT_SI :{COMMA}kg +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} ton +STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}ton STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} ton -STR_UNITS_WEIGHT_LONG_SI :{COMMA} kg +STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}kg -STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}gal -STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}l -STR_UNITS_VOLUME_SHORT_SI :{COMMA}m³ +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} gallon -STR_UNITS_VOLUME_LONG_METRIC :{COMMA} liter -STR_UNITS_VOLUME_LONG_SI :{COMMA} m³ +STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon +STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}litre +STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³ -STR_UNITS_FORCE_IMPERIAL :{COMMA} lbf -STR_UNITS_FORCE_METRIC :{COMMA} kgf -STR_UNITS_FORCE_SI :{COMMA} kN +STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lbf +STR_UNITS_FORCE_METRIC :{COMMA}{NBSP}kgf +STR_UNITS_FORCE_SI :{COMMA}{NBSP}kN -STR_UNITS_HEIGHT_IMPERIAL :{COMMA} ft -STR_UNITS_HEIGHT_METRIC :{COMMA} m -STR_UNITS_HEIGHT_SI :{COMMA} m +STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP}kaki +STR_UNITS_HEIGHT_METRIC :{COMMA}{NBSP}m +STR_UNITS_HEIGHT_SI :{COMMA}{NBSP}m # Common window strings STR_LIST_FILTER_TITLE :{BLACK}Kata penyaring: @@ -1098,7 +1098,7 @@ STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Nilai s STR_CONFIG_SETTING_TYPE :{LTBLUE}Tipe setting: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE_CLIENT :Setting klien (tidak disimpan di penyimpanan; mempengaruhi semua permainan) STR_CONFIG_SETTING_TYPE_GAME_MENU :Setting permainan (disimpan dalam penyimpanan; hanya mempengaruhi permainan baru) -STR_CONFIG_SETTING_TYPE_GAME_INGAME :Setting permainan (disimpan dalam penyimpanan; hanya mempengaruhi permainan saat ini)) +STR_CONFIG_SETTING_TYPE_GAME_INGAME :Pengaturan permainan (disimpan dalam penyimpanan; hanya mempengaruhi permainan saat ini) STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Setting perusahaan (disimpan dalam penyimpanan; hanya mempengaruhi permainan baru) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Setting perusahaan (disimpan dalam penyimpanan; hanya mempengaruhi permainan saat ini) @@ -1113,9 +1113,9 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Pengaturan deng STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Membatasi urutan / tabel di bawah ke setting tertentu STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Semua setting -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Setting klien (tidak disimpan di penyimpanan; mempengaruhi semua permainan) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Pengaturan klien (tidak disimpan di penyimpanan; mempengaruhi semua permainan) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Pengaturan permainan (ikut tersimpan; hanya memiliki efek pada permainan baru) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Pengaturan permainan (ikut tersimpan; hanya memiliki efek pada permainan aktif) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Pengaturan permainan (ikut tersimpan; hanya memiliki efek pada permainan saat ini) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Pengaturan perusahaan (ikut tersimpan; hanya memiliki efek pada permainan baru) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Pengaturan perusahaan (ikut tersimpan; hanya memiliki efek pada perusahaan aktif) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Tampilkan semua pencarian berdasarkan pengaturan{}{SILVER}Kategori {BLACK}sampai {WHITE}{STRING} @@ -1165,7 +1165,7 @@ STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Pilih seberapa STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Tinggi peta maksimum: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Atur ketinggian pegunungan maksimum yang diijinkan untuk peta ini STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Kamu tidak bisa mengubah ketinggian peta maksimum di angka itu. Setidaknya ada satu gunung di peta yang lebih tinggi -STR_CONFIG_SETTING_AUTOSLOPE :Ijinkan pembentukan slop dibawah bangunan, rel, dsb. (otomatiskan): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Ijinkan pembentukan slop dibawah bangunan, rel, dsb.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Ijinkan pembentukan tanah dibawah bangunan dan trek tanpa merusaknya STR_CONFIG_SETTING_CATCHMENT :Ijinkan ukuran jangkauan wilayah lebih realistik: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Gunakan area penarikan berbeda untuk tipe stasiun dan airport yang berbeda @@ -1281,7 +1281,7 @@ STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Durasi penampil STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} detik STR_CONFIG_SETTING_HOVER_DELAY :Tampilkan tooltips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Delay sebelum bantuan peralatan ditampilkan saat mouse diatas sebuah ikon. Selain itu bantuan peralatan juga dapat ditampilkan dengan klik kanan -STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Melayang untuk {COMMA} detik +STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Melayang untuk {COMMA} mili detik STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Klik kanan STR_CONFIG_SETTING_POPULATION_IN_LABEL :Tampilkan populasi kota di label nama kota: {STRING} STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Tampilkan populasi kota di label nama kota pada peta @@ -1343,7 +1343,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Pergeseran pand STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Menyetel bagaimana tampilan utama menggeser posisi di peta kecil. Jika dinyalakan, peta akan bergeser secara halus. Jika dimatikan, peta langsung menuju tempat yang di klik STR_CONFIG_SETTING_MEASURE_TOOLTIP :Tampilkan ukuran ketika menggunakan alat pembangun: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Tampilkan perbedaan jarak dan tinggi ubin saat proses pembangunan -STR_CONFIG_SETTING_LIVERIES :Tampilkan warna perusahaan: {STRING} +STR_CONFIG_SETTING_LIVERIES :Tampilkan warna tergantung jenis kendaraan: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Kontrol penggunaan tipe kendaraan spesifik untuk kendaraan (dalam perusahaan tertentu) STR_CONFIG_SETTING_LIVERIES_NONE :Tidak ada STR_CONFIG_SETTING_LIVERIES_OWN :Perusahaan milik sendiri @@ -1390,7 +1390,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Tidak ada tinda STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Semua tindakan kecuali pembangunan STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Semua kecuali mengubah dataran STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Semua tindakan -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gunakan daftar kendaraan tingkat lanjut: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gunakan grup dalam daftar kendaraan: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Mengaktifkan penggunaan daftar kendaraan lebih lanjut dalam pengelompokkan kendaraan STR_CONFIG_SETTING_LOADING_INDICATORS :Tampilkan indikator pengangkutan: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Pilih apakah petunjuk beban ditayangkan di atas kendaran yang sedang mengisi atau menurunkan beban @@ -1405,7 +1405,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Jenis rel yang STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Tersedia pertama STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Tersedia terakhir STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Sering dipakai -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Sorot rel yang akan terpakai: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Tampilkan rel yang akan terpakai: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Beri warna yang berbeda untuk jalur-jalur yang dicadangkan untuk menolong ketika terdapat kereta yang menolak masuk ke blok menurut jalurnya STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Toolbar tetap aktif setelah dipakai: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Menjagakan alat pembangunan untuk jembatan, terowongan, etc. buka setelah dipakai @@ -1433,11 +1433,11 @@ STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Matikan infrast STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Jika diaktifkan, infrastruktur cuma tersedia jika ada kendaraan tersedia, mencegah buang waktu dan uang di infrastruktur yang tidak bisa digunakan STR_CONFIG_SETTING_MAX_TRAINS :Maks. kereta tiap pemain: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Batas jumlah kereta yang boleh dimiliki satu perusahaan -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maks. kendaraan jalan raya tiap pemain: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maks. kendaraan jalan raya tiap perusahaan: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Batas jumlah kendaraan jalan raya yang boleh dimiliki satu perusahaan -STR_CONFIG_SETTING_MAX_AIRCRAFT :Maks. pesawat tiap pemain: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Maks. pesawat tiap perusahaan: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Batas jumlah pesawat yang boleh dimiliki satu perusahaan -STR_CONFIG_SETTING_MAX_SHIPS :Maks. kapal tiap pemain: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Maks. kapal tiap perusahaan: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Jumlah maximum kapal yang boleh dimilki sebuah perusahaan STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Non-aktifkan kereta bagi pemain komputer: {STRING} @@ -1464,7 +1464,7 @@ STR_CONFIG_SETTING_SERVINT_ISPERCENT :Jangka waktu pe STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Pilih apakah servis kendaraan dipicu oleh waktu terlewat sejak servis terakhir atau dari kehandalan menjatuh beberapa persentase dari kehandalan maximum STR_CONFIG_SETTING_SERVINT_TRAINS :Interval dasar untuk kereta: {STRING} STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Setel interval dasar untuk kereta, jika tidak ada interval tetap -STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} hari/% +STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}hari/% STR_CONFIG_SETTING_SERVINT_DISABLED :Di non-aktifkan STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Interval dasar untuk kendaraan jalan raya: {STRING} STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Setel Interval perbaikan untuk kendaraan jalan raya baru, jika tidak ada interval tetap @@ -1604,9 +1604,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Tidak ada STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Faktor kali ukuran kota awal: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Ukuran rata-rata kota besar terhadap kota kecil saat permainan dimulai -STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Perbarui grafik distribusi setiap {STRING} hari +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Perbarui grafik distribusi setiap {STRING}{NBSP}hari STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Waktu diantara dua penghitungan linkgraph berurutan. Setiap penghitungan hanya menghitung satu komponen perencanaan dari grafik. Namun, angka yang diberikan untuk seting ini bukan berarti seluruh grafik akan diperbaharui dalam angka hari yang sama, hanya beberapa bagian. Semakin sedikit semakin banyak proses CPU yang diperlukan untuk menghitung. Semakin banyak semakin lama waktu sebelum cargo distribution dimulai pada rute baru. -STR_CONFIG_SETTING_LINKGRAPH_TIME :Ambil {STRING} hari untuk menghitung grafik distribusi +STR_CONFIG_SETTING_LINKGRAPH_TIME :Ambil {STRING}{NBSP}hari untuk menghitung grafik distribusi STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Waktu dibutuhkan untuk setiap perhitungan dari komponen 'linkgraph'. Ketika perhitungan dimulai, ada utas 'dibuat' yang boleh dijalankan untuk jumlah hari ini. Semakin pendek anda mengatur ini lebih mungkin utas ini belum selesai ketika itu seharusnya. Kemudian permainan berhenti sampai itu ("lag"). Semakin lama anda mengatur semakin lama itu untuk distribusinya untuk memperbarui ketika rute mengganti. STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetris @@ -1618,7 +1618,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"simetris" bera STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modus distribusi untuk kelas kargo BERLAPIS BAJA: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :Kelas kargo BERLAPIS BAJA meliputi barang berharga pada iklim sedang, intan pada sub tropis atau emas pada iklim sub arktik. NewGRF mungkin mengubah itu. "simetris" berarti bahwa jumlah kargo kira-kira akan terkirim sama dari stasiun A ke stasiun B sebagaimana dari B ke A. "asimetris" berarti jumlah kargo terkirim bisa berbeda pada kedua arah. "manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk kargo itu. Disarankan untuk memilih asimetris atau manual ketika bermain sub arktik, karena bank tidak mengirim emas kembali ke tambang emas. Untuk iklim tropis dan sub tropis anda juga bisah pilih simetris karena bank akan mengirim kembali beberapa barang berharga ke bank asalnya. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Modus distribusi untuk kelas kargo yang lain: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"simetris" berarti bahwa kira-kira sama jumlah kargo akan pergi dari stasiun A ke stasiun B sebagai dari B ke A. "asimetris" berarti sewenang-wenang jumlah kargo bisa pergi di kedua arah. "manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk kargo. Anda mungkin mau mengaturkan ini untuk "asimetris" atau manual. +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asimetris" berarti jumlah kargo yang pergi ke kedua arah bisa berbeda-beda. "manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk kargo. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Ketepatan distribusi: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Semakin tinggi anda mengatur ini semakin banyak waktu CPU perhitungan "linkgraph" akan mengambil. Jika waktu terlalu lama anda mungkin melihat "lag".Jika anda mengatur itu ke nilai rendah, tetapi, distribusi akan menjadi tidak akurat, dan anda mungkin melihat kargo tidak dikirim ke tempat anda berharap untuk pergi. STR_CONFIG_SETTING_DEMAND_DISTANCE :Efek jarak kepada permintaan : {STRING} @@ -1666,7 +1666,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisasi STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafik -STR_CONFIG_SETTING_SOUND :{ORANGE}Efek suara +STR_CONFIG_SETTING_SOUND :{ORANGE}Suara STR_CONFIG_SETTING_INTERFACE :{ORANGE}Antaramuka STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Umum STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Jendela @@ -1684,7 +1684,7 @@ STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Linkung STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Berwenang STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Kota STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industri -STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribusi Kargo +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribusi kargo STR_CONFIG_SETTING_AI :{ORANGE}Pesaing STR_CONFIG_SETTING_AI_NPC :{ORANGE}Pemain Komputer @@ -1966,13 +1966,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Lindungi STR_NETWORK_START_SERVER_UNADVERTISED :Tidak STR_NETWORK_START_SERVER_ADVERTISED :Ya STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} klien -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maksimum klien: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maksimum jumlah klien: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Pilih jumlah klien maksimal. Tidak semua slot harus diisi STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} Perusahaan -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maksimum perusahaan: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maksimum jumlah perusahaan: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Batasi jumlah perusahaan pada server STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} Penonton -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maksimum penonton: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maksimum jumlah penonton: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Batasi jumlah penonton pada server STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Bahasa pembicaraan: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Agar pemain lain mengetahui bahasa apa yang digunakan pada sever @@ -2986,8 +2986,8 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} terkirim STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (masih dibutuhkan) STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (terkirim) -STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Kota tumbuh setiap {ORANGE}{COMMA}{BLACK} hari -STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Kota tumbuh setiap {ORANGE}{COMMA}{BLACK} hari (didanai) +STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Kota tumbuh setiap {ORANGE}{COMMA}{BLACK}{NBSP}hari +STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Kota tumbuh setiap {ORANGE}{COMMA}{BLACK}{NBSP}hari (didanai) STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Kota {RED}tidak{BLACK} tumbuh STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Batas kebisingan di kota : {ORANGE}{COMMA}{BLACK} maks.: {ORANGE}{COMMA} STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Arahkan pandangan utama pada lokasi kota. Ctrl+Click akan membuka viewport baru pada lokasi kota @@ -3196,7 +3196,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Total: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Saldo Bank STR_FINANCES_LOAN_TITLE :{WHITE}Pinjaman -STR_FINANCES_MAX_LOAN :{WHITE}Pinjaman Maks: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Pinjaman maks.: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Pinjam {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Tambah jumlah pinjaman. Tekan Ctrl+Click untuk meminjam sebanyak mungkin. @@ -3664,7 +3664,7 @@ STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}Daya Mua STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Nilai Transfer: {LTBLUE}{CURRENCY_LONG} -STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Jangka waktu perbaikan: {LTBLUE}{COMMA} hari{BLACK} Perbaikan terakhir: {LTBLUE}{DATE_LONG} +STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Jangka waktu perbaikan: {LTBLUE}{COMMA}{NBSP}hari{BLACK} Perbaikan terakhir: {LTBLUE}{DATE_LONG} STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Jangka waktu perbaikan: {LTBLUE}{COMMA} %{BLACK} Perbaikan terakhir: {LTBLUE}{DATE_LONG} STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Tambah jarak waktu perbaikan dengan 10. Ctrl+Click menambah jarak waktu perbaikan dengan 5. STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Kurangi jarak waktu perbaikan dengan 10. Ctrl+Click mengurangi jarak waktu perbaikan dengan 5 @@ -3900,8 +3900,8 @@ STR_TIMETABLE_STAY_FOR_ESTIMATED :(menetap untuk STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(perjalan untuk {STRING}, tidak berjadwal) STR_TIMETABLE_STAY_FOR :dan tinggal selama {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :dan berjalan selama {STRING} -STR_TIMETABLE_DAYS :{COMMA} hari -STR_TIMETABLE_TICKS :{COMMA} titik +STR_TIMETABLE_DAYS :{COMMA}{NBSP}hari +STR_TIMETABLE_TICKS :{COMMA}{NBSP}titik STR_TIMETABLE_TOTAL_TIME :{BLACK}Total durasi seluruh perjalanan akan memakan waktu {STRING} STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Total durasi seluruh perjalanan akan memakan waktu kurang lebih {STRING} untuk terpenuhi (blm semuanya terjadwal) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 3060ed353c..ce69b5e50c 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -2904,7 +2904,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Va allo STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Precedente STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Procede al precedente sprite normale, saltanto qualsiasi sprite speciale, di ricoloramento o carattere e tornando all'ultimo se viene raggiunto il primo della lista STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Rappresentazione dello sprite corrente. L'allineamento viene ignorato in questa casella. -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Sposta lo sprite, cambiando gli spiazzamenti X e Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Sposta lo sprite, cambiando gli spiazzamenti X e Y. CTRL+clic sposta lo sprite di otto unità alla volta STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Reimposta posizione relativa STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reimposta gli spiazzamenti relativi attuali STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Posizione X: {NUM}, Y: {NUM} (assoluto) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 45e12e60a3..34569153da 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2174,7 +2174,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :게임이 아 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :게임이 아직 일시 정지된 상태입니다. ({STRING}, {STRING}, {STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :게임이 아직 일시 정지된 상태입니다. ({STRING}, {STRING}, {STRING}, {STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :게임이 재개되었습니다. ({STRING}) -STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :충분한 플레이어가 없습니다 +STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :플레이하는 사람 수 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :접속자와 연결중 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :수동 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :게임 스크립트 @@ -2875,7 +2875,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+클릭하면 한 번에 8씩 이동시킬 수 있습니다. STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}상대값 초기화 STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}현재 상대값 좌표를 초기화 STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X 좌표: {NUM}, Y 좌표: {NUM} (절댓값) @@ -3009,7 +3009,7 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :도시 이름 # Town local authority window STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} 지역 당국 -STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}회사 운송 성취도: +STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}회사에 대한 이 도시의 평판: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}가능한 행동: STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}이 도시에 할 수 있는 일 목록 - 상세 정보를 보시려면 클릭하세요 @@ -3880,9 +3880,9 @@ STR_ORDER_STOP_LOCATION_FAR_END :[먼쪽] STR_ORDER_OUT_OF_RANGE :{RED} (다음 목적지가 항속거리제한을 벗어납니다.) -STR_ORDER_CONDITIONAL_UNCONDITIONAL :[조건 경로] {COMMA}번째 경로로 건너뛰기 -STR_ORDER_CONDITIONAL_NUM :[조건 경로] {COMMA}번째 경로로 건너뛰기 ({STRING} {STRING} {COMMA} 일때) -STR_ORDER_CONDITIONAL_TRUE_FALSE :[조건 경로] {COMMA}번째 경로로 건너뛰기 ({STRING}{STRING}) +STR_ORDER_CONDITIONAL_UNCONDITIONAL :[조건 경로] {COMMA}번 경로로 건너뛰기 +STR_ORDER_CONDITIONAL_NUM :[조건 경로] {COMMA}번 경로로 건너뛰기 ({STRING} {STRING} {COMMA} 일때) +STR_ORDER_CONDITIONAL_TRUE_FALSE :[조건 경로] {COMMA}번 경로로 건너뛰기 ({STRING}{STRING}) STR_INVALID_ORDER :{RED} (잘못된 행선지) diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 99d88237f5..016fcbcb92 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -512,7 +512,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Monstrar STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Monstrare res fiscales societatis STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Monstrare facta generalia societatis STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Monstrare librum fabularum -STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Monstrare indicem metarum +STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Monstrare indicem propositorum STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Monstrare formulas graphicas STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Monstrare album foederis societatum STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Industriam novam condere vel monstrare indicem industriarum @@ -526,11 +526,11 @@ STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Struere STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Struere vias STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Struere navalia STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Struere aeroportus -STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Monstrare terrae arcam ferramentorum qua potes terram augere/minuere, arbores serere, etc. +STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Monstrare terrae arcam instrumentorum qua potes terram augere/minuere, arbores serere, etc. STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Monstrare fenestram soni musicaeque STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Monstrare nuntium novissimum sive optiones nuntii STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Indicia terrae regionis, consola, emendatio scripti, imagines conspectus, de OpenTTD -STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Mutare inter arcas ferramentorum +STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Mutare inter arcas instrumentorum # Extra tooltips for the scenario editor toolbar STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Servare scaenarium, legere scaenarium, relinquere scriptorium scaenarii, exire @@ -1507,7 +1507,7 @@ STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Originalis STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Melior STR_CONFIG_SETTING_ROAD_SIDE :Vehicula viaria: {STRING} STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Eligere latus viae gubernandi -STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Circuitus tabulae altitudinum: {STRING} +STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotatio tabulae altitudinum: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Sinistrorsus STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Dextrorsus STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Altitudo scaenario plano data: {STRING} @@ -1518,8 +1518,8 @@ STR_CONFIG_SETTING_STATION_SPREAD :Spatium station STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Area maxima in qua partes stationum possunt esse sita. Cave, numeris spatii magnis, ludus lentus sit STR_CONFIG_SETTING_SERVICEATHELIPAD :Ministrare helicoptera automatice in helicopterariis: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Ministrare helicoptera post quemque appulsum, etsi non est tugurium portui -STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Connectere terrae arcam ferramentorum arcis ferriviariae/viariae/aquariae/aeriae ferramentorum: {STRING} -STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Cum arca ferramentorum constructionis aperitur, etiam plasmationis terrae arca ferramentorum aperitur +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Connectere terrae arcam instrumentorum arcis ferriviariae/viariae/aquariae/aeriae instrumentorum: {STRING} +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Cum arca instrumentorum constructionis aperitur, etiam plasmationis terrae arca instrumentorum aperitur STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Color terrae in tabula adhibitus: {STRING} STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Color terrae in tabula geographica parva STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Viridis @@ -1756,8 +1756,8 @@ STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :Nulla {RED}(rum STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :Modo in silvis plivualibus STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :Ubique -STR_CONFIG_SETTING_TOOLBAR_POS :Locus primariae arcae ferramentorum: {STRING} -STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Locus horizontalis arcae ferramentorum primariae apud apicem fenestrae +STR_CONFIG_SETTING_TOOLBAR_POS :Locus primariae arcae instrumentorum: {STRING} +STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Locus horizontalis arcae instrumentorum primariae apud apicem fenestrae STR_CONFIG_SETTING_STATUSBAR_POS :Locus serae status: {STRING} STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Locus horizontalis serae status apud infimam partem fenestrae STR_CONFIG_SETTING_SNAP_RADIUS :Radius fenestrae adhaerendae: {STRING} @@ -2951,7 +2951,7 @@ STR_MAPGEN_BORDER_RANDOM :{BLACK}Fortuiti STR_MAPGEN_BORDER_RANDOMIZE :{BLACK}Fortuiti STR_MAPGEN_BORDER_MANUAL :{BLACK}Manu -STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Circuitus tabulae altitudinum: +STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Rotatio tabulae altitudinum: STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nomen tabulae altitudinum: STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Magnitudo: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} @@ -3021,7 +3021,7 @@ STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Mutare c STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Mutare coloris tabulam huius NewGRF.{}Utere cum colores huius NewGRF videntur esse rosei STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Confirmare mutationes -STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Quaere res absentes in interrete +STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Quaere res absentes in interreti STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Inspicere si res absentes in inventario Interretiale sunt STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Nomen fasciculi: {SILVER}{STRING} @@ -3236,16 +3236,16 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Emere m STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Largiri auctoritatem vicinalem ut tua censio augeatur, at difficultas adest: forsitan animadvertaris et graviter puniaris.{}Pretium: {CURRENCY_LONG} # Goal window -STR_GOALS_CAPTION :{WHITE}{COMPANY} Metae -STR_GOALS_SPECTATOR_CAPTION :{WHITE}Metae Globales -STR_GOALS_GLOBAL_TITLE :{BLACK}Metae globales: +STR_GOALS_CAPTION :{WHITE}{COMPANY} Proposita +STR_GOALS_SPECTATOR_CAPTION :{WHITE}Proposita Universalia +STR_GOALS_GLOBAL_TITLE :{BLACK}Proposita universalia: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nullae - STR_GOALS_SPECTATOR_NONE :{ORANGE}- Non applicabiles - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Metae Societatis: -STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in metam ut conspectus moveatur supra industriam/oppidum/tegulam. Ctrl+Preme ut nova fenestra conspectus aperiatur supra industriam/oppidum/tegulam +STR_GOALS_COMPANY_TITLE :{BLACK}Proposita Societatis: +STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in propositum ut conspectus moveatur supra industriam/oppidum/tegulam. Ctrl+Preme ut nova fenestra conspectus aperiatur supra industriam/oppidum/tegulam # Goal question window STR_GOAL_QUESTION_CAPTION_QUESTION :Quaestio @@ -3285,7 +3285,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in # Story book window STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Librum Fabularum -STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Librum Fabularum Globalis +STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Librum Fabularum Universale STR_STORY_BOOK_TITLE :{YELLOW}{STRING} STR_STORY_BOOK_GENERIC_PAGE_ITEM :Pagina {NUM} STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Salire ad quamdam paginam eligendo eam in hac indice @@ -3293,7 +3293,7 @@ STR_STORY_BOOK_PREV_PAGE :{BLACK}Priorem STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}Ire ad paginam priorem STR_STORY_BOOK_NEXT_PAGE :{BLACK}Secundam STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Ire ad paginam secundam -STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Meta irrita +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Propositum irritum # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}Nomina stationum - preme in nomen ut conspectus moveatur supra stationem. Ctrl+Preme ut nova fenestra conspectus aperiatur supra stationem @@ -3555,7 +3555,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Greges - STR_GROUP_CREATE_TOOLTIP :{BLACK}Preme ut grex creatur STR_GROUP_DELETE_TOOLTIP :{BLACK}Delere gregem electam STR_GROUP_RENAME_TOOLTIP :{BLACK}Renominare gregem electam -STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Preme ut vehicula huius gregis custodiantur contra autocommutationem globalem +STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Preme ut vehicula huius gregis custodiantur contra autocommutationem universalem STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Gregem Delere STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Esne certus te velle delere hanc gregem eiusque descendentes? @@ -4374,7 +4374,7 @@ STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... nimi STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... nimis prope aliud oppidum STR_ERROR_TOO_MANY_TOWNS :{WHITE}... nimis oppida adsunt STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... plus spatium tabulae deest -STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Oppidum non vias faciet. Potest sinere vias facere in Electionibus->Circumiecta->Oppida +STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Oppidum non vias struet. Potes hanc optionem mutare in Electionibus->Circumiecta->Oppida STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Constructio viaria agitur STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Non licet oppidum delere...{}Statio receptaculumve est oppido sive non licet tegulam oppidi removere STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... non est locus effigiei idoneus in medio oppidi diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 259fd8ee68..d6a7d6bc39 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -205,16 +205,16 @@ STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}{NBSP}t STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}{NBSP}t STR_UNITS_WEIGHT_SHORT_SI :{COMMA}{NBSP}kg -STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}tonn{P "" er} -STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP}tonn{P "" er} +STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}tonn +STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP}tonn{P "" ""} STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}kg STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}gal STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}l STR_UNITS_VOLUME_SHORT_SI :{COMMA} m³ -STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon{P "" er} -STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}liter{P "" er} +STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon +STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}liter STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³ STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lbf @@ -1528,7 +1528,7 @@ STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prosentandel av STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Andel av inntekten gitt til de mellomliggende etapper i et overføringssystem, noe som gir mer kontroll over inntektene STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Når du drar en linje, plasser signaler hver: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Angi distansen for når signaler vil bli bygget på et spor frem til neste hinder (signal, kryss), hvis signaler blir dratt -STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} kartelement{P 0 "" s} +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} kartelement{P 0 "" er} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Når du drar en linje, oppretthold fast avstand mellom signaler: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Velg oppførselen til signalplassering ved Ctrl + dragning av signaler. Hvis deaktivert, blir signaler plassert ved tunneler eller broer for å unngå lange strekninger uten signaler. Hvis aktivert, blir signalene plassert for hver N ruter, noe som gjør justering av signaler på parallelle spor enklere STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Bygg vingesignal automatisk før: {STRING} @@ -1577,7 +1577,7 @@ STR_CONFIG_SETTING_STATUSBAR_POS :Statusbarens po STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Horisontal posisjon av status verktøylinjen på bunnen av skjermen STR_CONFIG_SETTING_SNAP_RADIUS :Vinduers smekkeradius: {STRING} STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Avstanden mellom vinduer før vinduet som blir flyttet automatisk tilpasset nærliggende vinduer -STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piksel{P 0 "" s} +STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piks{P 0 el ler} STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Deaktivert STR_CONFIG_SETTING_SOFT_LIMIT :Maksimalt antall flytende vinduer: {STRING} STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Antall ikke-klebrige åpne vinduer før gamle vinduer automatisk blir lukket for å gi plass til nye vinduer @@ -3908,8 +3908,8 @@ STR_TIMETABLE_STAY_FOR_ESTIMATED :(opphold i {STR STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(reise for {STRING}, ikke oppsatt med rutetabell) STR_TIMETABLE_STAY_FOR :og bli værende i {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :og reis i {STRING} -STR_TIMETABLE_DAYS :{COMMA}{NBSP}dag{P "" s} -STR_TIMETABLE_TICKS :{COMMA}{NBSP}tikk{P "" s} +STR_TIMETABLE_DAYS :{COMMA}{NBSP}dag{P "" er} +STR_TIMETABLE_TICKS :{COMMA}{NBSP}tikk STR_TIMETABLE_TOTAL_TIME :{BLACK}Det vil ta {STRING} å fullføre rutetabellen STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Det vil ta minst {STRING} å fullføre denne rutetabellen (rutetabell ikke fullstendig) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 220114005b..68dff85102 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -4235,10 +4235,10 @@ STR_ORDER_UNLOAD :(Rozładuj i za STR_ORDER_UNLOAD_FULL_LOAD :(Rozładuj i czekaj na pełny załadunek) STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Rozładuj i czekaj na pełny załadunek któregoś z towarów) STR_ORDER_UNLOAD_NO_LOAD :(Rozładuj i pozostaw pusty) -STR_ORDER_TRANSFER :(Przeładuj i zabierz ładunek) -STR_ORDER_TRANSFER_FULL_LOAD :(Przeładuj i czekaj na pełny załadunek) -STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Przeładuj i czekaj na pełny załadunek któregoś z towarów) -STR_ORDER_TRANSFER_NO_LOAD :(Przeładuj i pozostaw pusty) +STR_ORDER_TRANSFER :(Przeładunek i zabranie ładunku) +STR_ORDER_TRANSFER_FULL_LOAD :(Przeładunek i oczekiwanie na pełny załadunek) +STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Przeładunek i oczekiwanie na pełny załadunek któregoś z towarów) +STR_ORDER_TRANSFER_NO_LOAD :(Przeładunek, pozostaw pusty) STR_ORDER_NO_UNLOAD :(Nie rozładowuj i zabierz ładunek) STR_ORDER_NO_UNLOAD_FULL_LOAD :(Nie rozładowuj i czekaj na pełny załadunek) STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Nie rozładowuj i czekaj na pełny załadunek któregoś z towarów) @@ -4250,9 +4250,9 @@ STR_ORDER_FULL_LOAD_ANY_REFIT :(Przebuduj na { STR_ORDER_UNLOAD_REFIT :(Rozładuj, przebuduj na {STRING.b} i zabierz ładunek) STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Rozładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek) STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Rozładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek któregoś z towarów) -STR_ORDER_TRANSFER_REFIT :(Przeładuj, przebuduj na {STRING.b} i zabierz ładunek) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Przeładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Przeładuj, przebuduj na {STRING.b} i czekaj na dowolny pełny załadunek) +STR_ORDER_TRANSFER_REFIT :(Przeładunek, przebudowa na {STRING.b} i zabranie ładunku) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Przeładunek, przebudowa na {STRING.b} i oczekiwanie na pełny załadunek) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Przeładunek, przebudowa na {STRING.b} i oczekiwanie na dowolny pełny załadunek) STR_ORDER_NO_UNLOAD_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i zabierz ładunek) STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i czekaj na pełny załadunek) STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i czekaj na dowolny pełny załadunek) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 3338c32c86..6b4c4ccd67 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3054,7 +3054,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+щелчка можно сдвигать спрайты на 8 единиц. 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/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 7ce4e7f6a8..c85b110c57 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -327,17 +327,17 @@ 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}显示公司名次表 -STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}建设新的工业设施 +STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}工业设施列表/产业链/建立新工业设施 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}显示公司的火车列表。按住 Ctrl 键单击可以切换组群和车辆列表。 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}显示公司的汽车列表。按住 Ctrl 键单击可以切换组群和汽车列表。 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}显示公司的船只列表。按住 Ctrl 键单击可以切换组群和船只列表。 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}显示公司的飞机列表。按住 Ctrl 键单击可以切换组群和飞机列表。 STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}放大视图 STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}缩小视图 -STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}建设铁路 -STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}建设公路 -STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}建设港口 -STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}建设机场 +STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}显示铁路建设工具 +STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}显示公路建设工具 +STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}显示水运建设工具 +STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}显示机场建设工具 STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}打开景观美化工具栏{}以修改地形、设置地貌等 STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}显示 声音/音乐 控制菜单 STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}显示最新消息新闻,消息选项,消息历史 @@ -661,11 +661,11 @@ STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}停止 STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}开始播放音乐 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}选择'Ezy街头'风格的音乐列表 -STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}选择'自定义1'(用户定义)的列表 -STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}选择'自定义2'(用户定义)的列表 +STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}选择“老式音乐”列表 +STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}选择“新的风格”音乐列表 +STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}选择“Ezy街头”风格的音乐列表 +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}开启/关闭 随机播放列表中的曲目 STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}打开音乐选单窗口 @@ -844,7 +844,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE}的调度计划中有无效调度命令 STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} 有重复调度命令 STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE}的调度计划有无效的车站 -STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} 的计划列表中有机场跑道太短不足及起降 +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} 的计划列表中有一个机场的跑道太短而不能起降 STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} 即将达到报废年限 STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} 已经达到报废年限 @@ -1748,10 +1748,10 @@ STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}使用 STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}创建自定义的游戏场景 STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}开始联机游戏 -STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}选择 '温带' 景观风格 -STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}选择 '寒带' 景观风格 -STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}选择 '沙漠' 景观风格 -STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}选择 '玩具' 景观风格 +STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}选择“温带”景观风格 +STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}选择“寒带”景观风格 +STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}选择“沙漠”景观风格 +STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}选择 “玩具”景观风格 STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}显示游戏选项 STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}显示高分榜 @@ -2424,7 +2424,7 @@ STR_STATION_BUILD_CARGO_TRAM_ORIENTATION :{WHITE}货运 STR_STATION_BUILD_CARGO_TRAM_ORIENTATION_TOOLTIP :{BLACK}选择货运电车车站方向 # Waterways toolbar (last two for SE only) -STR_WATERWAYS_TOOLBAR_CAPTION :{WHITE}码头建设 +STR_WATERWAYS_TOOLBAR_CAPTION :{WHITE}水运建设 STR_WATERWAYS_TOOLBAR_CAPTION_SE :{WHITE}水运 STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}修建运河 STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}建设船闸,按住 Shift 键操作可以显示所需资金 diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3b8cb42b21..23812dcb4a 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -434,7 +434,7 @@ STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Fundar nueva in ############ range for railway construction menu starts STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construcción de ferrocarril -STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcción ferrocarril eléctrico +STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcción de ferrocarril eléctrico STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construcción de monorraíl STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construcción de maglev ############ range ends here @@ -625,7 +625,7 @@ STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Préstam STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total: ############ End of order list STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Cantidad de vehículos que obtuvieron beneficios el año pasado. Incluye vehículos de carretera, trenes, barcos y aeronaves -STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Cantidad de partes de estación que han tenido servicio. Las estaciones de tren, paradas de autobus, aeropuertos y demás son contabilizadas por separado incluso si pertenecen a la misma estación +STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Cantidad de partes de estación que han tenido servicio. Las estaciones de tren, paradas de autobús, aeropuertos y demás son contabilizadas por separado incluso si pertenecen a la misma estación STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Beneficio del vehículo con menores ingresos (de entre todos los vehículos con más de 2 años) STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más bajo de los pasados 12 trimestres STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más alto de los pasados 12 trimestres @@ -645,8 +645,8 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA 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}MIN -STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX +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} @@ -656,15 +656,15 @@ STR_MUSIC_TRACK :{TINY_FONT}{BLA 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}Pasar a pista anterior de la selección -STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Pasar a siguiente pista de la selección +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 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_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' -STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Elegir el programa musical de estilo 'Ezy Street' +STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Seleccionar programa 'estilo Ezy Street' STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 1' (definido por el usuario) STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 2' (definido por el usuario) STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Encender/apagar mezclador @@ -717,7 +717,7 @@ STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Mostrar STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Mostrar propietarios de terrenos en el mapa STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Click en un tipo de industria para mostrarlo/ocultarlo. Ctrl+Click oculta todos los tipos excepto el seleccionado. Ctrl+Click de nuevo en el mismo tipo muestra todos los tipos de industrias STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Click en una empresa para mostrar/ocultar sus propiedades. Ctrl+Click oculta todas las empresas excepto la seleccionada. Ctrl+Click de nuevo en la misma empresa muestra todas las empresas -STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Un Click en una carga permite activar o desactivar su visualización. Ctrl+Click deshabilita todas las cargas excepto la seleccionada. Un segundo Ctrl+Click habilita la visualización de todos los tipos de carga +STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Click en una carga permite activar o desactivar su visualización. Ctrl+Click deshabilita todas las cargas excepto la seleccionada. Un segundo Ctrl+Click habilita la visualización de todos los tipos de carga STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Carreteras STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Ferrocarriles @@ -759,7 +759,7 @@ STR_SMALLMAP_ENABLE_ALL :{BLACK}Activar 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 / ocultar mapa de alturas +STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Mostrar/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 muestra ninguna carga en el mapa @@ -942,7 +942,7 @@ 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 :Tontos +STR_GAME_OPTIONS_TOWN_NAME_SILLY :Tontos - Absurdos STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :Sueco STR_GAME_OPTIONS_TOWN_NAME_DUTCH :Holandés STR_GAME_OPTIONS_TOWN_NAME_FINNISH :Finlandés @@ -990,8 +990,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádru STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunto de gráficos base a usar -STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fichero{P "" s} perdido{P "" s} o corrupto{P "" s} -STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Información adicional acerca de este fichero de gráficos +STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} archivo{P "" s} perdido{P "" s} o corrupto{P "" s} +STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Información adicional sobre el set de gráficos base STR_GAME_OPTIONS_BASE_SFX :{BLACK}Conjunto de sonidos base STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Seleccionar conjunto de sonidos base a emplear @@ -1031,7 +1031,7 @@ STR_CURRENCY_PREVIEW :{LTBLUE}Previa: STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 Libras(£) en tu moneda STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Cambiar parámetro de moneda personalizada -STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Num. Máximo de jugadores: {ORANGE}{COMMA} +STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Núm. máximo de jugadores: {ORANGE}{COMMA} STR_NONE :Ninguno STR_FUNDING_ONLY :Solo fundadas @@ -1087,7 +1087,7 @@ STR_CITY_APPROVAL_PERMISSIVE :Permisiva STR_CITY_APPROVAL_TOLERANT :Tolerante STR_CITY_APPROVAL_HOSTILE :Hostil -STR_WARNING_NO_SUITABLE_AI :{WHITE}No se encontraron IA apropiadas...{}Puedes descargar IA a través del sistema de 'Contenido Online' +STR_WARNING_NO_SUITABLE_AI :{WHITE}No se encontraron IAs apropiadas...{}Puedes descargar IAs a través del sistema de 'Contenido Online' # Settings tree window STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}Configuración @@ -1141,15 +1141,15 @@ 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 compañía puede tomar en un préstamo (sin tener en cuenta la inflación) +STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Máxima cantidad que una compañía puede recibir en un 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; también controla la inflación en el caso de que esté activada +STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Porcentaje de interés de los préstamos; también controla la inflación, en caso de que esté activada STR_CONFIG_SETTING_RUNNING_COSTS :Costes de operación: {STRING} STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Permite fijar el nivel de los costes de mantenimiento y operación de vehículos e infraestructuras STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Velocidad de construcción: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Limita la velocidad de las acciones de construcción para las IA STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Averías de vehículos: {STRING} -STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controla la frecuencia con la que los vehículos que no hayan tenido un mantenimiento adecuado se rompen +STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controla la frecuencia con la que los vehículos, con mantenimiento inadecuado, se rompen STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Multiplicador por subsidio: {STRING} STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Permite fijar a cuanto se pagan las conexiones con subsidio STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Costes de construcción: {STRING} @@ -1157,11 +1157,11 @@ STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Fija el nivel d STR_CONFIG_SETTING_RECESSIONS :Recesiones: {STRING} STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Si se activa, ocurrirán recesiones cada pocos años. Durante una recesión, toda la producción es significativamente menor (volverá a su nivel anterior una vez acabe la recesión) STR_CONFIG_SETTING_TRAIN_REVERSING :Prohibir cambio de dirección de trenes en estaciones: {STRING} -STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, los trenes no se darán la vuelta en estaciones no finales en el caso de que haya un camino más cercano si se dan la vuelta +STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, los trenes no se darán la vuelta en estaciones no finales, ni aún existiendo un camino más corto a su próximo destino si se dan la vuelta STR_CONFIG_SETTING_DISASTERS :Desastres: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activa desastres que ocasionalmente pueden bloquear o destruir vehículos o infraestructuras STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de los municipios frente a reestructuraciones en su zona: {STRING} -STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Permite elegir la medida en la que el ruido y el daño ambiental causado por las compañías afecta a su calificación local en los municipios +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Permite elegir en que medida el ruido y el daño ambiental causado por las compañías afecta a su calificación y nuevas acciones de construcción en los municipios STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máxima del mapa: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Establece la altura máxima permitida para las montañas en el mapa @@ -1173,7 +1173,7 @@ STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permite tener d STR_CONFIG_SETTING_EXTRADYNAMITE :Permitir eliminar más propiedades de los municipios: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Hace que sea más fácil eliminar infraestructuras y edificios de los municipios STR_CONFIG_SETTING_TRAIN_LENGTH :Longitud máxima de trenes: {STRING} -STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Permite cambiar la longitud máxima de trenes +STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Permite cambiar la longitud máxima de los trenes STR_CONFIG_SETTING_TILE_LENGTH :{COMMA} casilla{P 0 "" s} STR_CONFIG_SETTING_SMOKE_AMOUNT :Cantidad de humo/chispas: {STRING} STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Permite indicar la cantidad de humo o chispas que son emitidos por vehículos @@ -1193,11 +1193,11 @@ STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permite añadir STR_CONFIG_SETTING_INFLATION :Inflación: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Activa la inflación económica, lo cual hace que los costes aumenten ligeramente más rápido que los beneficios STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Longitud máxima de puentes: {STRING} -STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Máxima longitud permitida para puentes +STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Longitud máxima permitida para los 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 :Máxima longitud permitida para túneles +STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Longitud máxima permitida para los túneles STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Método de construcción de industria primaria: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Forma de fundar industrias primarias. 'ninguno' significa que no se puede crear ninguna, 'prospeccón' significa que es posible crear nuevas industrias, pero que éstas aparecen en un lugar aleatorio del mapa y pueden fallar. 'como las otras industrias' significa que las industrias primarias pueden construirse como el resto de industrias en cualquier lugar que se quiera STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Ninguno @@ -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 permitir inspeccionar de forma fácil el estado financiero de la compañía +STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si se activa, la ventana de finanzas aparecerá al final de cada año para permitir inspeccionar fácilmente el estado financiero de la compañía STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Nuevas órdenes son 'sin parada' por defecto: {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalmente, un vehículo se detendrá en todas las estaciones por las 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 cambia el comportamiento por defecto de las órdenes nuevas. Es posible especificar para cada orden el comportamiento que se desea STR_CONFIG_SETTING_STOP_LOCATION :Nuevos trenes paran por defecto en el {STRING} de la plataforma @@ -1236,7 +1236,7 @@ STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permite a las c STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permitir pagar la reconstrucción de las carreteras locales: {STRING} STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permite a las compañías dar dinero a los municipios para que reconstruyan sus carreteras, saboteando los servicios de carretera en la zona STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permitir enviar dinero a otras empresas: {STRING} -STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permite la transferencia de dinero entre compañías en modo multijugador +STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permite la transferencia de dinero entre compañías en el modo multijugador STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de peso para simular trenes pesados: {STRING} STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Permite fijar el impacto de llevar mercancías en los trenes. Un valor alto hace que a los trenes les cueste más llevar carga, especialmente en colinas STR_CONFIG_SETTING_PLANE_SPEED :Factor de velocidad de aeronaves: {STRING} @@ -1247,8 +1247,8 @@ STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Fija la probabi 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 :Permite construir paradas sobre carreteras de los municipios: {STRING} -STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construir estaciones de carretera de paso en carreteras que sean propiedad de municipios +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permitir construir paradas sobre carreteras de los municipios: {STRING} +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construir estaciones de paso en carreteras que sean propiedad de los municipios STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permitir pasar a través de las paradas de carretera de los competidores: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite construir estaciones de carretera de paso en carreteras que sean propiedad de otras compañías STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Cambiar esta opción no es posible cuando ya existen vehículos @@ -1263,14 +1263,14 @@ STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Muestra mensaje STR_CONFIG_SETTING_ORDER_REVIEW :Revisar órdenes de vehículos: {STRING} STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Cuando se activa, se comprueban periódicamente las órdenes de los vehículos, y los problemas que se encuentren se reportan con un mensaje STR_CONFIG_SETTING_ORDER_REVIEW_OFF :No -STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Sí, excluyendo los detenidos -STR_CONFIG_SETTING_ORDER_REVIEW_ON :Todos +STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Sí, excluyendo a los vehículos detenidos +STR_CONFIG_SETTING_ORDER_REVIEW_ON :Todos los vehículos STR_CONFIG_SETTING_WARN_INCOME_LESS :Avisar si las ganancias de un vehículo son negativas: {STRING} STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Si se activa, se muestra un mensaje cuando un vehículo no haya obtenido ningún beneficio durante un año STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Los vehículos nunca caducan: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Cuando se activa, todos los modelos de vehículos permanecen disponibles para siempre una vez han sido introducidos STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Renovación automática de vehículos cuando se vuelven viejos: {STRING} -STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Cuando se activa, los vehículos que se acerquen al final de su vida útil serán reemplazados automáticamente cuando las condiciones de renovación se cumplan +STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Cuando se activa, los vehículos próximos al final de su vida útil serán reemplazados automáticamente; siempre y cuando se cumplan las condiciones de renovación STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenueva el vehículo {STRING} de su edad máxima STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Edad relativa con la cual un vehículo debería de ser considerado para ser autorenovado STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mes{P 0 "" es} antes @@ -1820,14 +1820,14 @@ STR_LIVERY_PANEL_TOOLTIP :{BLACK}Seleccio STR_LIVERY_DEFAULT :Estación normal STR_LIVERY_STEAM :Locomotora a Vapor -STR_LIVERY_DIESEL :Locomotora Diesel +STR_LIVERY_DIESEL :Locomotora Diésel STR_LIVERY_ELECTRIC :Locomotora Eléctrica STR_LIVERY_MONORAIL :Locomotora Monorraíl STR_LIVERY_MAGLEV :Locomotora Maglev STR_LIVERY_DMU :DMU STR_LIVERY_EMU :EMU STR_LIVERY_PASSENGER_WAGON_STEAM :Vagón Pasajeros (Vapor) -STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagón Pasajeros (Diesel) +STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagón Pasajeros (Diésel) STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Vagón Pasajeros (Eléctrico) STR_LIVERY_PASSENGER_WAGON_MONORAIL :Vagón Pasajeros (Monorraíl) STR_LIVERY_PASSENGER_WAGON_MAGLEV :Vagón Pasajeros (Maglev) @@ -2248,7 +2248,7 @@ STR_CONTENT_TYPE_GS_LIBRARY :Librería SJ # Content downloading progress window STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Descargando contenido... -STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Solicitando ficheros... +STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Solicitando archivos... STR_CONTENT_DOWNLOAD_FILE :{WHITE}Descargando {STRING} ({NUM} de {NUM}) STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Descarga completada STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} de {BYTES} descargadas ({NUM} %) @@ -2257,8 +2257,8 @@ STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} 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 fichero -STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el fichero descargado +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 necesita gráficos para funcionar pero no se pudo encontrar ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos? @@ -2802,28 +2802,28 @@ STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Borrar STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Borrar la programación seleccionada STR_NEWGRF_SETTINGS_ADD :{BLACK}Añadir STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Añade el NewGRF seleccionado a tu configuración -STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Actualizar ficheros -STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Actualiza la lista de ficheros NewGRF disponibles +STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Actualizar archivos +STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Actualiza la lista de archivos NewGRF disponibles STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Retirar STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Retirar el NewGRF seleccionado de la lista STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Mover Arriba STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado arriba en la lista STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Mover Abajo STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado abajo en la lista -STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualiza -STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Utiliza las versiones más nuevas de los archivos NewGRF que dispongan de diversas versiones instaladas -STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Una lista de los ficheros NewGRF instalados +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualizar +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualizar a la versión más reciente de los archivos NewGRF que tengan varias instaladas +STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Una 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}Seleccionar paleta -STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Seleccionar la paleta del NewGRF seleccionado.{}Esto es necesario cuando los gráficos de este NewGRF se vean de color rosa +STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Cambiar la paleta del NewGRF seleccionado.{}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}Encontrar contenido que falta en línea STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Comprobar si el contenido que falta puede ser encontrado en línea -STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Fichero: {SILVER}{STRING} +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} @@ -2831,8 +2831,8 @@ STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING} -STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No tiene información disponible -STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Fichero no encontrado +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}Incompatible con esta versión de OpenTTD @@ -2875,7 +2875,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Ir al sp STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite anterior STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Saltar 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 seleccionado. Su alineamiento es ignorado al dibujarlo -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover el sprite, cambiando los ajustes X e Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover el sprite, cambiando los ajustes X e Y. Ctrl+Click mueve el sprite ocho unidades de una sola vez STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Reiniciar coordenadas relativas STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reinicia las coordenadas relativas actuales STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Coordenada X: {NUM}, Coordenada Y: {NUM} (Absoluta) @@ -2898,7 +2898,7 @@ STR_NEWGRF_ERROR_INVALID_PARAMETER :Parámetro inco 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} o superior -STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :El fichero GRF ha sido diseñado para ser traducido +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 STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Sprite inesperado (sprite {3:NUM}) @@ -2918,19 +2918,19 @@ STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}¡Precau 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 romper la partida.{}No se deben crear reportes de bugs por problemas causados por esta acción.{}¿Está completamente seguro de esto? STR_NEWGRF_DUPLICATE_GRFID :{WHITE}No se puede añadir: GRF ID duplicado -STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Fichero no encontrado (GRF compatible cargado) -STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir fichero: Límite de ficheros NewGRF alcanzado +STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Archivo no encontrado (GRF compatible cargado) +STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir archivo: Alcanzado el máximo de NewGRFs permitidos -STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargados para ficheros que faltan -STR_NEWGRF_DISABLED_WARNING :{WHITE}Fichero(s) GRF no encontrados han sido desactivados -STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Fichero(s) GRF no encontrados +STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargados para archivos que faltan +STR_NEWGRF_DISABLED_WARNING :{WHITE}Archivo(s) GRF no encontrados han sido desactivados +STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Archivo(s) GRF no encontrados STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Quitar la pausa puede hacer que se cierre OpenTTD. No notifique este error.{}¿Desea realmente quitar la pausa? # NewGRF status STR_NEWGRF_LIST_NONE :Ninguno -STR_NEWGRF_LIST_ALL_FOUND :Todos los ficheros presentes -STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Ficheros compatibles encontrados -STR_NEWGRF_LIST_MISSING :{RED}Ficheros que faltan +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 probable que el funcionamiento del NewGRF '{0:STRING}' cause desincronizaciones o fallos @@ -2939,8 +2939,8 @@ STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Ha cambi 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_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' da información incorrecta -STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Información de carga/reforma para '{1:ENGINE}' difiere tras la de la lista de compra después de la construcción. Esto puede causar que la renovación/reemplazo automáticos no reformen correctamente +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 STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ha causado un bucle sin fin en la 'callback' de producción STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}'Callback' {1:HEX} devolvió el resultado desconocido o inválido {2:HEX} @@ -3023,7 +3023,7 @@ STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Pagar la recons 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 la exclusiva de los servicios de transporte -STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar la autoridad local +STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar a la autoridad local STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Coste: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local mediana para atraer más pasajeros y carga a sus servicios de transporte.{}Coste: {CURRENCY_LONG} @@ -3921,7 +3921,7 @@ STR_TIMETABLE_STARTING_DATE :{BLACK}Fecha de STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Selecciona una fecha como punto de partida de este horario. Ctrl+Click permite fijar el punto de partida de este horario y distribuye todos los vehículos que lo compartan siempre y cuando el horario esté completo STR_TIMETABLE_CHANGE_TIME :{BLACK}Cambiar Horario -STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambia la cantidad de tiempo que debe tomar una orden marcada +STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambia la cantidad de tiempo que debe tardar una orden marcada STR_TIMETABLE_CLEAR_TIME :{BLACK}Limpiar Horario STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Limpiar la cantidad de tiempo para la orden seleccionada @@ -4068,13 +4068,13 @@ STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}El guard STR_ERROR_AUTOSAVE_FAILED :{WHITE}Error en Autoguardado STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}No es posible leer la unidad STR_ERROR_GAME_SAVE_FAILED :{WHITE}Error guardando juego{}{STRING} -STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}No es posible borrar el fichero +STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}No es posible borrar el archivo STR_ERROR_GAME_LOAD_FAILED :{WHITE}Carga de Juego Errónea{}{STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Error interno: {STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Partida guardada corrupta - {STRING} STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :La partida guardada ha sido realizada con una versión más nueva -STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :No se puede leer fichero -STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :No se puede escribir en el fichero +STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Archivo no legible +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 @@ -4084,7 +4084,7 @@ STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generaci STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... no hay municipios en el escenario STR_ERROR_PNGMAP :{WHITE}No se pudo cargar mapa de alturas PNG... -STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... fichero no encontrado +STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... archivo no encontrado STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir tipo de imagen. Se requieren imágenes PNG de 8 o 24-bits STR_ERROR_PNGMAP_MISC :{WHITE}... algo ha salido mal (es probable que el fichero esté corrupto) @@ -4604,7 +4604,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_CHANEY_JUBILEE_STEAM :Chaney 'Jubilee 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 (Diesel) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_DASH_DIESEL :'Dash' (Diesel) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_DASH_DIESEL :'Dash' (Diésel) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_HENDRY_25_DIESEL :SH/Hendry '25' (Diesel) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_UU_37_DIESEL :UU '37' (Diesel) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_FLOSS_47_DIESEL :Floss '47' (Diesel) diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index c0ab4c6e00..5fb8734bad 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -1563,6 +1563,7 @@ STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :langsaam STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :gewoan STR_CONFIG_SETTING_TOWN_GROWTH_FAST :snel STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Hiel snel +STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 in {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Gjin STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Begjin stêdgrutte fermenigfuldiger: {STRING} @@ -1649,6 +1650,7 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Feroarje # Config errors STR_CONFIG_ERROR_ARRAY :{WHITE}... flater in reeks '{STRING}' STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... ûnjildige wearde '{STRING}' foar '{STRING}' +STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :koe net fûn wurde STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :Dat strykt net mei dizze ferzje fan OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :ûnbekind diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 534f9accd5..d3a4ca9048 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -844,6 +844,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} chưa có lệnh STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} có các lệnh trùng lặp STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} có trạm bất hợp lệ trong lệnh +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} có trong lộ trình một sân bay có đường băng quá ngắn STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} đang cũ đi STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} đang xuống cấp @@ -1287,17 +1288,28 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Hiển thị d STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Độ đậm của đường kẻ trong đồ thị: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Độ đậm của đường vẽ trên đồ thị. Một đường mảnh sẽ chính xác hơn, trong khi đó đường đậm sẽ dễ nhìn hơn và màu sắc dễ phân biệt hơn +STR_CONFIG_SETTING_LANDSCAPE :Nền đất: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Nền đất là định nghĩa cơ bản của các màn chơi với các kiểu hàng hóa và yêu cầu cho sự phát triển đô thị khác nhau. NewGRF và kịch bản chơi cho phép các điều chỉnh nhỏ hơn. STR_CONFIG_SETTING_LAND_GENERATOR :Tạo nền đất: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Bộ khởi tạo nguyên bản chỉ dựa vào tập hợp đồ họa đối tượng cơ bản, rồi sinh ra các dạng địa hình cố đinh. Với TerraGenesis thì dựa trên có chế nhiễu loạn (noise) kiểu Perlin và cho phép các điều chỉnh nhỏ hơn. STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Nguyên Bản STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Kiểu nền đất: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Chỉ cho TerraGenesis) Địa hình nhiều đồi núi +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Mật độ nhà máy: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Thiết lập số nhà máy sẽ được tạo ra và mức độ dùy trì trong ván chơi STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Khoảng cách tối đa từ lề bản đồ tới nhà máy lọc dầu: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Nhà máy hóa dầu chỉ có thể xây gần rìa bản đồ, tương ứng là ven biển với những bản đồ dạng đảo STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Độ cao tuyết phủ: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Điều chỉnh độ cao của tuyết phủ đối với địa hình xứ lanh. Tuyết phủ có thể ảnh hưởng tới việc tạo ra nhà máy và các yêu cầu cho sự tăng trưởng đô thị STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Độ gồ ghề của địa chất: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Chỉ cho TerraGenesis) Chọn mức độ trùng điệp của núi: địa hình bằng phẳng thì ít hơn, địa hình đồi núi thì nhiều hơn. Địa hình gồ ghề có nhiều núi và trông có vẻ lặp lại STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Rất Phẳng STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Phẳng STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Gồ Ghề STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Rất Gồ Ghề +STR_CONFIG_SETTING_VARIETY :Phân bổ sự đa dạng: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Chỉ cho TerraGenesis) Điều chỉnh liệu rằng bản đồ gồm cả vùng núi cao và vùng đồng bằng. Đây chỉ là điều chỉnh cho sự bằng phẳng hơn, các thiết lập khác sẽ điều chỉnh cho vùng núi. STR_CONFIG_SETTING_RIVER_AMOUNT :Số lượng sông ngòi: {STRING} STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Chọn số lượng sông ngòi được khởi tạo STR_CONFIG_SETTING_TREE_PLACER :Thuật toán đặt cây: {STRING} @@ -1653,11 +1665,21 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Tiêu Chuẩn Đo Lường +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Đồ họa STR_CONFIG_SETTING_SOUND :{ORANGE}Âm thanh STR_CONFIG_SETTING_INTERFACE :{ORANGE}Giao Diện +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Tổng quát +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Vùng nhìn STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Xây Dựng +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Tin tức / Cố vấn +STR_CONFIG_SETTING_COMPANY :{ORANGE}Công ty +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Kế toán STR_CONFIG_SETTING_VEHICLES :{ORANGE}Phương Tiện +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Vật lý STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Tìm đường +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Giới hạn +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Thiên tai / Tai nạn +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Khởi tạo bản đồ STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Môi trường STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Chính quyền STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Đô thị @@ -2684,6 +2706,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Lưu STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Lưu ván chơi hiện tại, sử dụng tên đã chọn STR_SAVELOAD_LOAD_BUTTON :{BLACK}Nạp STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Nạp ván chơi được chọn +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Nạp bản đồ địa hình đang chọn STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Chi Tiết Trò Chơi STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Không có thông tin gì cả. STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2852,6 +2875,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite t STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Xử lý sprite bình thường ở trước, bỏ qua các loại pseudo/recolour/font sprite căn theo điểm bắt đầu STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Theo những thông tin của sprite đã chọn. Thì việc căn chỉnh khi vẽ đối với sprite này sẽ bị bỏ qua STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Di chuyển sprite xung quanh, thay đổi X và Y offsets +STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Đặt lại tương đối +STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Đặt lại các dịch chuyển tương đối hiện tại +STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK} dịch X: {NUM}, dịch Y: {NUM} (tuyệt đối) +STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}toạ độ X: {NUM}, toạ độ Y: {NUM} (tương đối) STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Chọn sprite STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Chọn sprite ở bất cứ đâu trên màn hình @@ -3328,6 +3355,8 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Xoá nh STR_GROUP_RENAME_TOOLTIP :{BLACK}Đổi tên nhóm STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Không để nhóm này tự thay thế (thiết lập chung) khi hết hạn +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Xóa Nhóm +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Bạn có chắc chắn muốn xóa nhóm này và tất cả con của nó? STR_GROUP_ADD_SHARED_VEHICLE :Thêm phương tiện được chia sẻ STR_GROUP_REMOVE_ALL_VEHICLES :Xoá tất cả phương tiện @@ -3869,6 +3898,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Di chuyển (kh STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Hành trình với tốc độ tối đa là {2:VELOCITY} (chưa dựng lịch trình) STR_TIMETABLE_TRAVEL_FOR :Di chuyển trong {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Lộ trình {STRING} với tốc độ tối đa {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Lộ trình (cho {STRING}, chưa có lịch trình) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Lộ trình (cho {STRING}, chưa có lịch trình) với tốc độ đối đa {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(ở lại {STRING}, chưa có lịch trình) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(di chuyển đến {STRING}, chưa có lịch trình) STR_TIMETABLE_STAY_FOR :và ở lại trong {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :và di chuyển trong {STRING} STR_TIMETABLE_DAYS :{COMMA}{NBSP}ngày @@ -4327,6 +4360,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... bạ STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Không thể tạo nhóm... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Không thể xoá bỏ nhóm... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Không thể đổi tên nhóm... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Không thể thiết đặt nhóm cha... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Không thể bỏ các phương tiện trong nhóm này... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Không thể thêm phương tiện vào nhóm này... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Không thể thêm phương tiện được chia sẻ vào nhóm... diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 9d3f3ec617..d25dfff6c7 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -284,8 +284,8 @@ STR_SORT_BY_PRODUCTION :Cynyrch STR_SORT_BY_TYPE :Math STR_SORT_BY_TRANSPORTED :Wedi'i gludo STR_SORT_BY_NUMBER :Rhif -STR_SORT_BY_PROFIT_LAST_YEAR :Elw eleni -STR_SORT_BY_PROFIT_THIS_YEAR :Elw llynedd +STR_SORT_BY_PROFIT_LAST_YEAR :Elw llynedd +STR_SORT_BY_PROFIT_THIS_YEAR :Elw eleni STR_SORT_BY_AGE :Oed STR_SORT_BY_RELIABILITY :Dibynadwyedd STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Cyfanswm Gallu Cludo fesul y math o lwyth @@ -2875,6 +2875,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Corlun b STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Mynd i'r corlun cyffredin blaenorol, gan hepgor unrhyw gorluniau ailliwio/ffont/llidgorluniau, ac amlapio o'r corlun cyntaf i'r olaf STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Cynrychioliad o'r corlun a ddewiswyd. Fe anwybyddir yr aliniad wrth lunio'r corlun STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Symud y corlun, gan newid yr atredau X ac Y +STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Ailosod perthyniad +STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Ailosod y dodiadau perthynol +STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Dodiad X: {NUM}, Dodiad Y: {NUM} (Absoliwt) +STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Dodiad X: {NUM}, Dodiad Y: {NUM} (Perthynol) STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Dewis corlun STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Dewis corlun o ynrhyw fan ar y sgrïn diff --git a/src/network/network.cpp b/src/network/network.cpp index ce37aaa3fa..0bbdd0d06c 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -63,7 +63,6 @@ NetworkCompanyState *_network_company_states = NULL; ///< Statistics about some ClientID _network_own_client_id; ///< Our client identifier. ClientID _redirect_console_to_client; ///< If not invalid, redirect the console output to a client. bool _network_need_advertise; ///< Whether we need to advertise. -uint32 _network_last_advertise_frame; ///< Last time we did advertise. uint8 _network_reconnect; ///< Reconnect timeout StringList _network_bind_list; ///< The addresses to bind on. StringList _network_host_list; ///< The servers we know. @@ -759,7 +758,6 @@ bool NetworkServerStart() if (_network_dedicated) IConsoleCmdExec("exec scripts/on_dedicated.scr 0"); /* Try to register us to the master server */ - _network_last_advertise_frame = 0; _network_need_advertise = true; NetworkUDPAdvertise(); @@ -1076,7 +1074,6 @@ void NetworkStartUp() /* Network is available */ _network_available = NetworkCoreInitialize(); _network_dedicated = false; - _network_last_advertise_frame = 0; _network_need_advertise = true; _network_advertise_retries = 0; diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 7ee1dbd99f..8da1095839 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -282,10 +282,22 @@ public: } }; +/** Filter data for NetworkContentListWindow. */ +struct ContentListFilterData { + StringFilter string_filter; ///< Text filter of content list + ContentType type; ///< Content type displayed +}; + +/** Filter criterias for NetworkContentListWindow. */ +enum ContentListFilterCriteria { + CONTENT_FILTER_TEXT = 0, ///< Filter by query sting + CONTENT_FILTER_TYPE_OR_SELECTED,///< Filter by being of displayed type or selected for download +}; + /** Window that lists the content that's at the content server */ class NetworkContentListWindow : public Window, ContentCallback { /** List with content infos. */ - typedef GUIList GUIContentList; + typedef GUIList GUIContentList; static const uint EDITBOX_MAX_SIZE = 50; ///< Maximum size of the editbox in characters. @@ -295,7 +307,7 @@ class NetworkContentListWindow : public Window, ContentCallback { static GUIContentList::FilterFunction * const filter_funcs[]; ///< Filter functions. GUIContentList content; ///< List with content bool auto_select; ///< Automatically select all content when the meta-data becomes available - StringFilter string_filter; ///< Filter for content list + ContentListFilterData filter_data; ///< Filter for content list QueryString filter_editbox; ///< Filter editbox; Dimension checkbox_size; ///< Size of checkbox/"blot" sprite @@ -431,20 +443,38 @@ class NetworkContentListWindow : public Window, ContentCallback { } /** Filter content by tags/name */ - static bool CDECL TagNameFilter(const ContentInfo * const *a, StringFilter &filter) + static bool CDECL TagNameFilter(const ContentInfo * const *a, ContentListFilterData &filter) { - filter.ResetState(); + filter.string_filter.ResetState(); for (int i = 0; i < (*a)->tag_count; i++) { - filter.AddLine((*a)->tags[i]); + filter.string_filter.AddLine((*a)->tags[i]); } - filter.AddLine((*a)->name); - return filter.GetState(); + filter.string_filter.AddLine((*a)->name); + return filter.string_filter.GetState(); + } + + /** Filter content by type, but still show content selected for download. */ + static bool CDECL TypeOrSelectedFilter(const ContentInfo * const *a, ContentListFilterData &filter) + { + if (filter.type == CONTENT_TYPE_END) return true; + if ((*a)->type == filter.type) return true; + return ((*a)->state == ContentInfo::SELECTED || (*a)->state == ContentInfo::AUTOSELECTED); } /** Filter the content list */ void FilterContentList() { - if (!this->content.Filter(this->string_filter)) return; + /* Apply filters. */ + bool changed = false; + if (!this->filter_data.string_filter.IsEmpty()) { + this->content.SetFilterType(CONTENT_FILTER_TEXT); + changed |= this->content.Filter(this->filter_data); + } + if (this->filter_data.type != CONTENT_TYPE_END) { + this->content.SetFilterType(CONTENT_FILTER_TYPE_OR_SELECTED); + changed |= this->content.Filter(this->filter_data); + } + if (!changed) return; /* update list position */ for (ConstContentIterator iter = this->content.Begin(); iter != this->content.End(); iter++) { @@ -459,6 +489,20 @@ class NetworkContentListWindow : public Window, ContentCallback { this->list_pos = 0; } + /** + * Update filter state based on current window state. + * @return true if filter state was changed, otherwise false. + */ + bool UpdateFilterState() + { + Filtering old_params = this->content.GetFiltering(); + bool new_state = !this->filter_data.string_filter.IsEmpty() || this->filter_data.type != CONTENT_TYPE_END; + if (new_state != old_params.state) { + this->content.SetFilterState(new_state); + } + return new_state != old_params.state; + } + /** Make sure that the currently selected content info is within the visible part of the matrix */ void ScrollToSelected() { @@ -473,8 +517,12 @@ public: * Create the content list window. * @param desc the window description to pass to Window's constructor. * @param select_all Whether the select all button is allowed or not. + * @param type the main type of content to display or #CONTENT_TYPE_END. + * When a type other than #CONTENT_TYPE_END is given, dependencies of + * other types are only shown when content that depend on them are + * selected. */ - NetworkContentListWindow(WindowDesc *desc, bool select_all) : + NetworkContentListWindow(WindowDesc *desc, bool select_all, ContentType type) : Window(desc), auto_select(select_all), filter_editbox(EDITBOX_MAX_SIZE), @@ -493,12 +541,14 @@ public: this->filter_editbox.cancel_button = QueryString::ACTION_CLEAR; this->SetFocusedWidget(WID_NCL_FILTER); this->SetWidgetDisabledState(WID_NCL_SEARCH_EXTERNAL, this->auto_select); + this->filter_data.type = type; _network_content_client.AddCallback(this); this->content.SetListing(this->last_sorting); this->content.SetFiltering(this->last_filtering); this->content.SetSortFuncs(this->sorter_funcs); this->content.SetFilterFuncs(this->filter_funcs); + this->UpdateFilterState(); this->content.ForceRebuild(); this->FilterContentList(); this->SortContentList(); @@ -751,6 +801,10 @@ public: this->content.ForceResort(); } + if (this->filter_data.type != CONTENT_TYPE_END) { + this->content.ForceRebuild(); + } + this->InvalidateData(); break; } @@ -846,9 +900,13 @@ public: this->content.ForceResort(); this->InvalidateData(); } + if (this->filter_data.type != CONTENT_TYPE_END) { + this->content.ForceRebuild(); + this->InvalidateData(); + } return ES_HANDLED; } - /* FALL THROUGH, space is pressed and filter isn't focused. */ + /* FALL THROUGH, space is pressed and filter is focused. */ default: return ES_NOT_HANDLED; @@ -856,13 +914,21 @@ public: if (this->content.Length() == 0) { this->list_pos = 0; // above stuff may result in "-1". + if (this->UpdateFilterState()) { + this->content.ForceRebuild(); + this->InvalidateData(); + } return ES_HANDLED; } this->selected = *this->content.Get(this->list_pos); - /* scroll to the new server if it is outside the current range */ - this->ScrollToSelected(); + if (this->UpdateFilterState()) { + this->content.ForceRebuild(); + } else { + /* Scroll to the new content if it is outside the current range. */ + this->ScrollToSelected(); + } /* redraw window */ this->InvalidateData(); @@ -872,8 +938,8 @@ public: virtual void OnEditboxChanged(int wid) { if (wid == WID_NCL_FILTER) { - this->string_filter.SetFilterTerm(this->filter_editbox.text.buf); - this->content.SetFilterState(!this->string_filter.IsEmpty()); + this->filter_data.string_filter.SetFilterTerm(this->filter_editbox.text.buf); + this->UpdateFilterState(); this->content.ForceRebuild(); this->InvalidateData(); } @@ -965,6 +1031,7 @@ NetworkContentListWindow::GUIContentList::SortFunction * const NetworkContentLis NetworkContentListWindow::GUIContentList::FilterFunction * const NetworkContentListWindow::filter_funcs[] = { &TagNameFilter, + &TypeOrSelectedFilter, }; char NetworkContentListWindow::content_type_strs[CONTENT_TYPE_END][64]; @@ -1080,7 +1147,7 @@ void ShowNetworkContentListWindow(ContentVector *cv, ContentType type) } DeleteWindowById(WC_NETWORK_WINDOW, WN_NETWORK_WINDOW_CONTENT_LIST); - new NetworkContentListWindow(&_network_content_list_desc, cv != NULL); + new NetworkContentListWindow(&_network_content_list_desc, cv != NULL, type); #else ShowErrorMessage(STR_CONTENT_NO_ZLIB, STR_CONTENT_NO_ZLIB_SUB, WL_ERROR); /* Connection failed... clean up the mess */ diff --git a/src/network/network_func.h b/src/network/network_func.h index 375cc3da56..4f1525b5a4 100644 --- a/src/network/network_func.h +++ b/src/network/network_func.h @@ -34,7 +34,6 @@ extern NetworkCompanyState *_network_company_states; extern ClientID _network_own_client_id; extern ClientID _redirect_console_to_client; extern bool _network_need_advertise; -extern uint32 _network_last_advertise_frame; extern uint8 _network_reconnect; extern StringList _network_bind_list; extern StringList _network_host_list; diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 013b375bda..795d28e139 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -1863,7 +1863,9 @@ struct NetworkClientListWindow : Window { int selected_item; uint server_client_width; - uint company_icon_width; + uint line_height; + + Dimension icon_size; NetworkClientListWindow(WindowDesc *desc, WindowNumber window_number) : Window(desc), @@ -1885,7 +1887,7 @@ struct NetworkClientListWindow : Window { if (ci->client_playas != COMPANY_INACTIVE_CLIENT) num++; } - num *= FONT_HEIGHT_NORMAL; + num *= this->line_height; int diff = (num + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM) - (this->GetWidget(WID_CL_PANEL)->current_y); /* If height is changed */ @@ -1901,7 +1903,8 @@ struct NetworkClientListWindow : Window { if (widget != WID_CL_PANEL) return; this->server_client_width = max(GetStringBoundingBox(STR_NETWORK_SERVER).width, GetStringBoundingBox(STR_NETWORK_CLIENT).width) + WD_FRAMERECT_RIGHT; - this->company_icon_width = GetSpriteSize(SPR_COMPANY_ICON).width + WD_FRAMERECT_LEFT; + this->icon_size = GetSpriteSize(SPR_COMPANY_ICON); + this->line_height = max(this->icon_size.height + 2U, (uint)FONT_HEIGHT_NORMAL); uint width = 100; // Default width const NetworkClientInfo *ci; @@ -1909,7 +1912,7 @@ struct NetworkClientListWindow : Window { width = max(width, GetStringBoundingBox(ci->client_name).width); } - size->width = WD_FRAMERECT_LEFT + this->server_client_width + this->company_icon_width + width + WD_FRAMERECT_RIGHT; + size->width = WD_FRAMERECT_LEFT + this->server_client_width + this->icon_size.width + WD_FRAMERECT_LEFT + width + WD_FRAMERECT_RIGHT; } virtual void OnPaint() @@ -1925,11 +1928,13 @@ struct NetworkClientListWindow : Window { if (widget != WID_CL_PANEL) return; bool rtl = _current_text_dir == TD_RTL; - int icon_y_offset = 1 + (FONT_HEIGHT_NORMAL - 10) / 2; + int icon_offset = (this->line_height - icon_size.height) / 2; + int text_offset = (this->line_height - FONT_HEIGHT_NORMAL) / 2; + uint y = r.top + WD_FRAMERECT_TOP; uint left = r.left + WD_FRAMERECT_LEFT; uint right = r.right - WD_FRAMERECT_RIGHT; - uint type_icon_width = this->server_client_width + this->company_icon_width; + uint type_icon_width = this->server_client_width + this->icon_size.width + WD_FRAMERECT_LEFT; uint type_left = rtl ? right - this->server_client_width : left; @@ -1943,24 +1948,24 @@ struct NetworkClientListWindow : Window { FOR_ALL_CLIENT_INFOS(ci) { TextColour colour; if (this->selected_item == i++) { // Selected item, highlight it - GfxFillRect(r.left + 1, y, r.right - 1, y + FONT_HEIGHT_NORMAL - 1, PC_BLACK); + GfxFillRect(r.left + 1, y, r.right - 1, y + this->line_height - 1, PC_BLACK); colour = TC_WHITE; } else { colour = TC_BLACK; } if (ci->client_id == CLIENT_ID_SERVER) { - DrawString(type_left, type_right, y, STR_NETWORK_SERVER, colour); + DrawString(type_left, type_right, y + text_offset, STR_NETWORK_SERVER, colour); } else { - DrawString(type_left, type_right, y, STR_NETWORK_CLIENT, colour); + DrawString(type_left, type_right, y + text_offset, STR_NETWORK_CLIENT, colour); } /* Filter out spectators */ - if (Company::IsValidID(ci->client_playas)) DrawCompanyIcon(ci->client_playas, icon_left, y + icon_y_offset); + if (Company::IsValidID(ci->client_playas)) DrawCompanyIcon(ci->client_playas, icon_left, y + icon_offset); - DrawString(name_left, name_right, y, ci->client_name, colour); + DrawString(name_left, name_right, y + text_offset, ci->client_name, colour); - y += FONT_HEIGHT_NORMAL; + y += line_height; } } @@ -1993,7 +1998,7 @@ struct NetworkClientListWindow : Window { pt.y -= this->GetWidget(WID_CL_PANEL)->pos_y; int item = -1; if (IsInsideMM(pt.y, WD_FRAMERECT_TOP, this->GetWidget(WID_CL_PANEL)->current_y - WD_FRAMERECT_BOTTOM)) { - item = (pt.y - WD_FRAMERECT_TOP) / FONT_HEIGHT_NORMAL; + item = (pt.y - WD_FRAMERECT_TOP) / this->line_height; } /* It did not change.. no update! */ diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp index 731d51ca05..1cccbf6441 100644 --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -42,9 +42,9 @@ static ThreadMutex *_network_udp_mutex = ThreadMutex::New(); /** Session key to register ourselves to the master server */ static uint64 _session_key = 0; -static const uint ADVERTISE_NORMAL_INTERVAL = 30000; ///< interval between advertising in ticks (15 minutes) -static const uint ADVERTISE_RETRY_INTERVAL = 300; ///< re-advertise when no response after this many ticks (9 seconds) -static const uint ADVERTISE_RETRY_TIMES = 3; ///< give up re-advertising after this much failed retries +static const uint32 ADVERTISE_NORMAL_INTERVAL = 15 * 60 * 1000; ///< interval between advertising in ms (15 minutes) +static const uint32 ADVERTISE_RETRY_INTERVAL = 10 * 1000; ///< re-advertise when no response after this many ms (10 seconds) +static const uint32 ADVERTISE_RETRY_TIMES = 3; ///< give up re-advertising after this much failed retries NetworkUDPSocketHandler *_udp_client_socket = NULL; ///< udp client socket NetworkUDPSocketHandler *_udp_server_socket = NULL; ///< udp server socket @@ -616,25 +616,37 @@ static void NetworkUDPAdvertiseThread(void *pntr) */ void NetworkUDPAdvertise() { + static uint32 _last_advertisement = 0; ///< The time of the last advertisement (used to check for wrapping of time) + static uint32 _next_advertisement = 0; ///< The next time we should perform a normal advertisement. + static uint32 _next_retry = 0; ///< The next time we should perform a retry of an advertisement. + /* Check if we should send an advertise */ if (!_networking || !_network_server || !_network_udp_server || !_settings_client.network.server_advertise) return; - if (_network_need_advertise) { + if (_network_need_advertise || _realtime_tick < _last_advertisement) { + /* Forced advertisement, or a wrapping of time in which case we determine the advertisement/retry times again. */ _network_need_advertise = false; _network_advertise_retries = ADVERTISE_RETRY_TIMES; } else { /* Only send once every ADVERTISE_NORMAL_INTERVAL ticks */ if (_network_advertise_retries == 0) { - if ((_network_last_advertise_frame + ADVERTISE_NORMAL_INTERVAL) > _frame_counter) return; + if (_realtime_tick <= _next_advertisement) return; _network_advertise_retries = ADVERTISE_RETRY_TIMES; + } else { + /* An actual retry. */ + if (_realtime_tick <= _next_retry) return; } - - if ((_network_last_advertise_frame + ADVERTISE_RETRY_INTERVAL) > _frame_counter) return; } _network_advertise_retries--; - _network_last_advertise_frame = _frame_counter; + _last_advertisement = _realtime_tick; + _next_advertisement = _realtime_tick + ADVERTISE_NORMAL_INTERVAL; + _next_retry = _realtime_tick + ADVERTISE_RETRY_INTERVAL; + + /* Make sure we do not have an overflow when checking these; when time wraps, we simply force an advertisement. */ + if (_next_advertisement < _last_advertisement) _next_advertisement = UINT32_MAX; + if (_next_retry < _last_advertisement) _next_retry = UINT32_MAX; if (!ThreadObject::New(NetworkUDPAdvertiseThread, NULL)) { NetworkUDPAdvertiseThread(NULL); diff --git a/src/newgrf_debug_gui.cpp b/src/newgrf_debug_gui.cpp index 0074af2181..75b06967f7 100644 --- a/src/newgrf_debug_gui.cpp +++ b/src/newgrf_debug_gui.cpp @@ -972,10 +972,11 @@ struct SpriteAlignerWindow : Window { this->offs_start_map.Insert(this->current_sprite, XyOffs(spr->x_offs, spr->y_offs)); } switch (widget) { - case WID_SA_UP: spr->y_offs--; break; - case WID_SA_DOWN: spr->y_offs++; break; - case WID_SA_LEFT: spr->x_offs--; break; - case WID_SA_RIGHT: spr->x_offs++; break; + /* Move ten units at a time if ctrl is pressed. */ + case WID_SA_UP: spr->y_offs -= _ctrl_pressed ? 8 : 1; break; + case WID_SA_DOWN: spr->y_offs += _ctrl_pressed ? 8 : 1; break; + case WID_SA_LEFT: spr->x_offs -= _ctrl_pressed ? 8 : 1; break; + case WID_SA_RIGHT: spr->x_offs += _ctrl_pressed ? 8 : 1; break; } /* Of course, we need to redraw the sprite, but where is it used? * Everywhere is a safe bet. */ diff --git a/src/object_gui.cpp b/src/object_gui.cpp index 220f4e3854..57c45d09c9 100644 --- a/src/object_gui.cpp +++ b/src/object_gui.cpp @@ -526,7 +526,10 @@ static WindowDesc _build_object_desc( */ void ShowBuildObjectPicker() { - AllocateWindowDescFront(&_build_object_desc, 0); + /* Don't show the place object button when there are no objects to place. */ + if (ObjectClass::GetUIClassCount() > 0) { + AllocateWindowDescFront(&_build_object_desc, 0); + } } /** Reset all data of the object GUI. */ diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index 8bfbc1469b..b53a7da479 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1161,7 +1161,7 @@ CommandCost CmdSkipToOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 InvalidateVehicleOrder(v, VIWD_MODIFY_ORDERS); - if (_settings_game.order.timetable_separation) v->ClearSeparation(); + v->ClearSeparation(); if (_settings_game.order.timetable_separation) ClrBit(v->vehicle_flags, VF_TIMETABLE_STARTED); } @@ -1626,7 +1626,7 @@ CommandCost CmdCloneOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 SetBit(dst->vehicle_flags, VF_AUTOMATE_TIMETABLE); } - if (_settings_game.order.timetable_separation) dst->ClearSeparation(); + dst->ClearSeparation(); if (_settings_game.order.timetable_separation) ClrBit(dst->vehicle_flags, VF_TIMETABLE_STARTED); InvalidateVehicleOrder(dst, VIWD_REMOVE_ALL_ORDERS); diff --git a/src/order_gui.cpp b/src/order_gui.cpp index d4feae35ca..3ca29e087a 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -1713,6 +1713,12 @@ void ShowOrdersWindow(const Vehicle *v) DeleteWindowById(WC_VEHICLE_TIMETABLE, v->index, false); if (BringWindowToFrontById(WC_VEHICLE_ORDERS, v->index) != NULL) return; + /* Using a different WindowDescs for _local_company causes problems. + * Due to this we have to close order windows in ChangeWindowOwner/DeleteCompanyWindows, + * because we cannot change switch the WindowDescs and keeping the old WindowDesc results + * in crashed due to missing widges. + * TODO Rewrite the order GUI to not use different WindowDescs. + */ if (v->owner != _local_company) { new OrdersWindow(&_other_orders_desc, v); } else { diff --git a/src/pathfinder/follow_track.hpp b/src/pathfinder/follow_track.hpp index a16512bc06..9f19b029c0 100644 --- a/src/pathfinder/follow_track.hpp +++ b/src/pathfinder/follow_track.hpp @@ -144,7 +144,12 @@ struct CFollowTrackT * missing road bit, or inability to connect the * different bits due to slopes. */ if (IsRoadTT() && !IsTram() && TryReverse()) return true; - m_err = EC_NO_WAY; + + /* CanEnterNewTile already set a reason. + * Do NOT overwrite it (important for example for EC_RAIL_TYPE). + * Only set a reason if CanEnterNewTile was not called */ + if (m_new_td_bits == TRACKDIR_BIT_NONE) m_err = EC_NO_WAY; + return false; } if (!Allow90degTurns()) { diff --git a/src/rail.h b/src/rail.h index 539a162b8e..320d24a9a0 100644 --- a/src/rail.h +++ b/src/rail.h @@ -431,4 +431,13 @@ void ResetRailTypes(); void InitRailTypes(); RailType AllocateRailType(RailTypeLabel label); +extern RailType _sorted_railtypes[RAILTYPE_END]; +extern uint8 _sorted_railtypes_size; + +/** + * Loop header for iterating over railtypes, sorted by sortorder. + * @param var Railtype. + */ +#define FOR_ALL_SORTED_RAILTYPES(var) for (uint8 index = 0; index < _sorted_railtypes_size && (var = _sorted_railtypes[index], true) ; index++) + #endif /* RAIL_H */ diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 743e6e193c..2010f9b305 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -44,6 +44,8 @@ typedef SmallVector TrainList; RailtypeInfo _railtypes[RAILTYPE_END]; +RailType _sorted_railtypes[RAILTYPE_END]; +uint8 _sorted_railtypes_size; assert_compile(sizeof(_original_railtypes) <= sizeof(_railtypes)); @@ -109,6 +111,17 @@ void ResolveRailTypeGUISprites(RailtypeInfo *rti) } } +/** + * Compare railtypes based on their sorting order. + * @param first The railtype to compare to. + * @param second The railtype to compare. + * @return True iff the first should be sorted before the second. + */ +static int CDECL CompareRailTypes(const RailType *first, const RailType *second) +{ + return GetRailTypeInfo(*first)->sorting_order - GetRailTypeInfo(*second)->sorting_order; +} + /** * Resolve sprites of custom rail types */ @@ -118,6 +131,14 @@ void InitRailTypes() RailtypeInfo *rti = &_railtypes[rt]; ResolveRailTypeGUISprites(rti); } + + _sorted_railtypes_size = 0; + for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { + if (_railtypes[rt].label != 0) { + _sorted_railtypes[_sorted_railtypes_size++] = rt; + } + } + QSortT(_sorted_railtypes, _sorted_railtypes_size, CompareRailTypes); } /** diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index a8c2fc6b33..a48abd29cc 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -1978,17 +1978,6 @@ void InitializeRailGUI() ResetSignalVariant(); } -/** - * Compare railtypes based on their sorting order. - * @param first The railtype to compare to. - * @param second The railtype to compare. - * @return True iff the first should be sorted before the second. - */ -static int CDECL CompareRailTypes(const DropDownListItem * const *first, const DropDownListItem * const *second) -{ - return GetRailTypeInfo((RailType)(*first)->result)->sorting_order - GetRailTypeInfo((RailType)(*second)->result)->sorting_order; -} - /** * 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. @@ -2011,13 +2000,12 @@ DropDownList *GetRailTypeDropDownList(bool for_replacement) const Company *c = Company::Get(_local_company); DropDownList *list = new DropDownList(); - for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { + RailType rt; + FOR_ALL_SORTED_RAILTYPES(rt) { /* If it's not used ever, don't show it to the user. */ if (!HasBit(used_railtypes, rt)) continue; const RailtypeInfo *rti = GetRailTypeInfo(rt); - /* Skip rail type if it has no label */ - if (rti->label == 0) continue; StringID str = for_replacement ? rti->strings.replace_text : (rti->max_speed > 0 ? STR_TOOLBAR_RAILTYPE_VELOCITY : STR_JUST_STRING); DropDownListParamStringItem *item = new DropDownListParamStringItem(str, rt, !HasBit(c->avail_railtypes, rt)); @@ -2025,6 +2013,5 @@ DropDownList *GetRailTypeDropDownList(bool for_replacement) item->SetParam(1, rti->max_speed); *list->Append() = item; } - QSortT(list->Begin(), list->Length(), CompareRailTypes); return list; } diff --git a/src/road.cpp b/src/road.cpp index 57c5da5d41..f51597538d 100644 --- a/src/road.cpp +++ b/src/road.cpp @@ -57,41 +57,44 @@ RoadBits CleanUpRoadBits(const TileIndex tile, RoadBits org_rb) bool connective = false; const RoadBits mirrored_rb = MirrorRoadBits(target_rb); - switch (GetTileType(neighbor_tile)) { - /* Always connective ones */ - case MP_CLEAR: case MP_TREES: - connective = true; - break; + if (IsValidTile(neighbor_tile)) { + switch (GetTileType(neighbor_tile)) { + /* Always connective ones */ + case MP_CLEAR: case MP_TREES: + connective = true; + break; - /* The conditionally connective ones */ - case MP_TUNNELBRIDGE: - case MP_STATION: - case MP_ROAD: { - const RoadBits neighbor_rb = GetAnyRoadBits(neighbor_tile, ROADTYPE_ROAD) | GetAnyRoadBits(neighbor_tile, ROADTYPE_TRAM); + /* The conditionally connective ones */ + case MP_TUNNELBRIDGE: + case MP_STATION: + case MP_ROAD: + if (IsNormalRoadTile(neighbor_tile)) { + /* Always connective */ + connective = true; + } else { + const RoadBits neighbor_rb = GetAnyRoadBits(neighbor_tile, ROADTYPE_ROAD) | GetAnyRoadBits(neighbor_tile, ROADTYPE_TRAM); - /* Accept only connective tiles */ - connective = (neighbor_rb & mirrored_rb) || // Neighbor has got the fitting RoadBit - HasExactlyOneBit(neighbor_rb); // Neighbor has got only one Roadbit + /* Accept only connective tiles */ + connective = (neighbor_rb & mirrored_rb) != ROAD_NONE; + } + break; - break; + case MP_RAILWAY: + connective = IsPossibleCrossing(neighbor_tile, DiagDirToAxis(dir)); + break; + + case MP_WATER: + /* Check for real water tile */ + connective = !IsWater(neighbor_tile); + break; + + /* The definitely not connective ones */ + default: break; } - - case MP_RAILWAY: - connective = IsPossibleCrossing(neighbor_tile, DiagDirToAxis(dir)); - break; - - case MP_WATER: - /* Check for real water tile */ - connective = !IsWater(neighbor_tile); - break; - - /* The definitely not connective ones */ - default: break; } /* If the neighbor tile is inconnective, remove the planed road connection to it */ if (!connective) org_rb ^= target_rb; - } } diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index acc277249c..7a319d66fc 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -462,7 +462,7 @@ static const NWidgetPart _nested_scen_edit_land_gen_widgets[] = { NWidget(WWT_IMGBTN, COLOUR_GREY, WID_ETT_PLACE_DESERT), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_DESERT, STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA), EndContainer(), - NWidget(WWT_IMGBTN, COLOUR_GREY, WID_ETT_PLACE_OBJECT), SetMinimalSize(23, 22), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_ETT_PLACE_OBJECT), SetMinimalSize(23, 22), SetFill(0, 1), SetDataTip(SPR_IMG_TRANSMITTER, STR_SCENEDIT_TOOLBAR_PLACE_OBJECT), NWidget(NWID_SPACER), SetFill(1, 0), EndContainer(), @@ -704,7 +704,6 @@ struct ScenarioEditorLandscapeGenerationWindow : Window { { this->RaiseButtons(); this->SetDirty(); - DeleteWindowById(WC_BUILD_OBJECT, 0); } static HotkeyList hotkeys; diff --git a/src/timetable_cmd.cpp b/src/timetable_cmd.cpp index 0d8cf6f032..a29756cee8 100644 --- a/src/timetable_cmd.cpp +++ b/src/timetable_cmd.cpp @@ -264,9 +264,9 @@ static int CDECL VehicleTimetableSorter(Vehicle * const *ap, Vehicle * const *bp * Set the start date of the timetable. * @param tile Not used. * @param flags Operation to perform. - * @param p2 Various bitstuffed elements - * - p2 = (bit 0-19) - Vehicle ID. - * - p2 = (bit 20) - Set to 1 to set timetable start for all vehicles sharing this order + * @param p1 Various bitstuffed elements + * - p1 = (bit 0-19) - Vehicle ID. + * - p1 = (bit 20) - Set to 1 to set timetable start for all vehicles sharing this order * @param p2 The timetable start date. * @param text Not used. * @return The error or cost of the operation. @@ -433,8 +433,8 @@ CommandCost CmdAutomateTimetable(TileIndex index, DoCommandFlag flags, uint32 p1 OrderList *orders = v2->orders.list; if (orders != NULL) { for (int i = 0; i < orders->GetNumOrders(); i++) { - ChangeTimetable(v2, i, 0, MTF_WAIT_TIME, true); - ChangeTimetable(v2, i, 0, MTF_TRAVEL_TIME, true); + ChangeTimetable(v2, i, 0, MTF_WAIT_TIME, false); + ChangeTimetable(v2, i, 0, MTF_TRAVEL_TIME, false); } } } @@ -594,7 +594,7 @@ void UpdateVehicleTimetable(Vehicle *v, bool travelling) /* Start automated timetables at first opportunity */ if (!HasBit(v->vehicle_flags, VF_TIMETABLE_STARTED) && HasBit(v->vehicle_flags, VF_AUTOMATE_TIMETABLE)) { - if (_settings_game.order.timetable_separation) v->ClearSeparation(); + v->ClearSeparation(); SetBit(v->vehicle_flags, VF_TIMETABLE_STARTED); v->lateness_counter = 0; if (_settings_game.order.timetable_separation) UpdateSeparationOrder(v); @@ -683,7 +683,7 @@ void UpdateVehicleTimetable(Vehicle *v, bool travelling) * Otherwise we risk trains blocking 1-lane stations for long times. */ ChangeTimetable(v, v->cur_real_order_index, 0, travelling ? MTF_TRAVEL_TIME : MTF_WAIT_TIME, true); for (Vehicle *v2 = v->FirstShared(); v2 != NULL; v2 = v2->NextShared()) { - if (_settings_game.order.timetable_separation) v2->ClearSeparation(); + v2->ClearSeparation(); ClrBit(v2->vehicle_flags, VF_TIMETABLE_STARTED); SetWindowDirty(WC_VEHICLE_TIMETABLE, v2->index); } diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index 738ae3c2e6..cb9e478ba1 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -612,7 +612,7 @@ struct TimetableWindow : Window { case WID_VT_AUTOMATE: { uint32 p2 = 0; if (!HasBit(v->vehicle_flags, VF_AUTOMATE_TIMETABLE)) SetBit(p2, 0); - if (!_ctrl_pressed) SetBit(p2, 1); + if (_ctrl_pressed) SetBit(p2, 1); DoCommandP(0, v->index, p2, CMD_AUTOMATE_TIMETABLE | CMD_MSG(STR_ERROR_CAN_T_TIMETABLE_VEHICLE)); break; } diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index ea44603b0c..7479892c23 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -1247,8 +1247,8 @@ static void GrowTownInTile(TileIndex *tile_ptr, RoadBits cur_rb, DiagDirection t /* FALL THROUGH */ case TL_2X2_GRID: - rcmd = GetTownRoadGridElement(t1, house_tile, target_dir); - allow_house = (rcmd == ROAD_NONE); + rcmd = GetTownRoadGridElement(t1, tile, target_dir); + allow_house = (rcmd & DiagDirToRoadBits(target_dir)) == ROAD_NONE; break; case TL_BETTER_ROADS: // Use original afterwards! @@ -1378,13 +1378,12 @@ static bool GrowTownAtRoad(Town *t, TileIndex tile) /* Try to grow the town from this point */ GrowTownInTile(&tile, cur_rb, target_dir, t); + if (_grow_town_result == GROWTH_SUCCEED) return true; /* Exclude the source position from the bitmask * and return if no more road blocks available */ if (IsValidDiagDirection(target_dir)) cur_rb &= ~DiagDirToRoadBits(ReverseDiagDir(target_dir)); - if (cur_rb == ROAD_NONE) { - return _grow_town_result == GROWTH_SUCCEED; - } + if (cur_rb == ROAD_NONE) return false; if (IsTileType(tile, MP_TUNNELBRIDGE)) { /* Only build in the direction away from the tunnel or bridge. */ @@ -1419,7 +1418,7 @@ static bool GrowTownAtRoad(Town *t, TileIndex tile) /* Max number of times is checked. */ } while (--_grow_town_result >= 0); - return _grow_town_result == GROWTH_SUCCEED - 1; + return false; } /** diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 280bc2dce9..d3854eced7 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1388,13 +1388,15 @@ CommandCost CmdSellRailWagon(DoCommandFlag flags, Vehicle *t, uint16 data, uint3 return ret; } - CommandCost cost(EXPENSES_NEW_VEHICLES); - for (Train *t = sell_head; t != NULL; t = t->Next()) cost.AddCost(-t->value); - if (first->orders.list == NULL && !OrderList::CanAllocateItem()) { + /* Restore the train we had. */ + RestoreTrainBackup(original); return_cmd_error(STR_ERROR_NO_MORE_SPACE_FOR_ORDERS); } + CommandCost cost(EXPENSES_NEW_VEHICLES); + for (Train *t = sell_head; t != NULL; t = t->Next()) cost.AddCost(-t->value); + /* do it? */ if (flags & DC_EXEC) { /* First normalise the sub types of the chain. */ diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp index 4fcda82d81..c862f0dbc1 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -325,10 +325,10 @@ void GenerateTrees() /** * Plant a tree. - * @param tile start tile of area-drag of tree plantation + * @param tile end tile of area-drag * @param flags type of operation * @param p1 tree type, TREE_INVALID means random. - * @param p2 end tile of area-drag + * @param p2 start tile of area-drag of tree plantation * @param text unused * @return the cost of this operation or an error */ diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 6e0b2dd874..139670547e 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -209,7 +209,7 @@ uint Vehicle::Crash(bool flooded) v->MarkAllViewportsDirty(); } - if (_settings_game.order.timetable_separation) this->ClearSeparation(); + this->ClearSeparation(); if (_settings_game.order.timetable_separation) ClrBit(this->vehicle_flags, VF_TIMETABLE_STARTED); /* Dirty some windows */ @@ -1293,6 +1293,9 @@ void AgeVehicle(Vehicle *v) * @param front The front vehicle of the consist to check. * @param colour The string to show depending on if we are unloading or loading * @return A percentage of how full the Vehicle is. + * Percentages are rounded towards 50%, so that 0% and 100% are only returned + * if the vehicle is completely empty or full. + * This is useful for both display and conditional orders. */ uint8 CalcPercentVehicleFilled(const Vehicle *front, StringID *colour) { @@ -1340,7 +1343,13 @@ uint8 CalcPercentVehicleFilled(const Vehicle *front, StringID *colour) if (max == 0) return 100; /* Return the percentage */ - return (count * 100) / max; + if (count * 2 < max) { + /* Less than 50%; round up, so that 0% means really empty. */ + return CeilDiv(count * 100, max); + } else { + /* More than 50%; round down, so that 100% means really full. */ + return (count * 100) / max; + } } /** @@ -2221,7 +2230,7 @@ CommandCost Vehicle::SendToDepot(DoCommandFlag flags, DepotCommand command) if (flags & DC_EXEC) { this->current_order.SetDepotOrderType(ODTF_MANUAL); this->current_order.SetDepotActionType(halt_in_depot ? ODATF_SERVICE_ONLY : ODATFB_HALT); - if (_settings_game.order.timetable_separation) this->ClearSeparation(); + this->ClearSeparation(); if (_settings_game.order.timetable_separation) ClrBit(this->vehicle_flags, VF_TIMETABLE_STARTED); SetWindowWidgetDirty(WC_VEHICLE_VIEW, this->index, WID_VV_START_STOP); } @@ -2239,7 +2248,7 @@ CommandCost Vehicle::SendToDepot(DoCommandFlag flags, DepotCommand command) SetBit(gv_flags, GVF_SUPPRESS_IMPLICIT_ORDERS); } - if (_settings_game.order.timetable_separation) this->ClearSeparation(); + this->ClearSeparation(); if (_settings_game.order.timetable_separation) ClrBit(this->vehicle_flags, VF_TIMETABLE_STARTED); this->current_order.MakeDummy(); @@ -2692,7 +2701,7 @@ void Vehicle::RemoveFromShared() this->next_shared = NULL; this->previous_shared = NULL; - if (_settings_game.order.timetable_separation) this->ClearSeparation(); + this->ClearSeparation(); if (_settings_game.order.timetable_separation) ClrBit(this->vehicle_flags, VF_TIMETABLE_STARTED); } diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index 93250da44f..8ea1ac7786 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -358,8 +358,10 @@ static CommandCost RefitVehicle(Vehicle *v, bool only_this, uint8 num_vehicles, bool auto_refit_allowed; CommandCost refit_cost = GetRefitCost(v, v->engine_type, new_cid, actual_subtype, &auto_refit_allowed); - if (auto_refit && !auto_refit_allowed) { - /* Sorry, auto-refitting not allowed, subtract the cargo amount again from the total. */ + if (auto_refit && (flags & DC_QUERY_COST) == 0 && !auto_refit_allowed) { + /* Sorry, auto-refitting not allowed, subtract the cargo amount again from the total. + * When querrying cost/capacity (for example in order refit GUI), we always assume 'allowed'. + * It is not predictable. */ total_capacity -= amount; total_mail_capacity -= mail_capacity; @@ -446,8 +448,15 @@ CommandCost CmdRefitVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint /* Don't allow shadows and such to be refitted. */ if (v != front && (v->type == VEH_SHIP || v->type == VEH_AIRCRAFT)) return CMD_ERROR; + /* Allow auto-refitting only during loading and normal refitting only in a depot. */ - if (!free_wagon && (!auto_refit || !front->current_order.IsType(OT_LOADING)) && !front->IsStoppedInDepot()) return_cmd_error(STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT + front->type); + if ((flags & DC_QUERY_COST) == 0 && // used by the refit GUI, including the order refit GUI. + !free_wagon && // used by autoreplace/renew + (!auto_refit || !front->current_order.IsType(OT_LOADING)) && // refit inside stations + !front->IsStoppedInDepot()) { // refit inside depots + return_cmd_error(STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT + front->type); + } + if (front->vehstatus & VS_CRASHED) return_cmd_error(STR_ERROR_VEHICLE_IS_DESTROYED); /* Check cargo */ @@ -569,7 +578,7 @@ CommandCost CmdStartStopVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, if (flags & DC_EXEC) { if (v->IsStoppedInDepot() && (flags & DC_AUTOREPLACE) == 0) DeleteVehicleNews(p1, STR_NEWS_TRAIN_IS_WAITING + v->type); - if (_settings_game.order.timetable_separation) v->ClearSeparation(); + v->ClearSeparation(); if (_settings_game.order.timetable_separation) ClrBit(v->vehicle_flags, VF_TIMETABLE_STARTED); v->vehstatus ^= VS_STOPPED; diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 4ace090dda..10f1d952da 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -701,7 +701,10 @@ struct RefitWindow : public Window { if (_returned_mail_refit_capacity > 0) { SetDParam(2, CT_MAIL); SetDParam(3, _returned_mail_refit_capacity); - if (money <= 0) { + if (this->order != INVALID_VEH_ORDER_ID) { + /* No predictable cost */ + return STR_PURCHASE_INFO_AIRCRAFT_CAPACITY; + } else if (money <= 0) { SetDParam(4, -money); return STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT; } else { @@ -709,7 +712,11 @@ struct RefitWindow : public Window { return STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT; } } else { - if (money <= 0) { + if (this->order != INVALID_VEH_ORDER_ID) { + /* No predictable cost */ + SetDParam(2, STR_EMPTY); + return STR_PURCHASE_INFO_CAPACITY; + } else if (money <= 0) { SetDParam(2, -money); return STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT; } else { diff --git a/src/window.cpp b/src/window.cpp index 18e8f35881..1fce1f3a8d 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1207,6 +1207,7 @@ void ChangeWindowOwner(Owner old_owner, Owner new_owner) case WC_BUY_COMPANY: case WC_COMPANY: case WC_COMPANY_INFRASTRUCTURE: + case WC_VEHICLE_ORDERS: // Changing owner would also require changing WindowDesc, which is not possible; however keeping the old one crashes because of missing widgets etc.. See ShowOrdersWindow(). continue; default: diff --git a/src/zoom_func.h b/src/zoom_func.h index 1cb3d0c486..da266e35c6 100644 --- a/src/zoom_func.h +++ b/src/zoom_func.h @@ -67,7 +67,7 @@ static inline int UnScaleByZoomLower(int value, ZoomLevel zoom) /** * Short-hand to apply GUI zoom level. * @param value Pixel amount at #ZOOM_LVL_BEGIN (full zoom in). - * @return value Pixel amount at #ZOOM_LVL_GUI. + * @return Pixel amount at #ZOOM_LVL_GUI (current interface size). */ static inline int UnScaleGUI(int value) { @@ -76,8 +76,8 @@ static inline int UnScaleGUI(int value) /** * Scale traditional pixel dimensions to GUI zoom level. - * @param value Pixel amount at 1x zoom level. - * @return value Pixel amount at #ZOOM_LVL_GUI. + * @param value Pixel amount at #ZOOM_LVL_BASE (traditional "normal" interface size). + * @return Pixel amount at #ZOOM_LVL_GUI (current interface size). */ static inline int ScaleGUITrad(int value) {