From 36a0818bc597f741bb897cae21a99b4814ec348c Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 29 Apr 2023 10:16:49 +0200 Subject: [PATCH 01/31] Remove: buying/selling/owning company shares (#10709) --- src/command_type.h | 4 +- src/company_base.h | 5 +- src/company_cmd.cpp | 3 - src/company_gui.cpp | 96 +---------------- src/company_type.h | 1 - src/economy.cpp | 129 +---------------------- src/economy_cmd.h | 4 - src/lang/english.txt | 18 ---- src/network/core/config.h | 2 +- src/network/network_admin.cpp | 8 -- src/saveload/afterload.cpp | 15 --- src/saveload/company_sl.cpp | 2 - src/saveload/compat/company_sl_compat.h | 2 +- src/saveload/compat/settings_sl_compat.h | 4 +- src/saveload/oldloader_sl.cpp | 6 +- src/settings_gui.cpp | 2 - src/settings_type.h | 2 - src/table/settings/economy_settings.ini | 21 ---- src/widgets/company_widget.h | 5 - 19 files changed, 10 insertions(+), 319 deletions(-) diff --git a/src/command_type.h b/src/command_type.h index 3ade17ed7b..b33b815e6a 100644 --- a/src/command_type.h +++ b/src/command_type.h @@ -271,8 +271,6 @@ enum Commands : uint16 { CMD_PAUSE, ///< pause the game - CMD_BUY_SHARE_IN_COMPANY, ///< buy a share from a company - CMD_SELL_SHARE_IN_COMPANY, ///< sell a share from a company CMD_BUY_COMPANY, ///< buy a company which is bankrupt CMD_FOUND_TOWN, ///< found a town @@ -408,7 +406,7 @@ DECLARE_ENUM_AS_BIT_SET(CommandFlags) enum CommandType { CMDT_LANDSCAPE_CONSTRUCTION, ///< Construction and destruction of objects on the map. CMDT_VEHICLE_CONSTRUCTION, ///< Construction, modification (incl. refit) and destruction of vehicles. - CMDT_MONEY_MANAGEMENT, ///< Management of money, i.e. loans and shares. + CMDT_MONEY_MANAGEMENT, ///< Management of money, i.e. loans. CMDT_VEHICLE_MANAGEMENT, ///< Stopping, starting, sending to depot, turning around, replace orders etc. CMDT_ROUTE_MANAGEMENT, ///< Modifications to route management (orders, groups, etc). CMDT_OTHER_MANAGEMENT, ///< Renaming stuff, changing company colours, placing signs, etc. diff --git a/src/company_base.h b/src/company_base.h index 8d47cd3762..9f0daa138c 100644 --- a/src/company_base.h +++ b/src/company_base.h @@ -76,8 +76,6 @@ struct CompanyProperties { TileIndex location_of_HQ; ///< Northern tile of HQ; #INVALID_TILE when there is none. TileIndex last_build_coordinate; ///< Coordinate of the last build thing by this company. - std::array share_owners; ///< Owners of the shares of the company. #INVALID_OWNER if nobody has bought them yet. - TimerGameCalendar::Year inaugurated_year; ///< Year of starting the company. byte months_of_bankruptcy; ///< Number of months that the company is unable to pay its debts @@ -110,7 +108,7 @@ struct CompanyProperties { CompanyProperties() : name_2(0), name_1(0), president_name_1(0), president_name_2(0), face(0), money(0), money_fraction(0), current_loan(0), colour(0), block_preview(0), - location_of_HQ(0), last_build_coordinate(0), share_owners(), inaugurated_year(0), + location_of_HQ(0), last_build_coordinate(0), inaugurated_year(0), months_of_bankruptcy(0), bankrupt_asked(0), bankrupt_timeout(0), bankrupt_value(0), terraform_limit(0), clear_limit(0), tree_limit(0), build_object_limit(0), is_ai(false), engine_renew_list(nullptr) {} }; @@ -169,7 +167,6 @@ struct Company : CompanyProperties, CompanyPool::PoolItem<&_company_pool> { }; Money CalculateCompanyValue(const Company *c, bool including_loan = true); -Money CalculateCompanyValueExcludingShares(const Company *c, bool including_loan = true); extern uint _cur_company_tick_index; diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index ea8f2c85eb..9d41b4a3a9 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -70,7 +70,6 @@ Company::Company(uint16 name_1, bool is_ai) this->tree_limit = (uint32)_settings_game.construction.tree_frame_burst << 16; this->build_object_limit = (uint32)_settings_game.construction.build_object_frame_burst << 16; - std::fill(this->share_owners.begin(), this->share_owners.end(), INVALID_OWNER); InvalidateWindowData(WC_PERFORMANCE_DETAIL, 0, INVALID_COMPANY); } @@ -565,8 +564,6 @@ Company *DoStartupNewCompany(bool is_ai, CompanyID company = INVALID_COMPANY) /* Scale the initial loan based on the inflation rounded down to the loan interval. The maximum loan has already been inflation adjusted. */ c->money = c->current_loan = std::min((INITIAL_LOAN * _economy.inflation_prices >> 16) / LOAN_INTERVAL * LOAN_INTERVAL, _economy.max_loan); - std::fill(c->share_owners.begin(), c->share_owners.end(), INVALID_OWNER); - c->avail_railtypes = GetCompanyRailtypes(c->index); c->avail_roadtypes = GetCompanyRoadTypes(c->index); c->inaugurated_year = TimerGameCalendar::year; diff --git a/src/company_gui.cpp b/src/company_gui.cpp index cf523142ea..54162fc0ae 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -2229,12 +2229,6 @@ static const NWidgetPart _nested_company_widgets[] = { EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL), - NWidget(NWID_SELECTION, INVALID_COLOUR, WID_C_SELECT_DESC_OWNERS), - NWidget(NWID_VERTICAL), SetPIP(5, 5, 4), - NWidget(WWT_EMPTY, INVALID_COLOUR, WID_C_DESC_OWNERS), SetMinimalTextLines(MAX_COMPANY_SHARE_OWNERS, 0), - NWidget(NWID_SPACER), SetFill(0, 1), - EndContainer(), - EndContainer(), /* Multi player buttons. */ NWidget(NWID_VERTICAL), SetPIP(4, 2, 4), NWidget(NWID_SPACER), SetFill(0, 1), @@ -2264,19 +2258,9 @@ static const NWidgetPart _nested_company_widgets[] = { NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_C_PRESIDENT_NAME), SetFill(1, 0), SetDataTip(STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON, STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_C_COMPANY_NAME), SetFill(1, 0), SetDataTip(STR_COMPANY_VIEW_COMPANY_NAME_BUTTON, STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP), EndContainer(), - NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_C_BUY_SHARE), SetFill(1, 0), SetDataTip(STR_COMPANY_VIEW_BUY_SHARE_BUTTON, STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_C_SELL_SHARE), SetFill(1, 0), SetDataTip(STR_COMPANY_VIEW_SELL_SHARE_BUTTON, STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP), - EndContainer(), EndContainer(), }; -int GetAmountOwnedBy(const Company *c, Owner owner) -{ - auto share_owned_by = [owner](auto share_owner) { return share_owner == owner; }; - return std::count_if(c->share_owners.begin(), c->share_owners.end(), share_owned_by); -} - /** Strings for the company vehicle counts */ static const StringID _company_view_vehicle_count_strings[] = { STR_COMPANY_VIEW_TRAINS, STR_COMPANY_VIEW_ROAD_VEHICLES, STR_COMPANY_VIEW_SHIPS, STR_COMPANY_VIEW_AIRCRAFT @@ -2302,10 +2286,6 @@ struct CompanyWindow : Window /* Display planes of the #WID_C_SELECT_RELOCATE selection widget. */ CWP_RELOCATE_SHOW = 0, ///< Show the relocate HQ button. CWP_RELOCATE_HIDE, ///< Hide the relocate HQ button. - - /* Display planes of the #WID_C_SELECT_BUTTONS selection widget. */ - CWP_BUTTONS_LOCAL = 0, ///< Buttons of the local company. - CWP_BUTTONS_OTHER, ///< Buttons of the other companies. }; CompanyWindow(WindowDesc *desc, WindowNumber window_number) : Window(desc) @@ -2324,7 +2304,7 @@ struct CompanyWindow : Window bool reinit = false; /* Button bar selection. */ - int plane = local ? CWP_BUTTONS_LOCAL : CWP_BUTTONS_OTHER; + int plane = local ? 0 : SZSP_NONE; NWidgetStacked *wi = this->GetWidget(WID_C_SELECT_BUTTONS); if (plane != wi->shown_plane) { wi->SetDisplayedPlane(plane); @@ -2349,16 +2329,6 @@ struct CompanyWindow : Window wi->SetDisplayedPlane(plane); reinit = true; } - - /* Owners of company */ - auto invalid_owner = [](auto owner) { return owner == INVALID_COMPANY; }; - plane = std::all_of(c->share_owners.begin(), c->share_owners.end(), invalid_owner) ? SZSP_HORIZONTAL : 0; - wi = this->GetWidget(WID_C_SELECT_DESC_OWNERS); - if (plane != wi->shown_plane) { - wi->SetDisplayedPlane(plane); - reinit = true; - } - /* Enable/disable 'Give money' button. */ plane = ((local || _local_company == COMPANY_SPECTATOR || !_settings_game.economy.give_money) ? SZSP_NONE : 0); wi = this->GetWidget(WID_C_SELECT_GIVE_MONEY); @@ -2426,16 +2396,6 @@ struct CompanyWindow : Window size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_NONE).width); break; - case WID_C_DESC_OWNERS: { - for (const Company *c2 : Company::Iterate()) { - SetDParamMaxValue(0, 75); - SetDParam(1, c2->index); - - size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_SHARES_OWNED_BY).width); - } - break; - } - case WID_C_VIEW_HQ: case WID_C_BUILD_HQ: case WID_C_RELOCATE_HQ: @@ -2551,22 +2511,6 @@ struct CompanyWindow : Window DrawInfrastructureCountsWidget(r, c); break; - case WID_C_DESC_OWNERS: { - uint y = r.top; - - for (const Company *c2 : Company::Iterate()) { - uint amt = GetAmountOwnedBy(c, c2->index); - if (amt != 0) { - SetDParam(0, amt * 25); - SetDParam(1, c2->index); - - DrawString(r.left, r.right, y, STR_COMPANY_VIEW_SHARES_OWNED_BY); - y += FONT_HEIGHT_NORMAL; - } - } - break; - } - case WID_C_HAS_PASSWORD: if (_networking && NetworkCompanyIsPassworded(c->index)) { DrawSprite(SPR_LOCK, PAL_NONE, r.left, r.top); @@ -2658,14 +2602,6 @@ struct CompanyWindow : Window ShowQueryString(STR_EMPTY, STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION, 30, this, CS_NUMERAL, QSF_NONE); break; - case WID_C_BUY_SHARE: - Command::Post(STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS, (CompanyID)this->window_number); - break; - - case WID_C_SELL_SHARE: - Command::Post(STR_ERROR_CAN_T_SELL_25_SHARE_IN, (CompanyID)this->window_number); - break; - case WID_C_COMPANY_PASSWORD: if (this->window_number == _local_company) ShowNetworkCompanyPasswordWindow(this); break; @@ -2734,36 +2670,6 @@ struct CompanyWindow : Window break; } } - - - /** - * Some data on this window has become invalid. - * @param data Information about the changed data. - * @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details. - */ - void OnInvalidateData(int data = 0, bool gui_scope = true) override - { - if (this->window_number == _local_company) return; - - if (_settings_game.economy.allow_shares) { // Shares are allowed - const Company *c = Company::Get(this->window_number); - - /* If all shares are owned by someone (none by nobody), disable buy button */ - this->SetWidgetDisabledState(WID_C_BUY_SHARE, GetAmountOwnedBy(c, INVALID_OWNER) == 0 || - /* Only 25% left to buy. If the company is human, disable buying it up.. TODO issues! */ - (GetAmountOwnedBy(c, INVALID_OWNER) == 1 && !c->is_ai) || - /* Spectators cannot do anything of course */ - _local_company == COMPANY_SPECTATOR); - - /* If the company doesn't own any shares, disable sell button */ - this->SetWidgetDisabledState(WID_C_SELL_SHARE, (GetAmountOwnedBy(c, _local_company) == 0) || - /* Spectators cannot do anything of course */ - _local_company == COMPANY_SPECTATOR); - } else { // Shares are not allowed, disable buy/sell buttons - this->DisableWidget(WID_C_BUY_SHARE); - this->DisableWidget(WID_C_SELL_SHARE); - } - } }; static WindowDesc _company_desc( diff --git a/src/company_type.h b/src/company_type.h index 5bd1d6b40c..ad949b6c24 100644 --- a/src/company_type.h +++ b/src/company_type.h @@ -40,7 +40,6 @@ static const uint MAX_LENGTH_PRESIDENT_NAME_CHARS = 32; ///< The maximum length static const uint MAX_LENGTH_COMPANY_NAME_CHARS = 32; ///< The maximum length of a company name in characters including '\0' static const uint MAX_HISTORY_QUARTERS = 24; ///< The maximum number of quarters kept as performance's history -static const uint MAX_COMPANY_SHARE_OWNERS = 4; ///< The maximum number of shares of a company that can be owned by another company. static const uint MIN_COMPETITORS_INTERVAL = 0; ///< The minimum interval (in minutes) between competitors. static const uint MAX_COMPETITORS_INTERVAL = 500; ///< The maximum interval (in minutes) between competitors. diff --git a/src/economy.cpp b/src/economy.cpp index 49738746d8..820a033d9d 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -103,11 +103,9 @@ Economy _economy; Prices _price; static PriceMultipliers _price_base_multiplier; -extern int GetAmountOwnedBy(const Company *c, Owner owner); - /** * Calculate the value of the company. That is the value of all - * assets (vehicles, stations, shares) and money minus the loan, + * assets (vehicles, stations) and money minus the loan, * except when including_loan is \c false which is useful when * we want to calculate the value for bankruptcy. * @param c the company to get the value of. @@ -115,19 +113,6 @@ extern int GetAmountOwnedBy(const Company *c, Owner owner); * @return the value of the company. */ Money CalculateCompanyValue(const Company *c, bool including_loan) -{ - Money owned_shares_value = 0; - - for (const Company *co : Company::Iterate()) { - int shares_owned = GetAmountOwnedBy(co, c->index); - - if (shares_owned > 0) owned_shares_value += (CalculateCompanyValueExcludingShares(co) / 4) * shares_owned; - } - - return owned_shares_value + CalculateCompanyValueExcludingShares(c); -} - -Money CalculateCompanyValueExcludingShares(const Company *c, bool including_loan) { Owner owner = c->index; @@ -323,39 +308,6 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner) assert(old_owner != new_owner); - /* See if the old_owner had shares in other companies */ - for (const Company *c : Company::Iterate()) { - for (auto share_owner : c->share_owners) { - if (share_owner == old_owner) { - /* Sell its shares */ - CommandCost res = Command::Do(DC_EXEC | DC_BANKRUPT, c->index); - /* Because we are in a DoCommand, we can't just execute another one and - * expect the money to be removed. We need to do it ourself! */ - SubtractMoneyFromCompany(res); - } - } - } - - /* Sell all the shares that people have on this company */ - Backup cur_company2(_current_company, FILE_LINE); - Company *c = Company::Get(old_owner); - for (auto &share_owner : c->share_owners) { - if (share_owner == INVALID_OWNER) continue; - - if (c->bankrupt_value == 0 && share_owner == new_owner) { - /* You are the one buying the company; so don't sell the shares back to you. */ - share_owner = INVALID_OWNER; - } else { - cur_company2.Change(share_owner); - /* Sell the shares */ - CommandCost res = Command::Do(DC_EXEC | DC_BANKRUPT, old_owner); - /* Because we are in a DoCommand, we can't just execute another one and - * expect the money to be removed. We need to do it ourself! */ - SubtractMoneyFromCompany(res); - } - } - cur_company2.Restore(); - /* Temporarily increase the company's money, to be sure that * removing their property doesn't fail because of lack of money. * Not too drastically though, because it could overflow */ @@ -2031,85 +1983,6 @@ static void DoAcquireCompany(Company *c) delete c; } -/** - * Acquire shares in an opposing company. - * @param flags type of operation - * @param target_company company to buy the shares from - * @return the cost of this operation or an error - */ -CommandCost CmdBuyShareInCompany(DoCommandFlag flags, CompanyID target_company) -{ - CommandCost cost(EXPENSES_OTHER); - Company *c = Company::GetIfValid(target_company); - - /* Check if buying shares is allowed (protection against modified clients) - * Cannot buy own shares */ - if (c == nullptr || !_settings_game.economy.allow_shares || _current_company == target_company) return CMD_ERROR; - - /* Protect new companies from hostile takeovers */ - if (TimerGameCalendar::year - c->inaugurated_year < _settings_game.economy.min_years_for_shares) return_cmd_error(STR_ERROR_PROTECTED); - - /* Those lines are here for network-protection (clients can be slow) */ - if (GetAmountOwnedBy(c, INVALID_OWNER) == 0) return cost; - - if (GetAmountOwnedBy(c, INVALID_OWNER) == 1) { - if (!c->is_ai) return cost; // We can not buy out a real company (temporarily). TODO: well, enable it obviously. - - if (GetAmountOwnedBy(c, _current_company) == 3 && !MayCompanyTakeOver(_current_company, target_company)) return_cmd_error(STR_ERROR_TOO_MANY_VEHICLES_IN_GAME); - } - - - cost.AddCost(CalculateCompanyValue(c) >> 2); - if (flags & DC_EXEC) { - auto unowned_share = std::find(c->share_owners.begin(), c->share_owners.end(), INVALID_OWNER); - assert(unowned_share != c->share_owners.end()); // share owners is guaranteed to contain at least one INVALID_OWNER, i.e. unowned share - *unowned_share = _current_company; - - auto current_company_owns_share = [](auto share_owner) { return share_owner == _current_company; }; - if (std::all_of(c->share_owners.begin(), c->share_owners.end(), current_company_owns_share)) { - c->bankrupt_value = 0; - DoAcquireCompany(c); - } - InvalidateWindowData(WC_COMPANY, target_company); - CompanyAdminUpdate(c); - } - return cost; -} - -/** - * Sell shares in an opposing company. - * @param flags type of operation - * @param target_company company to sell the shares from - * @return the cost of this operation or an error - */ -CommandCost CmdSellShareInCompany(DoCommandFlag flags, CompanyID target_company) -{ - Company *c = Company::GetIfValid(target_company); - - /* Cannot sell own shares */ - if (c == nullptr || _current_company == target_company) return CMD_ERROR; - - /* Check if selling shares is allowed (protection against modified clients). - * However, we must sell shares of companies being closed down. */ - if (!_settings_game.economy.allow_shares && !(flags & DC_BANKRUPT)) return CMD_ERROR; - - /* Those lines are here for network-protection (clients can be slow) */ - if (GetAmountOwnedBy(c, _current_company) == 0) return CommandCost(); - - /* adjust it a little to make it less profitable to sell and buy */ - Money cost = CalculateCompanyValue(c) >> 2; - cost = -(cost - (cost >> 7)); - - if (flags & DC_EXEC) { - auto our_owner = std::find(c->share_owners.begin(), c->share_owners.end(), _current_company); - assert(our_owner != c->share_owners.end()); // share owners is guaranteed to contain at least one INVALID_OWNER - *our_owner = INVALID_OWNER; - InvalidateWindowData(WC_COMPANY, target_company); - CompanyAdminUpdate(c); - } - return CommandCost(EXPENSES_OTHER, cost); -} - /** * Buy up another company. * When a competing company is gone bankrupt you get the chance to purchase diff --git a/src/economy_cmd.h b/src/economy_cmd.h index 4a17e7a814..269c011475 100644 --- a/src/economy_cmd.h +++ b/src/economy_cmd.h @@ -13,12 +13,8 @@ #include "command_type.h" #include "company_type.h" -CommandCost CmdBuyShareInCompany(DoCommandFlag flags, CompanyID target_company); -CommandCost CmdSellShareInCompany(DoCommandFlag flags, CompanyID target_company); CommandCost CmdBuyCompany(DoCommandFlag flags, CompanyID target_company); -DEF_CMD_TRAIT(CMD_BUY_SHARE_IN_COMPANY, CmdBuyShareInCompany, 0, CMDT_MONEY_MANAGEMENT) -DEF_CMD_TRAIT(CMD_SELL_SHARE_IN_COMPANY, CmdSellShareInCompany, 0, CMDT_MONEY_MANAGEMENT) DEF_CMD_TRAIT(CMD_BUY_COMPANY, CmdBuyCompany, 0, CMDT_MONEY_MANAGEMENT) #endif /* ECONOMY_CMD_H */ diff --git a/src/lang/english.txt b/src/lang/english.txt index 52575bd4a3..eb7c074c85 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1804,15 +1804,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Smooth STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Frozen -STR_CONFIG_SETTING_ALLOW_SHARES :Allow buying shares from other companies: {STRING2} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :When enabled, allow buying and selling of company shares. Shares will only be available for companies reaching a certain age - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum company age to trade shares: {STRING2} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set the minimum age of a company for others to be able to buy and sell shares from them. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} year{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :No minimum - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage of leg profit to pay in feeder systems: {STRING2} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage of income given to the intermediate legs in feeder systems, giving more control over the income @@ -3713,7 +3704,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} ship{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}None STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Company value: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% owned by {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastructure: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} rail piece{P "" s} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} road piece{P "" s} @@ -3742,11 +3732,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Change t STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Manager Name STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Change the manager's name -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Buy 25% share in company -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Sell 25% share in company -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Buy 25% share in this company. Shift+Click shows estimated cost without purchasing any share -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Sell 25% share in this company. Shift+Click shows estimated income without selling any share - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Company Name STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Manager's Name STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Enter the amount of money you want to give @@ -4775,9 +4760,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Can't gi STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Can't give away money to this company... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Can't buy company... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Can't build company headquarters... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Can't buy 25% share in this company... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Can't sell 25% share in this company... -STR_ERROR_PROTECTED :{WHITE}This company is not old enough to trade shares yet... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Can't build any towns diff --git a/src/network/core/config.h b/src/network/core/config.h index 175d865a8b..7571f05a54 100644 --- a/src/network/core/config.h +++ b/src/network/core/config.h @@ -43,7 +43,7 @@ static const uint16 UDP_MTU = 1460; ///< Numbe static const uint16 TCP_MTU = 32767; ///< Number of bytes we can pack in a single TCP packet static const uint16 COMPAT_MTU = 1460; ///< Number of bytes we can pack in a single packet for backward compatibility -static const byte NETWORK_GAME_ADMIN_VERSION = 2; ///< What version of the admin network do we use? +static const byte NETWORK_GAME_ADMIN_VERSION = 3; ///< What version of the admin network do we use? static const byte NETWORK_GAME_INFO_VERSION = 6; ///< What version of game-info do we use? static const byte NETWORK_COORDINATOR_VERSION = 6; ///< What version of game-coordinator-protocol do we use? diff --git a/src/network/network_admin.cpp b/src/network/network_admin.cpp index eb48a482a4..efd1eecda1 100644 --- a/src/network/network_admin.cpp +++ b/src/network/network_admin.cpp @@ -333,10 +333,6 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyInfo(const Company p->Send_bool (c->is_ai); p->Send_uint8 (CeilDiv(c->months_of_bankruptcy, 3)); // send as quarters_of_bankruptcy - for (auto owner : c->share_owners) { - p->Send_uint8(owner); - } - this->SendPacket(p); return NETWORK_RECV_STATUS_OKAY; @@ -360,10 +356,6 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyUpdate(const Compa p->Send_bool (NetworkCompanyIsPassworded(c->index)); p->Send_uint8 (CeilDiv(c->months_of_bankruptcy, 3)); // send as quarters_of_bankruptcy - for (auto owner : c->share_owners) { - p->Send_uint8(owner); - } - this->SendPacket(p); return NETWORK_RECV_STATUS_OKAY; diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 3f607bac18..5cd865030a 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -1775,21 +1775,6 @@ bool AfterLoadGame() } } - if (IsSavegameVersionBefore(SLV_84)) { - /* Set all share owners to INVALID_COMPANY for - * 1) all inactive companies - * (when inactive companies were stored in the savegame - TTD, TTDP and some - * *really* old revisions of OTTD; else it is already set in InitializeCompanies()) - * 2) shares that are owned by inactive companies or self - * (caused by cheating clients in earlier revisions) */ - for (Company *c : Company::Iterate()) { - for (auto &share_owner : c->share_owners) { - if (share_owner == INVALID_COMPANY) continue; - if (!Company::IsValidID(share_owner) || share_owner == c->index) share_owner = INVALID_COMPANY; - } - } - } - /* The water class was moved/unified. */ if (IsSavegameVersionBefore(SLV_146)) { for (auto t : Map::Iterate()) { diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 9b3546c257..b15e34ac1b 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -470,8 +470,6 @@ static const SaveLoad _company_desc[] = { SLE_CONDVAR(CompanyProperties, inaugurated_year, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31), SLE_CONDVAR(CompanyProperties, inaugurated_year, SLE_INT32, SLV_31, SL_MAX_VERSION), - SLE_ARR(CompanyProperties, share_owners, SLE_UINT8, 4), - SLE_CONDVAR(CompanyProperties, num_valid_stat_ent, SLE_UINT8, SL_MIN_VERSION, SLV_SAVELOAD_LIST_LENGTH), SLE_VAR(CompanyProperties, months_of_bankruptcy, SLE_UINT8), diff --git a/src/saveload/compat/company_sl_compat.h b/src/saveload/compat/company_sl_compat.h index 9da01d3a47..c5eebb9251 100644 --- a/src/saveload/compat/company_sl_compat.h +++ b/src/saveload/compat/company_sl_compat.h @@ -106,7 +106,7 @@ const SaveLoadCompat _company_sl_compat[] = { SLC_VAR("location_of_HQ"), SLC_VAR("last_build_coordinate"), SLC_VAR("inaugurated_year"), - SLC_VAR("share_owners"), + SLC_NULL(4, SL_MIN_VERSION, SLV_TABLE_CHUNKS), SLC_VAR("num_valid_stat_ent"), SLC_VAR("months_of_bankruptcy"), SLC_VAR("bankrupt_asked"), diff --git a/src/saveload/compat/settings_sl_compat.h b/src/saveload/compat/settings_sl_compat.h index 00bc026a43..523035a80b 100644 --- a/src/saveload/compat/settings_sl_compat.h +++ b/src/saveload/compat/settings_sl_compat.h @@ -154,8 +154,8 @@ const SaveLoadCompat _settings_sl_compat[] = { SLC_NULL(4, SL_MIN_VERSION, SLV_105), SLC_VAR("game_creation.ending_year"), SLC_VAR("economy.type"), - SLC_VAR("economy.allow_shares"), - SLC_VAR("economy.min_years_for_shares"), + SLC_NULL(1, SL_MIN_VERSION, SLV_TABLE_CHUNKS), + SLC_NULL(1, SLV_TRADING_AGE, SLV_TABLE_CHUNKS), SLC_VAR("economy.feeder_payment_share"), SLC_VAR("economy.town_growth_rate"), SLC_VAR("economy.larger_towns"), diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index 1fbdc262fb..4e312db541 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -950,10 +950,8 @@ static const OldChunks _company_chunk[] = { OCL_CNULL( OC_TTD, 1 ), // Old AI OCL_CNULL( OC_TTD, 1 ), // avail_railtypes OCL_SVAR( OC_TILE, Company, location_of_HQ ), - OCL_SVAR( OC_TTD | OC_UINT8, Company, share_owners[0] ), - OCL_SVAR( OC_TTD | OC_UINT8, Company, share_owners[1] ), - OCL_SVAR( OC_TTD | OC_UINT8, Company, share_owners[2] ), - OCL_SVAR( OC_TTD | OC_UINT8, Company, share_owners[3] ), + + OCL_NULL( 4 ), // Shares OCL_CNULL( OC_TTD, 8 ), ///< junk at end of chunk diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 87add4bfba..28ec208195 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1905,8 +1905,6 @@ static SettingsContainer &GetSettingsTree() } ai->Add(new SettingEntry("economy.give_money")); - ai->Add(new SettingEntry("economy.allow_shares")); - ai->Add(new SettingEntry("economy.min_years_for_shares")); } SettingsPage *network = main->Add(new SettingsPage(STR_CONFIG_SETTING_NETWORK)); diff --git a/src/settings_type.h b/src/settings_type.h index ecbf3bc5c3..0804739f52 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -513,8 +513,6 @@ struct EconomySettings { bool inflation; ///< disable inflation bool bribe; ///< enable bribing the local authority EconomyType type; ///< economy type (original/smooth/frozen) - bool allow_shares; ///< allow the buying/selling of shares - uint8 min_years_for_shares; ///< minimum age of a company for it to trade shares uint8 feeder_payment_share; ///< percentage of leg payment to virtually pay in feeder systems byte dist_local_authority; ///< distance for town local authority, default 20 bool exclusive_rights; ///< allow buying exclusive rights diff --git a/src/table/settings/economy_settings.ini b/src/table/settings/economy_settings.ini index 8bcfdca58e..33fa429ab4 100644 --- a/src/table/settings/economy_settings.ini +++ b/src/table/settings/economy_settings.ini @@ -174,27 +174,6 @@ strval = STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL post_cb = [](auto) { InvalidateWindowClassesData(WC_INDUSTRY_VIEW); } cat = SC_BASIC -[SDT_BOOL] -var = economy.allow_shares -def = false -str = STR_CONFIG_SETTING_ALLOW_SHARES -strhelp = STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT -post_cb = [](auto) { InvalidateWindowClassesData(WC_COMPANY); } - -[SDT_VAR] -var = economy.min_years_for_shares -type = SLE_UINT8 -from = SLV_TRADING_AGE -flags = SF_GUI_0_IS_SPECIAL -def = 6 -min = 0 -max = 255 -interval = 1 -str = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES -strhelp = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT -strval = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE -cat = SC_EXPERT - [SDT_VAR] var = economy.feeder_payment_share type = SLE_UINT8 diff --git a/src/widgets/company_widget.h b/src/widgets/company_widget.h index 5afbceddc9..c82b48b3d0 100644 --- a/src/widgets/company_widget.h +++ b/src/widgets/company_widget.h @@ -26,16 +26,11 @@ enum CompanyWidgets { WID_C_DESC_INFRASTRUCTURE, ///< Infrastructure. WID_C_DESC_INFRASTRUCTURE_COUNTS, ///< Infrastructure count. - WID_C_SELECT_DESC_OWNERS, ///< Owners. - WID_C_DESC_OWNERS, ///< Owner in Owners. - WID_C_SELECT_BUTTONS, ///< Selection widget for the button bar. WID_C_NEW_FACE, ///< Button to make new face. WID_C_COLOUR_SCHEME, ///< Button to change colour scheme. WID_C_PRESIDENT_NAME, ///< Button to change president name. WID_C_COMPANY_NAME, ///< Button to change company name. - WID_C_BUY_SHARE, ///< Button to buy a share. - WID_C_SELL_SHARE, ///< Button to sell a share. WID_C_SELECT_VIEW_BUILD_HQ, ///< Panel about HQ. WID_C_VIEW_HQ, ///< Button to view the HQ. From 86786a7af65dcc4c21744cf9c49640d4919e3a53 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 27 Apr 2023 11:47:08 +0200 Subject: [PATCH 02/31] Codechange: introduce StrEqualsIgnoreCase/StrCompareIgnoreCase to replace strcasecmp --- src/ai/ai_scanner.cpp | 2 +- src/blitter/factory.hpp | 2 +- src/console_cmds.cpp | 34 ++++---- src/driver.cpp | 2 +- src/fileio.cpp | 2 +- src/fios.cpp | 18 ++-- src/game/game_scanner.cpp | 2 +- src/newgrf_config.cpp | 2 +- src/os/unix/font_unix.cpp | 4 +- src/script/script_scanner.cpp | 4 +- src/string.cpp | 55 +++++++++++- src/string_func.h | 3 + src/tests/CMakeLists.txt | 1 + src/tests/math_func.cpp | 2 +- src/tests/string_func.cpp | 160 ++++++++++++++++++++++++++++++++++ 15 files changed, 255 insertions(+), 38 deletions(-) create mode 100644 src/tests/string_func.cpp diff --git a/src/ai/ai_scanner.cpp b/src/ai/ai_scanner.cpp index dc5eab49fa..342afffb6e 100644 --- a/src/ai/ai_scanner.cpp +++ b/src/ai/ai_scanner.cpp @@ -123,7 +123,7 @@ AIInfo *AIScannerInfo::FindInfo(const char *nameParam, int versionParam, bool fo * version which allows loading the requested version */ for (const auto &item : this->info_list) { AIInfo *i = static_cast(item.second); - if (strcasecmp(ai_name, i->GetName()) == 0 && i->CanLoadFromVersion(versionParam) && (version == -1 || i->GetVersion() > version)) { + if (StrEqualsIgnoreCase(ai_name, i->GetName()) && i->CanLoadFromVersion(versionParam) && (version == -1 || i->GetVersion() > version)) { version = item.second->GetVersion(); info = i; } diff --git a/src/blitter/factory.hpp b/src/blitter/factory.hpp index 393b9836b7..296f6842b6 100644 --- a/src/blitter/factory.hpp +++ b/src/blitter/factory.hpp @@ -128,7 +128,7 @@ public: Blitters::iterator it = GetBlitters().begin(); for (; it != GetBlitters().end(); it++) { BlitterFactory *b = (*it).second; - if (strcasecmp(bname, b->name.c_str()) == 0) { + if (StrEqualsIgnoreCase(bname, b->name)) { return b->IsUsable() ? b : nullptr; } } diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index b16320bbd6..6d0ca5cdf2 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -1868,7 +1868,7 @@ static ContentType StringToContentType(const char *str) { static const char * const inv_lookup[] = { "", "base", "newgrf", "ai", "ailib", "scenario", "heightmap" }; for (uint i = 1 /* there is no type 0 */; i < lengthof(inv_lookup); i++) { - if (strcasecmp(str, inv_lookup[i]) == 0) return (ContentType)i; + if (StrEqualsIgnoreCase(str, inv_lookup[i])) return (ContentType)i; } return CONTENT_TYPE_END; } @@ -1926,17 +1926,17 @@ DEF_CONSOLE_CMD(ConContent) return true; } - if (strcasecmp(argv[1], "update") == 0) { + if (StrEqualsIgnoreCase(argv[1], "update")) { _network_content_client.RequestContentList((argc > 2) ? StringToContentType(argv[2]) : CONTENT_TYPE_END); return true; } - if (strcasecmp(argv[1], "upgrade") == 0) { + if (StrEqualsIgnoreCase(argv[1], "upgrade")) { _network_content_client.SelectUpgrade(); return true; } - if (strcasecmp(argv[1], "select") == 0) { + if (StrEqualsIgnoreCase(argv[1], "select")) { if (argc <= 2) { /* List selected content */ IConsolePrint(CC_WHITE, "id, type, state, name"); @@ -1944,7 +1944,7 @@ DEF_CONSOLE_CMD(ConContent) if ((*iter)->state != ContentInfo::SELECTED && (*iter)->state != ContentInfo::AUTOSELECTED) continue; OutputContentState(*iter); } - } else if (strcasecmp(argv[2], "all") == 0) { + } else if (StrEqualsIgnoreCase(argv[2], "all")) { /* The intention of this function was that you could download * everything after a filter was applied; but this never really * took off. Instead, a select few people used this functionality @@ -1958,12 +1958,12 @@ DEF_CONSOLE_CMD(ConContent) return true; } - if (strcasecmp(argv[1], "unselect") == 0) { + if (StrEqualsIgnoreCase(argv[1], "unselect")) { if (argc <= 2) { IConsolePrint(CC_ERROR, "You must enter the id."); return false; } - if (strcasecmp(argv[2], "all") == 0) { + if (StrEqualsIgnoreCase(argv[2], "all")) { _network_content_client.UnselectAll(); } else { _network_content_client.Unselect((ContentID)atoi(argv[2])); @@ -1971,7 +1971,7 @@ DEF_CONSOLE_CMD(ConContent) return true; } - if (strcasecmp(argv[1], "state") == 0) { + if (StrEqualsIgnoreCase(argv[1], "state")) { IConsolePrint(CC_WHITE, "id, type, state, name"); for (ConstContentIterator iter = _network_content_client.Begin(); iter != _network_content_client.End(); iter++) { if (argc > 2 && strcasestr((*iter)->name.c_str(), argv[2]) == nullptr) continue; @@ -1980,7 +1980,7 @@ DEF_CONSOLE_CMD(ConContent) return true; } - if (strcasecmp(argv[1], "download") == 0) { + if (StrEqualsIgnoreCase(argv[1], "download")) { uint files; uint bytes; _network_content_client.DownloadSelectedContent(files, bytes); @@ -2007,7 +2007,7 @@ DEF_CONSOLE_CMD(ConFont) FontSize argfs; for (argfs = FS_BEGIN; argfs < FS_END; argfs++) { - if (argc > 1 && strcasecmp(argv[1], FontSizeToName(argfs)) == 0) break; + if (argc > 1 && StrEqualsIgnoreCase(argv[1], FontSizeToName(argfs))) break; } /* First argument must be a FontSize. */ @@ -2021,7 +2021,7 @@ DEF_CONSOLE_CMD(ConFont) byte arg_index = 2; /* We may encounter "aa" or "noaa" but it must be the last argument. */ - if (strcasecmp(argv[arg_index], "aa") == 0 || strcasecmp(argv[arg_index], "noaa") == 0) { + if (StrEqualsIgnoreCase(argv[arg_index], "aa") || StrEqualsIgnoreCase(argv[arg_index], "noaa")) { aa = strncasecmp(argv[arg_index++], "no", 2) != 0; if (argc > arg_index) return false; } else { @@ -2043,7 +2043,7 @@ DEF_CONSOLE_CMD(ConFont) if (argc > arg_index) { /* Last argument must be "aa" or "noaa". */ - if (strcasecmp(argv[arg_index], "aa") != 0 && strcasecmp(argv[arg_index], "noaa") != 0) return false; + if (!StrEqualsIgnoreCase(argv[arg_index], "aa") && !StrEqualsIgnoreCase(argv[arg_index], "noaa")) return false; aa = strncasecmp(argv[arg_index++], "no", 2) != 0; if (argc > arg_index) return false; } @@ -2171,7 +2171,7 @@ DEF_CONSOLE_CMD(ConListDirs) std::set seen_dirs; for (const SubdirNameMap &sdn : subdir_name_map) { - if (strcasecmp(argv[1], sdn.name) != 0) continue; + if (!StrEqualsIgnoreCase(argv[1], sdn.name)) continue; bool found = false; for (Searchpath sp : _valid_searchpaths) { /* Get the directory */ @@ -2256,7 +2256,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) /* "unselect" sub-command */ if (strncasecmp(argv[1], "uns", 3) == 0 && argc >= 3) { for (size_t argnum = 2; argnum < argc; ++argnum) { - if (strcasecmp(argv[argnum], "all") == 0) { + if (StrEqualsIgnoreCase(argv[argnum], "all")) { _newgrf_profilers.clear(); break; } @@ -2501,17 +2501,17 @@ DEF_CONSOLE_CMD(ConDumpInfo) return true; } - if (strcasecmp(argv[1], "roadtypes") == 0) { + if (StrEqualsIgnoreCase(argv[1], "roadtypes")) { ConDumpRoadTypes(); return true; } - if (strcasecmp(argv[1], "railtypes") == 0) { + if (StrEqualsIgnoreCase(argv[1], "railtypes")) { ConDumpRailTypes(); return true; } - if (strcasecmp(argv[1], "cargotypes") == 0) { + if (StrEqualsIgnoreCase(argv[1], "cargotypes")) { ConDumpCargoTypes(); return true; } diff --git a/src/driver.cpp b/src/driver.cpp index 29f1946fad..b6bf486427 100644 --- a/src/driver.cpp +++ b/src/driver.cpp @@ -160,7 +160,7 @@ bool DriverFactoryBase::SelectDriverImpl(const std::string &name, Driver::Type t if (d->type != type) continue; /* Check driver name */ - if (strcasecmp(dname.c_str(), d->name) != 0) continue; + if (!StrEqualsIgnoreCase(dname, d->name)) continue; /* Found our driver, let's try it */ Driver *newd = d->CreateInstance(); diff --git a/src/fileio.cpp b/src/fileio.cpp index 9a41a281e6..73b13e3117 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -1142,7 +1142,7 @@ static bool MatchesExtension(const char *extension, const char *filename) if (extension == nullptr) return true; const char *ext = strrchr(filename, extension[0]); - return ext != nullptr && strcasecmp(ext, extension) == 0; + return ext != nullptr && StrEqualsIgnoreCase(ext, extension); } /** diff --git a/src/fios.cpp b/src/fios.cpp index 793a4fd433..23fa6af2f7 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -216,7 +216,7 @@ static std::string FiosMakeFilename(const std::string *path, const char *name, c /* Don't append the extension if it is already there */ const char *period = strrchr(name, '.'); - if (period != nullptr && strcasecmp(period, ext) == 0) ext = ""; + if (period != nullptr && StrEqualsIgnoreCase(period, ext)) ext = ""; return buf + PATHSEP + name + ext; } @@ -473,14 +473,14 @@ FiosType FiosGetSavegameListCallback(SaveLoadOperation fop, const std::string &f /* Don't crash if we supply no extension */ if (ext == nullptr) return FIOS_TYPE_INVALID; - if (strcasecmp(ext, ".sav") == 0) { + if (StrEqualsIgnoreCase(ext, ".sav")) { GetFileTitle(file, title, last, SAVE_DIR); return FIOS_TYPE_FILE; } if (fop == SLO_LOAD) { - if (strcasecmp(ext, ".ss1") == 0 || strcasecmp(ext, ".sv1") == 0 || - strcasecmp(ext, ".sv2") == 0) { + if (StrEqualsIgnoreCase(ext, ".ss1") || StrEqualsIgnoreCase(ext, ".sv1") || + StrEqualsIgnoreCase(ext, ".sv2")) { if (title != nullptr) GetOldSaveGameName(file, title, last); return FIOS_TYPE_OLDFILE; } @@ -523,13 +523,13 @@ static FiosType FiosGetScenarioListCallback(SaveLoadOperation fop, const std::st * .SCN OpenTTD style scenario file * .SV0 Transport Tycoon Deluxe (Patch) scenario * .SS0 Transport Tycoon Deluxe preset scenario */ - if (strcasecmp(ext, ".scn") == 0) { + if (StrEqualsIgnoreCase(ext, ".scn")) { GetFileTitle(file, title, last, SCENARIO_DIR); return FIOS_TYPE_SCENARIO; } if (fop == SLO_LOAD) { - if (strcasecmp(ext, ".sv0") == 0 || strcasecmp(ext, ".ss0") == 0 ) { + if (StrEqualsIgnoreCase(ext, ".sv0") || StrEqualsIgnoreCase(ext, ".ss0")) { GetOldSaveGameName(file, title, last); return FIOS_TYPE_OLD_SCENARIO; } @@ -568,10 +568,10 @@ static FiosType FiosGetHeightmapListCallback(SaveLoadOperation fop, const std::s FiosType type = FIOS_TYPE_INVALID; #ifdef WITH_PNG - if (strcasecmp(ext, ".png") == 0) type = FIOS_TYPE_PNG; + if (StrEqualsIgnoreCase(ext, ".png")) type = FIOS_TYPE_PNG; #endif /* WITH_PNG */ - if (strcasecmp(ext, ".bmp") == 0) type = FIOS_TYPE_BMP; + if (StrEqualsIgnoreCase(ext, ".bmp")) type = FIOS_TYPE_BMP; if (type == FIOS_TYPE_INVALID) return FIOS_TYPE_INVALID; @@ -760,7 +760,7 @@ FiosNumberedSaveName::FiosNumberedSaveName(const std::string &prefix) : prefix(p /* Callback for FiosFileScanner. */ static fios_getlist_callback_proc *proc = [](SaveLoadOperation fop, const std::string &file, const char *ext, char *title, const char *last) { - if (strcasecmp(ext, ".sav") == 0 && StrStartsWith(file, _prefix)) return FIOS_TYPE_FILE; + if (StrEqualsIgnoreCase(ext, ".sav") && StrStartsWith(file, _prefix)) return FIOS_TYPE_FILE; return FIOS_TYPE_INVALID; }; diff --git a/src/game/game_scanner.cpp b/src/game/game_scanner.cpp index 1935b78137..367645083b 100644 --- a/src/game/game_scanner.cpp +++ b/src/game/game_scanner.cpp @@ -62,7 +62,7 @@ GameInfo *GameScannerInfo::FindInfo(const char *nameParam, int versionParam, boo * version which allows loading the requested version */ for (const auto &item : this->info_list) { GameInfo *i = static_cast(item.second); - if (strcasecmp(game_name, i->GetName()) == 0 && i->CanLoadFromVersion(versionParam) && (version == -1 || i->GetVersion() > version)) { + if (StrEqualsIgnoreCase(game_name, i->GetName()) && i->CanLoadFromVersion(versionParam) && (version == -1 || i->GetVersion() > version)) { version = item.second->GetVersion(); info = i; } diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 6610183c2c..0a4860c667 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -630,7 +630,7 @@ bool GRFFileScanner::AddFile(const std::string &filename, size_t basepath_length /* Because there can be multiple grfs with the same name, make sure we checked all grfs with the same name, * before inserting the entry. So insert a new grf at the end of all grfs with the same name, instead of * just after the first with the same name. Avoids doubles in the list. */ - if (strcasecmp(c->GetName(), d->GetName()) <= 0) { + if (StrCompareIgnoreCase(c->GetName(), d->GetName()) <= 0) { stop = true; } else if (stop) { break; diff --git a/src/os/unix/font_unix.cpp b/src/os/unix/font_unix.cpp index e2315e3fc1..5027929be0 100644 --- a/src/os/unix/font_unix.cpp +++ b/src/os/unix/font_unix.cpp @@ -70,12 +70,12 @@ FT_Error GetFontByFaceName(const char *font_name, FT_Face *face) FcPatternGetString(fs->fonts[i], FC_STYLE, 0, &style) == FcResultMatch) { /* The correct style? */ - if (font_style != nullptr && strcasecmp(font_style, (char *)style) != 0) continue; + if (font_style != nullptr && !StrEqualsIgnoreCase(font_style, (char *)style)) continue; /* Font config takes the best shot, which, if the family name is spelled * wrongly a 'random' font, so check whether the family name is the * same as the supplied name */ - if (strcasecmp(font_family, (char *)family) == 0) { + if (StrEqualsIgnoreCase(font_family, (char *)family)) { err = FT_New_Face(_library, (char *)file, 0, face); } } diff --git a/src/script/script_scanner.cpp b/src/script/script_scanner.cpp index 3b76b7b651..b395b0ed59 100644 --- a/src/script/script_scanner.cpp +++ b/src/script/script_scanner.cpp @@ -115,7 +115,7 @@ void ScriptScanner::RegisterScript(ScriptInfo *info) /* This script was already registered */ #ifdef _WIN32 /* Windows doesn't care about the case */ - if (strcasecmp(this->info_list[script_name]->GetMainScript(), info->GetMainScript()) == 0) { + if (StrEqualsIgnoreCase(this->info_list[script_name]->GetMainScript(), info->GetMainScript()) == 0) { #else if (strcmp(this->info_list[script_name]->GetMainScript(), info->GetMainScript()) == 0) { #endif @@ -231,7 +231,7 @@ static bool IsSameScript(const ContentInfo *ci, bool md5sum, ScriptInfo *info, S /* Check the extension. */ const char *ext = strrchr(tar.first.c_str(), '.'); - if (ext == nullptr || strcasecmp(ext, ".nut") != 0) continue; + if (ext == nullptr || !StrEqualsIgnoreCase(ext, ".nut")) continue; checksum.AddFile(tar.first, 0, tar_filename); } diff --git a/src/string.cpp b/src/string.cpp index ff91f95ca3..0f853f9112 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -368,6 +368,59 @@ bool StrEndsWith(const std::string_view str, const std::string_view suffix) return str.compare(str.size() - suffix_len, suffix_len, suffix, 0, suffix_len) == 0; } +/** Case insensitive implementation of the standard character type traits. */ +struct CaseInsensitiveCharTraits : public std::char_traits { + static bool eq(char c1, char c2) { return toupper(c1) == toupper(c2); } + static bool ne(char c1, char c2) { return toupper(c1) != toupper(c2); } + static bool lt(char c1, char c2) { return toupper(c1) < toupper(c2); } + + static int compare(const char *s1, const char *s2, size_t n) + { + while (n-- != 0) { + if (toupper(*s1) < toupper(*s2)) return -1; + if (toupper(*s1) > toupper(*s2)) return 1; + ++s1; ++s2; + } + return 0; + } + + static const char *find(const char *s, int n, char a) + { + while (n-- > 0 && toupper(*s) != toupper(a)) { + ++s; + } + return s; + } +}; + +/** Case insensitive string view. */ +typedef std::basic_string_view CaseInsensitiveStringView; + +/** + * Compares two string( view)s, while ignoring the case of the characters. + * @param str1 The first string. + * @param str2 The second string. + * @return Less than zero if str1 < str2, zero if str1 == str2, greater than + * zero if str1 > str2. All ignoring the case of the characters. + */ +int StrCompareIgnoreCase(const std::string_view str1, const std::string_view str2) +{ + CaseInsensitiveStringView ci_str1{ str1.data(), str1.size() }; + CaseInsensitiveStringView ci_str2{ str2.data(), str2.size() }; + return ci_str1.compare(ci_str2); +} + +/** + * Compares two string( view)s for equality, while ignoring the case of the characters. + * @param str1 The first string. + * @param str2 The second string. + * @return True iff both strings are equal, barring the case of the characters. + */ +bool StrEqualsIgnoreCase(const std::string_view str1, const std::string_view str2) +{ + if (str1.size() != str2.size()) return false; + return StrCompareIgnoreCase(str1, str2) == 0; +} /** Scans the string for colour codes and strips them */ void str_strip_colours(char *str) @@ -728,7 +781,7 @@ int strnatcmp(const char *s1, const char *s2, bool ignore_garbage_at_front) #endif /* Do a normal comparison if ICU is missing or if we cannot create a collator. */ - return strcasecmp(s1, s2); + return StrCompareIgnoreCase(s1, s2); } #ifdef WITH_UNISCRIBE diff --git a/src/string_func.h b/src/string_func.h index 816f85cf57..5293691807 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -54,6 +54,9 @@ void StrTrimInPlace(std::string &str); bool StrStartsWith(const std::string_view str, const std::string_view prefix); bool StrEndsWith(const std::string_view str, const std::string_view suffix); +[[nodiscard]] int StrCompareIgnoreCase(const std::string_view str1, const std::string_view str2); +[[nodiscard]] bool StrEqualsIgnoreCase(const std::string_view str1, const std::string_view str2); + /** * Check if a string buffer is empty. * diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index b920fd6fdb..6f5134d46f 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -1,5 +1,6 @@ add_test_files( landscape_partial_pixel_z.cpp math_func.cpp + string_func.cpp test_main.cpp ) diff --git a/src/tests/math_func.cpp b/src/tests/math_func.cpp index 0e58b79e42..6cc43f0146 100644 --- a/src/tests/math_func.cpp +++ b/src/tests/math_func.cpp @@ -5,7 +5,7 @@ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ -/** @file math_func_test.cpp Test functionality from core/math_func. */ +/** @file math_func.cpp Test functionality from core/math_func. */ #include "../stdafx.h" diff --git a/src/tests/string_func.cpp b/src/tests/string_func.cpp new file mode 100644 index 0000000000..3797f894e7 --- /dev/null +++ b/src/tests/string_func.cpp @@ -0,0 +1,160 @@ +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ + +/** @file string_func.cpp Test functionality from string_func. */ + +#include "../stdafx.h" + +#include "../3rdparty/catch2/catch.hpp" + +#include "../string_func.h" + +TEST_CASE("StrCompareIgnoreCase - std::string") +{ + /* Same string, with different cases. */ + CHECK(StrCompareIgnoreCase(std::string{""}, std::string{""}) == 0); + CHECK(StrCompareIgnoreCase(std::string{"a"}, std::string{"a"}) == 0); + CHECK(StrCompareIgnoreCase(std::string{"a"}, std::string{"A"}) == 0); + CHECK(StrCompareIgnoreCase(std::string{"A"}, std::string{"a"}) == 0); + CHECK(StrCompareIgnoreCase(std::string{"A"}, std::string{"A"}) == 0); + + /* Not the same string. */ + CHECK(StrCompareIgnoreCase(std::string{""}, std::string{"b"}) < 0); + CHECK(StrCompareIgnoreCase(std::string{"a"}, std::string{""}) > 0); + + CHECK(StrCompareIgnoreCase(std::string{"a"}, std::string{"b"}) < 0); + CHECK(StrCompareIgnoreCase(std::string{"b"}, std::string{"a"}) > 0); + CHECK(StrCompareIgnoreCase(std::string{"a"}, std::string{"B"}) < 0); + CHECK(StrCompareIgnoreCase(std::string{"b"}, std::string{"A"}) > 0); + CHECK(StrCompareIgnoreCase(std::string{"A"}, std::string{"b"}) < 0); + CHECK(StrCompareIgnoreCase(std::string{"B"}, std::string{"a"}) > 0); + + CHECK(StrCompareIgnoreCase(std::string{"a"}, std::string{"aa"}) < 0); + CHECK(StrCompareIgnoreCase(std::string{"aa"}, std::string{"a"}) > 0); +} + +TEST_CASE("StrCompareIgnoreCase - char pointer") +{ + /* Same string, with different cases. */ + CHECK(StrCompareIgnoreCase("", "") == 0); + CHECK(StrCompareIgnoreCase("a", "a") == 0); + CHECK(StrCompareIgnoreCase("a", "A") == 0); + CHECK(StrCompareIgnoreCase("A", "a") == 0); + CHECK(StrCompareIgnoreCase("A", "A") == 0); + + /* Not the same string. */ + CHECK(StrCompareIgnoreCase("", "b") < 0); + CHECK(StrCompareIgnoreCase("a", "") > 0); + + CHECK(StrCompareIgnoreCase("a", "b") < 0); + CHECK(StrCompareIgnoreCase("b", "a") > 0); + CHECK(StrCompareIgnoreCase("a", "B") < 0); + CHECK(StrCompareIgnoreCase("b", "A") > 0); + CHECK(StrCompareIgnoreCase("A", "b") < 0); + CHECK(StrCompareIgnoreCase("B", "a") > 0); + + CHECK(StrCompareIgnoreCase("a", "aa") < 0); + CHECK(StrCompareIgnoreCase("aa", "a") > 0); +} + +TEST_CASE("StrCompareIgnoreCase - std::string_view") +{ + /* + * With std::string_view the only way to access the data is via .data(), + * which does not guarantee the termination that would be required by + * things such as stricmp/strcasecmp. So, just passing .data() into stricmp + * or strcasecmp would fail if it does not account for the length of the + * view. Thus, contrary to the string/char* tests, this uses the same base + * string but gets different sections to trigger these corner cases. + */ + std::string_view base{"aaAbB"}; + + /* Same string, with different cases. */ + CHECK(StrCompareIgnoreCase(base.substr(0, 0), base.substr(1, 0)) == 0); // Different positions + CHECK(StrCompareIgnoreCase(base.substr(0, 1), base.substr(1, 1)) == 0); // Different positions + CHECK(StrCompareIgnoreCase(base.substr(0, 1), base.substr(2, 1)) == 0); + CHECK(StrCompareIgnoreCase(base.substr(2, 1), base.substr(1, 1)) == 0); + CHECK(StrCompareIgnoreCase(base.substr(2, 1), base.substr(2, 1)) == 0); + + /* Not the same string. */ + CHECK(StrCompareIgnoreCase(base.substr(3, 0), base.substr(3, 1)) < 0); // Same position, different lengths + CHECK(StrCompareIgnoreCase(base.substr(0, 1), base.substr(0, 0)) > 0); // Same position, different lengths + + CHECK(StrCompareIgnoreCase(base.substr(0, 1), base.substr(3, 1)) < 0); + CHECK(StrCompareIgnoreCase(base.substr(3, 1), base.substr(0, 1)) > 0); + CHECK(StrCompareIgnoreCase(base.substr(0, 1), base.substr(4, 1)) < 0); + CHECK(StrCompareIgnoreCase(base.substr(3, 1), base.substr(2, 1)) > 0); + CHECK(StrCompareIgnoreCase(base.substr(2, 1), base.substr(3, 1)) < 0); + CHECK(StrCompareIgnoreCase(base.substr(4, 1), base.substr(0, 1)) > 0); + + CHECK(StrCompareIgnoreCase(base.substr(0, 1), base.substr(0, 2)) < 0); // Same position, different lengths + CHECK(StrCompareIgnoreCase(base.substr(0, 2), base.substr(0, 1)) > 0); // Same position, different lengths +} + +TEST_CASE("StrEqualsIgnoreCase - std::string") +{ + /* Same string, with different cases. */ + CHECK(StrEqualsIgnoreCase(std::string{""}, std::string{""})); + CHECK(StrEqualsIgnoreCase(std::string{"a"}, std::string{"a"})); + CHECK(StrEqualsIgnoreCase(std::string{"a"}, std::string{"A"})); + CHECK(StrEqualsIgnoreCase(std::string{"A"}, std::string{"a"})); + CHECK(StrEqualsIgnoreCase(std::string{"A"}, std::string{"A"})); + + /* Not the same string. */ + CHECK(!StrEqualsIgnoreCase(std::string{""}, std::string{"b"})); + CHECK(!StrEqualsIgnoreCase(std::string{"a"}, std::string{""})); + CHECK(!StrEqualsIgnoreCase(std::string{"a"}, std::string{"b"})); + CHECK(!StrEqualsIgnoreCase(std::string{"b"}, std::string{"a"})); + CHECK(!StrEqualsIgnoreCase(std::string{"a"}, std::string{"aa"})); + CHECK(!StrEqualsIgnoreCase(std::string{"aa"}, std::string{"a"})); +} + +TEST_CASE("StrEqualsIgnoreCase - char pointer") +{ + /* Same string, with different cases. */ + CHECK(StrEqualsIgnoreCase("", "")); + CHECK(StrEqualsIgnoreCase("a", "a")); + CHECK(StrEqualsIgnoreCase("a", "A")); + CHECK(StrEqualsIgnoreCase("A", "a")); + CHECK(StrEqualsIgnoreCase("A", "A")); + + /* Not the same string. */ + CHECK(!StrEqualsIgnoreCase("", "b")); + CHECK(!StrEqualsIgnoreCase("a", "")); + CHECK(!StrEqualsIgnoreCase("a", "b")); + CHECK(!StrEqualsIgnoreCase("b", "a")); + CHECK(!StrEqualsIgnoreCase("a", "aa")); + CHECK(!StrEqualsIgnoreCase("aa", "a")); +} + +TEST_CASE("StrEqualsIgnoreCase - std::string_view") +{ + /* + * With std::string_view the only way to access the data is via .data(), + * which does not guarantee the termination that would be required by + * things such as stricmp/strcasecmp. So, just passing .data() into stricmp + * or strcasecmp would fail if it does not account for the length of the + * view. Thus, contrary to the string/char* tests, this uses the same base + * string but gets different sections to trigger these corner cases. + */ + std::string_view base{"aaAb"}; + + /* Same string, with different cases. */ + CHECK(StrEqualsIgnoreCase(base.substr(0, 0), base.substr(1, 0))); // Different positions + CHECK(StrEqualsIgnoreCase(base.substr(0, 1), base.substr(1, 1))); // Different positions + CHECK(StrEqualsIgnoreCase(base.substr(0, 1), base.substr(2, 1))); + CHECK(StrEqualsIgnoreCase(base.substr(2, 1), base.substr(1, 1))); + CHECK(StrEqualsIgnoreCase(base.substr(2, 1), base.substr(2, 1))); + + /* Not the same string. */ + CHECK(!StrEqualsIgnoreCase(base.substr(3, 0), base.substr(3, 1))); // Same position, different lengths + CHECK(!StrEqualsIgnoreCase(base.substr(0, 1), base.substr(0, 0))); + CHECK(!StrEqualsIgnoreCase(base.substr(0, 1), base.substr(3, 1))); + CHECK(!StrEqualsIgnoreCase(base.substr(3, 1), base.substr(0, 1))); + CHECK(!StrEqualsIgnoreCase(base.substr(0, 1), base.substr(0, 2))); // Same position, different lengths + CHECK(!StrEqualsIgnoreCase(base.substr(0, 2), base.substr(0, 1))); // Same position, different lengths +} From 4dd5f994be237794d4782fc790648768de256346 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 27 Apr 2023 13:21:08 +0200 Subject: [PATCH 03/31] Codechange: replace strncasecmp with case ignoring variant of StrStarts/EndsWith --- src/console_cmds.cpp | 16 +- src/fileio.cpp | 2 +- src/fios.cpp | 2 +- src/hotkeys.cpp | 3 +- src/network/network_chat_gui.cpp | 2 +- src/os/windows/font_win32.cpp | 4 +- src/stdafx.h | 17 -- src/string.cpp | 39 +++- src/string_func.h | 8 +- src/tests/string_func.cpp | 358 +++++++++++++++++++++++++++++++ 10 files changed, 410 insertions(+), 41 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 6d0ca5cdf2..4827d30cf0 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -2022,7 +2022,7 @@ DEF_CONSOLE_CMD(ConFont) byte arg_index = 2; /* We may encounter "aa" or "noaa" but it must be the last argument. */ if (StrEqualsIgnoreCase(argv[arg_index], "aa") || StrEqualsIgnoreCase(argv[arg_index], "noaa")) { - aa = strncasecmp(argv[arg_index++], "no", 2) != 0; + aa = !StrStartsWithIgnoreCase(argv[arg_index++], "no"); if (argc > arg_index) return false; } else { /* For we want a string. */ @@ -2044,7 +2044,7 @@ DEF_CONSOLE_CMD(ConFont) if (argc > arg_index) { /* Last argument must be "aa" or "noaa". */ if (!StrEqualsIgnoreCase(argv[arg_index], "aa") && !StrEqualsIgnoreCase(argv[arg_index], "noaa")) return false; - aa = strncasecmp(argv[arg_index++], "no", 2) != 0; + aa = !StrStartsWithIgnoreCase(argv[arg_index++], "no"); if (argc > arg_index) return false; } @@ -2220,7 +2220,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) const std::vector &files = GetAllGRFFiles(); /* "list" sub-command */ - if (argc == 1 || strncasecmp(argv[1], "lis", 3) == 0) { + if (argc == 1 || StrStartsWithIgnoreCase(argv[1], "lis")) { IConsolePrint(CC_INFO, "Loaded GRF files:"); int i = 1; for (GRFFile *grf : files) { @@ -2236,7 +2236,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) } /* "select" sub-command */ - if (strncasecmp(argv[1], "sel", 3) == 0 && argc >= 3) { + if (StrStartsWithIgnoreCase(argv[1], "sel") && argc >= 3) { for (size_t argnum = 2; argnum < argc; ++argnum) { int grfnum = atoi(argv[argnum]); if (grfnum < 1 || grfnum > (int)files.size()) { // safe cast, files.size() should not be larger than a few hundred in the most extreme cases @@ -2254,7 +2254,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) } /* "unselect" sub-command */ - if (strncasecmp(argv[1], "uns", 3) == 0 && argc >= 3) { + if (StrStartsWithIgnoreCase(argv[1], "uns") && argc >= 3) { for (size_t argnum = 2; argnum < argc; ++argnum) { if (StrEqualsIgnoreCase(argv[argnum], "all")) { _newgrf_profilers.clear(); @@ -2273,7 +2273,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) } /* "start" sub-command */ - if (strncasecmp(argv[1], "sta", 3) == 0) { + if (StrStartsWithIgnoreCase(argv[1], "sta")) { std::string grfids; size_t started = 0; for (NewGRFProfiler &pr : _newgrf_profilers) { @@ -2309,13 +2309,13 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) } /* "stop" sub-command */ - if (strncasecmp(argv[1], "sto", 3) == 0) { + if (StrStartsWithIgnoreCase(argv[1], "sto")) { NewGRFProfiler::FinishAll(); return true; } /* "abort" sub-command */ - if (strncasecmp(argv[1], "abo", 3) == 0) { + if (StrStartsWithIgnoreCase(argv[1], "abo")) { for (NewGRFProfiler &pr : _newgrf_profilers) { pr.Abort(); } diff --git a/src/fileio.cpp b/src/fileio.cpp index 73b13e3117..758b2cf2a5 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -769,7 +769,7 @@ static bool ChangeWorkingDirectoryToExecutable(const char *exe) bool success = false; #ifdef WITH_COCOA char *app_bundle = strchr(tmp, '.'); - while (app_bundle != nullptr && strncasecmp(app_bundle, ".app", 4) != 0) app_bundle = strchr(&app_bundle[1], '.'); + while (app_bundle != nullptr && !StrStartsWithIgnoreCase(app_bundle, ".app")) app_bundle = strchr(&app_bundle[1], '.'); if (app_bundle != nullptr) *app_bundle = '\0'; #endif /* WITH_COCOA */ diff --git a/src/fios.cpp b/src/fios.cpp index 23fa6af2f7..672b9fb5df 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -386,7 +386,7 @@ static void FiosGetFileList(SaveLoadOperation fop, fios_getlist_callback_proc *c /* found file must be directory, but not '.' or '..' */ if (FiosIsValidFile(_fios_path->c_str(), dirent, &sb) && S_ISDIR(sb.st_mode) && - (!FiosIsHiddenFile(dirent) || strncasecmp(d_name, PERSONAL_DIR, strlen(d_name)) == 0) && + (!FiosIsHiddenFile(dirent) || StrStartsWithIgnoreCase(PERSONAL_DIR, d_name)) && strcmp(d_name, ".") != 0 && strcmp(d_name, "..") != 0) { fios = &file_list.emplace_back(); fios->type = FIOS_TYPE_DIR; diff --git a/src/hotkeys.cpp b/src/hotkeys.cpp index 0a10290c18..73c7f52bd5 100644 --- a/src/hotkeys.cpp +++ b/src/hotkeys.cpp @@ -99,8 +99,9 @@ static uint16 ParseCode(const char *start, const char *end) assert(start <= end); while (start < end && *start == ' ') start++; while (end > start && *end == ' ') end--; + std::string_view str{start, (size_t)(start - end)}; for (uint i = 0; i < lengthof(_keycode_to_name); i++) { - if (strlen(_keycode_to_name[i].name) == (size_t)(end - start) && strncasecmp(start, _keycode_to_name[i].name, end - start) == 0) { + if (StrEqualsIgnoreCase(str, _keycode_to_name[i].name)) { return _keycode_to_name[i].keycode; } } diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index 6a0d2cb916..20fd7cedf9 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -421,7 +421,7 @@ struct NetworkChatWindow : public Window { } len = strlen(cur_name); - if (tb_len < len && strncasecmp(cur_name, tb_buf, tb_len) == 0) { + if (tb_len < len && StrStartsWith(cur_name, tb_buf)) { /* Save the data it was before completion */ if (!second_scan) seprintf(_chat_tab_completion_buf, lastof(_chat_tab_completion_buf), "%s", tb->buf); _chat_tab_completion_active = true; diff --git a/src/os/windows/font_win32.cpp b/src/os/windows/font_win32.cpp index 8a916db67a..7de608c97c 100644 --- a/src/os/windows/font_win32.cpp +++ b/src/os/windows/font_win32.cpp @@ -134,9 +134,9 @@ FT_Error GetFontByFaceName(const char *font_name, FT_Face *face) err = FT_New_Face(_library, font_path, index, face); if (err != FT_Err_Ok) break; - if (strncasecmp(font_name, (*face)->family_name, strlen((*face)->family_name)) == 0) break; + if (StrStartsWithIgnoreCase(font_name, (*face)->family_name)) break; /* Try english name if font name failed */ - if (strncasecmp(font_name + strlen(font_name) + 1, (*face)->family_name, strlen((*face)->family_name)) == 0) break; + if (StrStartsWithIgnoreCase(font_name + strlen(font_name) + 1, (*face)->family_name)) break; err = FT_Err_Cannot_Open_Resource; } while ((FT_Long)++index != (*face)->num_faces); diff --git a/src/stdafx.h b/src/stdafx.h index 57e8a1ae8b..cfbf724bf6 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -37,10 +37,6 @@ # define _GNU_SOURCE #endif -#if defined(__HAIKU__) || defined(__CYGWIN__) -# include /* strncasecmp */ -#endif - /* It seems that we need to include stdint.h before anything else * We need INT64_MAX, which for most systems comes from stdint.h. However, MSVC * does not have stdint.h. @@ -71,11 +67,6 @@ # include #endif -#if defined(__OS2__) -# include -# define strcasecmp stricmp -#endif - /* Stuff for GCC */ #if defined(__GNUC__) || (defined(__clang__) && !defined(_MSC_VER)) # define NORETURN __attribute__ ((noreturn)) @@ -207,9 +198,6 @@ # endif # endif -# define strcasecmp stricmp -# define strncasecmp strnicmp - /* MSVC doesn't have these :( */ # define S_ISDIR(mode) (mode & S_IFDIR) # define S_ISREG(mode) (mode & S_IFREG) @@ -411,11 +399,6 @@ void NORETURN AssertFailedError(int line, const char *file, const char *expressi # define assert(expression) if (unlikely(!(expression))) AssertFailedError(__LINE__, __FILE__, #expression); #endif -#if defined(OPENBSD) - /* OpenBSD uses strcasecmp(3) */ -# define _stricmp strcasecmp -#endif - #if defined(MAX_PATH) /* It's already defined, no need to override */ #elif defined(PATH_MAX) && PATH_MAX > 0 diff --git a/src/string.cpp b/src/string.cpp index 0f853f9112..0ff554f229 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -23,26 +23,27 @@ #include #ifdef _MSC_VER -#include // required by vsnprintf implementation for MSVC +# include // required by vsnprintf implementation for MSVC +# define strncasecmp strnicmp #endif #ifdef _WIN32 -#include "os/windows/win32.h" +# include "os/windows/win32.h" #endif #ifdef WITH_UNISCRIBE -#include "os/windows/string_uniscribe.h" +# include "os/windows/string_uniscribe.h" #endif #ifdef WITH_ICU_I18N /* Required by strnatcmp. */ -#include -#include "language.h" -#include "gfx_func.h" +# include +# include "language.h" +# include "gfx_func.h" #endif /* WITH_ICU_I18N */ #if defined(WITH_COCOA) -#include "os/macosx/string_osx.h" +# include "os/macosx/string_osx.h" #endif /* The function vsnprintf is used internally to perform the required formatting @@ -355,6 +356,18 @@ bool StrStartsWith(const std::string_view str, const std::string_view prefix) return str.compare(0, prefix_len, prefix, 0, prefix_len) == 0; } +/** + * Check whether the given string starts with the given prefix, ignoring case. + * @param str The string to look at. + * @param prefix The prefix to look for. + * @return True iff the begin of the string is the same as the prefix, ignoring case. + */ +bool StrStartsWithIgnoreCase(std::string_view str, const std::string_view prefix) +{ + if (str.size() < prefix.size()) return false; + return StrEqualsIgnoreCase(str.substr(0, prefix.size()), prefix); +} + /** * Check whether the given string ends with the given suffix. * @param str The string to look at. @@ -396,6 +409,18 @@ struct CaseInsensitiveCharTraits : public std::char_traits { /** Case insensitive string view. */ typedef std::basic_string_view CaseInsensitiveStringView; +/** + * Check whether the given string ends with the given suffix, ignoring case. + * @param str The string to look at. + * @param suffix The suffix to look for. + * @return True iff the end of the string is the same as the suffix, ignoring case. + */ +bool StrEndsWithIgnoreCase(std::string_view str, const std::string_view suffix) +{ + if (str.size() < suffix.size()) return false; + return StrEqualsIgnoreCase(str.substr(str.size() - suffix.size()), suffix); +} + /** * Compares two string( view)s, while ignoring the case of the characters. * @param str1 The first string. diff --git a/src/string_func.h b/src/string_func.h index 5293691807..9ec5507faa 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -48,11 +48,13 @@ void str_strip_colours(char *str); bool strtolower(char *str); bool strtolower(std::string &str, std::string::size_type offs = 0); -bool StrValid(const char *str, const char *last) NOACCESS(2); +[[nodiscard]] bool StrValid(const char *str, const char *last) NOACCESS(2); void StrTrimInPlace(std::string &str); -bool StrStartsWith(const std::string_view str, const std::string_view prefix); -bool StrEndsWith(const std::string_view str, const std::string_view suffix); +[[nodiscard]] bool StrStartsWith(const std::string_view str, const std::string_view prefix); +[[nodiscard]] bool StrStartsWithIgnoreCase(std::string_view str, const std::string_view prefix); +[[nodiscard]] bool StrEndsWith(const std::string_view str, const std::string_view suffix); +[[nodiscard]] bool StrEndsWithIgnoreCase(std::string_view str, const std::string_view suffix); [[nodiscard]] int StrCompareIgnoreCase(const std::string_view str1, const std::string_view str2); [[nodiscard]] bool StrEqualsIgnoreCase(const std::string_view str1, const std::string_view str2); diff --git a/src/tests/string_func.cpp b/src/tests/string_func.cpp index 3797f894e7..d56d829fff 100644 --- a/src/tests/string_func.cpp +++ b/src/tests/string_func.cpp @@ -13,6 +13,8 @@ #include "../string_func.h" +/**** String compare/equals *****/ + TEST_CASE("StrCompareIgnoreCase - std::string") { /* Same string, with different cases. */ @@ -158,3 +160,359 @@ TEST_CASE("StrEqualsIgnoreCase - std::string_view") CHECK(!StrEqualsIgnoreCase(base.substr(0, 1), base.substr(0, 2))); // Same position, different lengths CHECK(!StrEqualsIgnoreCase(base.substr(0, 2), base.substr(0, 1))); // Same position, different lengths } + +/**** String starts with *****/ + +TEST_CASE("StrStartsWith - std::string") +{ + /* Everything starts with an empty prefix. */ + CHECK(StrStartsWith(std::string{""}, std::string{""})); + CHECK(StrStartsWith(std::string{"a"}, std::string{""})); + + /* Equal strings. */ + CHECK(StrStartsWith(std::string{"a"}, std::string{"a"})); + CHECK(StrStartsWith(std::string{"A"}, std::string{"A"})); + + /* Starts with same. */ + CHECK(StrStartsWith(std::string{"ab"}, std::string{"a"})); + CHECK(StrStartsWith(std::string{"Ab"}, std::string{"A"})); + + /* Different cases. */ + CHECK(!StrStartsWith(std::string{"a"}, std::string{"A"})); + CHECK(!StrStartsWith(std::string{"A"}, std::string{"a"})); + CHECK(!StrStartsWith(std::string{"ab"}, std::string{"A"})); + CHECK(!StrStartsWith(std::string{"Ab"}, std::string{"a"})); + + /* Does not start the same. */ + CHECK(!StrStartsWith(std::string{""}, std::string{"b"})); + CHECK(!StrStartsWith(std::string{"a"}, std::string{"b"})); + CHECK(!StrStartsWith(std::string{"b"}, std::string{"a"})); + CHECK(!StrStartsWith(std::string{"a"}, std::string{"aa"})); +} + +TEST_CASE("StrStartsWith - char pointer") +{ + CHECK(StrStartsWith("", "")); + CHECK(StrStartsWith("a", "")); + + /* Equal strings. */ + CHECK(StrStartsWith("a", "a")); + CHECK(StrStartsWith("A", "A")); + + /* Starts with same. */ + CHECK(StrStartsWith("ab", "a")); + CHECK(StrStartsWith("Ab", "A")); + + /* Different cases. */ + CHECK(!StrStartsWith("a", "A")); + CHECK(!StrStartsWith("A", "a")); + CHECK(!StrStartsWith("ab", "A")); + CHECK(!StrStartsWith("Ab", "a")); + + /* Does not start the same. */ + CHECK(!StrStartsWith("", "b")); + CHECK(!StrStartsWith("a", "b")); + CHECK(!StrStartsWith("b", "a")); + CHECK(!StrStartsWith("a", "aa")); +} + +TEST_CASE("StrStartsWith - std::string_view") +{ + /* + * With std::string_view the only way to access the data is via .data(), + * which does not guarantee the termination that would be required by + * things such as stricmp/strcasecmp. So, just passing .data() into stricmp + * or strcasecmp would fail if it does not account for the length of the + * view. Thus, contrary to the string/char* tests, this uses the same base + * string but gets different sections to trigger these corner cases. + */ + std::string_view base{"aabAb"}; + + /* Everything starts with an empty prefix. */ + CHECK(StrStartsWith(base.substr(0, 0), base.substr(1, 0))); // Different positions + CHECK(StrStartsWith(base.substr(0, 1), base.substr(0, 0))); + + /* Equals string. */ + CHECK(StrStartsWith(base.substr(0, 1), base.substr(1, 1))); // Different positions + CHECK(StrStartsWith(base.substr(3, 1), base.substr(3, 1))); + + /* Starts with same. */ + CHECK(StrStartsWith(base.substr(1, 2), base.substr(0, 1))); + CHECK(StrStartsWith(base.substr(3, 2), base.substr(3, 1))); + + /* Different cases. */ + CHECK(!StrStartsWith(base.substr(0, 1), base.substr(3, 1))); + CHECK(!StrStartsWith(base.substr(3, 1), base.substr(0, 1))); + CHECK(!StrStartsWith(base.substr(1, 2), base.substr(3, 1))); + CHECK(!StrStartsWith(base.substr(3, 2), base.substr(0, 1))); + + /* Does not start the same. */ + CHECK(!StrStartsWith(base.substr(2, 0), base.substr(2, 1))); + CHECK(!StrStartsWith(base.substr(0, 1), base.substr(2, 1))); + CHECK(!StrStartsWith(base.substr(2, 1), base.substr(0, 1))); + CHECK(!StrStartsWith(base.substr(0, 1), base.substr(0, 2))); +} + + +TEST_CASE("StrStartsWithIgnoreCase - std::string") +{ + /* Everything starts with an empty prefix. */ + CHECK(StrStartsWithIgnoreCase(std::string{""}, std::string{""})); + CHECK(StrStartsWithIgnoreCase(std::string{"a"}, std::string{""})); + + /* Equals string, ignoring case. */ + CHECK(StrStartsWithIgnoreCase(std::string{"a"}, std::string{"a"})); + CHECK(StrStartsWithIgnoreCase(std::string{"a"}, std::string{"A"})); + CHECK(StrStartsWithIgnoreCase(std::string{"A"}, std::string{"a"})); + CHECK(StrStartsWithIgnoreCase(std::string{"A"}, std::string{"A"})); + + /* Starts with same, ignoring case. */ + CHECK(StrStartsWithIgnoreCase(std::string{"ab"}, std::string{"a"})); + CHECK(StrStartsWithIgnoreCase(std::string{"ab"}, std::string{"A"})); + CHECK(StrStartsWithIgnoreCase(std::string{"Ab"}, std::string{"a"})); + CHECK(StrStartsWithIgnoreCase(std::string{"Ab"}, std::string{"A"})); + + /* Does not start the same. */ + CHECK(!StrStartsWithIgnoreCase(std::string{""}, std::string{"b"})); + CHECK(!StrStartsWithIgnoreCase(std::string{"a"}, std::string{"b"})); + CHECK(!StrStartsWithIgnoreCase(std::string{"b"}, std::string{"a"})); + CHECK(!StrStartsWithIgnoreCase(std::string{"a"}, std::string{"aa"})); +} + +TEST_CASE("StrStartsWithIgnoreCase - char pointer") +{ + /* Everything starts with an empty prefix. */ + CHECK(StrStartsWithIgnoreCase("", "")); + CHECK(StrStartsWithIgnoreCase("a", "")); + + /* Equals string, ignoring case. */ + CHECK(StrStartsWithIgnoreCase("a", "a")); + CHECK(StrStartsWithIgnoreCase("a", "A")); + CHECK(StrStartsWithIgnoreCase("A", "a")); + CHECK(StrStartsWithIgnoreCase("A", "A")); + + /* Starts with same, ignoring case. */ + CHECK(StrStartsWithIgnoreCase("ab", "a")); + CHECK(StrStartsWithIgnoreCase("ab", "A")); + CHECK(StrStartsWithIgnoreCase("Ab", "a")); + CHECK(StrStartsWithIgnoreCase("Ab", "A")); + + /* Does not start the same. */ + CHECK(!StrStartsWithIgnoreCase("", "b")); + CHECK(!StrStartsWithIgnoreCase("a", "b")); + CHECK(!StrStartsWithIgnoreCase("b", "a")); + CHECK(!StrStartsWithIgnoreCase("a", "aa")); +} + +TEST_CASE("StrStartsWithIgnoreCase - std::string_view") +{ + /* + * With std::string_view the only way to access the data is via .data(), + * which does not guarantee the termination that would be required by + * things such as stricmp/strcasecmp. So, just passing .data() into stricmp + * or strcasecmp would fail if it does not account for the length of the + * view. Thus, contrary to the string/char* tests, this uses the same base + * string but gets different sections to trigger these corner cases. + */ + std::string_view base{"aabAb"}; + + /* Everything starts with an empty prefix. */ + CHECK(StrStartsWithIgnoreCase(base.substr(0, 0), base.substr(1, 0))); // Different positions + CHECK(StrStartsWithIgnoreCase(base.substr(0, 1), base.substr(0, 0))); + + /* Equals string, ignoring case. */ + CHECK(StrStartsWithIgnoreCase(base.substr(0, 1), base.substr(1, 1))); // Different positions + CHECK(StrStartsWithIgnoreCase(base.substr(0, 1), base.substr(3, 1))); + CHECK(StrStartsWithIgnoreCase(base.substr(3, 1), base.substr(0, 1))); + CHECK(StrStartsWithIgnoreCase(base.substr(3, 1), base.substr(3, 1))); + + /* Starts with same, ignoring case. */ + CHECK(StrStartsWithIgnoreCase(base.substr(1, 2), base.substr(0, 1))); + CHECK(StrStartsWithIgnoreCase(base.substr(1, 2), base.substr(3, 1))); + CHECK(StrStartsWithIgnoreCase(base.substr(3, 2), base.substr(0, 1))); + CHECK(StrStartsWithIgnoreCase(base.substr(3, 2), base.substr(3, 1))); + + /* Does not start the same. */ + CHECK(!StrStartsWithIgnoreCase(base.substr(2, 0), base.substr(2, 1))); + CHECK(!StrStartsWithIgnoreCase(base.substr(0, 1), base.substr(2, 1))); + CHECK(!StrStartsWithIgnoreCase(base.substr(2, 1), base.substr(0, 1))); + CHECK(!StrStartsWithIgnoreCase(base.substr(0, 1), base.substr(0, 2))); +} + +/**** String ends with *****/ + +TEST_CASE("StrEndsWith - std::string") +{ + /* Everything ends with an empty prefix. */ + CHECK(StrEndsWith(std::string{""}, std::string{""})); + CHECK(StrEndsWith(std::string{"a"}, std::string{""})); + + /* Equal strings. */ + CHECK(StrEndsWith(std::string{"a"}, std::string{"a"})); + CHECK(StrEndsWith(std::string{"A"}, std::string{"A"})); + + /* Ends with same. */ + CHECK(StrEndsWith(std::string{"ba"}, std::string{"a"})); + CHECK(StrEndsWith(std::string{"bA"}, std::string{"A"})); + + /* Different cases. */ + CHECK(!StrEndsWith(std::string{"a"}, std::string{"A"})); + CHECK(!StrEndsWith(std::string{"A"}, std::string{"a"})); + CHECK(!StrEndsWith(std::string{"ba"}, std::string{"A"})); + CHECK(!StrEndsWith(std::string{"bA"}, std::string{"a"})); + + /* Does not end the same. */ + CHECK(!StrEndsWith(std::string{""}, std::string{"b"})); + CHECK(!StrEndsWith(std::string{"a"}, std::string{"b"})); + CHECK(!StrEndsWith(std::string{"b"}, std::string{"a"})); + CHECK(!StrEndsWith(std::string{"a"}, std::string{"aa"})); +} + +TEST_CASE("StrEndsWith - char pointer") +{ + CHECK(StrEndsWith("", "")); + CHECK(StrEndsWith("a", "")); + + /* Equal strings. */ + CHECK(StrEndsWith("a", "a")); + CHECK(StrEndsWith("A", "A")); + + /* Ends with same. */ + CHECK(StrEndsWith("ba", "a")); + CHECK(StrEndsWith("bA", "A")); + + /* Different cases. */ + CHECK(!StrEndsWith("a", "A")); + CHECK(!StrEndsWith("A", "a")); + CHECK(!StrEndsWith("ba", "A")); + CHECK(!StrEndsWith("bA", "a")); + + /* Does not end the same. */ + CHECK(!StrEndsWith("", "b")); + CHECK(!StrEndsWith("a", "b")); + CHECK(!StrEndsWith("b", "a")); + CHECK(!StrEndsWith("a", "aa")); +} + +TEST_CASE("StrEndsWith - std::string_view") +{ + /* + * With std::string_view the only way to access the data is via .data(), + * which does not guarantee the termination that would be required by + * things such as stricmp/strcasecmp. So, just passing .data() into stricmp + * or strcasecmp would fail if it does not account for the length of the + * view. Thus, contrary to the string/char* tests, this uses the same base + * string but gets different sections to trigger these corner cases. + */ + std::string_view base{"aabAba"}; + + /* Everything ends with an empty prefix. */ + CHECK(StrEndsWith(base.substr(0, 0), base.substr(1, 0))); // Different positions + CHECK(StrEndsWith(base.substr(0, 1), base.substr(0, 0))); + + /* Equals string. */ + CHECK(StrEndsWith(base.substr(0, 1), base.substr(1, 1))); // Different positions + CHECK(StrEndsWith(base.substr(3, 1), base.substr(3, 1))); + + /* Ends with same. */ + CHECK(StrEndsWith(base.substr(4, 2), base.substr(0, 1))); + CHECK(StrEndsWith(base.substr(2, 2), base.substr(3, 1))); + + /* Different cases. */ + CHECK(!StrEndsWith(base.substr(0, 1), base.substr(3, 1))); + CHECK(!StrEndsWith(base.substr(3, 1), base.substr(0, 1))); + CHECK(!StrEndsWith(base.substr(4, 2), base.substr(3, 1))); + CHECK(!StrEndsWith(base.substr(2, 2), base.substr(0, 1))); + + /* Does not end the same. */ + CHECK(!StrEndsWith(base.substr(2, 0), base.substr(2, 1))); + CHECK(!StrEndsWith(base.substr(0, 1), base.substr(2, 1))); + CHECK(!StrEndsWith(base.substr(2, 1), base.substr(0, 1))); + CHECK(!StrEndsWith(base.substr(0, 1), base.substr(0, 2))); +} + + +TEST_CASE("StrEndsWithIgnoreCase - std::string") +{ + /* Everything ends with an empty prefix. */ + CHECK(StrEndsWithIgnoreCase(std::string{""}, std::string{""})); + CHECK(StrEndsWithIgnoreCase(std::string{"a"}, std::string{""})); + + /* Equals string, ignoring case. */ + CHECK(StrEndsWithIgnoreCase(std::string{"a"}, std::string{"a"})); + CHECK(StrEndsWithIgnoreCase(std::string{"a"}, std::string{"A"})); + CHECK(StrEndsWithIgnoreCase(std::string{"A"}, std::string{"a"})); + CHECK(StrEndsWithIgnoreCase(std::string{"A"}, std::string{"A"})); + + /* Ends with same, ignoring case. */ + CHECK(StrEndsWithIgnoreCase(std::string{"ba"}, std::string{"a"})); + CHECK(StrEndsWithIgnoreCase(std::string{"ba"}, std::string{"A"})); + CHECK(StrEndsWithIgnoreCase(std::string{"bA"}, std::string{"a"})); + CHECK(StrEndsWithIgnoreCase(std::string{"bA"}, std::string{"A"})); + + /* Does not end the same. */ + CHECK(!StrEndsWithIgnoreCase(std::string{""}, std::string{"b"})); + CHECK(!StrEndsWithIgnoreCase(std::string{"a"}, std::string{"b"})); + CHECK(!StrEndsWithIgnoreCase(std::string{"b"}, std::string{"a"})); + CHECK(!StrEndsWithIgnoreCase(std::string{"a"}, std::string{"aa"})); +} + +TEST_CASE("StrEndsWithIgnoreCase - char pointer") +{ + /* Everything ends with an empty prefix. */ + CHECK(StrEndsWithIgnoreCase("", "")); + CHECK(StrEndsWithIgnoreCase("a", "")); + + /* Equals string, ignoring case. */ + CHECK(StrEndsWithIgnoreCase("a", "a")); + CHECK(StrEndsWithIgnoreCase("a", "A")); + CHECK(StrEndsWithIgnoreCase("A", "a")); + CHECK(StrEndsWithIgnoreCase("A", "A")); + + /* Ends with same, ignoring case. */ + CHECK(StrEndsWithIgnoreCase("ba", "a")); + CHECK(StrEndsWithIgnoreCase("ba", "A")); + CHECK(StrEndsWithIgnoreCase("bA", "a")); + CHECK(StrEndsWithIgnoreCase("bA", "A")); + + /* Does not end the same. */ + CHECK(!StrEndsWithIgnoreCase("", "b")); + CHECK(!StrEndsWithIgnoreCase("a", "b")); + CHECK(!StrEndsWithIgnoreCase("b", "a")); + CHECK(!StrEndsWithIgnoreCase("a", "aa")); +} + +TEST_CASE("StrEndsWithIgnoreCase - std::string_view") +{ + /* + * With std::string_view the only way to access the data is via .data(), + * which does not guarantee the termination that would be required by + * things such as stricmp/strcasecmp. So, just passing .data() into stricmp + * or strcasecmp would fail if it does not account for the length of the + * view. Thus, contrary to the string/char* tests, this uses the same base + * string but gets different sections to trigger these corner cases. + */ + std::string_view base{"aabAba"}; + + /* Everything ends with an empty prefix. */ + CHECK(StrEndsWithIgnoreCase(base.substr(0, 0), base.substr(1, 0))); // Different positions + CHECK(StrEndsWithIgnoreCase(base.substr(0, 1), base.substr(0, 0))); + + /* Equals string, ignoring case. */ + CHECK(StrEndsWithIgnoreCase(base.substr(0, 1), base.substr(1, 1))); // Different positions + CHECK(StrEndsWithIgnoreCase(base.substr(0, 1), base.substr(3, 1))); + CHECK(StrEndsWithIgnoreCase(base.substr(3, 1), base.substr(0, 1))); + CHECK(StrEndsWithIgnoreCase(base.substr(3, 1), base.substr(3, 1))); + + /* Ends with same, ignoring case. */ + CHECK(StrEndsWithIgnoreCase(base.substr(2, 2), base.substr(0, 1))); + CHECK(StrEndsWithIgnoreCase(base.substr(2, 2), base.substr(3, 1))); + CHECK(StrEndsWithIgnoreCase(base.substr(4, 2), base.substr(0, 1))); + CHECK(StrEndsWithIgnoreCase(base.substr(4, 2), base.substr(3, 1))); + + /* Does not end the same. */ + CHECK(!StrEndsWithIgnoreCase(base.substr(2, 0), base.substr(2, 1))); + CHECK(!StrEndsWithIgnoreCase(base.substr(0, 1), base.substr(2, 1))); + CHECK(!StrEndsWithIgnoreCase(base.substr(2, 1), base.substr(0, 1))); + CHECK(!StrEndsWithIgnoreCase(base.substr(0, 1), base.substr(0, 2))); +} From 3991e76c96446bb22dcb78d534bef83f70b2ca33 Mon Sep 17 00:00:00 2001 From: Kuhnovic <68320206+Kuhnovic@users.noreply.github.com> Date: Sat, 29 Apr 2023 10:33:01 +0200 Subject: [PATCH 04/31] Fix #8177: Ships with max speed overflow to near-zero speed (#10695) --- src/ship_cmd.cpp | 337 ++++++++++++++++++++++++----------------------- 1 file changed, 174 insertions(+), 163 deletions(-) diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 6b9b955a86..a7cad340c4 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -400,29 +400,30 @@ static bool CheckShipLeaveDepot(Ship *v) return false; } -static bool ShipAccelerate(Vehicle *v) +/** + * Accelerates the ship towards its target speed. + * @param v Ship to accelerate. + * @return Number of steps to move the ship. + */ +static uint ShipAccelerate(Vehicle *v) { - uint spd; - byte t; + uint speed; - spd = std::min(v->cur_speed + 1, v->vcache.cached_max_speed); - spd = std::min(spd, v->current_order.GetMaxSpeed() * 2); + speed = std::min(v->cur_speed + 1, v->vcache.cached_max_speed); + speed = std::min(speed, v->current_order.GetMaxSpeed() * 2); /* updates statusbar only if speed have changed to save CPU time */ - if (spd != v->cur_speed) { - v->cur_speed = spd; + if (speed != v->cur_speed) { + v->cur_speed = speed; SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP); } - /* Convert direction-independent speed into direction-dependent speed. (old movement method) */ - spd = v->GetOldAdvanceSpeed(spd); - - if (spd == 0) return false; - if ((byte)++spd == 0) return true; - - v->progress = (t = v->progress) - (byte)spd; - - return (t < v->progress); + const uint advance_speed = v->GetAdvanceSpeed(speed); + const uint number_of_steps = (advance_speed + v->progress) / v->GetAdvanceDistance(); + const uint remainder = (advance_speed + v->progress) % v->GetAdvanceDistance(); + assert(remainder <= std::numeric_limits::max()); + v->progress = static_cast(remainder); + return number_of_steps; } /** @@ -633,13 +634,43 @@ bool IsShipDestinationTile(TileIndex tile, StationID station) return false; } +static void ReverseShipIntoTrackdir(Ship *v, Trackdir trackdir) +{ + static constexpr Direction _trackdir_to_direction[] = { + DIR_NE, DIR_SE, DIR_E, DIR_E, DIR_S, DIR_S, INVALID_DIR, INVALID_DIR, + DIR_SW, DIR_NW, DIR_W, DIR_W, DIR_N, DIR_N, INVALID_DIR, INVALID_DIR, + }; + + v->direction = _trackdir_to_direction[trackdir]; + assert(v->direction != INVALID_DIR); + v->state = TrackdirBitsToTrackBits(TrackdirToTrackdirBits(trackdir)); + + /* Remember our current location to avoid movement glitch */ + v->rotation_x_pos = v->x_pos; + v->rotation_y_pos = v->y_pos; + v->cur_speed = 0; + v->path.clear(); + + v->UpdatePosition(); + v->UpdateViewport(true, true); +} + +static void ReverseShip(Ship *v) +{ + v->direction = ReverseDir(v->direction); + + /* Remember our current location to avoid movement glitch */ + v->rotation_x_pos = v->x_pos; + v->rotation_y_pos = v->y_pos; + v->cur_speed = 0; + v->path.clear(); + + v->UpdatePosition(); + v->UpdateViewport(true, true); +} + static void ShipController(Ship *v) { - uint32 r; - Track track; - TrackBits tracks; - GetNewVehiclePosResult gp; - v->tick_counter++; v->current_order_time++; @@ -647,7 +678,7 @@ static void ShipController(Ship *v) if (v->vehstatus & VS_STOPPED) return; - if (ProcessOrders(v) && CheckReverseShip(v)) goto reverse_direction; + if (ProcessOrders(v) && CheckReverseShip(v)) return ReverseShip(v); v->HandleLoading(); @@ -671,159 +702,139 @@ static void ShipController(Ship *v) if (ShipMoveUpDownOnLock(v)) return; - if (!ShipAccelerate(v)) return; + const uint number_of_steps = ShipAccelerate(v); + for (uint i = 0; i < number_of_steps; ++i) { + GetNewVehiclePosResult gp = GetNewVehiclePos(v); + if (v->state != TRACK_BIT_WORMHOLE) { + /* Not on a bridge */ + if (gp.old_tile == gp.new_tile) { + /* Staying in tile */ + if (v->IsInDepot()) { + gp.x = v->x_pos; + gp.y = v->y_pos; + } else { + /* Not inside depot */ + const VehicleEnterTileStatus r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y); + if (HasBit(r, VETS_CANNOT_ENTER)) return ReverseShip(v); - gp = GetNewVehiclePos(v); - if (v->state != TRACK_BIT_WORMHOLE) { - /* Not on a bridge */ - if (gp.old_tile == gp.new_tile) { - /* Staying in tile */ - if (v->IsInDepot()) { - gp.x = v->x_pos; - gp.y = v->y_pos; - } else { - /* Not inside depot */ - r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y); - if (HasBit(r, VETS_CANNOT_ENTER)) goto reverse_direction; - - /* A leave station order only needs one tick to get processed, so we can - * always skip ahead. */ - if (v->current_order.IsType(OT_LEAVESTATION)) { - v->current_order.Free(); - SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP); - /* Test if continuing forward would lead to a dead-end, moving into the dock. */ - DiagDirection exitdir = VehicleExitDir(v->direction, v->state); - TileIndex tile = TileAddByDiagDir(v->tile, exitdir); - if (TrackStatusToTrackBits(GetTileTrackStatus(tile, TRANSPORT_WATER, 0, exitdir)) == TRACK_BIT_NONE) goto reverse_direction; - } else if (v->dest_tile != 0) { - /* We have a target, let's see if we reached it... */ - if (v->current_order.IsType(OT_GOTO_WAYPOINT) && - DistanceManhattan(v->dest_tile, gp.new_tile) <= 3) { - /* We got within 3 tiles of our target buoy, so let's skip to our - * next order */ - UpdateVehicleTimetable(v, true); - v->IncrementRealOrderIndex(); - v->current_order.MakeDummy(); - } else if (v->current_order.IsType(OT_GOTO_DEPOT) && - v->dest_tile == gp.new_tile) { - /* Depot orders really need to reach the tile */ - if ((gp.x & 0xF) == 8 && (gp.y & 0xF) == 8) { - VehicleEnterDepot(v); - return; - } - } else if (v->current_order.IsType(OT_GOTO_STATION) && IsDockingTile(gp.new_tile)) { - /* Process station in the orderlist. */ - Station *st = Station::Get(v->current_order.GetDestination()); - if (st->docking_station.Contains(gp.new_tile) && IsShipDestinationTile(gp.new_tile, st->index)) { - v->last_station_visited = st->index; - if (st->facilities & FACIL_DOCK) { // ugly, ugly workaround for problem with ships able to drop off cargo at wrong stations - ShipArrivesAt(v, st); - v->BeginLoading(); - } else { // leave stations without docks right away - v->current_order.MakeLeaveStation(); - v->IncrementRealOrderIndex(); + /* A leave station order only needs one tick to get processed, so we can + * always skip ahead. */ + if (v->current_order.IsType(OT_LEAVESTATION)) { + v->current_order.Free(); + SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP); + /* Test if continuing forward would lead to a dead-end, moving into the dock. */ + const DiagDirection exitdir = VehicleExitDir(v->direction, v->state); + const TileIndex tile = TileAddByDiagDir(v->tile, exitdir); + if (TrackStatusToTrackBits(GetTileTrackStatus(tile, TRANSPORT_WATER, 0, exitdir)) == TRACK_BIT_NONE) return ReverseShip(v); + } else if (v->dest_tile != 0) { + /* We have a target, let's see if we reached it... */ + if (v->current_order.IsType(OT_GOTO_WAYPOINT) && + DistanceManhattan(v->dest_tile, gp.new_tile) <= 3) { + /* We got within 3 tiles of our target buoy, so let's skip to our + * next order */ + UpdateVehicleTimetable(v, true); + v->IncrementRealOrderIndex(); + v->current_order.MakeDummy(); + } else if (v->current_order.IsType(OT_GOTO_DEPOT) && + v->dest_tile == gp.new_tile) { + /* Depot orders really need to reach the tile */ + if ((gp.x & 0xF) == 8 && (gp.y & 0xF) == 8) { + VehicleEnterDepot(v); + return; + } + } else if (v->current_order.IsType(OT_GOTO_STATION) && IsDockingTile(gp.new_tile)) { + /* Process station in the orderlist. */ + Station *st = Station::Get(v->current_order.GetDestination()); + if (st->docking_station.Contains(gp.new_tile) && IsShipDestinationTile(gp.new_tile, st->index)) { + v->last_station_visited = st->index; + if (st->facilities & FACIL_DOCK) { // ugly, ugly workaround for problem with ships able to drop off cargo at wrong stations + ShipArrivesAt(v, st); + v->BeginLoading(); + } else { // leave stations without docks right away + v->current_order.MakeLeaveStation(); + v->IncrementRealOrderIndex(); + } } } } } + } else { + /* New tile */ + if (!IsValidTile(gp.new_tile)) return ReverseShip(v); + + const DiagDirection diagdir = DiagdirBetweenTiles(gp.old_tile, gp.new_tile); + assert(diagdir != INVALID_DIAGDIR); + const TrackBits tracks = GetAvailShipTracks(gp.new_tile, diagdir); + if (tracks == TRACK_BIT_NONE) { + Trackdir trackdir = INVALID_TRACKDIR; + CheckReverseShip(v, &trackdir); + if (trackdir == INVALID_TRACKDIR) return ReverseShip(v); + return ReverseShipIntoTrackdir(v, trackdir); + } + + /* Choose a direction, and continue if we find one */ + const Track track = ChooseShipTrack(v, gp.new_tile, diagdir, tracks); + if (track == INVALID_TRACK) return ReverseShip(v); + + const ShipSubcoordData &b = _ship_subcoord[diagdir][track]; + + gp.x = (gp.x & ~0xF) | b.x_subcoord; + gp.y = (gp.y & ~0xF) | b.y_subcoord; + + /* Call the landscape function and tell it that the vehicle entered the tile */ + const VehicleEnterTileStatus r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y); + if (HasBit(r, VETS_CANNOT_ENTER)) return ReverseShip(v); + + if (!HasBit(r, VETS_ENTERED_WORMHOLE)) { + v->tile = gp.new_tile; + v->state = TrackToTrackBits(track); + + /* Update ship cache when the water class changes. Aqueducts are always canals. */ + if (GetEffectiveWaterClass(gp.old_tile) != GetEffectiveWaterClass(gp.new_tile)) v->UpdateCache(); + } + + const Direction new_direction = b.dir; + const DirDiff diff = DirDifference(new_direction, v->direction); + switch (diff) { + case DIRDIFF_SAME: + case DIRDIFF_45RIGHT: + case DIRDIFF_45LEFT: + /* Continue at speed */ + v->rotation = v->direction = new_direction; + break; + + default: + /* Stop for rotation */ + v->cur_speed = 0; + v->direction = new_direction; + /* Remember our current location to avoid movement glitch */ + v->rotation_x_pos = v->x_pos; + v->rotation_y_pos = v->y_pos; + break; + } } } else { - /* New tile */ - if (!IsValidTile(gp.new_tile)) goto reverse_direction; - - DiagDirection diagdir = DiagdirBetweenTiles(gp.old_tile, gp.new_tile); - assert(diagdir != INVALID_DIAGDIR); - tracks = GetAvailShipTracks(gp.new_tile, diagdir); - if (tracks == TRACK_BIT_NONE) { - Trackdir trackdir = INVALID_TRACKDIR; - CheckReverseShip(v, &trackdir); - if (trackdir == INVALID_TRACKDIR) goto reverse_direction; - static const Direction _trackdir_to_direction[] = { - DIR_NE, DIR_SE, DIR_E, DIR_E, DIR_S, DIR_S, INVALID_DIR, INVALID_DIR, - DIR_SW, DIR_NW, DIR_W, DIR_W, DIR_N, DIR_N, INVALID_DIR, INVALID_DIR, - }; - v->direction = _trackdir_to_direction[trackdir]; - assert(v->direction != INVALID_DIR); - v->state = TrackdirBitsToTrackBits(TrackdirToTrackdirBits(trackdir)); - goto direction_changed; + /* On a bridge */ + if (!IsTileType(gp.new_tile, MP_TUNNELBRIDGE) || !HasBit(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) { + v->x_pos = gp.x; + v->y_pos = gp.y; + v->UpdatePosition(); + if ((v->vehstatus & VS_HIDDEN) == 0) v->Vehicle::UpdateViewport(true); + return; } - /* Choose a direction, and continue if we find one */ - track = ChooseShipTrack(v, gp.new_tile, diagdir, tracks); - if (track == INVALID_TRACK) goto reverse_direction; - - const ShipSubcoordData &b = _ship_subcoord[diagdir][track]; - - gp.x = (gp.x & ~0xF) | b.x_subcoord; - gp.y = (gp.y & ~0xF) | b.y_subcoord; - - /* Call the landscape function and tell it that the vehicle entered the tile */ - r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y); - if (HasBit(r, VETS_CANNOT_ENTER)) goto reverse_direction; - - if (!HasBit(r, VETS_ENTERED_WORMHOLE)) { - v->tile = gp.new_tile; - v->state = TrackToTrackBits(track); - - /* Update ship cache when the water class changes. Aqueducts are always canals. */ - WaterClass old_wc = GetEffectiveWaterClass(gp.old_tile); - WaterClass new_wc = GetEffectiveWaterClass(gp.new_tile); - if (old_wc != new_wc) v->UpdateCache(); - } - - Direction new_direction = b.dir; - DirDiff diff = DirDifference(new_direction, v->direction); - switch (diff) { - case DIRDIFF_SAME: - case DIRDIFF_45RIGHT: - case DIRDIFF_45LEFT: - /* Continue at speed */ - v->rotation = v->direction = new_direction; - break; - - default: - /* Stop for rotation */ - v->cur_speed = 0; - v->direction = new_direction; - /* Remember our current location to avoid movement glitch */ - v->rotation_x_pos = v->x_pos; - v->rotation_y_pos = v->y_pos; - break; - } - } - } else { - /* On a bridge */ - if (!IsTileType(gp.new_tile, MP_TUNNELBRIDGE) || !HasBit(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) { - v->x_pos = gp.x; - v->y_pos = gp.y; - v->UpdatePosition(); - if ((v->vehstatus & VS_HIDDEN) == 0) v->Vehicle::UpdateViewport(true); - return; + /* Ship is back on the bridge head, we need to consume its path + * cache entry here as we didn't have to choose a ship track. */ + if (!v->path.empty()) v->path.pop_front(); } - /* Ship is back on the bridge head, we need to consume its path - * cache entry here as we didn't have to choose a ship track. */ - if (!v->path.empty()) v->path.pop_front(); + /* update image of ship, as well as delta XY */ + v->x_pos = gp.x; + v->y_pos = gp.y; + + v->UpdatePosition(); + v->UpdateViewport(true, true); } - - /* update image of ship, as well as delta XY */ - v->x_pos = gp.x; - v->y_pos = gp.y; - -getout: - v->UpdatePosition(); - v->UpdateViewport(true, true); - return; - -reverse_direction: - v->direction = ReverseDir(v->direction); -direction_changed: - /* Remember our current location to avoid movement glitch */ - v->rotation_x_pos = v->x_pos; - v->rotation_y_pos = v->y_pos; - v->cur_speed = 0; - v->path.clear(); - goto getout; } bool Ship::Tick() From b5f96808a1f5a3728e6f6f46764fc1b9ae9ffaf6 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 27 Apr 2023 23:14:01 +0200 Subject: [PATCH 05/31] Fix: FormatArrayAsHex returns gibberish instead of a hex array --- src/string.cpp | 8 ++++---- src/tests/string_func.cpp | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/string.cpp b/src/string.cpp index 0ff554f229..eef3ec6943 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -135,14 +135,14 @@ char *stredup(const char *s, const char *last) */ std::string FormatArrayAsHex(span data) { - std::ostringstream ss; - ss << std::uppercase << std::setfill('0') << std::setw(2) << std::hex; + std::string str; + str.reserve(data.size() * 2 + 1); for (auto b : data) { - ss << b; + fmt::format_to(std::back_inserter(str), "{:02X}", b); } - return ss.str(); + return str; } /** diff --git a/src/tests/string_func.cpp b/src/tests/string_func.cpp index d56d829fff..a8ddd56711 100644 --- a/src/tests/string_func.cpp +++ b/src/tests/string_func.cpp @@ -12,6 +12,7 @@ #include "../3rdparty/catch2/catch.hpp" #include "../string_func.h" +#include /**** String compare/equals *****/ @@ -516,3 +517,11 @@ TEST_CASE("StrEndsWithIgnoreCase - std::string_view") CHECK(!StrEndsWithIgnoreCase(base.substr(2, 1), base.substr(0, 1))); CHECK(!StrEndsWithIgnoreCase(base.substr(0, 1), base.substr(0, 2))); } + + +TEST_CASE("FormatArrayAsHex") +{ + CHECK(FormatArrayAsHex(std::array{}) == ""); + CHECK(FormatArrayAsHex(std::array{0x12}) == "12"); + CHECK(FormatArrayAsHex(std::array{0x13, 0x38, 0x42, 0xAF}) == "133842AF"); +} From df19673fbdc92082e323e31e806351c36088916a Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 27 Apr 2023 16:19:03 +0200 Subject: [PATCH 06/31] Codechange: let convert_to_fs accept std::string --- src/os/windows/win32.cpp | 10 +++++----- src/os/windows/win32.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp index 24d37ae4b1..822ede3d59 100644 --- a/src/os/windows/win32.cpp +++ b/src/os/windows/win32.cpp @@ -338,7 +338,7 @@ void ShowInfoI(const std::string &str) /* We need to put the text in a separate buffer because the default * buffer in OTTD2FS might not be large enough (512 chars). */ wchar_t help_msg_buf[8192]; - MessageBox(GetActiveWindow(), convert_to_fs(str.c_str(), help_msg_buf, lengthof(help_msg_buf)), L"OpenTTD", MB_ICONINFORMATION | MB_OK); + MessageBox(GetActiveWindow(), convert_to_fs(str, help_msg_buf, lengthof(help_msg_buf)), L"OpenTTD", MB_ICONINFORMATION | MB_OK); } MyShowCursor(old); } @@ -397,7 +397,7 @@ void DetermineBasePaths(const char *exe) } else { /* Use the folder of the config file as working directory. */ wchar_t config_dir[MAX_PATH]; - wcsncpy(path, convert_to_fs(_config_file.c_str(), path, lengthof(path)), lengthof(path)); + wcsncpy(path, convert_to_fs(_config_file, path, lengthof(path)), lengthof(path)); if (!GetFullPathName(path, lengthof(config_dir), config_dir, nullptr)) { Debug(misc, 0, "GetFullPathName failed ({})", GetLastError()); _searchpaths[SP_WORKING_DIR].clear(); @@ -520,10 +520,10 @@ char *convert_from_fs(const wchar_t *name, char *utf8_buf, size_t buflen) * @param console_cp convert to the console encoding instead of the normal system encoding. * @return pointer to system_buf. If conversion fails the string is of zero-length */ -wchar_t *convert_to_fs(const char *name, wchar_t *system_buf, size_t buflen) +wchar_t *convert_to_fs(const std::string_view name, wchar_t *system_buf, size_t buflen) { - int len = MultiByteToWideChar(CP_UTF8, 0, name, -1, system_buf, (int)buflen); - if (len == 0) system_buf[0] = '\0'; + int len = MultiByteToWideChar(CP_UTF8, 0, name.data(), (int)name.size(), system_buf, (int)buflen); + system_buf[len] = '\0'; return system_buf; } diff --git a/src/os/windows/win32.h b/src/os/windows/win32.h index 1d31273308..dc5bb73ee6 100644 --- a/src/os/windows/win32.h +++ b/src/os/windows/win32.h @@ -56,7 +56,7 @@ private: }; char *convert_from_fs(const wchar_t *name, char *utf8_buf, size_t buflen); -wchar_t *convert_to_fs(const char *name, wchar_t *utf16_buf, size_t buflen); +wchar_t *convert_to_fs(const std::string_view name, wchar_t *utf16_buf, size_t buflen); void Win32SetCurrentLocaleName(const char *iso_code); int OTTDStringCompare(const char *s1, const char *s2); From c8299304407affc9d6ef3fbc2e4e733d661506ca Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 27 Apr 2023 15:39:10 +0200 Subject: [PATCH 07/31] Codechange: replace strnatcmp with C++ string capable version --- src/build_vehicle_gui.cpp | 2 +- src/cargotype.cpp | 9 +++------ src/company_gui.cpp | 2 +- src/fios.cpp | 2 +- src/group_gui.cpp | 2 +- src/industry_gui.cpp | 4 ++-- src/network/network_content_gui.cpp | 4 ++-- src/network/network_gui.cpp | 2 +- src/newgrf_config.cpp | 2 +- src/newgrf_gui.cpp | 2 +- src/os/macosx/string_osx.cpp | 6 +++--- src/os/macosx/string_osx.h | 2 +- src/os/windows/win32.cpp | 10 +++++----- src/os/windows/win32.h | 2 +- src/signs_gui.cpp | 16 ++++++++-------- src/station_gui.cpp | 4 ++-- src/string.cpp | 8 ++++---- src/string_func.h | 3 +-- src/strings.cpp | 8 +++----- src/town_gui.cpp | 2 +- src/vehicle_gui.cpp | 2 +- src/widgets/dropdown.cpp | 7 +++---- 22 files changed, 47 insertions(+), 54 deletions(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 51cc8f9270..6886b95bb8 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -156,7 +156,7 @@ static bool EngineNameSorter(const GUIEngineListItem &a, const GUIEngineListItem GetString(last_name[1], STR_ENGINE_NAME, lastof(last_name[1])); } - int r = strnatcmp(last_name[0], last_name[1]); // Sort by name (natural sorting). + int r = StrNaturalCompare(last_name[0], last_name[1]); // Sort by name (natural sorting). /* Use EngineID to sort instead since we want consistent sorting */ if (r == 0) return EngineNumberSorter(a, b); diff --git a/src/cargotype.cpp b/src/cargotype.cpp index 1bb490a2cf..e646490ddc 100644 --- a/src/cargotype.cpp +++ b/src/cargotype.cpp @@ -156,13 +156,10 @@ span _sorted_standard_cargo_specs; ///< Standard cargo specif /** Sort cargo specifications by their name. */ static bool CargoSpecNameSorter(const CargoSpec * const &a, const CargoSpec * const &b) { - static char a_name[64]; - static char b_name[64]; + std::string a_name = GetString(a->name); + std::string b_name = GetString(b->name); - GetString(a_name, a->name, lastof(a_name)); - GetString(b_name, b->name, lastof(b_name)); - - int res = strnatcmp(a_name, b_name); // Sort by name (natural sorting). + int res = StrNaturalCompare(a_name, b_name); // Sort by name (natural sorting). /* If the names are equal, sort by cargo bitnum. */ return (res != 0) ? res < 0 : (a->bitnum < b->bitnum); diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 54162fc0ae..f30d3701df 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -735,7 +735,7 @@ private: GetString(last_name[1], STR_GROUP_NAME, lastof(last_name[1])); } - int r = strnatcmp(last_name[0], last_name[1]); // Sort by name (natural sorting). + int r = StrNaturalCompare(last_name[0], last_name[1]); // Sort by name (natural sorting). if (r == 0) return a->index < b->index; return r < 0; }); diff --git a/src/fios.cpp b/src/fios.cpp index 672b9fb5df..8563272a33 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -58,7 +58,7 @@ bool FiosItem::operator< (const FiosItem &other) const if ((_savegame_sort_order & SORT_BY_NAME) == 0 && (*this).mtime != other.mtime) { r = (*this).mtime - other.mtime; } else { - r = strnatcmp((*this).title, other.title); + r = StrNaturalCompare((*this).title, other.title); } if (r == 0) return false; return (_savegame_sort_order & SORT_DESCENDING) ? r > 0 : r < 0; diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 5766ce0380..a671406ed6 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -191,7 +191,7 @@ private: GetString(last_name[1], STR_GROUP_NAME, lastof(last_name[1])); } - int r = strnatcmp(last_name[0], last_name[1]); // Sort by name (natural sorting). + int r = StrNaturalCompare(last_name[0], last_name[1]); // Sort by name (natural sorting). if (r == 0) return a->index < b->index; return r < 0; }); diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 1773012568..959bcd84da 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -202,7 +202,7 @@ static bool IndustryTypeNameSorter(const IndustryType &a, const IndustryType &b) const IndustrySpec *indsp2 = GetIndustrySpec(b); GetString(industry_name[1], indsp2->name, lastof(industry_name[1])); - int r = strnatcmp(industry_name[0], industry_name[1]); // Sort by name (natural sorting). + int r = StrNaturalCompare(industry_name[0], industry_name[1]); // Sort by name (natural sorting). /* If the names are equal, sort by industry type. */ return (r != 0) ? r < 0 : (a < b); @@ -1498,7 +1498,7 @@ protected: /** Sort industries by name */ static bool IndustryNameSorter(const Industry * const &a, const Industry * const &b) { - int r = strnatcmp(a->GetCachedName(), b->GetCachedName()); // Sort by name (natural sorting). + int r = StrNaturalCompare(a->GetCachedName(), b->GetCachedName()); // Sort by name (natural sorting). if (r == 0) return a->index < b->index; return r < 0; } diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index fc3ef55ccb..c19d5e4501 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -432,7 +432,7 @@ class NetworkContentListWindow : public Window, ContentCallback { /** Sort content by name. */ static bool NameSorter(const ContentInfo * const &a, const ContentInfo * const &b) { - return strnatcmp(a->name.c_str(), b->name.c_str(), true) < 0; // Sort by name (natural sorting). + return StrNaturalCompare(a->name, b->name, true) < 0; // Sort by name (natural sorting). } /** Sort content by type. */ @@ -440,7 +440,7 @@ class NetworkContentListWindow : public Window, ContentCallback { { int r = 0; if (a->type != b->type) { - r = strnatcmp(content_type_strs[a->type], content_type_strs[b->type]); + r = StrNaturalCompare(content_type_strs[a->type], content_type_strs[b->type]); } if (r == 0) return NameSorter(a, b); return r < 0; diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index c2a0b8027f..209c41f144 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -289,7 +289,7 @@ protected: /** Sort servers by name. */ static bool NGameNameSorter(NetworkGameList * const &a, NetworkGameList * const &b) { - int r = strnatcmp(a->info.server_name.c_str(), b->info.server_name.c_str(), true); // Sort by name (natural sorting). + int r = StrNaturalCompare(a->info.server_name, b->info.server_name, true); // Sort by name (natural sorting). if (r == 0) r = a->connection_string.compare(b->connection_string); return r < 0; diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 0a4860c667..0391e2c000 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -670,7 +670,7 @@ bool GRFFileScanner::AddFile(const std::string &filename, size_t basepath_length */ static bool GRFSorter(GRFConfig * const &c1, GRFConfig * const &c2) { - return strnatcmp(c1->GetName(), c2->GetName()) < 0; + return StrNaturalCompare(c1->GetName(), c2->GetName()) < 0; } /** diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 991c9f3e23..e0430f4d28 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -1428,7 +1428,7 @@ private: /** Sort grfs by name. */ static bool NameSorter(const GRFConfig * const &a, const GRFConfig * const &b) { - int i = strnatcmp(a->GetName(), b->GetName(), true); // Sort by name (natural sorting). + int i = StrNaturalCompare(a->GetName(), b->GetName(), true); // Sort by name (natural sorting). if (i != 0) return i < 0; i = a->version - b->version; diff --git a/src/os/macosx/string_osx.cpp b/src/os/macosx/string_osx.cpp index 89ff8c6bb3..206baf7580 100644 --- a/src/os/macosx/string_osx.cpp +++ b/src/os/macosx/string_osx.cpp @@ -322,15 +322,15 @@ void MacOSSetCurrentLocaleName(const char *iso_code) * @param s2 Second string to compare. * @return 1 if s1 < s2, 2 if s1 == s2, 3 if s1 > s2, or 0 if not supported by the OS. */ -int MacOSStringCompare(const char *s1, const char *s2) +int MacOSStringCompare(std::string_view s1, std::string_view s2) { static bool supported = MacOSVersionIsAtLeast(10, 5, 0); if (!supported) return 0; CFStringCompareFlags flags = kCFCompareCaseInsensitive | kCFCompareNumerically | kCFCompareLocalized | kCFCompareWidthInsensitive | kCFCompareForcedOrdering; - CFAutoRelease cf1(CFStringCreateWithCString(kCFAllocatorDefault, s1, kCFStringEncodingUTF8)); - CFAutoRelease cf2(CFStringCreateWithCString(kCFAllocatorDefault, s2, kCFStringEncodingUTF8)); + CFAutoRelease cf1(CFStringCreateWithBytes(kCFAllocatorDefault, (const UInt8 *)s1.data(), s1.size(), kCFStringEncodingUTF8, false)); + CFAutoRelease cf2(CFStringCreateWithBytes(kCFAllocatorDefault, (const UInt8 *)s2.data(), s2.size(), kCFStringEncodingUTF8, false)); /* If any CFString could not be created (e.g., due to UTF8 invalid chars), return OS unsupported functionality */ if (cf1 == nullptr || cf2 == nullptr) return 0; diff --git a/src/os/macosx/string_osx.h b/src/os/macosx/string_osx.h index fc737b1639..3e29b16f5c 100644 --- a/src/os/macosx/string_osx.h +++ b/src/os/macosx/string_osx.h @@ -83,7 +83,7 @@ public: void MacOSResetScriptCache(FontSize size); void MacOSSetCurrentLocaleName(const char *iso_code); -int MacOSStringCompare(const char *s1, const char *s2); +int MacOSStringCompare(std::string_view s1, std::string_view s2); void MacOSRegisterExternalFont(const char *file_path); diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp index 822ede3d59..1a482daea5 100644 --- a/src/os/windows/win32.cpp +++ b/src/os/windows/win32.cpp @@ -567,7 +567,7 @@ void Win32SetCurrentLocaleName(const char *iso_code) MultiByteToWideChar(CP_UTF8, 0, iso, -1, _cur_iso_locale, lengthof(_cur_iso_locale)); } -int OTTDStringCompare(const char *s1, const char *s2) +int OTTDStringCompare(std::string_view s1, std::string_view s2) { typedef int (WINAPI *PFNCOMPARESTRINGEX)(LPCWSTR, DWORD, LPCWCH, int, LPCWCH, int, LPVOID, LPVOID, LPARAM); static PFNCOMPARESTRINGEX _CompareStringEx = nullptr; @@ -588,15 +588,15 @@ int OTTDStringCompare(const char *s1, const char *s2) if (_CompareStringEx != nullptr) { /* CompareStringEx takes UTF-16 strings, even in ANSI-builds. */ - int len_s1 = MultiByteToWideChar(CP_UTF8, 0, s1, -1, nullptr, 0); - int len_s2 = MultiByteToWideChar(CP_UTF8, 0, s2, -1, nullptr, 0); + int len_s1 = MultiByteToWideChar(CP_UTF8, 0, s1.data(), (int)s1.size(), nullptr, 0); + int len_s2 = MultiByteToWideChar(CP_UTF8, 0, s2.data(), (int)s2.size(), nullptr, 0); if (len_s1 != 0 && len_s2 != 0) { std::wstring str_s1(len_s1, L'\0'); // len includes terminating null std::wstring str_s2(len_s2, L'\0'); - MultiByteToWideChar(CP_UTF8, 0, s1, -1, str_s1.data(), len_s1); - MultiByteToWideChar(CP_UTF8, 0, s2, -1, str_s2.data(), len_s2); + MultiByteToWideChar(CP_UTF8, 0, s1.data(), (int)s1.size(), str_s1.data(), len_s1); + MultiByteToWideChar(CP_UTF8, 0, s2.data(), (int)s2.size(), str_s2.data(), len_s2); int result = _CompareStringEx(_cur_iso_locale, LINGUISTIC_IGNORECASE | SORT_DIGITSASNUMBERS, str_s1.c_str(), -1, str_s2.c_str(), -1, nullptr, nullptr, 0); if (result != 0) return result; diff --git a/src/os/windows/win32.h b/src/os/windows/win32.h index dc5bb73ee6..ab19a7d1ae 100644 --- a/src/os/windows/win32.h +++ b/src/os/windows/win32.h @@ -59,6 +59,6 @@ char *convert_from_fs(const wchar_t *name, char *utf8_buf, size_t buflen); wchar_t *convert_to_fs(const std::string_view name, wchar_t *utf16_buf, size_t buflen); void Win32SetCurrentLocaleName(const char *iso_code); -int OTTDStringCompare(const char *s1, const char *s2); +int OTTDStringCompare(std::string_view s1, std::string_view s2); #endif /* WIN32_H */ diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index a5c78a6645..6ee257b996 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -47,7 +47,7 @@ struct SignList { StringFilter string_filter; ///< The match string to be used when the GUIList is (re)-sorted. static bool match_case; ///< Should case sensitive matching be used? - static char default_name[64]; ///< Default sign name, used if Sign::name is nullptr. + static std::string default_name; ///< Default sign name, used if Sign::name is nullptr. /** * Creates a SignList with filtering disabled by default. @@ -79,10 +79,10 @@ struct SignList { * a lot of them. Therefore a worthwhile performance gain can be made by * directly comparing Sign::name instead of going through the string * system for each comparison. */ - const char *a_name = a->name.empty() ? SignList::default_name : a->name.c_str(); - const char *b_name = b->name.empty() ? SignList::default_name : b->name.c_str(); + const std::string &a_name = a->name.empty() ? SignList::default_name : a->name; + const std::string &b_name = b->name.empty() ? SignList::default_name : b->name; - int r = strnatcmp(a_name, b_name); // Sort by name (natural sorting). + int r = StrNaturalCompare(a_name, b_name); // Sort by name (natural sorting). return r != 0 ? r < 0 : (a->index < b->index); } @@ -96,10 +96,10 @@ struct SignList { static bool CDECL SignNameFilter(const Sign * const *a, StringFilter &filter) { /* Same performance benefit as above for sorting. */ - const char *a_name = (*a)->name.empty() ? SignList::default_name : (*a)->name.c_str(); + const std::string &a_name = (*a)->name.empty() ? SignList::default_name : (*a)->name; filter.ResetState(); - filter.AddLine(a_name); + filter.AddLine(a_name.c_str()); return filter.GetState(); } @@ -130,7 +130,7 @@ struct SignList { }; bool SignList::match_case = false; -char SignList::default_name[64]; +std::string SignList::default_name; /** Enum referring to the Hotkeys in the sign list window */ enum SignListHotkeys { @@ -165,7 +165,7 @@ struct SignListWindow : Window, SignList { void OnInit() override { /* Default sign name, used if Sign::name is nullptr. */ - GetString(SignList::default_name, STR_DEFAULT_SIGN_NAME, lastof(SignList::default_name)); + SignList::default_name = GetString(STR_DEFAULT_SIGN_NAME); this->signs.ForceResort(); this->SortSignsList(); this->SetDirty(); diff --git a/src/station_gui.cpp b/src/station_gui.cpp index cdf508dd95..4bf3b81b80 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -258,7 +258,7 @@ protected: /** Sort stations by their name */ static bool StationNameSorter(const Station * const &a, const Station * const &b) { - int r = strnatcmp(a->GetCachedName(), b->GetCachedName()); // Sort by name (natural sorting). + int r = StrNaturalCompare(a->GetCachedName(), b->GetCachedName()); // Sort by name (natural sorting). if (r == 0) return a->index < b->index; return r < 0; } @@ -1186,7 +1186,7 @@ bool CargoSorter::SortStation(StationID st1, StationID st2) const return order == SO_DESCENDING; } - int res = strnatcmp(Station::Get(st1)->GetCachedName(), Station::Get(st2)->GetCachedName()); // Sort by name (natural sorting). + int res = StrNaturalCompare(Station::Get(st1)->GetCachedName(), Station::Get(st2)->GetCachedName()); // Sort by name (natural sorting). if (res == 0) { return this->SortId(st1, st2); } else { diff --git a/src/string.cpp b/src/string.cpp index eef3ec6943..42a51ec88a 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -36,7 +36,7 @@ #endif #ifdef WITH_ICU_I18N -/* Required by strnatcmp. */ +/* Required by StrNaturalCompare. */ # include # include "language.h" # include "gfx_func.h" @@ -766,9 +766,9 @@ char *strcasestr(const char *haystack, const char *needle) * @param str The string to skip the initial garbage of. * @return The string with the garbage skipped. */ -static const char *SkipGarbage(const char *str) +static std::string_view SkipGarbage(std::string_view str) { - while (*str != '\0' && (*str < '0' || IsInsideMM(*str, ';', '@' + 1) || IsInsideMM(*str, '[', '`' + 1) || IsInsideMM(*str, '{', '~' + 1))) str++; + while (str.size() != 0 && (str[0] < '0' || IsInsideMM(str[0], ';', '@' + 1) || IsInsideMM(str[0], '[', '`' + 1) || IsInsideMM(str[0], '{', '~' + 1))) str.remove_prefix(1); return str; } @@ -780,7 +780,7 @@ static const char *SkipGarbage(const char *str) * @param ignore_garbage_at_front Skip punctuation characters in the front * @return Less than zero if s1 < s2, zero if s1 == s2, greater than zero if s1 > s2. */ -int strnatcmp(const char *s1, const char *s2, bool ignore_garbage_at_front) +int StrNaturalCompare(std::string_view s1, std::string_view s2, bool ignore_garbage_at_front) { if (ignore_garbage_at_front) { s1 = SkipGarbage(s1); diff --git a/src/string_func.h b/src/string_func.h index 9ec5507faa..1abbd470f1 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -58,6 +58,7 @@ void StrTrimInPlace(std::string &str); [[nodiscard]] int StrCompareIgnoreCase(const std::string_view str1, const std::string_view str2); [[nodiscard]] bool StrEqualsIgnoreCase(const std::string_view str1, const std::string_view str2); +[[nodiscard]] int StrNaturalCompare(std::string_view s1, std::string_view s2, bool ignore_garbage_at_front = false); /** * Check if a string buffer is empty. @@ -277,6 +278,4 @@ static inline bool IsWhitespace(WChar c) char *strcasestr(const char *haystack, const char *needle); #endif /* strcasestr is available */ -int strnatcmp(const char *s1, const char *s2, bool ignore_garbage_at_front = false); - #endif /* STRING_FUNC_H */ diff --git a/src/strings.cpp b/src/strings.cpp index 7a604f635e..33dea74511 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -1956,12 +1956,10 @@ const char *GetCurrentLocale(const char *param); bool StringIDSorter(const StringID &a, const StringID &b) { - char stra[512]; - char strb[512]; - GetString(stra, a, lastof(stra)); - GetString(strb, b, lastof(strb)); + std::string stra = GetString(a); + std::string strb = GetString(b); - return strnatcmp(stra, strb) < 0; + return StrNaturalCompare(stra, strb) < 0; } /** diff --git a/src/town_gui.cpp b/src/town_gui.cpp index 3b7875b582..54142d1207 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -746,7 +746,7 @@ private: /** Sort by town name */ static bool TownNameSorter(const Town * const &a, const Town * const &b) { - return strnatcmp(a->GetCachedName(), b->GetCachedName()) < 0; // Sort by name (natural sorting). + return StrNaturalCompare(a->GetCachedName(), b->GetCachedName()) < 0; // Sort by name (natural sorting). } /** Sort by population (default descending, as big towns are of the most interest). */ diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 34a5df6e6b..ec66954299 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1345,7 +1345,7 @@ static bool VehicleNameSorter(const Vehicle * const &a, const Vehicle * const &b GetString(last_name[1], STR_VEHICLE_NAME, lastof(last_name[1])); } - int r = strnatcmp(last_name[0], last_name[1]); // Sort by name (natural sorting). + int r = StrNaturalCompare(last_name[0], last_name[1]); // Sort by name (natural sorting). return (r != 0) ? r < 0: VehicleNumberSorter(a, b); } diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index a217e8a850..73bc203c83 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -52,10 +52,9 @@ void DropDownListStringItem::Draw(const Rect &r, bool sel, Colours bg_colour) co */ /* static */ bool DropDownListStringItem::NatSortFunc(std::unique_ptr const &first, std::unique_ptr const &second) { - char buffer1[512], buffer2[512]; - GetString(buffer1, static_cast(first.get())->String(), lastof(buffer1)); - GetString(buffer2, static_cast(second.get())->String(), lastof(buffer2)); - return strnatcmp(buffer1, buffer2) < 0; + std::string str1 = GetString(static_cast(first.get())->String()); + std::string str2 = GetString(static_cast(second.get())->String()); + return StrNaturalCompare(str1, str2) < 0; } StringID DropDownListParamStringItem::String() const From f0a1ddd81cac159ffe49271e50081692a5026544 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 16 Apr 2023 21:27:01 +0200 Subject: [PATCH 08/31] Codechange: let FiosBrowseTo return a bool --- src/console_cmds.cpp | 2 +- src/fios.cpp | 8 ++++---- src/fios.h | 2 +- src/fios_gui.cpp | 8 +++----- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 4827d30cf0..c71834ef60 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -433,7 +433,7 @@ DEF_CONSOLE_CMD(ConLoad) if (GetAbstractFileType(item->type) == FT_SAVEGAME) { _switch_mode = SM_LOAD_GAME; _file_to_saveload.SetMode(item->type); - _file_to_saveload.SetName(FiosBrowseTo(item)); + _file_to_saveload.SetName(item->name); _file_to_saveload.SetTitle(item->title); } else { IConsolePrint(CC_ERROR, "'{}' is not a savegame.", file); diff --git a/src/fios.cpp b/src/fios.cpp index 8563272a33..314a582927 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -145,9 +145,9 @@ StringID FiosGetDescText(const char **path, uint64 *total_free) /** * Browse to a new path based on the passed \a item, starting at #_fios_path. * @param *item Item telling us what to do. - * @return A filename w/path if we reached a file, otherwise \c nullptr. + * @return \c true when the path got changed. */ -const char *FiosBrowseTo(const FiosItem *item) +bool FiosBrowseTo(const FiosItem *item) { switch (item->type) { case FIOS_TYPE_DRIVE: @@ -191,10 +191,10 @@ const char *FiosBrowseTo(const FiosItem *item) case FIOS_TYPE_OLD_SCENARIO: case FIOS_TYPE_PNG: case FIOS_TYPE_BMP: - return item->name; + return false; } - return nullptr; + return true; } /** diff --git a/src/fios.h b/src/fios.h index 0a3bae254f..9cc48ac927 100644 --- a/src/fios.h +++ b/src/fios.h @@ -117,7 +117,7 @@ void FiosGetSavegameList(SaveLoadOperation fop, FileList &file_list); void FiosGetScenarioList(SaveLoadOperation fop, FileList &file_list); void FiosGetHeightmapList(SaveLoadOperation fop, FileList &file_list); -const char *FiosBrowseTo(const FiosItem *item); +bool FiosBrowseTo(const FiosItem *item); StringID FiosGetDescText(const char **path, uint64 *total_free); bool FiosDelete(const char *name); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 4d963e5ff3..1ad14397f5 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -634,9 +634,8 @@ public: case WID_SL_LOAD_BUTTON: { if (this->selected == nullptr || _load_check_data.HasErrors()) break; - const char *name = FiosBrowseTo(this->selected); _file_to_saveload.SetMode(this->selected->type); - _file_to_saveload.SetName(name); + _file_to_saveload.SetName(this->selected->name); _file_to_saveload.SetTitle(this->selected->title); if (this->abstract_filetype == FT_HEIGHTMAP) { @@ -676,8 +675,7 @@ public: } const FiosItem *file = &this->fios_items[y]; - const char *name = FiosBrowseTo(file); - if (name == nullptr) { + if (FiosBrowseTo(file)) { /* Changed directory, need refresh. */ this->InvalidateData(SLIWD_RESCAN_FILES); break; @@ -708,7 +706,7 @@ public: } else { assert(this->abstract_filetype == FT_HEIGHTMAP); _file_to_saveload.SetMode(file->type); - _file_to_saveload.SetName(name); + _file_to_saveload.SetName(file->name); _file_to_saveload.SetTitle(file->title); this->Close(); From ee723f26baacb2bb5de68bf612caf303600389c4 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 16 Apr 2023 21:44:53 +0200 Subject: [PATCH 09/31] Codechange: Make FileToSaveLoad's title std::string and simplify assignments --- src/console_cmds.cpp | 4 +--- src/fios_gui.cpp | 10 +++------- src/genworld_gui.cpp | 4 ++-- src/openttd.cpp | 2 +- src/saveload/saveload.cpp | 15 ++++----------- src/saveload/saveload.h | 7 +++---- 6 files changed, 14 insertions(+), 28 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index c71834ef60..90dd2544ca 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -432,9 +432,7 @@ DEF_CONSOLE_CMD(ConLoad) if (item != nullptr) { if (GetAbstractFileType(item->type) == FT_SAVEGAME) { _switch_mode = SM_LOAD_GAME; - _file_to_saveload.SetMode(item->type); - _file_to_saveload.SetName(item->name); - _file_to_saveload.SetTitle(item->title); + _file_to_saveload.Set(*item); } else { IConsolePrint(CC_ERROR, "'{}' is not a savegame.", file); } diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 1ad14397f5..7a1cf0a06c 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -634,9 +634,7 @@ public: case WID_SL_LOAD_BUTTON: { if (this->selected == nullptr || _load_check_data.HasErrors()) break; - _file_to_saveload.SetMode(this->selected->type); - _file_to_saveload.SetName(this->selected->name); - _file_to_saveload.SetTitle(this->selected->title); + _file_to_saveload.Set(*this->selected); if (this->abstract_filetype == FT_HEIGHTMAP) { this->Close(); @@ -688,7 +686,7 @@ public: if (GetDetailedFileType(file->type) == DFT_GAME_FILE) { /* Other detailed file types cannot be checked before. */ - SaveOrLoad(name, SLO_CHECK, DFT_GAME_FILE, NO_DIRECTORY, false); + SaveOrLoad(file->name, SLO_CHECK, DFT_GAME_FILE, NO_DIRECTORY, false); } this->InvalidateData(SLIWD_SELECTION_CHANGES); @@ -705,9 +703,7 @@ public: this->OnClick(pt, WID_SL_LOAD_BUTTON, 1); } else { assert(this->abstract_filetype == FT_HEIGHTMAP); - _file_to_saveload.SetMode(file->type); - _file_to_saveload.SetName(file->name); - _file_to_saveload.SetTitle(file->title); + _file_to_saveload.Set(*file); this->Close(); ShowHeightmapLoad(); diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index a9dbb63b4c..2374ef635b 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -406,7 +406,7 @@ struct GenerateLandscapeWindow : public Window { uint widget_id; uint x; uint y; - char name[64]; + std::string name; GenerateLandscapeWindowMode mode; GenerateLandscapeWindow(WindowDesc *desc, WindowNumber number = 0) : Window(desc) @@ -1057,7 +1057,7 @@ static void _ShowGenerateLandscape(GenerateLandscapeWindowMode mode) if (mode == GLWM_HEIGHTMAP) { w->x = x; w->y = y; - strecpy(w->name, _file_to_saveload.title, lastof(w->name)); + w->name = _file_to_saveload.title; } SetWindowDirty(WC_GENERATE_LANDSCAPE, mode); diff --git a/src/openttd.cpp b/src/openttd.cpp index bcb6855702..e919e80b66 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -584,7 +584,7 @@ int openttd_main(int argc, char *argv[]) case 'e': _switch_mode = (_switch_mode == SM_LOAD_GAME || _switch_mode == SM_LOAD_SCENARIO ? SM_LOAD_SCENARIO : SM_EDITOR); break; case 'g': if (mgo.opt != nullptr) { - _file_to_saveload.SetName(mgo.opt); + _file_to_saveload.name = mgo.opt; bool is_scenario = _switch_mode == SM_EDITOR || _switch_mode == SM_LOAD_SCENARIO; _switch_mode = is_scenario ? SM_LOAD_SCENARIO : SM_LOAD_GAME; _file_to_saveload.SetMode(SLO_LOAD, is_scenario ? FT_SCENARIO : FT_SAVEGAME, DFT_GAME_FILE); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index b9945597c6..0632451a71 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -3395,22 +3395,15 @@ void FileToSaveLoad::SetMode(SaveLoadOperation fop, AbstractFileType aft, Detail this->abstract_ftype = aft; } -/** - * Set the name of the file. - * @param name Name of the file. - */ -void FileToSaveLoad::SetName(const char *name) -{ - this->name = name; -} - /** * Set the title of the file. * @param title Title of the file. */ -void FileToSaveLoad::SetTitle(const char *title) +void FileToSaveLoad::Set(const FiosItem &item) { - strecpy(this->title, title, lastof(this->title)); + this->SetMode(item.type); + this->name = item.name; + this->title = item.title; } SaveLoadTable SaveLoadHandler::GetLoadDescription() const diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 3c406c767b..ba5d5480fe 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -365,16 +365,15 @@ enum SaveOrLoadResult { /** Deals with the type of the savegame, independent of extension */ struct FileToSaveLoad { - SaveLoadOperation file_op; ///< File operation to perform. + SaveLoadOperation file_op; ///< File operation to perform. DetailedFileType detail_ftype; ///< Concrete file type (PNG, BMP, old save, etc). AbstractFileType abstract_ftype; ///< Abstract type of file (scenario, heightmap, etc). std::string name; ///< Name of the file. - char title[255]; ///< Internal name of the game. + std::string title; ///< Internal name of the game. void SetMode(FiosType ft); void SetMode(SaveLoadOperation fop, AbstractFileType aft, DetailedFileType dft); - void SetName(const char *name); - void SetTitle(const char *title); + void Set(const FiosItem &item); }; /** Types of save games. */ From 3a822fcd012301e5754501e313e0f09abad0e78a Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 16 Apr 2023 21:56:10 +0200 Subject: [PATCH 10/31] Codechange: Make FiosItem's name and title std::string --- src/console_cmds.cpp | 2 +- src/fios.cpp | 43 +++++++++++++++++++--------------------- src/fios.h | 6 +++--- src/fios_gui.cpp | 14 ++++++------- src/os/os2/os2.cpp | 7 ++++--- src/os/windows/win32.cpp | 5 +++-- 6 files changed, 37 insertions(+), 40 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 90dd2544ca..5a3345d512 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -457,7 +457,7 @@ DEF_CONSOLE_CMD(ConRemove) _console_file_list.ValidateFileList(); const FiosItem *item = _console_file_list.FindItem(file); if (item != nullptr) { - if (unlink(item->name) != 0) { + if (unlink(item->name.c_str()) != 0) { IConsolePrint(CC_ERROR, "Failed to delete '{}'.", item->name); } } else { diff --git a/src/fios.cpp b/src/fios.cpp index 314a582927..4ac6a6798f 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -56,7 +56,7 @@ bool FiosItem::operator< (const FiosItem &other) const int r = false; if ((_savegame_sort_order & SORT_BY_NAME) == 0 && (*this).mtime != other.mtime) { - r = (*this).mtime - other.mtime; + r = this->mtime - other.mtime; } else { r = StrNaturalCompare((*this).title, other.title); } @@ -101,29 +101,29 @@ void FileList::BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperati * or a numbered entry into the filename list. * @return The information on the file, or \c nullptr if the file is not available. */ -const FiosItem *FileList::FindItem(const char *file) +const FiosItem *FileList::FindItem(const std::string_view file) { for (const auto &it : *this) { const FiosItem *item = ⁢ - if (strcmp(file, item->name) == 0) return item; - if (strcmp(file, item->title) == 0) return item; + if (file == item->name) return item; + if (file == item->title) return item; } /* If no name matches, try to parse it as number */ char *endptr; - int i = std::strtol(file, &endptr, 10); - if (file == endptr || *endptr != '\0') i = -1; + int i = std::strtol(file.data(), &endptr, 10); + if (file.data() == endptr || *endptr != '\0') i = -1; if (IsInsideMM(i, 0, this->size())) return &this->at(i); /* As a last effort assume it is an OpenTTD savegame and * that the ".sav" part was not given. */ - char long_file[MAX_PATH]; - seprintf(long_file, lastof(long_file), "%s.sav", file); + std::string long_file(file); + long_file += ".sav"; for (const auto &it : *this) { const FiosItem *item = ⁢ - if (strcmp(long_file, item->name) == 0) return item; - if (strcmp(long_file, item->title) == 0) return item; + if (long_file == item->name) return item; + if (long_file == item->title) return item; } return nullptr; @@ -153,7 +153,7 @@ bool FiosBrowseTo(const FiosItem *item) case FIOS_TYPE_DRIVE: #if defined(_WIN32) || defined(__OS2__) assert(_fios_path != nullptr); - *_fios_path = std::string{ item->title[0] } + ":" PATHSEP; + *_fios_path = std::string{ item->title, 0, 1 } + ":" PATHSEP; #endif break; @@ -334,7 +334,7 @@ bool FiosFileScanner::AddFile(const std::string &filename, size_t basepath_lengt } fios->type = type; - strecpy(fios->name, filename.c_str(), lastof(fios->name)); + fios->name = filename; /* If the file doesn't have a title, use its filename */ const char *t = fios_title; @@ -342,8 +342,7 @@ bool FiosFileScanner::AddFile(const std::string &filename, size_t basepath_lengt auto ps = filename.rfind(PATHSEPCHAR); t = filename.c_str() + (ps == std::string::npos ? 0 : ps + 1); } - strecpy(fios->title, t, lastof(fios->title)); - StrMakeValidInPlace(fios->title, lastof(fios->title)); + fios->title = StrMakeValid(t); return true; } @@ -363,7 +362,6 @@ static void FiosGetFileList(SaveLoadOperation fop, fios_getlist_callback_proc *c DIR *dir; FiosItem *fios; size_t sort_start; - char d_name[sizeof(fios->name)]; file_list.clear(); @@ -374,28 +372,27 @@ static void FiosGetFileList(SaveLoadOperation fop, fios_getlist_callback_proc *c fios = &file_list.emplace_back(); fios->type = FIOS_TYPE_PARENT; fios->mtime = 0; - strecpy(fios->name, "..", lastof(fios->name)); + fios->name = ".."; SetDParamStr(0, ".."); - GetString(fios->title, STR_SAVELOAD_PARENT_DIRECTORY, lastof(fios->title)); + fios->title = GetString(STR_SAVELOAD_PARENT_DIRECTORY); } /* Show subdirectories */ if ((dir = ttd_opendir(_fios_path->c_str())) != nullptr) { while ((dirent = readdir(dir)) != nullptr) { - strecpy(d_name, FS2OTTD(dirent->d_name).c_str(), lastof(d_name)); + std::string d_name = FS2OTTD(dirent->d_name); /* found file must be directory, but not '.' or '..' */ if (FiosIsValidFile(_fios_path->c_str(), dirent, &sb) && S_ISDIR(sb.st_mode) && (!FiosIsHiddenFile(dirent) || StrStartsWithIgnoreCase(PERSONAL_DIR, d_name)) && - strcmp(d_name, ".") != 0 && strcmp(d_name, "..") != 0) { + d_name != "." && d_name != "..") { fios = &file_list.emplace_back(); fios->type = FIOS_TYPE_DIR; fios->mtime = 0; - strecpy(fios->name, d_name, lastof(fios->name)); - std::string dirname = std::string(d_name) + PATHSEP; + fios->name = d_name; + std::string dirname = fios->name + PATHSEP; SetDParamStr(0, dirname); - GetString(fios->title, STR_SAVELOAD_DIRECTORY, lastof(fios->title)); - StrMakeValidInPlace(fios->title, lastof(fios->title)); + fios->title = GetString(STR_SAVELOAD_DIRECTORY); } } closedir(dir); diff --git a/src/fios.h b/src/fios.h index 9cc48ac927..0d9b170541 100644 --- a/src/fios.h +++ b/src/fios.h @@ -88,8 +88,8 @@ extern LoadCheckData _load_check_data; struct FiosItem { FiosType type; uint64 mtime; - char title[64]; - char name[MAX_PATH]; + std::string title; + std::string name; bool operator< (const FiosItem &other) const; }; @@ -97,7 +97,7 @@ struct FiosItem { class FileList : public std::vector { public: void BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperation fop); - const FiosItem *FindItem(const char *file); + const FiosItem *FindItem(const std::string_view file); }; enum SortingBits { diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 7a1cf0a06c..11d74b5e4c 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -378,24 +378,22 @@ public: /* Select the initial directory. */ o_dir.type = FIOS_TYPE_DIRECT; - std::string dir; switch (this->abstract_filetype) { case FT_SAVEGAME: - dir = FioFindDirectory(SAVE_DIR); + o_dir.name = FioFindDirectory(SAVE_DIR); break; case FT_SCENARIO: - dir = FioFindDirectory(SCENARIO_DIR); + o_dir.name = FioFindDirectory(SCENARIO_DIR); break; case FT_HEIGHTMAP: - dir = FioFindDirectory(HEIGHTMAP_DIR); + o_dir.name = FioFindDirectory(HEIGHTMAP_DIR); break; default: - dir = _personal_dir; + o_dir.name = _personal_dir; } - strecpy(o_dir.name, dir.c_str(), lastof(o_dir.name)); switch (this->fop) { case SLO_SAVE: @@ -693,7 +691,7 @@ public: } if (this->fop == SLO_SAVE) { /* Copy clicked name to editbox */ - this->filename_editbox.text.Assign(file->title); + this->filename_editbox.text.Assign(file->title.c_str()); this->SetWidgetDirty(WID_SL_SAVE_OSK_TITLE); } } else if (!_load_check_data.HasErrors()) { @@ -876,7 +874,7 @@ public: items_shown_count++; } else { this->string_filter.ResetState(); - this->string_filter.AddLine(this->fios_items[i].title); + this->string_filter.AddLine(this->fios_items[i].title.c_str()); /* We set the vector to show this fios element as filtered depending on the result of the filter */ this->fios_items_shown[i] = this->string_filter.GetState(); if (this->fios_items_shown[i]) items_shown_count++; diff --git a/src/os/os2/os2.cpp b/src/os/os2/os2.cpp index fbcd230eb7..be62ab466a 100644 --- a/src/os/os2/os2.cpp +++ b/src/os/os2/os2.cpp @@ -76,11 +76,12 @@ void FiosGetDrives(FileList &file_list) fios->type = FIOS_TYPE_DRIVE; fios->mtime = 0; #ifndef __INNOTEK_LIBC__ - snprintf(fios->name, lengthof(fios->name), "%c:", 'A' + disk - 1); + fios->name += 'A' + disk - 1; #else - snprintf(fios->name, lengthof(fios->name), "%c:", disk); + fios->name += (char)disk; #endif - strecpy(fios->title, fios->name, lastof(fios->title)); + fios->name += ':'; + fios->title = fios->name; } } diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp index 1a482daea5..b1040d1d5f 100644 --- a/src/os/windows/win32.cpp +++ b/src/os/windows/win32.cpp @@ -185,8 +185,9 @@ void FiosGetDrives(FileList &file_list) FiosItem *fios = &file_list.emplace_back(); fios->type = FIOS_TYPE_DRIVE; fios->mtime = 0; - seprintf(fios->name, lastof(fios->name), "%c:", s[0] & 0xFF); - strecpy(fios->title, fios->name, lastof(fios->title)); + fios->name += (char)(s[0] & 0xFF); + fios->name += ':'; + fios->title = fios->name; while (*s++ != '\0') { /* Nothing */ } } } From 397221b94a8d384c237e548b0ab2afb50e77e7d0 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 16 Apr 2023 22:24:10 +0200 Subject: [PATCH 11/31] Codechange: Make ScenarioIdentifier use std::string for the filename --- src/fios.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fios.cpp b/src/fios.cpp index 4ac6a6798f..6bc09d3619 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -632,7 +632,7 @@ const char *FiosGetScreenshotDir() struct ScenarioIdentifier { uint32 scenid; ///< ID for the scenario (generated by content). uint8 md5sum[16]; ///< MD5 checksum of file. - char filename[MAX_PATH]; ///< filename of the file. + std::string filename; ///< filename of the file. bool operator == (const ScenarioIdentifier &other) const { @@ -676,7 +676,7 @@ public: int fret = fscanf(f, "%u", &id.scenid); FioFCloseFile(f); if (fret != 1) return false; - strecpy(id.filename, filename.c_str(), lastof(id.filename)); + id.filename = filename; Md5 checksum; uint8 buffer[1024]; @@ -718,7 +718,7 @@ const char *FindScenario(const ContentInfo *ci, bool md5sum) for (ScenarioIdentifier &id : _scanner) { if (md5sum ? (memcmp(id.md5sum, ci->md5sum, sizeof(id.md5sum)) == 0) : (id.scenid == ci->unique_id)) { - return id.filename; + return id.filename.c_str(); } } From ee8b1dfbc38a9755b5071501f2582a1cb1184e61 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sat, 29 Apr 2023 13:43:09 +0200 Subject: [PATCH 12/31] Fix 4dd5f994: hotkey parsing was broken --- src/hotkeys.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hotkeys.cpp b/src/hotkeys.cpp index 73c7f52bd5..0f76aca4de 100644 --- a/src/hotkeys.cpp +++ b/src/hotkeys.cpp @@ -99,7 +99,7 @@ static uint16 ParseCode(const char *start, const char *end) assert(start <= end); while (start < end && *start == ' ') start++; while (end > start && *end == ' ') end--; - std::string_view str{start, (size_t)(start - end)}; + std::string_view str{start, (size_t)(end - start)}; for (uint i = 0; i < lengthof(_keycode_to_name); i++) { if (StrEqualsIgnoreCase(str, _keycode_to_name[i].name)) { return _keycode_to_name[i].keycode; From de08e29cd96b73486cc14d9f5438ba76d664c0ff Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 29 Apr 2023 18:42:05 +0000 Subject: [PATCH 13/31] Update: Translations from eints english (us): 4 changes by 2TallTyler --- src/lang/afrikaans.txt | 16 ---------------- src/lang/arabic_egypt.txt | 14 -------------- src/lang/basque.txt | 14 -------------- src/lang/belarusian.txt | 16 ---------------- src/lang/brazilian_portuguese.txt | 18 ------------------ src/lang/bulgarian.txt | 14 -------------- src/lang/catalan.txt | 18 ------------------ src/lang/chuvash.txt | 4 ---- src/lang/croatian.txt | 16 ---------------- src/lang/czech.txt | 16 ---------------- src/lang/danish.txt | 18 ------------------ src/lang/dutch.txt | 18 ------------------ src/lang/english_AU.txt | 18 ------------------ src/lang/english_US.txt | 22 ++++------------------ src/lang/esperanto.txt | 13 ------------- src/lang/estonian.txt | 16 ---------------- src/lang/faroese.txt | 14 -------------- src/lang/finnish.txt | 18 ------------------ src/lang/french.txt | 18 ------------------ src/lang/frisian.txt | 14 -------------- src/lang/gaelic.txt | 14 -------------- src/lang/galician.txt | 18 ------------------ src/lang/german.txt | 16 ---------------- src/lang/greek.txt | 16 ---------------- src/lang/hebrew.txt | 15 --------------- src/lang/hindi.txt | 5 ----- src/lang/hungarian.txt | 16 ---------------- src/lang/icelandic.txt | 14 -------------- src/lang/ido.txt | 4 ---- src/lang/indonesian.txt | 16 ---------------- src/lang/irish.txt | 16 ---------------- src/lang/italian.txt | 18 ------------------ src/lang/japanese.txt | 16 ---------------- src/lang/korean.txt | 18 ------------------ src/lang/latin.txt | 14 -------------- src/lang/latvian.txt | 16 ---------------- src/lang/lithuanian.txt | 16 ---------------- src/lang/luxembourgish.txt | 16 ---------------- src/lang/macedonian.txt | 4 ---- src/lang/malay.txt | 13 ------------- src/lang/maltese.txt | 4 ---- src/lang/marathi.txt | 4 ---- src/lang/norwegian_bokmal.txt | 16 ---------------- src/lang/norwegian_nynorsk.txt | 13 ------------- src/lang/persian.txt | 12 ------------ src/lang/polish.txt | 18 ------------------ src/lang/portuguese.txt | 18 ------------------ src/lang/romanian.txt | 16 ---------------- src/lang/russian.txt | 18 ------------------ src/lang/serbian.txt | 16 ---------------- src/lang/simplified_chinese.txt | 16 ---------------- src/lang/slovak.txt | 18 ------------------ src/lang/slovenian.txt | 14 -------------- src/lang/spanish.txt | 16 ---------------- src/lang/spanish_MX.txt | 16 ---------------- src/lang/swedish.txt | 16 ---------------- src/lang/tamil.txt | 13 ------------- src/lang/thai.txt | 14 -------------- src/lang/traditional_chinese.txt | 16 ---------------- src/lang/turkish.txt | 18 ------------------ src/lang/ukrainian.txt | 16 ---------------- src/lang/urdu.txt | 5 ----- src/lang/vietnamese.txt | 18 ------------------ src/lang/welsh.txt | 14 -------------- 64 files changed, 4 insertions(+), 937 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index ecd0d1d83e..8cb8e5b438 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -1689,13 +1689,6 @@ STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nooit ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Laat die koop van aandeele van ander maatskappye toe: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :As dit geaktiveer is, kan aandele in maatskappye gekoop en verkoop word. Aandele is net in maatskappye beskikbaar na 'n sekere aantal jaar. - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum maatskappyouderdom om aandele te verhandel: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Stel die minimum ouderdom van 'n maatskappy in vir ander om aandele by hulle te kan koop en verkoop. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Persentasie van wins om te betaal in voerder systeem: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Persentasie wins wat gedeel word met die tussengangerstasies in oordragstelsels vir beter beheer oor die wins @@ -3393,7 +3386,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} sk{P ip epe} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Geen STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Maatskappy waarde: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% besit by {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktuur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} spoorstuk{P "" ke} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} padstuk{P "" ke} @@ -3420,11 +3412,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Verander STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Bestuurder Naam STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Verander bestuurder se naam -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Koop 25% aandeel in maatskappy -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Verkoop 25% aandeel in maatskappy -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Koop 'n 25% aandeel in maatskappy. Shift+klik vir kwotasie -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Verkoop 'n 25% aandeel in maatskappy. Shift+klik vir beraamde inkomste - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Maatskappy Naam STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Bestuurder se Naam @@ -4416,9 +4403,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kan nie STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kan nie geld wat van die bank geleen is weggee nie... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Maatskappy kan nie aangekoop word nie... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Maatskappy hoofkwartier kan nie hier gebou word nie... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kan nie 25% aandeel in die maatskappy koop nie... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kan nie 25% aandeel in die maatskappy verkoop nie... -STR_ERROR_PROTECTED :{WHITE}Die maatskappy is nie oud genoeg om aandeele te handel nie... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kan nie enige stede bou nie diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index d01abed5df..0be534c581 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -1557,11 +1557,6 @@ STR_CONFIG_SETTING_ENDING_YEAR_ZERO :لا تنتهي ###length 3 STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :مجمد -STR_CONFIG_SETTING_ALLOW_SHARES :السماح بشراء حصص من الشركات الاخرى: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :عند التمكين ، السماح بشراء وبيع أسهم الشركة. ستكون الأسهم متاحة فقط للشركات التي بلغت سنًا معينة - -###setting-zero-is-special - STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :عند السحب ، ضع الإشارات كل: {STRING} @@ -3146,7 +3141,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} سفينة STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}بدون STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}قيمة الشركة: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}( {COMMA}% مملوكة بواسطة {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}البنية تحتية: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} قطعة السكك الحديدية STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} قطعة الطريق @@ -3175,11 +3169,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}غير STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}اسم صاحب الشركة STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}غير اسم المدير -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}اشتري 25% من أسهم الشركة -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}بيع 25% من أسهم الشركة -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}اشتري 25% من اسهم هذه الشركة, + مفتاح الاعلى لاظهار التكلفه -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}بيع 25% من اسهم هذه الشركة - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :اسم الشركة STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :اسم صاحب الشركة STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :أدخل مبلغ المال الذي تريد تقديمه @@ -4121,9 +4110,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}لا ي STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}لا يمكن التخلي عن النقود المعطاة من البنك على سبيل الاعارة ... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}لا يمكن شراء الشركة ... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}لا يمكن بناء مبنى الشركة الئيسي ... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}لا يمكن شراء 25% من اسهم الشركة ... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}لا يمكن بيع 25% من اسهم الشركة ... -STR_ERROR_PROTECTED :{WHITE}هذه الشركة ليست عريقة بقدر كافي لمشاركة الأسهم ... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}لا يمكن انشاء اي مدينة diff --git a/src/lang/basque.txt b/src/lang/basque.txt index a525cfe4b5..81286cb352 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -1603,11 +1603,6 @@ STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Beste konpainien akzioak erostea baimendu: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Gaitua dagoenean, konpainiaren akzioak erostea eta saltzea baimendu. Konpainiak akzioak izateko gutxiengo adin batera iritsi beharko dira - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Elikadura sistemetan ordaindu beharreko irabazien ehunekoa: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Elikadura sistemetan eman beharreko irabazien ehunekoa, irabaziengain kontrol gehiago emanez @@ -3209,7 +3204,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} itsasontzi STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ezer ez STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Konpainiaren balioa: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}(%{COMMA} konpainia honek erosi du: {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Azpiegiturak: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} trenbide kopuru STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} errepide sail kopuru @@ -3236,11 +3230,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Konpaini STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Lehendakariaren izena STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Lehendakariaren izena aldatu -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Konpainiaren akzioen %25a erosi -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Konpainiaren akzioen %25a saldu -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Konpainiaren akzioen %25a erosi. Shift+Klik gutxi gora beherako kostea erakutsi -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Konpainiaren akzioen %25a saldu. Shift+Klik gutxi gora beherako irabaziak erakutsi - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Konpainiaren izena STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Lehendakariaren izena @@ -4163,9 +4152,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Ezin da STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Ezin da mailegatutako dirua eman... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Ezin da konpainia erosi... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Ezin izan da konpainiaren egoitza eraiki... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Ezin izan da konpainiaren akzioen %25a erosi... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Ezin izan da konpainiaren akzioen %25a saldu... -STR_ERROR_PROTECTED :{WHITE}Konpainia gazteegia da akzioak izateko... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ezin izan da herririk sortu diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 11a1965ecd..836f372dd5 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -2006,13 +2006,6 @@ STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Ніколі ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Дазволіць купляць акцыі іншых кампаніяў: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Калі ўключана, дазваляецца купляць і прадаваць долі ў кампаніях. Акцыі даступны для кампаніяў, якія дасягнулі пэўнага ўзросту. - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Мін. узрост кампаніі для выпуску акцыяў: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Мінімальны ўзрост, якога павінна дасягнуць кампанія для пачатку выпуску акцыяў, якімі змогуць гандляваць іншыя гульцы. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Адсотак даходу, якi налiчваецца пры частковай перавозцы: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Адсотак даходу, які налічваецца на прамежкавых адцінках у вялікіх сетках, даючы большы кантроль над даходамі. @@ -3744,7 +3737,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} караб{P ель лi лёў} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}няма STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Кошт кампаніі: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% валодае {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Iнфраструктура: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} чыгуначн{P ы ыя ых} {P ў ў у}част{P ак кi каў} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} дарожн{P ы ыя ых} {P ў ў у}част{P ак кi каў} @@ -3771,11 +3763,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Зьмя STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Дырэктар STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Зьмяніць імя дырэктара -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Купіць 25% акцыяў кампаніі -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Прадаць 25% акцыяў кампаніі -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Набыць 25% акцыяў гэтай кампаніі. Shift+пстрычка — ацэнка кошту акцыяў. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Прадаць 25% акцыяў гэтай кампаніі. Shift+пстрычка — ацэнка кошту акцыяў. - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Кампанія STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Імя дырэктара @@ -4772,9 +4759,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Нема STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Немагчыма аддаць пазычаныя банкам грошы... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Немагчыма набыць кампанію... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Тут немагчыма пабудаваць штаб-кватэру кампанii... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Немагчыма купіць 25% акцыяў гэтай кампаніі... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Немагчыма прадаць 25% акцый гэтай кампаніі... -STR_ERROR_PROTECTED :{WHITE}Гэтая кампанія яшчэ не выпускае акцыі... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Немагчыма пабудаваць гарады... diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 020b00652e..89aec0592f 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1801,15 +1801,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Suave STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Congelada -STR_CONFIG_SETTING_ALLOW_SHARES :Permite comprar ações de outras empresas: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Se ativado, permite a compra e venda de ações de companhias. Ações de outras empresas poderão serem compradas após um período de tempo após a fundação da empresa - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Idade mínima da companhia para trocar ações: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Defina a idade mínima de uma companhia para as outras estarem aptas a comprar e vender ações entre elas. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} ano{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Sem mínimo - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentagem paga em cada etapa em sistemas de baldeação: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentagem do lucro dado a cada estação de baldeação em sistemas de mais de um transporte, dando mais controle de lucro @@ -3706,7 +3697,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} embarcaç{P ão ões} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Nenhum STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor da empresa: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propriedade de {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestrutura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} parte{P "" s} de ferrovia STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} parte{P "" s} de rodovia @@ -3735,11 +3725,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Alterar STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Presidente STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Alterar nome do presidente -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Comprar 25% de ações -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vender 25% de ações -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Comprar 25% das ações desta empresa. Shift+Clique mostra o preço estimado sem comprar nenhuma ação -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vender 25% das ações desta empresa. Shift+Clique mostra o preço estimado sem vender nenhuma ação - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nome da Empresa STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nome do Presidente STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Inserir a quantidade de dinheiro que você quer dar @@ -4767,9 +4752,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Impossí STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Impossível dar dinheiro a esta empresa STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Impossível comprar empresa... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Impossível construir sede da empresa... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Impossível comprar 25% das ações desta empresa... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Impossível vender 25% das ações desta empresa... -STR_ERROR_PROTECTED :{WHITE}Esta empresa ainda não troca ações... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Impossível construir qualquer cidade diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index cd8f5394e3..eedc56a911 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -1649,11 +1649,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Начална ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Разреши купуване на акции от други компании: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ако тази опция бъде активирана, ще можете да купувате и продавате дялове на компании. Това ще бъде възможно единствено когато дадената компания достигне определена възраст - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Процент от leg profit to pay in feeder systems: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Процент от приходите, който се плаща на intermediate legs in feeder systems, давайки ви повече контрол върху приходите @@ -3262,7 +3257,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} кораб{P "" и} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Николко STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Стойност на Компанията: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% е притежание на {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Инфраструктура: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} релсов{P а и} част{P "" и} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} пътн{P а и} част{P "" и} @@ -3289,11 +3283,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Смен STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Име на управителя STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Смени името на управителя -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Купи 25% от акциите на компанията -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Продай 25% от акциите на компанията -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Купи 25% от акциите на тази компания. Shift показва цената на 25% от акциите -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Продай 25% от акциите на тази компания. Shift показва цената на 25% от акциите - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Име на компанията STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Име на управителя @@ -4243,9 +4232,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Не м STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Не може да се харчат пари които са заети от банка... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Не може да купиш компанията... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Не може да бъде построен централен офис... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Не може да купиш 25% от акциите на тази компания... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Не може да продадеш 25% от акциите на тази компания... -STR_ERROR_PROTECTED :{WHITE}Тази компания все още не е достатъчно стара да предлага акции... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Не може да се строят градове diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index cfb1ebb2cb..55431ef234 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1801,15 +1801,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Suau STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :{G=Femenin}Congelada -STR_CONFIG_SETTING_ALLOW_SHARES :Permet comprar participacions d'altres companyies: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Permet comprar i vendre accions de les companyies. Les accions només estan disponibles per companyies d'una certa edat. - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Edat mínima de la companyia per negociar participacions: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Estableix l'edat mínima d'una companyia per tal que els altres competidors puguin comprar-ne o vendre accions. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} any{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Sense mínim - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentatge del benefici total a pagar en transferències: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentatge del benefici donat a branques intermediàries dins els sistemes, donant més control sobre els beneficis @@ -3706,7 +3697,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} vaixell{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Cap STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor de la companyia: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}(un {COMMA}% és propietat de {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestructura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} tros{P "" sos} de via STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} tros{P "" sos} de carretera @@ -3735,11 +3725,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Canvia e STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nom del president STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Canvia el nom del president de la companyia. -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Compra un 25% d'accions -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vendre un 25% d'accions -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Compra el 25% de les accions d'aquesta companyia. Amb Maj+Clic, mostra'n només el cost estimat. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Ven un 25% de les accions d'aquesta companyia. Amb Maj+Clic, mostra el cost estimat sense vendre cap acció. - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nom de la companyia STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nom del president STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Escriviu la quantitat de diners que voleu donar @@ -4767,9 +4752,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}No es po STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}No podeu donar diners a aquesta companyia... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}No pots comprar la companyia... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No es pot construir la seu de la companyia... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}No pots comprar el 25% de participació en aquesta companyia... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}No pots vendre el 25% de participació en aquesta companyia... -STR_ERROR_PROTECTED :{WHITE}Aquesta companyia ja no negocia participacions... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Impossible construir poblacions diff --git a/src/lang/chuvash.txt b/src/lang/chuvash.txt index 09a719bf4d..c6ef77db1a 100644 --- a/src/lang/chuvash.txt +++ b/src/lang/chuvash.txt @@ -782,9 +782,6 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Тулли ###length 3 -###setting-zero-is-special - - ###length 2 @@ -1343,7 +1340,6 @@ STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ҫук - # Company infrastructure window # Industry directory diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index dd73627d90..4118626417 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1805,13 +1805,6 @@ STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nikada STR_CONFIG_SETTING_ECONOMY_TYPE :Vrsta ekonomije: {STRING} ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Dopusti kupovanje udjela u drugim tvrtkama: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kada je uključeno, dopušta se kupnja i prodaja dionica tvrtki. Dionice će postati dostupne samo za tvrtke određene starosti - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Najmanja starost tvrtke za trgovanje udjelima: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Odredite najmanju starost tvtke da bi drugi mogli kupovati i prodavati dionice. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Postotak dobiti za dionicu koji se plaća kod sustava feedera: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Postotak prihoda koji će biti predan srednjim dionicama prijevoza feeder sustavima, daje više kontrole nad prihodima @@ -3568,7 +3561,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} brod{P "" a ova} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ništa STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Vrijednost tvrtke: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% u vlasništvu {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} dijelovi pruge STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} dio ceste @@ -3595,11 +3587,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Promijen STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Ime direktora STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Promjeni ime direktora -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Kupi 25% udjela u tvrtci -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Prodaj 25% udjela u tvrtci -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Kupi 25% udjela u ovoj tvrtci. Shift+Klik prikazuje trošak bez kupnje udjela. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Prodaj 25% udjela u ovoj tvrtci. Shift+Klik prikazuje trošak bez prodaje udjela. - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Ime tvrtke STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Ime direktora @@ -4603,9 +4590,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Nije mog STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nije moguće dati novac ovoj tvrtki... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Nije moguće kupiti tvrtku... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nije moguće izgraditi sjedište tvrtke... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nije moguće kupiti 25% udjela u ovoj tvrtci... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Nije moguće prodati 25% udjela u ovoj tvrtci... -STR_ERROR_PROTECTED :{WHITE}Ova tvrtka još nije dovoljno stara da bi trgovala udjelima... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Nije moguće graditi gradove diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 36d1518247..9421123611 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1886,13 +1886,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Původní STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Plynulá STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Zmražená -STR_CONFIG_SETTING_ALLOW_SHARES :Povolit kupování podílu z ostatních společností: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Pokud je zapnuto, umožní kupovaní akcií ve společnostech. Akcie jsou k dispozici pouze u společností od určitého stáří - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimální stáří společnosti pro obchod s akciemi: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Určuje stáří společnosti, od kterého mohou ostatní společnosti kupovat a prodávat její akcie. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Podíl ze zisku při překládce: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procentuální podíl příjmu, který je předán mezistanicím v překládacích systémech, předá větší kontrolu nad příjmem @@ -3793,7 +3786,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} lo{P ď dě dí} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Nic STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Hodnota společnosti: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% vlastněno {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} železniční oblasti STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} silniční oblasti @@ -3822,11 +3814,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Změnit STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Prezident STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Změnit jméno prezidenta -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Koupit 25% podíl ve společnosti -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Prodat 25% podíl ve společnosti -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Koupit 25% podíl v této společnosti. Stisknutý Shift+Kliknutí pro zobrazení odhadované ceny -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Prodat 25% podíl v této společnosti. Stisknutý Shift+Kliknutí pro zobrazení odhadované ceny - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Jméno společnosti STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Jméno prezidenta STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Zadej částku, kterou chceš poslat @@ -4856,9 +4843,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Nelze da STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Této společnosti nemůžeš poslat peníze... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Nelze koupit společnost... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nelze postavit ředitelství společnosti... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nelze koupit podíl v této společnosti... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Nelze prodat podíl v této společnosti... -STR_ERROR_PROTECTED :{WHITE}Tato společnost zatím neobchoduje s akciemi... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Nelze vygenerovat žádné město diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 159d73d2d5..db33865347 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -1800,15 +1800,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Udjævnet STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Frossen -STR_CONFIG_SETTING_ALLOW_SHARES :Tillad at købe aktier i andre selskaber: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Hvis aktiveret, tillades køb og salg af selskabsaktier. Aktier vil kun være tilgængelige for selskaber der er nået en hvis alder - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Mindste selskabsalder for aktiehandel: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Indstil mindste alder på selskaber, før andre kan købe og sælge aktier i dem. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} år{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Intet minimum - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procentdel af deloverskud som skal betales i hovedsystemer: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procentdel af indkomst givet til de mellemliggende dele i hovedsystemer, giver mere kontrol over indkomst @@ -3705,7 +3696,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} skib{P "" e} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ingen STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Selskabsværdi: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% ejes af {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} spor-stykke{P "" r} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} vej-stykke{P "" r} @@ -3734,11 +3724,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Skift se STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Direktørnavn STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Skift direktørens navn -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Køb 25% aktier i selskabet -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Sælg 25% aktier i selskabet -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Køb 25% aktier i dette selskab. Shift+Klik viser de anslåede omkostninger uden at købe nogle aktier -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Sælg 25% aktier i dette selskab. Shift+Klik viser de anslåede indtægter uden at sælge nogle aktier - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Selskabsnavn STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Direktørens navn STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Skriv hvor mange penge du ønsker at give @@ -4766,9 +4751,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Du kan i STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Kan ikke give penge til dette selskab... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kan ikke købe selskab... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kan ikke bygge selskabets hovedkvarter... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kan ikke købe 25% aktier i dette selskab... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kan ikke sælge 25% aktier i dette selskab... -STR_ERROR_PROTECTED :{WHITE}Dette selskab sælger ikke aktier endnu... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kan ikke bygge nogen byer diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index c526220c44..091bf32d45 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1804,15 +1804,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Origineel STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Gelijkmatig STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Vast -STR_CONFIG_SETTING_ALLOW_SHARES :Kopen van aandelen in andere bedrijven toestaan: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wanneer ingeschakeld is het toegestaan om bedrijfsaandelen te kopen en te verkopen. Aandelen zullen alleen beschikbaar zijn voor bedrijven die een bepaalde leeftijd hebben bereikt - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimale leeftijd van bedrijf om aandelen te kunnen verhandelen: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Hiermee wordt de minimale leeftijd van een bedrijf ingesteld waarna anderen aandelen in dat bedrijf kunnen gaan kopen en verkopen. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} jaar -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Geen minimum - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage van routeopbrengst in overdrachtssysteem: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage van het inkomen besteed aan de intermediaire delen in feedersystemen waardoor er meer controle over de inkomsten is @@ -3713,7 +3704,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} sch{P ip epen} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Geen STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Bedrijfswaarde: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% eigendom van {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastructuur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} spoorde{P el len} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} wegde{P el len} @@ -3742,11 +3732,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Bedrijfs STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Naam directeur STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Verander de naam van de directeur -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Koop een aandeel van 25% in dit bedrijf -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Verkoop een aandeel van 25% in dit bedrijf -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Koop een aandeel van 25% in dit bedrijf. Shift+klik geeft de verwachte kosten zonder te kopen. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Verkoop een aandeel van 25% in dit bedrijf. Shift+klik geeft de verwachte kosten zonder te kopen. - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Bedrijfsnaam STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Naam van directeur STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Voer het bedrag in om weg te geven @@ -4775,9 +4760,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kan geen STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Kan geen geld weggeven aan dit bedrijf... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kan het bedrijf niet kopen... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kan bedrijfshoofdkantoor niet bouwen... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kan geen 25% aandeel in dit bedrijf kopen... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kan geen 25% aandeel in dit bedrijf verkopen... -STR_ERROR_PROTECTED :{WHITE}Dit bedrijf verhandelt nog geen aandelen... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kan geen steden bouwen diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 75116da80a..4c2a8911bf 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -1800,15 +1800,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Smooth STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Frozen -STR_CONFIG_SETTING_ALLOW_SHARES :Allow buying shares from other companies: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :When enabled, allow buying and selling of company shares. Shares will only be available for companies reaching a certain age - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum company age to trade shares: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set the minimum age of a company for others to be able to buy and sell shares from them. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} year{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :No minimum - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage of leg profit to pay in feeder systems: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage of income given to the intermediate legs in feeder systems, giving more control over the income @@ -3709,7 +3700,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} ship{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}None STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Company value: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% owned by {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastructure: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} rail piece{P "" s} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} road piece{P "" s} @@ -3738,11 +3728,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Change t STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Manager Name STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Change the manager's name -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Buy 25% share in company -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Sell 25% share in company -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Buy 25% share in this company. Shift+Click shows shows estimated cost without purchasing any share -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Sell 25% share in this company. Shift+Click shows shows estimated cost without selling any share - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Company Name STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Manager's Name STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Enter the amount of money you want to give @@ -4771,9 +4756,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Can't gi STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Can't give away money to this company... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Can't buy company... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Can't build company headquarters... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Can't buy 25% share in this company... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Can't sell 25% share in this company... -STR_ERROR_PROTECTED :{WHITE}This company is not old enough to trade shares yet... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Can't build any towns diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 6840461364..07403ef058 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -983,6 +983,10 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Select i # Autosave dropdown ###length 5 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Off +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_10_MINUTES :Every 10 minutes +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_30_MINUTES :Every 30 minutes +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_60_MINUTES :Every 60 minutes +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_120_MINUTES :Every 120 minutes STR_GAME_OPTIONS_LANGUAGE :{BLACK}Language STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Select the interface language to use @@ -1800,15 +1804,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Smooth STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Frozen -STR_CONFIG_SETTING_ALLOW_SHARES :Allow buying shares from other companies: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :When enabled, allow buying and selling of company shares. Shares will only be available for companies reaching a certain age - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum company age to trade shares: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set the minimum age of a company for others to be able to buy and sell shares from them. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} year{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :No minimum - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage of leg profit to pay in feeder systems: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage of income given to the intermediate legs in feeder systems, giving more control over the income @@ -3709,7 +3704,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} ship{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}None STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Company value: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% owned by {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastructure: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} rail piece{P "" s} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} road piece{P "" s} @@ -3738,11 +3732,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Change t STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}President Name STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Change the president's name -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Buy 25% share in company -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Sell 25% share in company -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Buy 25% share in this company. Shift+Click shows estimated cost without purchasing any share -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Sell 25% share in this company. Shift+Click shows estimated income without selling any share - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Company Name STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :President's Name STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Enter the amount of money you want to give @@ -4771,9 +4760,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Can't gi STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Can't give away money to this company... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Can't buy company... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Can't build company headquarters... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Can't buy 25% share in this company... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Can't sell 25% share in this company... -STR_ERROR_PROTECTED :{WHITE}This company is not old enough to trade shares yet... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Can't build any towns diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 706f30958b..c9172ca927 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1450,10 +1450,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Komenca jaro: { ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Permesu aĉetadon de dividaĵoj en aliaj kompanioj: {STRING} - -###setting-zero-is-special - STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Aŭtomate konstruu semaforojn antaŭ: {STRING} @@ -2785,7 +2781,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} ŝipo{P "" j} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Neniu STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Kompania valoro: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% posedataj de {COMPANY}) STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}Faru HQ STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Konstrui kompanian administraciejon @@ -2803,11 +2798,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Ŝanĝu STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Manaĝantnomo STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Ŝanĝu la nomon de la manaĝanto -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Aĉetu 25%-an dividaĵon -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vendu 25%-an dividaĵon -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Aĉetu 25%-an dividaĵon en ĉi tiu kompanio. Tenu la maljuskliga klavo por (kosto)taksi sen aĉeti dividaĵojn -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vendu 25%-an dividaĵon en ĉi tiu kompanio. Tenu la maljuskliga klavo por (enspezo)taksi sen vendi dividaĵojn - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Kompania Nomo STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nomo de la Manaĝanto @@ -3673,9 +3663,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Ne povas STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Ne povas donaci monon pruntitan de la banko... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Ne povas aĉeti kompanion... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Ne povas konstrui kompanian ĉefkonstruaĵon... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Ne povas aĉeti 25%-an dividaĵon... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Ne povas vendi 25%-an dividaĵon... -STR_ERROR_PROTECTED :{WHITE}Ĉi tiu kompanio ne sufiĉe aĝas por jam komerci dividaĵojn... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ne povas konstrui ajnan urbon diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 749cac99f7..373520d917 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1855,13 +1855,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Algupärane STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Sujuv STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Külm -STR_CONFIG_SETTING_ALLOW_SHARES :Aktsiatehingud teiste ettevõtetega: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kui on aktiveeritud siis on ettevõtte aktsiate ostmine ja müümine lubatud. Aktsiad on saadaval ainult ettevõtetel mille vanus on üle teatud piiri - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Ettevõtte vanuse alampiir aktsiakauplemiseks: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Määra alampiir ettevõtte vanusele, enne kui teised saavad selle aktsiaid osta ja müüa. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Protsent tuludest mis läheb 'kanna edasi' süsteemis alumistesse lülidesse: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Protsent tuludest mis antakse edasi 'kanna edasi' süsteemidele. Lubab täpsemalt jaotada kasumit erinevate harude vahel. @@ -3755,7 +3748,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} laev{P "" a} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Mitte ühtegi STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Firmaväärtus: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% on ettevõtte {COMPANY} käes) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Taristu: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} rööpajupp{P "" i} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} teejupp{P "" i} @@ -3784,11 +3776,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Muuda et STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Presidendi nimi STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Muuda presidendi nägu -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Osta 25% ettevõtte aktsiatest -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Müü 25% ettevõtte aktsiatest -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Osta 25% ettevõtte aktsiatest. Shift+klõpsuga kuvatakse aktsiate hind tehingut tegemata -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Müü 25% ettevõtte aktsiatest. Shift+klõpsuga kuvatakse aktsiate hind tehingut tegemata - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Ettevõtte nimi STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Presidendi nimi STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Sisesta saadetav rahasumma @@ -4816,9 +4803,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Ei saa a STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Ei saa sellele ettevõttele raha saata... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Ettevõtet ei saa osta... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Ettevõtte peakorterit ei saa ehitada... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Selle ettevõtte aktsiatest ei saa 25% osta... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Selle ettevõtte aktsiatest ei saa 25% müüa... -STR_ERROR_PROTECTED :{WHITE}See ettevõtte pole veel piisavalt vana, et aktsiaid vahetada... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ei saa ühtegi asulat ehitada... diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 647eb3a0c1..8d5505943b 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -1596,11 +1596,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Byrjunar ár: { ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Loyv keypi av partabrøvum frá øðrum fyritøkum: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Um gilda, er loyvt at keypa og selja fyritøku partabrøv. Partabrøv verða einans tøk hjá fyritøkum ið hava rokki ein ávísan aldur - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prosentpartur av deilvinningi at gjalda í veitingar kervum: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Prosentpartur av inntøku ið verður útgoldi til millum liðini í veitara kervum (umskipan), gevur betri ræðið í inntøkuni @@ -2950,7 +2945,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} skip STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Einki STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Virði á fyritøku: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% ogn hjá {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Innankervi: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} jarnbreyta pett{P i ir} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} vega pett{P i ir} @@ -2977,11 +2971,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Broyt na STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Leiðara navn STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Broyt navni á leiðaranum -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Keyp 25% partabrøv í fyritøkuni -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Sel 25% partabrøv í fyritøkuni -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Keyp 25% partabrøv í hesi fyritøkuni. Shift+trýst vísir kostnaðar meting uttan at keypa nakað partabræv -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Sel 25% partabrøv í hesi fyritøkuni. Shift+trýst vísir inntøku meting uttan at selja nakað partabræv - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Navn á Fyritøku STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Navn á leiðara @@ -3816,9 +3805,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kann ikk STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kann ikki geva pening burtur ið er lándur frá bankanum... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kann ikki keypa fyritøku... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kann ikki byggja fyritøku høvuðsborg... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kann ikki keypa 25% partabræv í hesi fyritøkuni... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kann ikki selja 25% partabræv í hesari fyritøkuni... -STR_ERROR_PROTECTED :{WHITE}Hendan fyritøkan er ikki nóg gomul at býta partabrøv enn... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kann ikki byggja bygdir... diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index f8bf160a56..c9914411f8 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1804,15 +1804,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Alkuperäinen STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Tasainen STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Jäädytetty -STR_CONFIG_SETTING_ALLOW_SHARES :Salli toisten yhtiöiden osakkeiden ostaminen: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Mikäli käytössä, toisten yhtiöiden osakkeiden ostaminen ja myyminen on mahdollista. Osakkeet ovat saatavilla vain yhtiöille, jotka ovat saavuttaneet tietyn iän - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Yhtiön vähimmäisikä osakekaupoille: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Aseta yhtiölle vähimmäisikä, jonka jälkeen muut voivat ostaa ja myydä yhtiön osakkeita. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} vuo{P 0 si tta} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Ei vähimmäisaikaa - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Syöttöjärjestelmään maksettavan tuoton osuus: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Osuus tuotosta, joka annetaan välittäjille syöttöjärjestelmissä @@ -3713,7 +3704,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} laiva{P "" a} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ei mitään STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Yhtiön arvo: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}{NBSP}%:n omistus: {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktuuri: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} rautatiepala{P "" a} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} tiepala{P "" a} @@ -3742,11 +3732,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Muuta yh STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Pääjohtajan nimi STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Muuta pääjohtajan nimeä -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Osta 25{NBSP}%:n osuus yhtiöstä -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Myy 25{NBSP}%:n osuus yhtiöstä -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Osta 25{NBSP}%:n osuus tästä yhtiöstä. Vaihto+napsautus näyttää kustannusarvion ostamatta osuuksia. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Myy 25{NBSP}%:n osuus tästä yhtiöstä. Vaihto+napsautus näyttää tuottoarvion myymättä osuuksia. - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Yhtiön nimi STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Pääjohtajan nimi STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Syötä annettava rahamäärä @@ -4775,9 +4760,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Pankista STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Tälle yhtiölle ei voi antaa rahaa… STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Yhtiötä ei voi ostaa... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Yhtiön päärakennusta ei voi rakentaa... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Tästä yhtiöstä ei voi ostaa 25{NBSP}%:n osuutta... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Tästä yhtiöstä ei voi myydä 25{NBSP}%:n osuutta... -STR_ERROR_PROTECTED :{WHITE}Tällä yhtiöllä ei ole vielä osakkeita... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kuntia ei voi luoda diff --git a/src/lang/french.txt b/src/lang/french.txt index 309645c240..8bac1ce996 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1801,15 +1801,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Stable STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Gelée -STR_CONFIG_SETTING_ALLOW_SHARES :Permettre d'acheter des actions d'autres compagnies{NBSP}: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Lorsqu'il est activé, l'achat et la vente des parts de compagnie sont autorisées. Les parts ne seront disponibles que pour les compagnies ayant atteint un certain âge - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Âge minimum de la compagnie pour la vente d'actions{NBSP}: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Définir l'âge minimum qu'une compagnie doit avoir pour que les autres puissent acheter ou vendre ses parts. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} an{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Pas de minimum - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Pourcentage du profit de branche à payer dans les systèmes multimodaux{NBSP}: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Pourcentage du profit donné aux branches intermédiaires dans les systèmes multimodaux, donnant plus de contrôle sur les profits @@ -3710,7 +3701,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} navire{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Aucun STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valeur de la compagnie{NBSP}: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}{NBSP}% détenu{P "" s} par {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{G=f}{GOLD}Infrastructure{NBSP}: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} morceau{P "" x} de voie ferrée STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} morceau{P "" x} de route @@ -3739,11 +3729,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Changer STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nom du P.D.G. STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Changer le nom du président directeur général -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Acheter 25{NBSP}% de la compagnie -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vendre 25{NBSP}% de la compagnie -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Acheter 25% de la compagnie.{}Shift-clic pour afficher seulement le coût estimé. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vendre 25% de la compagnie. Shift-clic pour afficher le revenu estimé sans vendre - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nom de la société STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nom du P.D.G. STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Entrer le montant que vous souhaiter donner @@ -4772,9 +4757,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Impossib STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Vous ne pouvez pas donner de l’argent à cette compagnie STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Impossible d'acheter la compagnie... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Impossible de construire le siège... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Impossible d'acheter 25{NBSP}% des parts... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Impossible de vendre 25{NBSP}% des parts... -STR_ERROR_PROTECTED :{WHITE}Cette compagnie ne vend pas d'actions pour le moment... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ne peut plus bâtir de villes diff --git a/src/lang/frisian.txt b/src/lang/frisian.txt index dc618244d3..23a4d076a5 100644 --- a/src/lang/frisian.txt +++ b/src/lang/frisian.txt @@ -1672,11 +1672,6 @@ STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Stea it keapjen fan oandielen ta: {STRING} - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimale leeftiid fan it bedriuw om oandielen te hanneljen: {STRING} -###setting-zero-is-special - STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :By slepe, pleats seinen eltse: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} tegel{P 0 "" s} @@ -3173,7 +3168,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} sk{P ip epen} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Gjin STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Bedriuwswearde: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% besit fan {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Ynfrastruktuer: STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} stikje dyk{P "" s} STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} wetterfjild{P "" en} @@ -3198,11 +3192,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Feroarje STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Namme fan Direkteur STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Feroarje de namme fan de direkteur -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Keapje 25% oandielen fan bedriuw -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Ferkeapje 25% oandielen fan bedriuw -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Keapje 25% oandielen fan dit bedriuw. Shift+Klik toant ferwachte kosten sûnder oandielen te keapje -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Ferkeapje 25% oandielen fan dit bedriuw. Shift+Klik toant ferwachte kosten sûnder oandielen te ferkeapje - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Bedriuwsnamme STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Namme fan Direkteur @@ -3994,9 +3983,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kin lien STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kin gjin jild dat fan de bank lient is weijaan... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kin bedriuw net keapje... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kin gjin haadkantoar boue -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kin net 25% oandielen fan dit bedriuw keapje... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kin net 25% oandielen fan dit bedriuw ferkeapje... -STR_ERROR_PROTECTED :{WHITE}Dit bedriuw is noch net âld genoch om oandielen te ferhannelje... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kin gjin stêd bouwe diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index b3488166c3..1282041c69 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1864,11 +1864,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Bliadhna tòise ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Ceadaich gun tèid stoca a cheannach bho chompanaidhean eile: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ma tha seo air, ’s urrainn dhut stocan chompanaidhean a cheannach is a reic. Cha bhi stoca ri làimh ach aig companaidhean aig a bheil aois shònraichte - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :A' cheudad dhen phrothaid a gheibh carbadan le tar-aiseag carago: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :A' cheudad dhen phrothaid a gheibh carbadan airson na slighe a shiubhlas iad nuair a nì iad tar-aiseag. Bheir seo barrachd smachd air an teachd a-steach dhut @@ -3573,7 +3568,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{G=f}{WHITE}{COMMA} {P long long longan long} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Gun charbad STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Luach a' chompanaidh: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% le {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Bun-structar: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} {P earrann earrann earrannan earrann} rèile STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} {P earrann earrann earrannan earrann} rathaid @@ -3600,11 +3594,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Atharrai STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Ainm an stiùiriche STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Thoir ainm ùr air an stiùiriche -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Ceannaich earrann dhe 25% aig a' chompanaidh -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Reic earrann dhe 25% aig a' chompanaidh -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Ceannaich earrann dhe 25% aig a' chompanaidh. Seallaidh Shift+briogadh tuairmse air na cosgaisean gun a bhith a' cheannach earrann -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Reic earrann dhe 25% aig a' chompanaidh seo. Seallaidh Shift+briogadh tuairmse air an teachd a-steach gun a bhith a' reic earrann sam bith - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Ainm na companaidh STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Ainm an stiùiriche @@ -4557,9 +4546,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Cha ghab STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Chan urrainn dhut airgead a thoirt seachad a chaidh a thoirt dhut mar iasad leis a’ bhanca... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Chan urrainn dhut a' chompanaidh a cheannach... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Cha ghabh ionad na companaidh togail... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Chan urrainn dhut earrann dhe 25% aig a' chompanaidh seo a cheannach.... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Chan urrainn dhut earrann dhe 25% aig a' chompanaidh seo a reic.... -STR_ERROR_PROTECTED :{WHITE}Chan eil a' chompanaidh seo sean gu leòr gus earrannan a reic no a cheannach fhathast... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Cha ghabh baile sam bith a thogail diff --git a/src/lang/galician.txt b/src/lang/galician.txt index c05eb34423..d526bdc634 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1801,15 +1801,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Orixinal STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Suave STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Conxelado -STR_CONFIG_SETTING_ALLOW_SHARES :Permiti-la compra de accións de outras compañías: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Cando se activa, permite comprar ou vender accións da compañía. As accións só estarán dispoñíbeis para compañías que acaden certa idade - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Idade mínima da compañía para compraventa de accións: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Establece a idade mínima dunha compañía para que outros poidan comprar e vender accións dela. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} ano{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Sen mínimo - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaxe do beneficio parcial a pagar en sistemas transitivos: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaxe dos beneficios asignados ás partes intermedias da ruta en sistemas transitivos, dando un maior control sobre os ingresos @@ -3710,7 +3701,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE} {COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} barco{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ningún STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor da compañía: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propiedade de {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestrutura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} segmento{P "" s} de vías de ferrocarril STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} segmento{P "" s} de estrada @@ -3739,11 +3729,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambiar STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nome do presidente STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Cambiar o nome do presidente -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Mercar un 25% das accións da compañía -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vender un 25% das accións da compañía -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Mercar un 25% das accións desta compañía. Shift+Click mostra o custo estimado sen mercar ningunha acción -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vender un 25% das accións desta compañía. Shift+Click mostra o custo estimado sen vender ningunha acción - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nome da compañía STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nome do presidente STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Introduce a cantidade de cartos que queres dar @@ -4772,9 +4757,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Non pode STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Non se poden dar cartos a esta compañía... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Non se pode compra-la compañía... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Non se pode construí-la sede -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Non se pode comprar un 25% das accións desta compañía... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Non se pode vender un 25% das accións desta compañía... -STR_ERROR_PROTECTED :{WHITE}Esta compañía aínda non é suficientemente antiga para comerciar con accións... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Non se poden construír cidades diff --git a/src/lang/german.txt b/src/lang/german.txt index e6b59ba305..f4ad0756c6 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1800,13 +1800,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Geglättet STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Statisch -STR_CONFIG_SETTING_ALLOW_SHARES :Handel mit Firmenanteilen erlauben: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Erlaube das Kaufen und Verkaufen von Firmenanteilen. Firmenanteile sind nur verfügbar für Firmen, die hinreichend lange existieren - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimales Alter einer Firma, um an der Börse gehandelt zu werden: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Setze das minimale Alter einer Firma, ab dem Andere Firmenanteile dieser Firma kaufen und verkaufen können. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prozentsatz des Profits für Teilstrecken: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Um das Einkommen der einzelnen Fahrzeuge einer Lieferkette ungefähr abschätzen zu können, wird vom Transporterlös bei Ablieferung einer Fracht der gewählte Prozentsatz den Zulieferfahrzeugen zugeschlagen @@ -3701,7 +3694,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} Schiff{P "" e} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Keine STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Firmenwert: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% Eigentum von {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} Schienenstück{P "" e} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} Straßenfeld{P "" er} @@ -3730,11 +3722,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Firmenna STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Managername STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Managername ändern -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}25% der Aktien der Firma kaufen -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}25% der Aktien der Firma verkaufen -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}25% der Aktien dieser Firma kaufen. Umschalt+Klick zeigt einen Kostenvoranschlag -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}25% der Aktien dieser Firma verkaufen. Umschalt+Klick zeigt eine Gewinnschätzung - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Firmenname STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Name des Managers STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Geben Sie den Betrag des Geldes ein, welchen sie verschenken möchten. @@ -4762,9 +4749,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Von der STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Geld kann nicht an diese Firma verschenkt werden ... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Firmenkauf nicht möglich ... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Firmensitz kann nicht gebaut werden ... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kauf von 25% der Aktien dieser Firma nicht möglich ... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Verkauf von 25% der Aktien dieser Firma nicht möglich ... -STR_ERROR_PROTECTED :{WHITE}Diese Firma ist noch nicht alt genug, um an der Börse gehandelt zu werden... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Bau von Städten unmöglich diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 62efac4c4f..045af5a01d 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1903,13 +1903,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Αρχικό STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Ομαλή STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Παγωμένο -STR_CONFIG_SETTING_ALLOW_SHARES :Ενεργοποίηση της δυνατότητας αγοράς μετοχών από άλλες εταιρίες: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Όταν είναι ενεργοποιημένη, επιτρέπεται η αγοραπωλησία εταιρικών μετοχών. Οι μετοχές θα είναι διαθέσιμες μόνο όταν οι εταιρείες φτάνουν μια ορισμένη ηλικία - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Ελάχιστη ηλικία εταιρίας για συναλλαγή μετοχών: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Ορίστε την ελάχιστη ηλικία μίας εταιρίας για να μπορούν άλλοι να αγοράσουν ή να πουλήσουν μετοχές από αυτές. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Το ποσοστό κέρδους από το σκέλος μεταφοράς στα συστήματα τροφοδότησης: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Το ποσοστό του εισοδήματος που δίνεται στα ενδιάμεσα σκέλη των συστημάτων τροφοδότησης, δίνοντας μεγαλύτερο έλεγχο στο εισόδημα @@ -3796,7 +3789,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} πλοί{P ο α} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Κανένα STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Αξία εταιρίας: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% είναι ιδιοκτησία της {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Υποδομή: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} κομμάτι{P "" α} σιδηροτροχιάς STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} κομμάτι{P "" α} δρόμου @@ -3825,11 +3817,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Αλλα STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Όνομα Διευθυντή STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Αλλαγή του ονόματος του διευθυντή -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Αγορά μεριδίου 25% της εταιρία -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Πώληση μεριδίου 25% της εταιρίας -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Αγορά μεριδίου 25% σε αυτήν την εταιρεία. Με Shift+Κλικ εμφανίζεται το εκτιμώμενο κόστος χωρίς την αγορά μετοχών -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Πώληση μεριδίου 25% της εταιρίας. Με Shift+Κλικ εμφανίζεται το εκτιμώμενο κέρδος χωρίς την πώληση μετοχών - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Όνομα Εταιρίας STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Όνομα Διευθυντή STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Εισάγετε το χρηματικό ποσό που θέλετε να δώσετε @@ -4861,9 +4848,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Δεν STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Δεν μπορείτε να δώσετε χρήματα σε αυτή την εταιρία... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Αδύνατη η εξαγορά της εταιρίας... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Δεν μπορεί να κτιστεί αρχηγείο εταιρίας... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Αδύνατη η αγορά μεριδίου 25% της εταιρίας... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Αδύνατη η πώληση μεριδίου 25% της εταιρίας... -STR_ERROR_PROTECTED :{WHITE}Αυτή η εταιρία δεν είναι αρκετά παλιά για συναλλαγή μετοχών... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Αδύνατο να κτιστούν πόλεις diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 4b2f027b00..b3a9518899 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1707,12 +1707,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE :סוג כלכל ###length 3 STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :מקורי -STR_CONFIG_SETTING_ALLOW_SHARES :אפשר קניית מניות מחברות אחרות: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :כאשר מאופשר, מתיר קנייה ומכירה של מניות של חברות. מניות יהיו זמינות רק עבור חברות המגיעות לגיל מסוים - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :גיל מינימלי לחברה לסחור במניותיה: {STRING} -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :אחוז הרווח מקטע נסיעה לתשלום במערכות הזנה: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :אחוז הרווח הניתן לקטעי ביניים במערכות הזנה, דבר הנותן שליטה מוגברת על ההכנסות @@ -3446,7 +3440,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}מטוס STR_COMPANY_VIEW_SHIPS :{WHITE}כלי שייט {COMMA} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}אין STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}{CURRENCY_LONG}{WHITE}:שווי החברה -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({1:COMPANY} נמצאים בבעלות{NBSP} {0:COMMA}%) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}תשתיות: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{P 0 "חלק מסילה " ""}{COMMA}{P "" " חלקי מסילה"} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{P 0 "חלק כביש " ""}{COMMA}{P "" " חלקי כביש"} @@ -3474,11 +3467,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}שנה STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}שם המנהל STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}שנה את שם המנהל -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}קנה 25% ממניות החברה -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}מכור 25% ממניות החברה שברשותך -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}קנה 25% ממניות חברה זו. Shift+לחיצה מציג הערכת עלות ללא רכישת המניה -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}מכור 25% ממניות חברה זו. Shift+לחיצה מציג הערכת הכנסות ללא מכירת המניה - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :שם החברה STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :שם המנהל @@ -4462,9 +4450,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}לא נ STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}לא ניתן לתת כסף לחברה הזאת... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}לא ניתן לקנות את החברה... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}לא ניתן לבנות את מטה החברה באתר זה... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}אין באפשרותך לקנות 25% ממניות חברה זו... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}אין באפשרותך למכור 25% ממניות חברה זו... -STR_ERROR_PROTECTED :{WHITE}חברה זו צעירה מידי ואינה יכולה לסחור במניותיה... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}לא ניתן לבנות ערים diff --git a/src/lang/hindi.txt b/src/lang/hindi.txt index 378d273fd7..3843617b9b 100644 --- a/src/lang/hindi.txt +++ b/src/lang/hindi.txt @@ -545,9 +545,6 @@ STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} ###length 3 -###setting-zero-is-special - - ###length 2 @@ -989,7 +986,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}कं - # Company infrastructure window # Industry directory @@ -1298,7 +1294,6 @@ STR_ERROR_TOO_HIGH :{WHITE}... ब # Company related errors -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}इस कंपनी का २५% अंश नहीं बेच सकते... # Town related errors STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}नगर का नाम नहीं बदला जा सकता है... diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 20cff2367d..8c7c8db437 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1861,13 +1861,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Eredeti STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Egyenletes STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Stagnáló -STR_CONFIG_SETTING_ALLOW_SHARES :Más vállalatokból lehet részvényt vásárolni: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Bekapcsolva engedélyezi más vállalatok részvényeinek megvásárlását. A részvények csak akkor elérhetőek, ha a vállalat elért egy bizonyos kort - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Vállalatok minimális életkora részvénykibocsátáshoz: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Egy vállalatnak legalább ennyi évesnek kell lennie ahhoz, hogy más vállalatok kereskedhessenek a részvényeivel. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Ráhordó rendszereknek kifizetett profitszázalék: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :A bevételek százaléka, mely a közbenső szállítóknak, ráhordó járatoknak kerül kifizetésre, nagyobb ellenőrzést adva a bevétel felett @@ -3754,7 +3747,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} hajó STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Nincs STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Vállalat értéke: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% {COMPANY} tulajdona) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktúra: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} vasúti elem STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} közúti elem @@ -3783,11 +3775,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}A válla STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Elnök neve STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Az elnök nevének megváltoztatása -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}25% megvétele a vállalatból -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}25% eladása a vállalatból -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}25%-nyi vállalati részvény megvétele. Shift+kattintással megmutatja a becsült költséget vásárlás nélkül -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}25%-nyi vállalati részvény eladása. Shift+kattintással megmutatja a becsült költséget eladás nélkül - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :A vállalat neve STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Elnök neve STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Mennyi pénzt szeretnél adományozni? @@ -4812,9 +4799,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Nem tudo STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nem tudsz pénzt adományozni a vállalatnak... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Nem veheted meg a vállalatot... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nem építheted ide a székházadat... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nem vehetsz 25%-nyi részvényt ebből a vállalatból... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Nem adhatsz el 25%-nyi részvényt ebből a vállalatból... -STR_ERROR_PROTECTED :{WHITE}Ez a vállalat egyelőre még nem rendelkezik részvényekkel... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Nem lehet több települést építeni diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 518316136b..9fae64343f 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -1595,11 +1595,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Upphafsár: {ST ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Leyfa hlutabréfakaup í öðrum fyrirtækjum: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ef þessi stilling er virk er hægt að kaupa og selja hlutabréf í fyrirtækjum. Hlutabréf eru aðeins aðgengileg fyrir fyrirtæki sem hafa náð ákveðnum aldri - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Hlutfall hagnaðar sem greiðist til tengiþjónustu: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Hlutfall hagnaðar sem greiðist til tengiþjónustu, farartækja sem eru milliliðir. Gefur meiri stjórn á tekjunum @@ -3107,7 +3102,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} skip STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Engin STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Heildarverðmæti fyrirtækis: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% í eigu {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Innviðir: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} járnbrautarspor STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} veg{P ur ir} @@ -3134,11 +3128,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Breyta n STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nafn forstjóra STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Breyta nafni forstjóra -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Kaupa 25% hlut í fyrirtæki -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Selja 25% hlut í fyrirtæki -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Kaupa 25% hlut í þessu fyrirtæki. Shift+smella sýnir áætlaðan kostnað -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Selja 25% hlut í þessu fyrirtæki. Shift+smella sýnir áætlaðan kostnað - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nafn Fyrirtækis STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nafn forstjóra @@ -4049,9 +4038,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Getur ek STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Það er ekki hægt að gefa peninga sem teknir eru að láni frá bankanum... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Get ekki keypt fyrirtæki... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Ekki hægt að byggja höfuðstöðvar... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Get ekki keypt 25% hlut í þessu fyrirtæki... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Get ekki selt 25% hlut í þessu fyrirtæki... -STR_ERROR_PROTECTED :{WHITE}Þetta fyrirtæki er ekki nógu gamalt til að versla með hluti ... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Get ekki stofnað nýja borg diff --git a/src/lang/ido.txt b/src/lang/ido.txt index 237753a0a1..b08ddc7854 100644 --- a/src/lang/ido.txt +++ b/src/lang/ido.txt @@ -743,9 +743,6 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violkolora ###length 3 -###setting-zero-is-special - - ###length 2 @@ -1167,7 +1164,6 @@ STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Vehili: - # Company infrastructure window # Industry directory diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 0310b26948..81b81b4e09 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -1797,13 +1797,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Asli STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Halus STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Beku -STR_CONFIG_SETTING_ALLOW_SHARES :Ijinkan pembelian saham perusahaan lain: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Jika diaktifkan, pemain dibolehkan membeli saham suatu perusahaan. Saham hanya bisa dibeli saat perusahaan memasuki umur tertentu - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Usia minimum perusahaan untuk memperdagangkan saham: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set umur minimal perusahaan saat sahamnya dapat dibeli atau dijual. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Persentase keuntungan akhir dari sistem pengisi: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Persentase pendapatan yang diberikan dari sistem pengisi, memberikan lebih banyak kendali pendapatan @@ -3690,7 +3683,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} kapal STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Tidak punya STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Nilai Perusahaan: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% saham dimiliki oleh {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} bagian rel STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} bagian jalan @@ -3719,11 +3711,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Ubah nam STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nama Manajer STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Ubah nama manajer -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Beli 25% saham perusahaan -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Jual 25% saham perusahaan -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Beli 25% saham perusahaan ini. Shift+klik untuk menampilkan perkiraan biaya tanpa membeli saham. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Jual 25% saham perusahaan ini. Shift untuk menampilkan perkiraan biaya tanpa menjual saham - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nama Perusahaan STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nama Manajer STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Masukkan jumlah uang yang ingin anda berikan @@ -4748,9 +4735,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Tidak da STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Tidak bisa memberikan uang kepada perusahaan ini... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Tidak dapat membeli perusahaan... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Tidak dapat membangun kantor pusat perusahaan... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Tidak dapat membeli 25% saham perusahaan ini... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Tidak dapat menjual 25% saham perusahaan ini... -STR_ERROR_PROTECTED :{WHITE}Perusahaan ini terlalu muda untuk diperjualbelikan saham kepemilikannya... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Tidak dapat membuat satu kota pun diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 25e33a2d5c..b8af320648 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -1758,13 +1758,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Bunaidh STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Mín STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Reoite -STR_CONFIG_SETTING_ALLOW_SHARES :Ceadaigh scaireanna a cheannach ó chuideachtaí eile: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Má tá sé cumasaithe, tá cead scaireanna i gcuideachta a cheannach agus a dhíol. Ní bheidh scaireanna ar fáil ach do chuideachtaí a bhfuil aois áirithe bainte amach acu - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Aois íosta na gcuideachtaí le bheith in ann scaireanna a thrádáil: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Socraigh aois íosta na gcuideachtaí sula mbeidh daoine eile in ann scaireanna iontu a cheannach agus a dhíol. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :An céatadán den bhrabús a íocfar ar chuid den turas i gcórais fhriothálacha: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :An céatadán den bhrabús a thugtar as lastais a thabhairt cuid den bhealach i gcórais fhriothálacha, rud a fhágann go bhfuil tuilleadh smachta agat ar an ioncam @@ -3615,7 +3608,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} {P "" "" "" "" ""}long STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ceann ar bith STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Luach na cuideachta: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}(is le {1:COMPANY} {0:COMMA}%) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Bonneagar: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} {P ph ph ph bp p}íosa iarnróid STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} {P ph ph ph bp p}íosa bóthair @@ -3644,11 +3636,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Athraigh STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Ainm an Bhainisteora STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Athraigh ainm an bhainisteora -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Ceannaigh sciar 25% sa chuideachta -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Díol sciar 25% sa chuideachta -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Ceannaigh sciar 25% sa chuideachta seo -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Díol sciar 25% sa chuideachta seo - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Ainm na Cuideachta STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Ainm an Bhainisteora STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Cuir isteach an méid airgid is mian leat a thabhairt @@ -4664,9 +4651,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Ní féi STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Ní féidir airgead a thabhairt uait chuig an gcuideachta seo... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Ní féidir an chuideachta a cheannach... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Ní féidir ceanncheathrú na cuideachta a thógáil... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Ní féidir sciar 25% a cheannach sa chuideachta seo... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Ní féidir sciar 25% a dhíol sa chuideachta seo... -STR_ERROR_PROTECTED :{WHITE}Níl an chuideachta seo sean go leor le scaireanna a thrádáil fós... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ní féidir baile ar bith a thógáil diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 00c3c0433e..10737fb114 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1839,15 +1839,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Originale STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Morbida STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Congelata -STR_CONFIG_SETTING_ALLOW_SHARES :Permetti l'acquisto di azioni di altre compagnie: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Se abilitata, consente l'acquisto e la vendita di azioni delle compagnie. Le azioni sono disponibili solo per le compagnie che hanno raggiunto una certa età minima - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Età minima della compagnia per lo scambio delle sue azioni: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Imposta l'età minima di una compagnia affinchè sia possibile acquistarne o venderne le azioni. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} {P "anno" anni} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Nessun minimo - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentuale profitto da pagare per una tappa di trasferimento: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentuale di ricavi assegnata ai tratti intermedi di una catena di trasferimenti, in questo si conferisce un maggiore controllo sul reddito. @@ -3754,7 +3745,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} nav{P e i} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Nessuno STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valore compagnia: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% posseduto dalla {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastrutture: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} segment{P o i} ferroviari{P o ""} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} segment{P o i} stradal{P e i} @@ -3783,11 +3773,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambia i STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nome presidente STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Cambia il nome del presidente -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Compra il 25% delle azioni -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vendi il 25% delle azioni -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Compra una quota del 25% di questa compagnia. MAIUSC+clic mostra il costo stimato senza comprare azioni -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vende una quota pari al 25% di questa compagnia. MAIUSC+clic mostra il ricavo stimato senza vendere azioni - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nome della compagnia STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nome del presidente STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Inserisci l'ammontare di denaro che vuoi trasferire @@ -4816,9 +4801,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Impossib STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Impossibile trasferire denaro a questa compagnia... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Impossibile comprare la compagnia... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Impossibile costruire la sede della compagnia... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Impossibile comprare il 25% delle azioni... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Impossibile vendere il 25% delle azioni... -STR_ERROR_PROTECTED :{WHITE}Questa compagnia non è abbastanza vecchia per scambiare azioni... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Impossibile costruire città diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 4031f90df8..cc1bb6db58 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -1799,13 +1799,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :オリジナル STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :なだらか STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :固定 -STR_CONFIG_SETTING_ALLOW_SHARES :他社株の取引許容: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :有効にすると、ライバル会社の株式を取引できるようになります。この設定を有効にしても、目的の社が設立から丸5年経過していない場合は取引できません - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :株式を取引するための最低会社年齢:{STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :他の人が彼らから株式を売買できるように、会社の最低年齢を設定します。 -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :区間払いの割合: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :転送を行う輸送網(フィーダーシステム)を構築した場合、中継地点までの輸送で総輸送費の何%を受け取れるかを設定します(転送時に予想される最終輸送費から仮に部分払いし、最終的に貨物が目的地に到着した時点で清算します)。転送元の輸送機器が赤字になるのを防ぎます @@ -3700,7 +3693,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE} 航 STR_COMPANY_VIEW_SHIPS :{WHITE} 船舶 {COMMA}隻 STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE} なし STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}総資産: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({1:COMPANY}が株式の{0:COMMA}%を保有) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}インフラ設備: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE} 線路 {COMMA}タイル STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE} 道路 {COMMA}タイル @@ -3729,11 +3721,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}会社 STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}社長名 STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}社長の名前を変更します -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}会社株の25%を買収 -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}会社株の25%を売却 -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}この会社の株式の25%を購入します。Shift+クリックで費用を見積もります -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}この会社の株式の25%を売却します。Shift+クリックで売却価格の見積が出ます - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :会社名 STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :社長名 STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :寄付したい金額を入力してください @@ -4760,9 +4747,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}借入 STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}この会社にお金を渡すことはできません... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}会社を買収できません STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}会社の本社ビルを建設できません -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}この会社の株を25%購入できません -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}この会社の株を25%売却できません -STR_ERROR_PROTECTED :{WHITE}この会社は開設から6年が経過していません # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}街を開設できません diff --git a/src/lang/korean.txt b/src/lang/korean.txt index c202ecead4..b99c905bb6 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1801,15 +1801,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :기본 STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :부드러움 STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :멈춤 -STR_CONFIG_SETTING_ALLOW_SHARES :다른 회사의 지분을 사는 것을 허용: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :이 설정을 켜면, 회사의 지분을 거래할 수 있게 됩니다. 회사의 지분을 거래하려면 해당 회사가 어느 정도 오래되어야 합니다 - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :지분 거래를 허용할 최소 회사 나이: {STRING}년 -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :지분을 사고 팔기 위해 필요한 회사의 최소 나이를 설정합니다. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA}년 -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :제한 없음 - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :환승시 벌어들이는 중간 수익의 비율: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :더 많은 수익을 내기 위해, 수송 관계상 중간 구간에게 주어진 수익의 비율을 설정합니다. @@ -3710,7 +3701,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}항공 STR_COMPANY_VIEW_SHIPS :{WHITE}선박 {COMMA}대 STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}없음 STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}회사가치: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% {COMPANY}의 소유) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}기반시설: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}선로 {COMMA}칸 STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}도로 {COMMA}칸 @@ -3739,11 +3729,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}회사 STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}사장 이름 STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}사장의 이름을 변경합니다 -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}회사 지분의 25%를 매입 -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}회사 지분의 25%를 매도 -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}이 회사 지분의 25%를 매입합니다. SHIFT+클릭으로 예상 매입 가격을 볼 수 있습니다 -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}이 회사 지분의 25%를 매도합니다. SHIFT+클릭으로 예상 매도 가격을 볼 수 있습니다 - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :회사 이름 STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :사장 이름 STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :보내고자 하는 돈의 액수를 입력하세요 @@ -4772,9 +4757,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}은행 STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}이 회사에 돈을 보낼 수 없습니다... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}회사를 인수할 수 없습니다... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}본사를 건설할 수 없습니다... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}이 회사 지분의 25%를 매입할 수 없습니다... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}이 회사 지분의 25%를 매도할 수 없습니다... -STR_ERROR_PROTECTED :{WHITE}이 회사는 지분을 거래할 수 있을 만큼 오래되지 않았습니다... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}도시를 만들 수 없습니다 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index b2f3ce56a9..07df11a838 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1862,11 +1862,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Annus initii: { ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Sinere mercari sortes societatum: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Sinere mercari sortes a societatibus. Sortes societatum satis aetatis modo mercari licet - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Centesimae partes lucri pendenda in translatione: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Centesimae lucri pars medietati data in systematibus transferendi, ut melius distribuatur lucrum vehiculorum @@ -3547,7 +3542,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} nav{P is es} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Nulla STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Aestimatio societatis: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% posessa a {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastructura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} par{P s tes} ferriviae STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} par{P s tes} viae @@ -3574,11 +3568,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Mutare n STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nomen Praesidis STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Mutare nomen praesidis -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Quadrantem sortium huius societatis emere -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Quadrantem sortium huius societatis vendere -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Quadrantem sortium huius societatis emere. Shift+Preme ut pretium monstretur sine emptione -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Quadrantem sortium huius societatis vendere. Shift+Preme ut pretium monstretur sine emptione - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nomen Societatis STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nomen Praesidis @@ -4550,9 +4539,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Non lice STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Non licet pecuniam mutuam largiri... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Non licet societatem emere... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Non licet sedem societatis struere... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Non licet quadrantem sortium huius societatis emere... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Non licet quadrantem sortium huius societatis vendere... -STR_ERROR_PROTECTED :{WHITE}Nondum licet sortes societatis mercari... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Non licet oppida condi diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 725de934bf..b4aaab0146 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -1801,13 +1801,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Orģināls STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Gluds STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Saldēts -STR_CONFIG_SETTING_ALLOW_SHARES :Atļaut akciju pirkšanu no citiem uzņēmumiem: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ja iespējots, ir atļauts pirkt un pārdodot uzņēmumu akcijas. Akcijas būs pieejamas tikai atbilstošu vecumu sasniegušiem uzņēmumiem - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimālais uzņēmuma vecums, lai tirgotos ar akcijām: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Iestatīt minimālo uzņēmuma vecums, lai citi varētu pirkt un pārdod to akcijas. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procenti no kopējās peļņas, ko maksā tranzītstacijās: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procenti no ienākumiem, kas tiek doti starpposmiem padeves sistēmās, kas dod lielāku kontroli pār ienākumiem @@ -3705,7 +3698,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} kuģ{P is i u} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Neviens STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Uzņēmuma vērtība: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% piederoši {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktūra: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} sliežu gabal{P s i u} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} ceļa gabal{P s i u} @@ -3734,11 +3726,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Mainīt STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Vadītāja vārds STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Mainīt vadītāja vārdu -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Nopirkt 25% daļu uzņēmumā -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Pārdot 25% daļu uzņēmumā -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Nopirkt 25% daļu šajā uzņēmumā. Shift+klikšķis rāda izmaksu novērtējumu, nepērkot akcijas -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Pārdot 25% daļu uzņēmumā. Shift+Ctrl rāda izmaksu novērtējumu, nepārdodot nevienu akciju - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Uzņēmuma nosaukums STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Vadītāja vārds STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Ievadiet naudas daudzumu, kuru vēlaties atdot @@ -4765,9 +4752,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Bankas a STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nav iespējams atdot naudu šai kompānijai... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Nevar nopirkt uzņēmumu... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nevar uzbūvēt uzņēmuma biroju... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nevar nopirkt 25% daļu šajā uzņēmumā... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Nevar pārdot 25% daļu šajā uzņēmumā... -STR_ERROR_PROTECTED :{WHITE}Šis uzņēmums ir par jaunu lai tirgotu akcijas... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Nevar būvēt pilsētas diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 68f35a6f17..0d74a5cbe5 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -1985,13 +1985,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Originali STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Tolygi STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Fiksuota -STR_CONFIG_SETTING_ALLOW_SHARES :Leisti pirkti kitų kompanijų akcijas: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Leisti pirkti bei parduoti kitų kompanijų akcijas. Akcijos yra platinamos tik įmonei sulaukus tam tikro amžiaus - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Mažiausias kompanijos amžius metais, kuomet bus leista prekiauti jos akcijomis: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Kompanijos akcijomis leidžiama prekiauti tik jai sulaukus tam tikro amžiaus -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Grynojo pelno dalis, mokama tiekėjų sistemoms: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Pelno dalis, tenkanti tarpinėms tiekėjų sistemoms @@ -3852,7 +3845,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} laiv{P as ai ų} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Neturi STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Kompanijos vertė: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% priklauso {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktūra: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} bėgių dal{P is ys ių} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} kelio dal{P is ys ių} @@ -3881,11 +3873,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Keičia STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Direktoriaus vardas STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Keičia kompanijos direktoriaus vardą -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Pirkti 25% kompanijos akcijų -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Parduoti 25% kompanijos akcijų -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Pirkti 25% šios kompanijos akcijų. Spragtelėjus laikant nuspaustą Shift klavišą, bus parodytos numatomos išlaidos nieko realiai neperkant -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Parduoti 25% šios kompanijos akcijų. Spragtelėjus laikant nuspaustą Shift klavišą, bus parodytos numatomos pajamos nieko realiai neperkant - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Kompanijos pavadinimas STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Direktoriaus vardas STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Pervedama suma @@ -4959,9 +4946,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Negalima STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nepavyko pervesti pinigų... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Neįmanoma pirkti kompanijos... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Neįmanoma pastatyti įmonės būstinės... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Negalima nusipirkti 25% šios kompanijos akcijų... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Negalima parduoti 25% šios kompanijos akcijų... -STR_ERROR_PROTECTED :{WHITE}Ši kompanija dar pernelyg jauna, kad galetų pardavinėti savo akcijas... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Neimanoma statyti jokiu miestu diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index e2888ab09b..ff6759df24 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1799,13 +1799,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Glaat STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Agefruer -STR_CONFIG_SETTING_ALLOW_SHARES :Undeeler vun aaneren Firme kafen: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wann ugeschalt, dierfen Aktien vu Firme kaf an verkaf ginn. Aktien si just fir Firme verfügbar, déi en gewëssen Alter erreecht hunn - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimalt Firmenalter fir Aktien ze handelen: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Definéiert d'minimalt Alter vun enger Firma, befier anerer kënnen Undeeler un Aktien vun hier kafen. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prozentsaz vum Etappenprofit den am Feeder-System bezuelt gëtt: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Prozentsaz vum Akommes déi un d'Zwëschenetappen an engem Feeder-System gi ginn, wat méi Kontroll iwwert d'Akommes erméiglegt @@ -3698,7 +3691,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} Schëff{P "" er} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Keng STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Firmewäert: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% am Besëtz vun {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} Schinnendeel{P "" er} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} Stroossendeel{P "" er} @@ -3727,11 +3719,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Ännert STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Managernumm STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Ännert den Numm vum Manager -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Kaaft 25% Undeel vun der Firma -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Verkaaft 25% Undeel vun der Firma -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Kaaft 25% Undeel vun deser Firma. Shift+Klick weist ongeféier Käschten ouni Kaf vun Aktien -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Verkaaft 25% Undeel vun deser Firma. Shift+Klick weist ongeféier Käschten ouni Verkaf vun Aktien - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Firmennumm STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Numm vum Manager STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Gëff d'Unzuel vu Geld an déi soll verschenkt ginn @@ -4758,9 +4745,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kann ken STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Kann dëser Firma kee Geld ginn... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kann d'Firma net kafen... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kann d'Firmenhaaptgebai net bauen... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kann keng 25% Undeeler vun dëser Firma kafen... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kann keng 25% Undeeler vun dëser Firma verkafen... -STR_ERROR_PROTECTED :{WHITE}Des Firma ass nach net al genuch fir Undeeler ze handelen... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ka keng Stied bauen diff --git a/src/lang/macedonian.txt b/src/lang/macedonian.txt index 2a1b9468cc..1daf3e8765 100644 --- a/src/lang/macedonian.txt +++ b/src/lang/macedonian.txt @@ -1069,9 +1069,6 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :целосна ###length 3 -###setting-zero-is-special - - ###length 2 @@ -1625,7 +1622,6 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Погл - # Company infrastructure window STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Инфраструктура на {COMPANY} STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}железнички парчиња: diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 2106ebc6bb..1e97cb276c 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1515,10 +1515,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Tahun permulaan ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Benarkan membeli saham syarikat lain: {STRING} - -###setting-zero-is-special - STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Bina semafor secara automatik sebelum: {STRING} @@ -3009,7 +3005,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} kapal-kapal STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Tiada STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Nilai syarikat: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% dimiliki oleh {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} cebisan landasan STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} cebisan jalanraya @@ -3036,11 +3031,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Tukar na STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nama Pengurus STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Tukar nama pengurus -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Beli 25% saham dalam syarikat ini -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Jual 25% saham dalam syarikat ini -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Beli 25% saham dalam syarikat ini. Shift+Klik menunjukkan anggaran kos tanpa membeli saham -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Jual 25% saham dalam syarikat ini. Shift+Klik menunjukkan anggaran kos tanpa menjual saham - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nama Syarikat STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nama Pengurus @@ -3955,9 +3945,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Tidak bo STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Tidak boleh memberi wang yang dipinjamkan oleh bank... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Tidak boleh beli syarikat ini... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Ibu pejabat syarikat tidak dapat dibina... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Tidak boleh beli 25% saham dalam syarikat ini... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Tidak boleh jual 25% saham dalam syarikat ini... -STR_ERROR_PROTECTED :{WHITE}Syarikat ini tidak cukup berusia untuk berpasaran saham... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Tidak boleh bina bandar diff --git a/src/lang/maltese.txt b/src/lang/maltese.txt index 20bca7ea89..c3afc0c70c 100644 --- a/src/lang/maltese.txt +++ b/src/lang/maltese.txt @@ -674,9 +674,6 @@ STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ippermetti l-uz ###length 3 -###setting-zero-is-special - - ###length 2 @@ -1065,7 +1062,6 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN - # Company infrastructure window # Industry directory diff --git a/src/lang/marathi.txt b/src/lang/marathi.txt index 51064d20ea..e97568a999 100644 --- a/src/lang/marathi.txt +++ b/src/lang/marathi.txt @@ -982,9 +982,6 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :सर्व ###length 3 -###setting-zero-is-special - - ###length 2 @@ -1472,7 +1469,6 @@ STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}व् STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}व्यवस्थापकाचे नाव STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}व्यवस्थापकाच नाव बदला - STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :व्यवस्थापकाचे नाव diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index fc3142a6b8..c58cb54e5c 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1772,13 +1772,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Jevnt STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Frossen -STR_CONFIG_SETTING_ALLOW_SHARES :Tillat aksjekjøp i andre firmaer: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Når aktivert, tillates kjøp og salg av selskapers aksjer. Aksjer vil kun være tilgjengelig selskaper som når en viss alder - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum alder på firmaet for å handle aksjer: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Sett minimum levetid for et selskap, før andre kan kjøpe og selge aksjer fra dem. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prosentandel av etappe-overskudd som skal betales i innmatingssystem: {STRING} 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 @@ -3637,7 +3630,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} skip STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ingen STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Firmaverdi: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}{NBSP}% eies av {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} jernbanebit{P "" er} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} veibit{P "" er} @@ -3666,11 +3658,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Endre fi STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Sjefens navn STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Endre sjefens navn -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Kjøp 25{NBSP}% av aksjene i firmaet -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Selg 25{NBSP}% av aksjene i firmaet -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Kjøp 25{NBSP}% av aksjene i firmaet. Shift+klikk viser beregnet kostnad uten å kjøpe noen aksjer -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Selg 25{NBSP}% av aksjene i firmaet. Shift+klikk viser beregnet inntekt uten å selge noen aksjer - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Firmanavn STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Sjefens navn STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Skriv inn hvor mye penger du vil gi @@ -4686,9 +4673,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kan ikke STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Kan ikke gi bort penger til dette firmaet... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kan ikke kjøpe firma... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kan ikke bygge firmaets hovedkontor... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kan ikke kjøpe 25{NBSP}% av aksjene... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kan ikke selge 25{NBSP}% av aksjene... -STR_ERROR_PROTECTED :{WHITE}Dette firmaet selger ikke aksjer enda... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kan ikke grunnlegge noen byer diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index d52faaf271..c9d566c8b7 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -1601,10 +1601,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Start spelet i ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Tillet kjøp av aksjar i andre firma: {STRING} - -###setting-zero-is-special - STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Ved trekking, plasser signal kvar: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} ruter{P 0 "" s} @@ -3220,7 +3216,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} skip STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ingen STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Firmaverdi: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}{NBSP}% eigast av {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktur: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} togsporruter STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} vegruter @@ -3247,11 +3242,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Byt firm STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Namnet til sjefen STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Byt namnet på sjefen -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Kjøp 25{NBSP}% av aksjane i firmaet -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Sel 25{NBSP}% av aksjane i firmaet -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Kjøp 25{NBSP}% av aksjane i firmaet. Skift-klikk viser prisoverslag utan å kjøpe aksjar -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Sel 25{NBSP}% av aksjane i firmaet. Skift-klikk viser prisoverslag utan å selje aksjar - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Firmanamn STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Namnet til sjefen @@ -4185,9 +4175,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kan ikkj STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kan ikkje gje vekk pengar som er lånt frå banken... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kan ikkje kjøpe firma... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kan ikkje byggje hovudkontor... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kan ikkje kjøpa 25{NBSP}% av aksjane... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kan ikkje selja 25{NBSP}% av aksjane... -STR_ERROR_PROTECTED :{WHITE}Det her firmaet sel ikkje aksjer enno... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kan ikkje byggje nokon byar diff --git a/src/lang/persian.txt b/src/lang/persian.txt index 451d73b66f..780a806327 100644 --- a/src/lang/persian.txt +++ b/src/lang/persian.txt @@ -1472,10 +1472,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :سال شروع ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :قابلیت خرید سهام بقیه شرکت‌ها: {STRING} - -###setting-zero-is-special - STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :نصب علمک مکانیکی به جای چراغ راهنمایی قبل از سال: {STRING} @@ -2966,7 +2962,6 @@ STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}زیرس STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} هواپیما STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}ارزش شرکت: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% توسط {COMPANY} خریداری شده) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}زیرساخت: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} قطعه {P ی های} ریل STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} قطعه{P ی های}راه @@ -2982,11 +2977,6 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}مشاه STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}پالت رنگی -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}25% سهام شرکت را بخر -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}25% سهام شرکت را بفروش -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}25% سهام این شرکت را بخر.Shift+Click برآورد قیمت سهام را بدون فروش سهام نشان می دهد. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}25% سهام این شرکت را بفروش.دکمه Shift+Clickبرآورد قیمت را بدون فروش سهام نمایش می دهد - STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :مدیر عامل STR_BUY_COMPANY_MESSAGE :{WHITE}ما به دنبال یک شرکت حمل و نقل هستیم که مایل باشد مالکیت شرکت ما را بصورت یکجا در اختیار بگیرد.{}{}آیا شما مایل به خرید شرکت {COMPANY} به مبلغ {CURRENCY_LONG} هستید؟ @@ -3551,8 +3541,6 @@ STR_ERROR_TOO_HIGH :{WHITE}بیش # Company related errors STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}ساختمان مرکزی را نمی شود اینجا ساخت ... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}نمی شود 25% سهام این شرکت را خرید -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}نمی شود 25% سهام این شرکت را فروخت # Town related errors STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}نمی توان اسم شهر را تغییر داد diff --git a/src/lang/polish.txt b/src/lang/polish.txt index c1be0a1e64..da7f42100f 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2180,15 +2180,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Oryginalna STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Płynna STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Zamrożona -STR_CONFIG_SETTING_ALLOW_SHARES :Pozwól kupować udziały w innych firmach: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kiedy włączone, pozwala na kupowanie i sprzedawanie udziałów w firmie. Udziały będą dostępne tylko dla firm z odpowiednim stażem - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimalny wiek firmy pozwalający na handel udziałami: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Ustaw minimalny wiek firmy pozwalający innym kupować i sprzedawać jej akcje. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} {P "rok" "lata" "lat"} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Brak minimum - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Podział przychodów w przypadku przeładunków: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Manipulowanie zrównoważeniem podziałów w łańcuchu dowozowym: przy 0% przychód zostanie zaksięgowany na konto wyłącznie ostatniego pojazdu w łańcuchu, wyższa wartość zwiększa zrównoważenie podziału @@ -4089,7 +4080,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} stat{P ek ki ków} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Brak STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Wartość firmy: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% w posiadaniu przez {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} element{P "" y ów} kolei STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} element{P "" y ów} drogi @@ -4118,11 +4108,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Zmień n STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Prezes STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Zmień imię prezesa -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Kup 25% udziałów w firmie -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Sprzedaj 25% udziałów w firmie -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Kup 25% udziałów w tej firmie. Shift+klik pokazuje szacunkowy koszt bez dokonania zakupu -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Sprzedaj 25% udziałów tej firmy. Shift+klik pokazuje szacunkowy koszt bez dokonania zakupu - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nazwa firmy STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nazwisko prezesa STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Wpisz kwotę, jaką chcesz przekazać @@ -5157,9 +5142,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Nie moż STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nie możesz przekazać pieniędzy tej firmie... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Nie można kupić firmy... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nie można zbudować siedziby firmy... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nie można kupić 25% udziałów w tej firmie... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Nie można sprzedać 25% udziałów tej firmy... -STR_ERROR_PROTECTED :{WHITE}Ta firma jeszcze nie sprzedaje akcji... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Nie można wybudować miasta diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index daee396cad..c48696062b 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1805,15 +1805,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Suave STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Congelada -STR_CONFIG_SETTING_ALLOW_SHARES :Permite comprar acções de outras empresas: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Quando ativo, permite a compra e venda de ações de companhias. As ações apenas estarão disponíveis quando a companhia atinge uma determinada idade. - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Idade mínima da empresa para negociar ações: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Definir a idade mínima de uma companhia a partir da qual outros jogadores poderão comprar ou vender ações da mesma. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} ano{P "" s} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Sem mínimo - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentagem do lucro do serviço a pagar em trajectos de um transporte que alimenta outro transporte: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentagem da receita dada a trajectos intermédios em sistemas em que um transporte alimenta outro, dando maior controlo sobre a receita @@ -3714,7 +3705,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} navio{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Nenhum STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor da empresa: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propriedade de {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestrutura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} {P "secção" "secções" } de caminho-de-ferro STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} {P "secção" "secções"} de estrada @@ -3743,11 +3733,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Alterar STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nome do Presidente STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Alterar nome do presidente -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Comprar 25% das acções -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vender 25% das ações -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Comprar 25% das acções nesta empresa. Shift+Clique mostra valor estimado sem comprar nenhuma acção -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vender 25% das ações nesta empresa. Shift+Clique mostra valor estimado sem vender nenhuma ação - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nome da Empresa STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nome do Presidente STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Insira a quantidade de dinheiro que quer dar @@ -4776,9 +4761,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Não é STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Não pode dar dinheiro a esta empresa... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Não é possível comprar empresa... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Não é possível construir sede da empresa... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Não é possível comprar 25% das acções nesta empresa... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Não é possível vender 25% das acções nesta empresa... -STR_ERROR_PROTECTED :{WHITE}Esta empresa ainda não troca acções... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Não é possível construir localidades diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 49cbe1da46..4fd8f230f5 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1799,13 +1799,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Lin STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Înghețată -STR_CONFIG_SETTING_ALLOW_SHARES :Permite cumpărarea de acţiuni de la alte companii: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Dacă este activată, se permite cumpărarea și vânzarea de acțiuni ale companiilor. Acțiunile devin disponibile doar când compania depășește o anumită vârstă - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Vârsta minimă a companiilor pentru tranzacțiile cu acțiuni: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Stabilește vechimea minimă a unei companii, ca alții să-i poată tranzacționa acțiunile. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procentul din profitul pe secţiune care să fie plătit pentru alimentare: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procentul din câştig care este oferit legăturilor intermediare pentru alimentare, oferind mai mult control asupra încasărilor @@ -3699,7 +3692,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} {P navă nave "de nave"} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Niciunul STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valoarea companiei: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% deţinute de {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastructură: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} pătrățele de cale ferată STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} pătrățele cu drumuri @@ -3728,11 +3720,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Schimbă STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nume preşedinte STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Schimbă numele președintelui -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Cumpără 25% din acţiunile companiei -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vinde 25% din acţiunile companiei -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Cumpără 25% din acțiunile acestei companii. Shift+clic arată costul estimat fără să cumpere acțiuni -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vinde 25% din acțiunile acestei companii. Shift+clic arată costul estimat fără să efectueze vânzarea - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Noul nume al companiei STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Noul nume al preşedintelui STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Introdu suma de bani pe care vrei să o dai @@ -4759,9 +4746,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Nu poţi STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nu se pot da bani acestei companii... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Nu se poate cumpăra compania... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nu se poate construi sediul companiei... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nu se pot cumpăra 25% din acţiunile acestei companii... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Nu se pot vinde 25% din acţiunile acestei companii... -STR_ERROR_PROTECTED :{WHITE}Compania nu are vechimea necesară pentru tranzacționarea de acțiuni... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Nu pot construi nici un oras diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 4e749da706..4e25b7ba24 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1955,15 +1955,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :классич STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :плавная STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :стабильная -STR_CONFIG_SETTING_ALLOW_SHARES :Разрешить торговлю акциями других компаний: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Разрешает торговлю акциями транспортных компаний. Акции выпускаются компаниями через некоторое время после основания. - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Мин. возраст компании для выпуска акций: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Минимальный возраст, которого должна достичь компания для начала выпуска акций, которые смогут покупать и продавать другие игроки. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} {P год года лет} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :без ограничений по возрасту - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Процент дохода, начисляемый при частичной перевозке: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Процент прибыли, начисляемый транспорту за частичную перевозку груза. @@ -3888,7 +3879,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} суд{P но на ов} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}нет STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Стоимость компании: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% владеет {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Инфраструктура: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} ж/д участ{P ок ка ков} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} дорожны{P й х х} участ{P ок ка ков} @@ -3917,11 +3907,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Изме STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Директор STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Изменить имя директора -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Купить 25% акций компании -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Продать 25% акций компании -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Купить 25% акций этой компании. Shift+щелчок - оценка стоимости акций. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Продать 25% акций этой компании. Shift+щелчок - оценка стоимости акций. - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Компания STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Имя директора STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Введите сумму, которую собираетесь передать @@ -4962,9 +4947,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Нево STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Невозможно передать деньги этой компании... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Невозможно приобрести компанию... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Невозможно построить штаб-квартиру компании... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Невозможно купить 25% акций этой компании... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Невозможно продать 25% акций этой компании... -STR_ERROR_PROTECTED :{WHITE}Эта компания ещё не выпускает акции... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Невозможно построить города... diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 6aab30213c..6494f0d3cd 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -1992,13 +1992,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Originalna STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Glatka STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Zamrznuta -STR_CONFIG_SETTING_ALLOW_SHARES :Dozvoljena kupovina deonica drugih preduzeća: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ako je omogućeno, dozvoljava kupovinu i prodaju deonica preduzeća. Deonice su dostupne tek kad preduzeće dostigne određenu starost - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Najmanja starost preduzeća za trgovinu akcijama: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Podesi najmanju starost preduzeća da bi drugi mogli da trguju akcijama sa njom. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procenat prihoda koji će biti predan srednjim dionicama prevoza u fider sustavima: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procenat prihoda koji će biti predan srednjim dionicama prevoza u fider sustavima, dajući više kontrole nad prihodima @@ -3885,7 +3878,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} brod{P "" a ova} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Nema STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Vrednost preduzeća: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% u vlasništvu preduzeća {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} de{P o la lova} pruge STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} de{P o la lova} druma @@ -3914,11 +3906,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Promena STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Ime vlasnika STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Promena imena vlasnika -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Otkupi 25% udela u preduzeću -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Prodaj 25% udela u preduzeću -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Otkup 25% udela u ovom preduzeću. Shift+klik prikazuje procenu troškova bez kupovine udela -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Prodaja 25% udela u ovom preduzeću. Shift+klik prikazuje procenu zarade bez prodaje udela - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Naziv preduzeća STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Ime vlasnika STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Unesi iznos novca koji želiš da daš @@ -4959,9 +4946,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Nemoguć STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nemoguće je dati novac ovom preduzeću... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Nije moguće kupiti preduzeće... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nije moguće izgraditi upravnu zgradu... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Otkup 25% udela ovog preduzeća nije moguć... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Prodaja 25% udela ovog preduzeća nije moguća... -STR_ERROR_PROTECTED :{WHITE}Ovo preduzeće nije dovoljno dugo aktivno za trgovinu akcijama... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ne mogu da napravim naselje diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index b9402b39ce..f86ba0be08 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -1799,13 +1799,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :原版 STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :平滑 STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :冻结 -STR_CONFIG_SETTING_ALLOW_SHARES :允许购买其他公司的股份:{STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :“打开”时,允许买卖其它公司股份。被入股公司必须经营一定年限 - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :公司可发售股份的最小已存续年份数:{STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :设置公司可发售股份的最小已存续年份数。 -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :转运系统中支付的利润百分比 {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :设定在转运系统中支付给前一环节的收入百分比, 从而对收入有更多的控制权 @@ -3698,7 +3691,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} 艘轮船 STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}无 STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}公司市值:{WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% 由 {COMPANY} 所有) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}设施: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} 轨道交通 STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} 道路 @@ -3727,11 +3719,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}改变 STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}总裁姓名 STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}为总裁改名 -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}购买其 25% 的股份 -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}出售其 25% 的股份 -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}购买此公司 25% 的股份,按住 Shift 键单击可以显示所需资金 -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}出售此公司 25% 的股份,按住 Shift 键单击可以显示预计收入 - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :公司名称 STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :总裁姓名 STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :输入你要给予的金额 @@ -4758,9 +4745,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}不能 STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}不能给予该公司资金…… STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}不能收购公司…… STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}不能设置公司总部 -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}不能购买此公司的股份…… -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}不能出售此公司的股份…… -STR_ERROR_PROTECTED :{WHITE}这个公司刚刚开业,还不能进行股权交易…… # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}不能建设任何城镇 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 43d7307c08..65c546e1e1 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -1868,15 +1868,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Originálna STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Plynulá STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Zamrznutá -STR_CONFIG_SETTING_ALLOW_SHARES :Povoliť kupovanie podielov v ostatných spoločnostiach: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ak je zapnuté, povolí sa nákup a predaj podielov spoločností. Podiely budú prístupné len pre spoločnosti od urcitého veku. - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimálny vek spoločnosti na obchodovanie s podielmi: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Určuje minimálny vek spoločnosti na to, aby od nej mohli ostatné spoločnosti kupovať a predavať podiely. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} rok{P "" "y" "ov"} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Žiadne minimum - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentáž zisku na zaplatenie podávacieho systému: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percento príjmov dať na strednú ´nohu´ vo feeder systémoch, získate väčšiu kontrolu nad príjmami @@ -3773,7 +3764,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} lo{P ď de dí} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Žiadne STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Hodnota spoločnosti: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% vlastní {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraštruktúra: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} políč{P ko ka ok} železnice STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} políč{P ko ka ok} cesty @@ -3802,11 +3792,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Zmeniť STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Meno prezidenta STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Zmeniť meno prezidenta -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Kúpiť 25% podiel v spoločnosti -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Predať 25% podiel v spoločnosti -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Kúpiť 25% podiel v tejto spoločnosti. Shift+klik zobrazí odhadovanú cenu bez zakúpenia podielu. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Predať 25% podiel v tejto spoločnosti. Shift+klik zobrazí odhadovanú cenu bez predaja podielu. - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Názov spoločnosti STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Meno prezidenta STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Zadajte množstvo peňazí, ktoré chcete dať spoločnosti @@ -4834,9 +4819,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Nie je m STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nie je možné presunúť peniaze tejto spoločnosti... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Spoločnosť nie je možné kúpiť ... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nemôžete tu postaviť sídlo spoločnosti... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nemôžete kúpiť 25% podiel v tejto spoločnosti... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}25% podiel v tejto spoločnosti sa nedá predať ... -STR_ERROR_PROTECTED :{WHITE}S akciami tejto spoločnosti nie je zatiaľ možné obchodovať... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Nie je možné postaviť viac miest diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 2a1c0fdd81..646bcc76e2 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -1814,11 +1814,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Začetno leto: ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Dovoli kupovanje delnic od drugih podjetij: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Če je omogočeno, se lahko trguje z delnicami podjetij. Na voljo samo po določeni starosti podjetja. - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procent osnovnega dobička za plačilo v sklade: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procent prihodkov vložen v srednje sklade, ki omogoča več kontrole nad prihodki. @@ -3468,7 +3463,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} lad{P ja ji je ij} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Brez STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Vrednost podjetja: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% v lasti podjetja {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} kos{P "" a i ov} tirov STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} odsek{P "" a i ov} ceste @@ -3495,11 +3489,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Spremeni STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Direktorjevo ime STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Spremeni direktorjevo ime -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Kupi 25% delnic podjetja -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Prodaj 25% delnic podjetja -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Kupi 25% delnic tega podjetja. Shift+Klik prikaže predviden strošek brez nakupa delnic -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Prodaj 25% delnic tega podjetja. Shift+Klik prikaže predviden dobiček brez prodaje delnic - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Ime podjetja STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Direktorjevo ime @@ -4439,9 +4428,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Ni mogo STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Ni mogoča oddaja denarja, ki je izposojen od banke... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Ne moreš kupiti podjetja... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Ni mogoče zgraditi sedeža podjetja... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Ni mogoče kupiti 25% delnic tega podjetja... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Ni mogoče prodati 25% delnic tega podjetja... -STR_ERROR_PROTECTED :{WHITE}Podjetje še ni dovolj staro, da bi lahko trgovalo z lastnimi delnicami... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ni mogoče zgraditi mest diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index dcc5e7f1f9..e1832eaac3 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1800,13 +1800,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Suave STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Congelada -STR_CONFIG_SETTING_ALLOW_SHARES :Permitir comprar acciones de otras empresas: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Cuando se activa, permite comprar y vender acciones de empresas. Las acciones de una empresa solamente estarán disponibles cuando la empresa cumpla una edad determinada - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Edad mínima de una empresa para comerciar con sus acciones: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Edad mínima que tiene que tener una empresa para poder comprar y vender sus acciones. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaje del beneficio total a pagar en transferencias: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de los beneficios entregados a los transportes intermedios en sistemas de transferencias, dando un mayor control sobre el beneficio de cada vehículo @@ -3697,7 +3690,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} barco{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ninguno STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor de la empresa: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propiedad de {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestructura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} secci{P ón ones} de ferrocarril STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} secci{P ón ones} de carretera @@ -3726,11 +3718,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambia e STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nombre Presidente STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Cambia el nombre del presidente -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Comprar un 25% de sus acciones -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vender 25% de acciones -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Comprar un 25% de acciones de esta empresa. Mayús+clic muestra una estimación del precio sin comprar ninguna acción -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vender un 25% de acciones de esta empresa. Mayús+clic muestra una estimación del beneficio sin vender ninguna acción - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nombre Empresa STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nombre del Presidente STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Introduce la cantidad de dinero que quieres dar @@ -4755,9 +4742,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}No se pu STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}No se puede dar dinero a este empresa... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}No se puede comprar la empresa... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No puede construirse la sede de la empresa... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}No se puede comprar el 25% de acciones... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}No se puede vender el 25% de acciones... -STR_ERROR_PROTECTED :{WHITE}Esta empresa es demasiado reciente como para comerciar con acciones... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}No se puede construir ningún municipio diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 93491d79ed..0ad79981b2 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1800,13 +1800,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Estable STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Rígida -STR_CONFIG_SETTING_ALLOW_SHARES :Permitir compra de acciones de otras empresas: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Al activarse, se pueden comprar y vender las acciones de otras empresas, aunque solo estarán disponibles a partir de una edad determinada de las empresas - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Edad mínima de la empresa para intercambiar acciones: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Establecer la edad mínima que debe tener una empresa para que otros puedan comprarle y venderle acciones. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaje de la utilidad total a pagar por transferencias de carga: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de utilidad cedida a los transportes intermedios en sistemas de transferencia de carga, dando un mayor control sobre la utilidad de cada vehículo @@ -3698,7 +3691,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} barco{P "" s} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ninguno STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor de la empresa: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propiedad de {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestructura: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} tramo{P "" s} de vías férreas STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} tramo{P "" s} de carretera @@ -3727,11 +3719,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambiar STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nombre del gerente STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Cambiar el nombre del gerente -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Comprar un 25% de las acciones -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vender 25% de las acciones -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Comprar 25% de las acciones de esta empresa. Mayús+Clic muestra un precio estimado de compra -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vender 25% de las acciones de esta empresa. Mayús+Clic muestra el ingreso estimado sin vender ninguna acción - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nombre de la empresa STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nombre del gerente STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Cantidad de dinero a transferir @@ -4756,9 +4743,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}No se pu STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}No se puede transferir capital a esta empresa... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}No se puede comprar la empresa... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No se puede construir la sede de la empresa... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}No se puede comprar el 25% de acciones... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}No se puede vender el 25% de acciones... -STR_ERROR_PROTECTED :{WHITE}Esta empresa es muy reciente para comerciar con acciones... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}No se puede crear ninguna localidad diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 0662577c24..37d031e853 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1799,13 +1799,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Jämn STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Frusen -STR_CONFIG_SETTING_ALLOW_SHARES :Tillåt köp av aktier från andra företag: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :När det är aktiverat blir det tillåtet att köpa och sälja andelar i företag. För att dess andelar ska bli tillgängliga måste ett företag ha uppnått en viss ålder - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Lägsta företagsålder för aktiehandel: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Ställ in den lägsta ålder från vilken ett företags aktier kan köpas och säljas av andra företag. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Inkomstprocent per etapp i matarsystem: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procentandel av inkomsten som ges till de mellanliggande etapperna i matarsystem. Ger mer kontroll över inkomsterna @@ -3700,7 +3693,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} skepp STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Inga STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Företagets värde: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% ägs av {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infrastruktur STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} järnvägsbit{P "" ar} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} vägbit{P "" ar} @@ -3729,11 +3721,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Byt för STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Namn på VD STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Byt namn på VD:n -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Köp 25% andelar i företaget -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Sälj 25% andelar i företaget -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Köp 25% andelar i detta företag. Shift+klick visar kostnad utan att köpa -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Sälj 25% andelar i detta företag. Shift+klick visar inkomst utan att sälja - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Företagsnamn STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Namn på VD STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Ange hur mycket pengar du vill ge @@ -4760,9 +4747,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kan inte STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Kan ej ge pengar till detta företaget... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kan inte köpa företag... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kan inte bygga huvudkontor här... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kan inte köpa 25% andelar i detta företag... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kan inte sälja 25% andelar i detta företag... -STR_ERROR_PROTECTED :{WHITE}Det här företaget bedriver inte aktiehandel ännu... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kan inte bygga några städer diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index b80acf556e..cfb16b6411 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -1625,11 +1625,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE :பொருள ###length 3 STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :உறைந்த -STR_CONFIG_SETTING_ALLOW_SHARES :மற்ற நிறுவனங்களின் பங்குகளை வாங்குவதை அனுமதிக்கவும்: {STRING} - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :பங்குகள் பரிமாற்றத்திற்கு தேவையான குறைந்தபட்ச நிறுவன வயது: {STRING} -###setting-zero-is-special - STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :இழுத்தால், சிக்னல்களை இடவும், ஒவ்வொறு: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} கட்ட{P 0 "ம்" ங்கள்} @@ -3273,7 +3268,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} கப்பல்{P "" கள்} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}ஒன்றுமில்லை STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}நிறுவனத்தின் மதிப்பு: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% {COMPANY}) ஆல் இருப்பு வைக்கப்பட்டுள்ளது STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}கட்டுமானம்: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} இரயில் பாகம்{P "" கள்} STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} சாலை பாகம்{P "" கள்} @@ -3301,10 +3295,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}நி STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}மேலாளரின் பெயர் STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}மேலாளரின் பெயரை மாற்று -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}நிறுவனத்தின் 25% பங்கினை வாங்கவும் -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}நிறுவனத்தின் 25% பங்கினை விற்கவும் -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}இந்த நிறுவனத்திலுள்ள 25% பங்கை விற்கவும் . Shift+Click செய்தால் எந்த பங்கையும் விற்காமல் மதிப்பிடப்பட்ட வருமானத்தைக் காட்டும் - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :நிறுவனத்தின் பெயர் STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :மேலாளரின் பெயர் STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :நீங்கள் கொடுக்க விரும்பும் பணத்தை உள்ளிடவும் @@ -4257,9 +4247,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}வங STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}இந்த நிறுவனத்திற்கு பணத்தை வாரி வழங்க இயலாது ... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}நிறுவனத்தினை வாங்க இயலாது... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}நிறுவன தலைமையிடத்தினை கட்ட இயலாது... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}இந்த நிறுவனத்தின் 25 சதவிகித பங்குகளை வாங்க இயலாது... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}இந்த நிறுவனத்தின் 25 சதவிகித பங்குகளை விற்க இயலாது... -STR_ERROR_PROTECTED :{WHITE}பங்குகளை பரிமாற்றம் செய்யும் அளவிற்கு இந்த நிறுவனம் இன்னும் வளரவில்லை... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}எந்த நகரத்தினையும் கட்ட இயலாது diff --git a/src/lang/thai.txt b/src/lang/thai.txt index c1dd64f777..0174d95a1a 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -1679,11 +1679,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE :ประเภ STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT :หากเศรษฐกิจราบรื่นจะทำให้การผลิตสินค้ามีการเปลี่ยนแปลงตลอด ในทางกลับกัน หากเศรษฐกิจไม่กระเตื้องเลย อุตสาหกรรมต่างๆจะไม่มีการเปลี่ยนแปลงผลผลิตและอาจจะปิดไปในที่สุดได้ ซึ่งการตั้งค่านี้อาจไม่ส่งผลหากใช้ NewGRF ประเภทอุตสาหกรรมบางอัน ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :อนุญาตให้ซื้อหุ้นจากบริษัทอื่นได้: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :เมื่อเปิดการใช้งาน จะสามารถซื้่อชขายหุ้นระหว่างบริษัท จะสามารถซื้อขายหุ้นได้ต่อเมื่อบริษัทเปิดตัวมานานแล้วเท่านั้น - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :เปอเซนต์ของผลกำไรที่จะส่งเข้าสู่ระบบกระจายรายได้: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :เปอร์เซนต์ของรายได้ที่ส่งให้ฐานของระบบกระจายรายได้ ส่งผลต่อการควบคุมรายได้ทั้งหมด @@ -3403,7 +3398,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} พาหนะทางน้ำ STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}ไม่มี STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}ทรัพสินสุทธิ: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}(หุ้น {COMMA}% เป็นของ {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}โครงสร้างพื้นฐาน: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} ทางรถไฟ STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} ถนน @@ -3432,11 +3426,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}เป STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}ชื่อประธานบริษัท STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}เปลี่ยนชื่อประธานบริษัท -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}ซื้อหุ้น 25% -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}ขายหุ้น 25% -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}ซื้อหุ้น 25% จากบริษัทนี้ -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}ขายหุ้น 25% คืนให้บริษัทนี้ - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :ชื่อบริษัท STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :ชื่อประธานบริษัท @@ -4401,9 +4390,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}ไม STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}ไม่สามารถส่งเงินได้ นี่คือเงินกู้ที่มาจากธนาคาร... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}ไม่สามารถซื้อกิจการได้... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}ไม่สามารถสร้างสำนักงานได้... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}ไม่สามารถซื้อหุ้น 25% จากบริษัทนี้ได้... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}ไม่สามารถขายหุ้น 25% จากบริษัทนี้ได้... -STR_ERROR_PROTECTED :{WHITE}บริษัทนี้ยังไม่เก่าแก่พอที่จะซื้อหุ้นหรือซื้อกิจการได้... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}ไม่สามารถสร้างเมืองใดได้อีก diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 1d2f06cca9..84c7c9ccfb 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -1799,13 +1799,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :原版 STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :平滑 STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :凍結 -STR_CONFIG_SETTING_ALLOW_SHARES :允許購買其他公司的股票:{STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :啟用此選項以容許公司買賣股票。一所公司必須達到一定的年齡方能買賣股票。 - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :容許公司買賣股票的最小年齡:{STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :設定容許公司買賣股票的最小年齡。 -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :轉運服務所得的收入百分比:{STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :設定進行轉運的車輛在卸載被轉運的貨物時,獲得的收入佔貨物總收入的百分比。此選項讓玩家更有效地控制收入分配方式。 @@ -3700,7 +3693,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}飛機 { STR_COMPANY_VIEW_SHIPS :{WHITE}船舶 {COMMA} 艘 STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}無 STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}公司價值:{WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% 由 {COMPANY} 擁有) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}基礎建設: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} 鐵路區塊 STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} 道路區塊 @@ -3729,11 +3721,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}修改 STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}總經理姓名 STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}修改總經理姓名 -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}購買 25% 公司股份 -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}出售 25% 公司股份 -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}購入這所公司的 25% 股份。按住 Shift 點選以顯示預估的購買費用而不作購入 -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}出售這所公司的 25% 股份。按住 Shift 點選以顯示預估的出售所得而不賣出任何股份 - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :公司名稱 STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :總經理姓名 STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :輸入你要給予的金額 @@ -4760,9 +4747,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}無法 STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}無法將資金給予此公司... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}無法購買公司... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}無法興建公司總部... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}無法購買這間公司的股份... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}無法出售這間公司的股份... -STR_ERROR_PROTECTED :{WHITE}這間公司才剛成立,還不能交易股票... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}無法建立市鎮 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index aefade6202..1b03496a25 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1805,15 +1805,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Orijinal STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Pürüzsüz STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Donuk -STR_CONFIG_SETTING_ALLOW_SHARES :Diğer şirketlerin hisseleri alınabilsin: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Etkinleştirildiğinde, şirketlerin hisse senetlerinin alınıp satılması mümkün olur. Hisse senetleri sadece belli bir yaşa ulaşan şirketler için geçerlidir - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Hisse satmak için gerekli minimum şirket yaşı: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Bir şirketin hisselerinin satılabileceği ve diğer şirketlerin alabileceği minimum şirket yaşını belirleyin. -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} yıl{P ""} -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Minimum yok - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Besleme sistemlerinde, bölümlerden elde edilen kardan ödenecek yüzde: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Besleme sistemlerinde, sistemi oluşturan ara bölümlere verilen kar yüzdesi. Böylece kar miktarı üzerinde daha fazla kontrol elde edilmiş olur @@ -3714,7 +3705,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} gemi STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Yok STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Şirket değeri: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}(%{COMMA} ortağı {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Altyapı: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} ray parçası STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} yol parçası @@ -3743,11 +3733,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Şirket STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Müdür ismi STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Müdürün ismini değiştir -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}%25'ini satın al -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}%25'ini geri ver -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Şirketin %25 hissesini al. Shift+tıklama hisse satın almadan tahmini maliyeti gösterir -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Şirketin %25 hissesini sat. Shift+tıklama hisse satmadan tahmini maliyeti gösterir - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Şirketin ismi STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Yöneticinin ismi STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Vermek istediğin para miktarını gir @@ -4776,9 +4761,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Bankadan STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Bu şirkete para veremezsin... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Şirket satın alınamaz... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Şirket binasi yapılamaz... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Şirketin %25'i alınamıyor... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Şirketin %25'i satılamıyor... -STR_ERROR_PROTECTED :{WHITE}Bu şirket hisselerini satacak kadar eski değil... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Şehir kurulamaz diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index ec371ee0d6..ff3fb30a35 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1925,13 +1925,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Оригіна STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Плавно STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Заморожена -STR_CONFIG_SETTING_ALLOW_SHARES :Дозволити придбання акції інших компаній: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :При включенні дозволяє придбання та продаж акцій команій. Акції компанії стають доступними після досягнення деякого віку. - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Мінімальний вік компанії для торгівлі акціями: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Встановіть мінімальний вік компанії, щоб інші могли купувати та продавати акції у них. -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Відсоток прибутку за часткове перевезення: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Налаштування проценту прибутку, що нараховується за часткове перевезення вантажу. За допомогою даної опції можна контролювати розподіл прибутків між учасниками багатоланкових перевезень. @@ -3821,7 +3814,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} кораб{P ель лі лів} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Немає STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Вартість компанії: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% у власності {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Інфраструктура: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} клітин{P ка ки ок} з залізничними коліями STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} клітин{P ка ки ок} з дорогами @@ -3850,11 +3842,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Змін STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Ім'я керівника STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Перейменувати керівника -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Купити 25% акцій компанії -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Продати 25% акцій компанії -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Купити 25% акцій цієї компанії. Утримуйте Shift для показу вартості цих акцій -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Продати 25% акцій цієї компанії. Утримуйте Shift для показу вартості цих акцій - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Назва компанії STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Ім'я керівника STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Введіть суму грошей, яку бажаєте передати @@ -4881,9 +4868,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Немо STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Неможливо передати гроші цій компанії... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Неможливо купити компанію... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Неможливо збудувати Офіс... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Неможливо купити 25% акцій цієї компанії... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Неможливо продати 25% акцій цієї компанії... -STR_ERROR_PROTECTED :{WHITE}Ця компанія поки ще не продається... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Не можна створити місто diff --git a/src/lang/urdu.txt b/src/lang/urdu.txt index c83a03c6f8..145f8e3d61 100644 --- a/src/lang/urdu.txt +++ b/src/lang/urdu.txt @@ -1395,10 +1395,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :شروعاتی ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :دوسری کمپنیوں کے حصص خریدنے کی اجازت: {STRING} - -###setting-zero-is-special - STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :پہلے خودکار طریقے سے semaphores بنائیں: {STRING} @@ -2420,7 +2416,6 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}تفصی - # Company infrastructure window STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}ریل کے ٹکڑے STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}اشارے diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 0477944982..818a70aa22 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1800,15 +1800,6 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Nguyên gốc STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Vận hành trơn tru STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Đóng băng -STR_CONFIG_SETTING_ALLOW_SHARES :Cho phép mua cổ phần của các công ty khác: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Nếu bật, cho phép mua và bán cổ phần công ty. Cổ phần chỉ có thể mua bán nếu công ty đã tồn tại một thời gian nhất định nào đó - -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Tuổi công ty tối thiểu để bán cổ phần: {STRING} -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Đặt số tuổi tối thiểu của công ty để cho các bên khác có thể mua và bán cổ phần -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} năm -###setting-zero-is-special -STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Không có tuổi tối thiểu - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Tỉ lệ lợi tức cổ phiếu chi trả cho môi giới: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Tỉ lệ thu nhập cho mỗi trung gian trên hệ thống vận tải, cho phép điều chỉnh thu nhập @@ -3709,7 +3700,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} tàu thuỷ STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Không STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Giá trị công ty: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% cổ phần sở hữu bởi {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Hạ tầng: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} ô đường ray STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} ô đường bộ @@ -3738,11 +3728,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Đổi t STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Tên giám đốc STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Đổi tên giám đốc -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Mua 25% cổ phần công ty -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Bán 25% cổ phần công ty -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Mua 25% cổ phần công ty này. Shift+Click để xem giá mua ước tính khi chưa mua -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Bán 25% cổ phần công ty này. Shift+Click để xem giá bán ước tính khi chưa bán - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Tên Công Ty STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Tên Giám Đốc STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Nhập số tiền bạn muốn tặng @@ -4771,9 +4756,6 @@ STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Không t STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Không thể tặng tiền cho công ty này... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Không mua được công ty... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Không thể xây trụ sở công ty... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Không thể mua 25% cổ phần của công ty này... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Không thể bán 25% cổ phần của công ty này... -STR_ERROR_PROTECTED :{WHITE}Công ty này chưa tồn tại đủ lâu để mua bán cổ phần... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Không thể xây thêm đô thị diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index b615414410..5f4a36dd0a 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -1662,11 +1662,6 @@ STR_CONFIG_SETTING_STARTING_YEAR :Blwyddyn dechre ###length 3 -STR_CONFIG_SETTING_ALLOW_SHARES :Caniatáu prynu cyfranddaliadau mewn cwmnïau eraill: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Pan fo wedi'i alluogi, fe ganiateir prynnu a gwerthu cyfrandalaidau cwmni. Rhaid i gwmni gyrraedd oed penodol cyn y daw eu cyfrandaliadau ar gael - -###setting-zero-is-special - STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Canran elw y cymal i'w dalu mewn systemau trosglwyddo: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Y canran o elw a ddyfarnir i'r cymalau rhyngol mewn systemau trosglwyddo, gan rhoi fwy o reolaeth dros yr elw @@ -3318,7 +3313,6 @@ STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} llong STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Dim STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Gwerth cwmni: {WHITE}{CURRENCY_LONG} -STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% yn eiddo {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Tanadeiledd: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} darn{P "" au} rheilffordd STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} darn{P "" au} ffordd @@ -3346,11 +3340,6 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Newid en STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Enw Rheolwr STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Newid enw'r rheolwr -STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Prynu cyfran o 25% o'r cwmni -STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Gwerthu cyfran o 25% o'r cwmni -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}Prynu cyfran o 25% yn y cwmni yma. Mae Shift+Clic yn dangos amcangyfrif o'r gost heb brynnu cyfran -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Gwerthu cyfran o 25% yn y cwmni yma. Mae Shift+Clic yn dangos amcangyfrif o'r elw heb werthu cyfran - STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Enw Cwmni STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Enw Rheolwr @@ -4306,9 +4295,6 @@ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Does dim STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Does dim modd rhoi arian sydd wedi ei fenthyg gan y banc i ffwrdd... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Methu prynu cwmni... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Methu adeiladu pencadlys cwmni... -STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Methu prynu cyfran o 25% o'r cwmni hwn... -STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Methu gwerthu cyfran o 25% o'r cwmni ... -STR_ERROR_PROTECTED :{WHITE}Nid yw'r cwmni hwn yn ddigon da ar gyfer cyfnewid cyfrandaliadau eto... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Methu adeiladu unrhyw drefi From 73bdd4bdd7ed0f0a96873536e0afd1c59f2f8f6b Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 29 Apr 2023 21:59:01 +0200 Subject: [PATCH 14/31] Fix: [CI] typo in Windows release jobname (#10742) --- .github/workflows/release-windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-windows.yml b/.github/workflows/release-windows.yml index dd51b12734..391599ad7d 100644 --- a/.github/workflows/release-windows.yml +++ b/.github/workflows/release-windows.yml @@ -20,7 +20,7 @@ jobs: - arch: arm64 host: x64_arm64 - name: Windows (${{ matrix.arch }}}) + name: Windows (${{ matrix.arch }}) runs-on: windows-latest From ee9239d2934b80b5368ec93774c7484ebed21dfd Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sat, 29 Apr 2023 23:51:39 +0200 Subject: [PATCH 15/31] Fix c8299304: retain support ICU < 65 --- src/string.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/string.cpp b/src/string.cpp index 42a51ec88a..55a7ad4ced 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -790,7 +790,7 @@ int StrNaturalCompare(std::string_view s1, std::string_view s2, bool ignore_garb #ifdef WITH_ICU_I18N if (_current_collator) { UErrorCode status = U_ZERO_ERROR; - int result = _current_collator->compareUTF8(s1, s2, status); + int result = _current_collator->compareUTF8(icu::StringPiece(s1.data(), s1.size()), icu::StringPiece(s2.data(), s2.size()), status); if (U_SUCCESS(status)) return result; } #endif /* WITH_ICU_I18N */ From ba3de0383ac69eb41d28984f1d6d0e980b65160c Mon Sep 17 00:00:00 2001 From: Tyler Trahan Date: Sun, 30 Apr 2023 04:23:05 -0400 Subject: [PATCH 16/31] Codechange: Pass more std::string to StringFilter::AddLine() (#10743) --- src/industry.h | 4 ++-- src/network/network_content_gui.cpp | 4 ++-- src/network/network_gui.cpp | 2 +- src/object_gui.cpp | 4 +--- src/rail_gui.cpp | 5 +---- src/road_gui.cpp | 5 +---- src/stringfilter.cpp | 17 ++++++++++++++--- src/stringfilter_type.h | 1 + src/strings.cpp | 4 ++-- src/town.h | 6 +++--- 10 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/industry.h b/src/industry.h index ba276589b7..9574fc5f38 100644 --- a/src/industry.h +++ b/src/industry.h @@ -184,10 +184,10 @@ struct Industry : IndustryPool::PoolItem<&_industry_pool> { memset(&counts, 0, sizeof(counts)); } - inline const char *GetCachedName() const + inline const std::string &GetCachedName() const { if (this->cached_name.empty()) this->FillCachedName(); - return this->cached_name.c_str(); + return this->cached_name; } private: diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index c19d5e4501..dcafc80112 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -467,9 +467,9 @@ class NetworkContentListWindow : public Window, ContentCallback { static bool CDECL TagNameFilter(const ContentInfo * const *a, ContentListFilterData &filter) { filter.string_filter.ResetState(); - for (auto &tag : (*a)->tags) filter.string_filter.AddLine(tag.c_str()); + for (auto &tag : (*a)->tags) filter.string_filter.AddLine(tag); - filter.string_filter.AddLine((*a)->name.c_str()); + filter.string_filter.AddLine((*a)->name); return filter.string_filter.GetState(); } diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 209c41f144..3e29c0dcd7 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -379,7 +379,7 @@ protected: assert((*item) != nullptr); sf.ResetState(); - sf.AddLine((*item)->info.server_name.c_str()); + sf.AddLine((*item)->info.server_name); return sf.GetState(); } diff --git a/src/object_gui.cpp b/src/object_gui.cpp index db4f14f144..a644becaa6 100644 --- a/src/object_gui.cpp +++ b/src/object_gui.cpp @@ -142,11 +142,9 @@ public: static bool CDECL TagNameFilter(ObjectClassID const *oc, StringFilter &filter) { ObjectClass *objclass = ObjectClass::Get(*oc); - char buffer[DRAW_STRING_BUFFER]; - GetString(buffer, objclass->name, lastof(buffer)); filter.ResetState(); - filter.AddLine(buffer); + filter.AddLine(GetString(objclass->name)); return filter.GetState(); } diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 885fb80c8e..24a4a89249 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -1046,11 +1046,8 @@ public: /** Filter station classes by class name. */ static bool CDECL TagNameFilter(StationClassID const * sc, StringFilter &filter) { - char buffer[DRAW_STRING_BUFFER]; - GetString(buffer, StationClass::Get(*sc)->name, lastof(buffer)); - filter.ResetState(); - filter.AddLine(buffer); + filter.AddLine(GetString(StationClass::Get(*sc)->name)); return filter.GetState(); } diff --git a/src/road_gui.cpp b/src/road_gui.cpp index f46679994e..50660c277b 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -1249,11 +1249,8 @@ public: /** Filter classes by class name. */ static bool CDECL TagNameFilter(RoadStopClassID const *sc, StringFilter &filter) { - char buffer[DRAW_STRING_BUFFER]; - GetString(buffer, RoadStopClass::Get(*sc)->name, lastof(buffer)); - filter.ResetState(); - filter.AddLine(buffer); + filter.AddLine(GetString(RoadStopClass::Get(*sc)->name)); return filter.GetState(); } diff --git a/src/stringfilter.cpp b/src/stringfilter.cpp index 28a12eab2c..d15bbcde76 100644 --- a/src/stringfilter.cpp +++ b/src/stringfilter.cpp @@ -117,6 +117,19 @@ void StringFilter::AddLine(const char *str) } } +/** + * Pass another text line from the current item to the filter. + * + * You can call this multiple times for a single item, if the filter shall apply to multiple things. + * Before processing the next item you have to call ResetState(). + * + * @param str Another line from the item. + */ +void StringFilter::AddLine(const std::string &str) +{ + AddLine(str.c_str()); +} + /** * Pass another text line from the current item to the filter. * @@ -127,7 +140,5 @@ void StringFilter::AddLine(const char *str) */ void StringFilter::AddLine(StringID str) { - char buffer[DRAW_STRING_BUFFER]; - GetString(buffer, str, lastof(buffer)); - AddLine(buffer); + AddLine(GetString(str)); } diff --git a/src/stringfilter_type.h b/src/stringfilter_type.h index 92db480a6f..68b359c9d5 100644 --- a/src/stringfilter_type.h +++ b/src/stringfilter_type.h @@ -60,6 +60,7 @@ public: void ResetState(); void AddLine(const char *str); + void AddLine(const std::string &str); void AddLine(StringID str); /** diff --git a/src/strings.cpp b/src/strings.cpp index 33dea74511..9b24703fbf 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -1458,7 +1458,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg static bool use_cache = true; if (use_cache) { // Use cached version if first call AutoRestoreBackup cache_backup(use_cache, false); - buff = strecpy(buff, i->GetCachedName(), last); + buff = strecpy(buff, i->GetCachedName().c_str(), last); } else if (_scan_for_gender_data) { /* Gender is defined by the industry type. * STR_FORMAT_INDUSTRY_NAME may have the town first, so it would result in the gender of the town name */ @@ -1541,7 +1541,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg static bool use_cache = true; if (use_cache) { // Use cached version if first call AutoRestoreBackup cache_backup(use_cache, false); - buff = strecpy(buff, t->GetCachedName(), last); + buff = strecpy(buff, t->GetCachedName().c_str(), last); } else if (!t->name.empty()) { int64 args_array[] = {(int64)(size_t)t->name.c_str()}; StringParameters tmp_params(args_array); diff --git a/src/town.h b/src/town.h index 6b24178f03..0a9711a45d 100644 --- a/src/town.h +++ b/src/town.h @@ -125,11 +125,11 @@ struct Town : TownPool::PoolItem<&_town_pool> { void UpdateVirtCoord(); - inline const char *GetCachedName() const + inline const std::string &GetCachedName() const { - if (!this->name.empty()) return this->name.c_str(); + if (!this->name.empty()) return this->name; if (this->cached_name.empty()) this->FillCachedName(); - return this->cached_name.c_str(); + return this->cached_name; } static inline Town *GetByTile(TileIndex tile) From 35ba49bfb429a9e730837cbe64de61d6b258f34c Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 28 Apr 2023 17:59:14 +0100 Subject: [PATCH 17/31] Change: Rename text colour NWidgetPart to SetTextStyle and add font size. This allows to set both text colour and size for any widget with default drawing. --- src/company_gui.cpp | 24 ++++++++--------- src/genworld_gui.cpp | 2 +- src/news_gui.cpp | 2 +- src/widget.cpp | 64 +++++++++++++++++++++++++------------------- src/widget_type.h | 20 ++++++++------ src/window_gui.h | 2 +- 6 files changed, 63 insertions(+), 51 deletions(-) diff --git a/src/company_gui.cpp b/src/company_gui.cpp index f30d3701df..986e0b60a1 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -1280,81 +1280,81 @@ static const NWidgetPart _nested_select_company_manager_face_widgets[] = { NWidget(NWID_SPACER), SetMinimalSize(0, 4), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_HAS_MOUSTACHE_EARRING_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_EYECOLOUR, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_EYECOLOUR, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_HAS_MOUSTACHE_EARRING), SetDataTip(STR_WHITE_STRING, STR_FACE_MOUSTACHE_EARRING_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_HAS_GLASSES_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_GLASSES, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_GLASSES, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_HAS_GLASSES), SetDataTip(STR_WHITE_STRING, STR_FACE_GLASSES_TOOLTIP), EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 2), SetFill(1, 0), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_HAIR_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_HAIR, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_HAIR, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_HAIR_L), SetDataTip(AWV_DECREASE, STR_FACE_HAIR_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_HAIR), SetDataTip(STR_WHITE_STRING, STR_FACE_HAIR_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_HAIR_R), SetDataTip(AWV_INCREASE, STR_FACE_HAIR_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_EYEBROWS_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_EYEBROWS, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_EYEBROWS, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYEBROWS_L), SetDataTip(AWV_DECREASE, STR_FACE_EYEBROWS_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_EYEBROWS), SetDataTip(STR_WHITE_STRING, STR_FACE_EYEBROWS_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYEBROWS_R), SetDataTip(AWV_INCREASE, STR_FACE_EYEBROWS_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_EYECOLOUR_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_EYECOLOUR, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_EYECOLOUR, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR_L), SetDataTip(AWV_DECREASE, STR_FACE_EYECOLOUR_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR), SetDataTip(STR_WHITE_STRING, STR_FACE_EYECOLOUR_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR_R), SetDataTip(AWV_INCREASE, STR_FACE_EYECOLOUR_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_GLASSES_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_GLASSES, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_GLASSES, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_GLASSES_L), SetDataTip(AWV_DECREASE, STR_FACE_GLASSES_TOOLTIP_2), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_GLASSES), SetDataTip(STR_WHITE_STRING, STR_FACE_GLASSES_TOOLTIP_2), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_GLASSES_R), SetDataTip(AWV_INCREASE, STR_FACE_GLASSES_TOOLTIP_2), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_NOSE_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_NOSE, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_NOSE, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_NOSE_L), SetDataTip(AWV_DECREASE, STR_FACE_NOSE_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_NOSE), SetDataTip(STR_WHITE_STRING, STR_FACE_NOSE_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_NOSE_R), SetDataTip(AWV_INCREASE, STR_FACE_NOSE_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_LIPS_MOUSTACHE_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_MOUSTACHE, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_MOUSTACHE, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE_L), SetDataTip(AWV_DECREASE, STR_FACE_LIPS_MOUSTACHE_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE), SetDataTip(STR_WHITE_STRING, STR_FACE_LIPS_MOUSTACHE_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE_R), SetDataTip(AWV_INCREASE, STR_FACE_LIPS_MOUSTACHE_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_CHIN_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_CHIN, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_CHIN, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_CHIN_L), SetDataTip(AWV_DECREASE, STR_FACE_CHIN_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_CHIN), SetDataTip(STR_WHITE_STRING, STR_FACE_CHIN_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_CHIN_R), SetDataTip(AWV_INCREASE, STR_FACE_CHIN_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_JACKET_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_JACKET, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_JACKET, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_JACKET_L), SetDataTip(AWV_DECREASE, STR_FACE_JACKET_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_JACKET), SetDataTip(STR_WHITE_STRING, STR_FACE_JACKET_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_JACKET_R), SetDataTip(AWV_INCREASE, STR_FACE_JACKET_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_COLLAR_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_COLLAR, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_COLLAR, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_COLLAR_L), SetDataTip(AWV_DECREASE, STR_FACE_COLLAR_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_COLLAR), SetDataTip(STR_WHITE_STRING, STR_FACE_COLLAR_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_COLLAR_R), SetDataTip(AWV_INCREASE, STR_FACE_COLLAR_TOOLTIP), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, INVALID_COLOUR, WID_SCMF_TIE_EARRING_TEXT), SetFill(1, 0), SetPadding(WidgetDimensions::unscaled.framerect), - SetDataTip(STR_FACE_EARRING, STR_NULL), SetTextColour(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), + SetDataTip(STR_FACE_EARRING, STR_NULL), SetTextStyle(TC_GOLD), SetAlignment(SA_VERT_CENTER | SA_RIGHT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING_L), SetDataTip(AWV_DECREASE, STR_FACE_TIE_EARRING_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING), SetDataTip(STR_WHITE_STRING, STR_FACE_TIE_EARRING_TOOLTIP), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING_R), SetDataTip(AWV_INCREASE, STR_FACE_TIE_EARRING_TOOLTIP), diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 2374ef635b..306d073abd 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -245,7 +245,7 @@ static const NWidgetPart _nested_heightmap_load_widgets[] = { EndContainer(), /* All other columns. */ NWidget(NWID_VERTICAL), SetPIP(0, 4, 0), - NWidget(WWT_TEXT, COLOUR_ORANGE, WID_GL_HEIGHTMAP_NAME_TEXT), SetTextColour(TC_ORANGE), SetDataTip(STR_JUST_RAW_STRING, STR_EMPTY), SetFill(1, 0), + NWidget(WWT_TEXT, COLOUR_ORANGE, WID_GL_HEIGHTMAP_NAME_TEXT), SetTextStyle(TC_ORANGE), SetDataTip(STR_JUST_RAW_STRING, STR_EMPTY), SetFill(1, 0), NWidget(NWID_HORIZONTAL), SetPIP(0, 5, 0), /* Left half widgets (global column 2) */ NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0), diff --git a/src/news_gui.cpp b/src/news_gui.cpp index 18d73ac9d9..a82d5a0a22 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -422,7 +422,7 @@ struct NewsWindow : Window { { switch (widget) { case WID_N_CAPTION: - DrawCaption(r, COLOUR_LIGHT_BLUE, this->owner, TC_FROMSTRING, STR_NEWS_MESSAGE_CAPTION, SA_CENTER); + DrawCaption(r, COLOUR_LIGHT_BLUE, this->owner, TC_FROMSTRING, STR_NEWS_MESSAGE_CAPTION, SA_CENTER, FS_NORMAL); break; case WID_N_PANEL: diff --git a/src/widget.cpp b/src/widget.cpp index 796291cde5..1e013a6d44 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -486,15 +486,16 @@ static inline void DrawImageButtons(const Rect &r, WidgetType type, Colours colo * @param colour Colour of the text. * @param str Text to draw. * @param align Alignment of the text. + * @param fs Font size of the text. */ -static inline void DrawLabel(const Rect &r, WidgetType type, bool clicked, TextColour colour, StringID str, StringAlignment align) +static inline void DrawLabel(const Rect &r, WidgetType type, bool clicked, TextColour colour, StringID str, StringAlignment align, FontSize fs) { if (str == STR_NULL) return; if ((type & WWT_MASK) == WWT_TEXTBTN_2 && clicked) str++; - Dimension d = GetStringBoundingBox(str); + Dimension d = GetStringBoundingBox(str, fs); Point p = GetAlignedPosition(r, d, align); int o = clicked ? WidgetDimensions::scaled.pressed : 0; - DrawString(r.left + o, r.right + o, p.y + o, str, colour, align); + DrawString(r.left + o, r.right + o, p.y + o, str, colour, align, false, fs); } /** @@ -503,12 +504,13 @@ static inline void DrawLabel(const Rect &r, WidgetType type, bool clicked, TextC * @param colour Colour of the text. * @param str Text to draw. * @param align Alignment of the text. + * @param fs Font size of the text. */ -static inline void DrawText(const Rect &r, TextColour colour, StringID str, StringAlignment align) +static inline void DrawText(const Rect &r, TextColour colour, StringID str, StringAlignment align, FontSize fs) { - Dimension d = GetStringBoundingBox(str); + Dimension d = GetStringBoundingBox(str, fs); Point p = GetAlignedPosition(r, d, align); - if (str != STR_NULL) DrawString(r.left, r.right, p.y, str, colour, align); + if (str != STR_NULL) DrawString(r.left, r.right, p.y, str, colour, align, fs); } /** @@ -518,11 +520,12 @@ static inline void DrawText(const Rect &r, TextColour colour, StringID str, Stri * @param text_colour Colour of the text. * @param str Text to draw. * @param align Alignment of the text. + * @param fs Font size of the text. */ -static inline void DrawInset(const Rect &r, Colours colour, TextColour text_colour, StringID str, StringAlignment align) +static inline void DrawInset(const Rect &r, Colours colour, TextColour text_colour, StringID str, StringAlignment align, FontSize fs) { DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, FR_LOWERED | FR_DARKENED); - if (str != STR_NULL) DrawString(r.Shrink(WidgetDimensions::scaled.inset), str, text_colour, align); + if (str != STR_NULL) DrawString(r.Shrink(WidgetDimensions::scaled.inset), str, text_colour, align, false, fs); } /** @@ -672,12 +675,13 @@ static inline void DrawHorizontalScrollbar(const Rect &r, Colours colour, bool l * @param text_colour Colour of the text. * @param str Text of the frame. * @param align Alignment of the text in the frame. + * @param fs Font size of the text. */ -static inline void DrawFrame(const Rect &r, Colours colour, TextColour text_colour, StringID str, StringAlignment align) +static inline void DrawFrame(const Rect &r, Colours colour, TextColour text_colour, StringID str, StringAlignment align, FontSize fs) { int x2 = r.left; // by default the left side is the left side of the widget - if (str != STR_NULL) x2 = DrawString(r.left + WidgetDimensions::scaled.frametext.left, r.right - WidgetDimensions::scaled.frametext.right, r.top, str, text_colour, align); + if (str != STR_NULL) x2 = DrawString(r.left + WidgetDimensions::scaled.frametext.left, r.right - WidgetDimensions::scaled.frametext.right, r.top, str, text_colour, align, false, fs); int c1 = _colour_gradient[colour][3]; int c2 = _colour_gradient[colour][7]; @@ -801,8 +805,9 @@ static inline void DrawCloseBox(const Rect &r, Colours colour) * @param text_colour Colour of the text. * @param str Text to draw in the bar. * @param align Alignment of the text. + * @param fs Font size of the text. */ -void DrawCaption(const Rect &r, Colours colour, Owner owner, TextColour text_colour, StringID str, StringAlignment align) +void DrawCaption(const Rect &r, Colours colour, Owner owner, TextColour text_colour, StringID str, StringAlignment align, FontSize fs) { bool company_owned = owner < MAX_COMPANIES; @@ -817,7 +822,7 @@ void DrawCaption(const Rect &r, Colours colour, Owner owner, TextColour text_col if (str != STR_NULL) { Dimension d = GetStringBoundingBox(str); Point p = GetAlignedPosition(r, d, align); - DrawString(r.left + WidgetDimensions::scaled.captiontext.left, r.right - WidgetDimensions::scaled.captiontext.left, p.y, str, text_colour, align); + DrawString(r.left + WidgetDimensions::scaled.captiontext.left, r.right - WidgetDimensions::scaled.captiontext.left, p.y, str, text_colour, align, false, fs); } } @@ -1168,6 +1173,7 @@ NWidgetCore::NWidgetCore(WidgetType tp, Colours colour, uint fill_x, uint fill_y this->tool_tip = tool_tip; this->scrollbar_index = -1; this->text_colour = TC_BLACK; + this->text_size = FS_NORMAL; this->align = SA_CENTER; } @@ -1193,12 +1199,14 @@ void NWidgetCore::SetDataTip(uint32 widget_data, StringID tool_tip) } /** - * Set the text colour of the nested widget. + * Set the text style of the nested widget. * @param colour TextColour to use. + * @param size Font size to use. */ -void NWidgetCore::SetTextColour(TextColour colour) +void NWidgetCore::SetTextStyle(TextColour colour, FontSize size) { this->text_colour = colour; + this->text_size = size; } /** @@ -2175,7 +2183,7 @@ void NWidgetBackground::SetupSmallestSize(Window *w, bool init_array) this->smallest_y += this->child->padding.Vertical(); if (this->index >= 0) w->SetStringParameters(this->index); - this->smallest_x = std::max(this->smallest_x, GetStringBoundingBox(this->widget_data).width + WidgetDimensions::scaled.frametext.Horizontal()); + this->smallest_x = std::max(this->smallest_x, GetStringBoundingBox(this->widget_data, this->text_size).width + WidgetDimensions::scaled.frametext.Horizontal()); } else if (this->type == WWT_INSET) { /* Apply automatic padding for bevel thickness. */ this->child->padding = WidgetDimensions::scaled.bevel; @@ -2190,7 +2198,7 @@ void NWidgetBackground::SetupSmallestSize(Window *w, bool init_array) if (w != nullptr) { // A non-nullptr window pointer acts as switch to turn dynamic widget size on. if (this->type == WWT_FRAME || this->type == WWT_INSET) { if (this->index >= 0) w->SetStringParameters(this->index); - Dimension background = GetStringBoundingBox(this->widget_data); + Dimension background = GetStringBoundingBox(this->widget_data, this->text_size); background.width += (this->type == WWT_FRAME) ? (WidgetDimensions::scaled.frametext.Horizontal()) : (WidgetDimensions::scaled.inset.Horizontal()); d = maxdim(d, background); } @@ -2249,12 +2257,12 @@ void NWidgetBackground::Draw(const Window *w) case WWT_FRAME: if (this->index >= 0) w->SetStringParameters(this->index); - DrawFrame(r, this->colour, this->text_colour, this->widget_data, this->align); + DrawFrame(r, this->colour, this->text_colour, this->widget_data, this->align, this->text_size); break; case WWT_INSET: if (this->index >= 0) w->SetStringParameters(this->index); - DrawInset(r, this->colour, this->text_colour, this->widget_data, this->align); + DrawInset(r, this->colour, this->text_colour, this->widget_data, this->align, this->text_size); break; default: @@ -2793,7 +2801,7 @@ void NWidgetLeaf::SetupSmallestSize(Window *w, bool init_array) case WWT_TEXTBTN_2: { padding = {WidgetDimensions::scaled.framerect.Horizontal(), WidgetDimensions::scaled.framerect.Vertical()}; if (this->index >= 0) w->SetStringParameters(this->index); - Dimension d2 = GetStringBoundingBox(this->widget_data); + Dimension d2 = GetStringBoundingBox(this->widget_data, this->text_size); d2.width += padding.width; d2.height += padding.height; size = maxdim(size, d2); @@ -2802,13 +2810,13 @@ void NWidgetLeaf::SetupSmallestSize(Window *w, bool init_array) case WWT_LABEL: case WWT_TEXT: { if (this->index >= 0) w->SetStringParameters(this->index); - size = maxdim(size, GetStringBoundingBox(this->widget_data)); + size = maxdim(size, GetStringBoundingBox(this->widget_data, this->text_size)); break; } case WWT_CAPTION: { padding = {WidgetDimensions::scaled.captiontext.Horizontal(), WidgetDimensions::scaled.captiontext.Vertical()}; if (this->index >= 0) w->SetStringParameters(this->index); - Dimension d2 = GetStringBoundingBox(this->widget_data); + Dimension d2 = GetStringBoundingBox(this->widget_data, this->text_size); d2.width += padding.width; d2.height += padding.height; size = maxdim(size, d2); @@ -2824,7 +2832,7 @@ void NWidgetLeaf::SetupSmallestSize(Window *w, bool init_array) } padding = {WidgetDimensions::scaled.dropdowntext.Horizontal() + NWidgetLeaf::dropdown_dimension.width + WidgetDimensions::scaled.fullbevel.Horizontal(), WidgetDimensions::scaled.dropdowntext.Vertical()}; if (this->index >= 0) w->SetStringParameters(this->index); - Dimension d2 = GetStringBoundingBox(this->widget_data); + Dimension d2 = GetStringBoundingBox(this->widget_data, this->text_size); d2.width += padding.width; d2.height = std::max(d2.height + padding.height, NWidgetLeaf::dropdown_dimension.height); size = maxdim(size, d2); @@ -2881,7 +2889,7 @@ void NWidgetLeaf::Draw(const Window *w) case WWT_TEXTBTN_2: if (this->index >= 0) w->SetStringParameters(this->index); DrawFrameRect(r.left, r.top, r.right, r.bottom, this->colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawLabel(r, this->type, clicked, this->text_colour, this->widget_data, this->align); + DrawLabel(r, this->type, clicked, this->text_colour, this->widget_data, this->align, this->text_size); break; case WWT_ARROWBTN: @@ -2900,12 +2908,12 @@ void NWidgetLeaf::Draw(const Window *w) case WWT_LABEL: if (this->index >= 0) w->SetStringParameters(this->index); - DrawLabel(r, this->type, clicked, this->text_colour, this->widget_data, this->align); + DrawLabel(r, this->type, clicked, this->text_colour, this->widget_data, this->align, this->text_size); break; case WWT_TEXT: if (this->index >= 0) w->SetStringParameters(this->index); - DrawText(r, this->text_colour, this->widget_data, this->align); + DrawText(r, this->text_colour, this->widget_data, this->align, this->text_size); break; case WWT_MATRIX: @@ -2920,7 +2928,7 @@ void NWidgetLeaf::Draw(const Window *w) case WWT_CAPTION: if (this->index >= 0) w->SetStringParameters(this->index); - DrawCaption(r, this->colour, w->owner, this->text_colour, this->widget_data, this->align); + DrawCaption(r, this->colour, w->owner, this->text_colour, this->widget_data, this->align, this->text_size); break; case WWT_SHADEBOX: @@ -3096,10 +3104,10 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, break; } - case WPT_TEXTCOLOUR: { + case WPT_TEXTSTYLE: { NWidgetCore *nwc = dynamic_cast(*dest); if (nwc != nullptr) { - nwc->SetTextColour(parts->u.colour.colour); + nwc->SetTextStyle(parts->u.text_style.colour, parts->u.text_style.size); } break; } diff --git a/src/widget_type.h b/src/widget_type.h index 0133bc5174..7643537aa5 100644 --- a/src/widget_type.h +++ b/src/widget_type.h @@ -89,7 +89,7 @@ enum WidgetType { WPT_DATATIP, ///< Widget part for specifying data and tooltip. WPT_PADDING, ///< Widget part for specifying a padding. WPT_PIPSPACE, ///< Widget part for specifying pre/inter/post space for containers. - WPT_TEXTCOLOUR, ///< Widget part for specifying text colour. + WPT_TEXTSTYLE, ///< Widget part for specifying text colour. WPT_ALIGNMENT, ///< Widget part for specifying text/image alignment. WPT_ENDCONTAINER, ///< Widget part to denote end of a container. WPT_FUNCTION, ///< Widget part for calling a user function. @@ -320,7 +320,7 @@ public: void SetIndex(int index); void SetDataTip(uint32 widget_data, StringID tool_tip); void SetToolTip(StringID tool_tip); - void SetTextColour(TextColour colour); + void SetTextStyle(TextColour colour, FontSize size); void SetAlignment(StringAlignment align); inline void SetLowered(bool lowered); @@ -342,6 +342,7 @@ public: int scrollbar_index; ///< Index of an attached scrollbar. TextColour highlight_colour; ///< Colour of highlight. TextColour text_colour; ///< Colour of text within widget. + FontSize text_size; ///< Size of text within widget. StringAlignment align; ///< Alignment of text/image within widget. }; @@ -948,8 +949,9 @@ struct NWidgetPartTextLines { * Widget part for storing text colour. * @ingroup NestedWidgetParts */ -struct NWidgetPartTextColour { +struct NWidgetPartTextStyle { TextColour colour; ///< TextColour for DrawString. + FontSize size; ///< Font size of text. }; /** @@ -981,7 +983,7 @@ struct NWidgetPart { NWidgetPartPaddings padding; ///< Part with paddings. NWidgetPartPIP pip; ///< Part with pre/inter/post spaces. NWidgetPartTextLines text_lines; ///< Part with text line data. - NWidgetPartTextColour colour; ///< Part with text colour data. + NWidgetPartTextStyle text_style; ///< Part with text style data. NWidgetPartAlignment align; ///< Part with internal alignment. NWidgetFunctionType *func_ptr; ///< Part with a function call. NWidContainerFlags cont_flags; ///< Part with container flags. @@ -1042,16 +1044,18 @@ static inline NWidgetPart SetMinimalTextLines(uint8 lines, uint8 spacing, FontSi } /** - * Widget part function for setting the text colour. + * Widget part function for setting the text style. * @param colour Colour to draw string within widget. + * @param size Font size to draw string within widget. * @ingroup NestedWidgetParts */ -static inline NWidgetPart SetTextColour(TextColour colour) +static inline NWidgetPart SetTextStyle(TextColour colour, FontSize size = FS_NORMAL) { NWidgetPart part; - part.type = WPT_TEXTCOLOUR; - part.u.colour.colour = colour; + part.type = WPT_TEXTSTYLE; + part.u.text_style.colour = colour; + part.u.text_style.size = size; return part; } diff --git a/src/window_gui.h b/src/window_gui.h index c94af5d84b..cf9f542cff 100644 --- a/src/window_gui.h +++ b/src/window_gui.h @@ -76,7 +76,7 @@ static inline void DrawFrameRect(const Rect &r, Colours colour, FrameFlags flags DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, flags); } -void DrawCaption(const Rect &r, Colours colour, Owner owner, TextColour text_colour, StringID str, StringAlignment align); +void DrawCaption(const Rect &r, Colours colour, Owner owner, TextColour text_colour, StringID str, StringAlignment align, FontSize fs); /* window.cpp */ using WindowList = std::list; From 6be6703498d77f0c35101564c1029a0fde05d6c9 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 28 Apr 2023 17:59:16 +0100 Subject: [PATCH 18/31] Fix: Linkgraph legend assumes strings are small. Ensure all linkgraph legend strings are drawn with FS_SMALL forced, so that it does not rely on NewGRF authors. --- src/linkgraph/linkgraph_gui.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index bf8e21ef7d..bc8ca69175 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -590,7 +590,7 @@ void LinkGraphLegendWindow::UpdateWidgetSize(int widget, Dimension *size, const str = STR_LINKGRAPH_LEGEND_SATURATED; } if (str != STR_NULL) { - Dimension dim = GetStringBoundingBox(str); + Dimension dim = GetStringBoundingBox(str, FS_SMALL); dim.width += padding.width; dim.height += padding.height; *size = maxdim(*size, dim); @@ -599,7 +599,7 @@ void LinkGraphLegendWindow::UpdateWidgetSize(int widget, Dimension *size, const if (IsInsideMM(widget, WID_LGL_CARGO_FIRST, WID_LGL_CARGO_LAST + 1)) { CargoSpec *cargo = CargoSpec::Get(widget - WID_LGL_CARGO_FIRST); if (cargo->IsValid()) { - Dimension dim = GetStringBoundingBox(cargo->abbrev); + Dimension dim = GetStringBoundingBox(cargo->abbrev, FS_SMALL); dim.width += padding.width; dim.height += padding.height; *size = maxdim(*size, dim); @@ -629,14 +629,14 @@ void LinkGraphLegendWindow::DrawWidget(const Rect &r, int widget) const str = STR_LINKGRAPH_LEGEND_SATURATED; } if (str != STR_NULL) { - DrawString(br.left, br.right, CenterBounds(br.top, br.bottom, FONT_HEIGHT_SMALL), str, GetContrastColour(colour) | TC_FORCED, SA_HOR_CENTER); + DrawString(br.left, br.right, CenterBounds(br.top, br.bottom, FONT_HEIGHT_SMALL), str, GetContrastColour(colour) | TC_FORCED, SA_HOR_CENTER, false, FS_SMALL); } } if (IsInsideMM(widget, WID_LGL_CARGO_FIRST, WID_LGL_CARGO_LAST + 1)) { if (this->IsWidgetDisabled(widget)) return; CargoSpec *cargo = CargoSpec::Get(widget - WID_LGL_CARGO_FIRST); GfxFillRect(br, cargo->legend_colour); - DrawString(br.left, br.right, CenterBounds(br.top, br.bottom, FONT_HEIGHT_SMALL), cargo->abbrev, GetContrastColour(cargo->legend_colour, 73), SA_HOR_CENTER); + DrawString(br.left, br.right, CenterBounds(br.top, br.bottom, FONT_HEIGHT_SMALL), cargo->abbrev, GetContrastColour(cargo->legend_colour, 73), SA_HOR_CENTER, false, FS_SMALL); } } From 0acc57583b0355bf67df77e61fa04075209fac01 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 28 Apr 2023 17:59:17 +0100 Subject: [PATCH 19/31] Fix: Force cargo abbreviation to small font in station list. --- src/station_gui.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/station_gui.cpp b/src/station_gui.cpp index 4bf3b81b80..a73252f685 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -183,7 +183,7 @@ static void StationsWndShowStationRating(int left, int right, int y, CargoID typ } } - DrawString(left + padding, right, y, cs->abbrev, tc); + DrawString(left + padding, right, y, cs->abbrev, tc, SA_CENTER, false, FS_SMALL); /* Draw green/red ratings bar (fits under the waiting bar) */ y += height + padding + 1; @@ -397,7 +397,7 @@ public: /* Determine appropriate width for mini station rating graph */ this->rating_width = 0; for (const CargoSpec *cs : _sorted_standard_cargo_specs) { - this->rating_width = std::max(this->rating_width, GetStringBoundingBox(cs->abbrev).width); + this->rating_width = std::max(this->rating_width, GetStringBoundingBox(cs->abbrev, FS_SMALL).width); } /* Approximately match original 16 pixel wide rating bars by multiplying string width by 1.6 */ this->rating_width = this->rating_width * 16 / 10; @@ -405,7 +405,7 @@ public: default: if (widget >= WID_STL_CARGOSTART) { - Dimension d = GetStringBoundingBox(_sorted_cargo_specs[widget - WID_STL_CARGOSTART]->abbrev); + Dimension d = GetStringBoundingBox(_sorted_cargo_specs[widget - WID_STL_CARGOSTART]->abbrev, FS_SMALL); d.width += padding.width + 2; d.height += padding.height; *size = maxdim(*size, d); @@ -490,7 +490,7 @@ public: br = br.Translate(cg_ofst, cg_ofst); GfxFillRect(br, cs->rating_colour); TextColour tc = GetContrastColour(cs->rating_colour); - DrawString(br.left, br.right, CenterBounds(br.top, br.bottom, FONT_HEIGHT_SMALL), cs->abbrev, tc, SA_HOR_CENTER); + DrawString(br.left, br.right, CenterBounds(br.top, br.bottom, FONT_HEIGHT_SMALL), cs->abbrev, tc, SA_HOR_CENTER, false, FS_SMALL); } break; } @@ -723,11 +723,11 @@ static const NWidgetPart _nested_company_stations_widgets[] = { NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_STL_BUS), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_BUS, STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE), SetFill(0, 1), NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_STL_SHIP), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_SHIP, STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE), SetFill(0, 1), NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_STL_AIRPLANE), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_PLANE, STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE), SetFill(0, 1), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_STL_FACILALL), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_ABBREV_ALL, STR_STATION_LIST_SELECT_ALL_FACILITIES), SetFill(0, 1), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_STL_FACILALL), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_ABBREV_ALL, STR_STATION_LIST_SELECT_ALL_FACILITIES), SetTextStyle(TC_BLACK, FS_SMALL), SetFill(0, 1), NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(5, 0), SetFill(0, 1), EndContainer(), NWidgetFunction(CargoWidgets), - NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_STL_NOCARGOWAITING), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_ABBREV_NONE, STR_STATION_LIST_NO_WAITING_CARGO), SetFill(0, 1), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_STL_CARGOALL), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_ABBREV_ALL, STR_STATION_LIST_SELECT_ALL_TYPES), SetFill(0, 1), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_STL_NOCARGOWAITING), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_ABBREV_NONE, STR_STATION_LIST_NO_WAITING_CARGO), SetTextStyle(TC_BLACK, FS_SMALL), SetFill(0, 1), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_STL_CARGOALL), SetMinimalSize(14, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_ABBREV_ALL, STR_STATION_LIST_SELECT_ALL_TYPES), SetTextStyle(TC_BLACK, FS_SMALL), SetFill(0, 1), NWidget(WWT_PANEL, COLOUR_GREY), SetResize(1, 0), SetFill(1, 1), EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL), From 310b3a67addfaa074984766a104010193809b47f Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 28 Apr 2023 17:59:18 +0100 Subject: [PATCH 20/31] Change: Remove {TINY_FONT} from cargo abbreviation strings for English. --- src/lang/english.txt | 66 ++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index eb7c074c85..8ada06d097 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CL -STR_ABBREV_MAIL :{TINY_FONT}ML -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}LV -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}WD -STR_ABBREV_IRON_ORE :{TINY_FONT}OR -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}FD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WR -STR_ABBREV_WHEAT :{TINY_FONT}WH -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SG -STR_ABBREV_TOYS :{TINY_FONT}TY -STR_ABBREV_SWEETS :{TINY_FONT}SW -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CF -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FZ -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}ALL +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CL +STR_ABBREV_MAIL :ML +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :LV +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :WD +STR_ABBREV_IRON_ORE :OR +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :FD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WR +STR_ABBREV_WHEAT :WH +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SG +STR_ABBREV_TOYS :TY +STR_ABBREV_SWEETS :SW +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CF +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FZ +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :ALL # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passenger{P "" s} From a816dd1d48a9e18a014a7e534f47ae083d182a8f Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 28 Apr 2023 17:59:20 +0100 Subject: [PATCH 21/31] Change: Remove {TINY_FONT} from cargo abbreviation strings for other translations. --- src/lang/afrikaans.txt | 66 +++++++++++++++---------------- src/lang/arabic_egypt.txt | 66 +++++++++++++++---------------- src/lang/basque.txt | 66 +++++++++++++++---------------- src/lang/belarusian.txt | 66 +++++++++++++++---------------- src/lang/brazilian_portuguese.txt | 66 +++++++++++++++---------------- src/lang/bulgarian.txt | 66 +++++++++++++++---------------- src/lang/catalan.txt | 66 +++++++++++++++---------------- src/lang/chuvash.txt | 66 +++++++++++++++---------------- src/lang/croatian.txt | 66 +++++++++++++++---------------- src/lang/czech.txt | 66 +++++++++++++++---------------- src/lang/danish.txt | 66 +++++++++++++++---------------- src/lang/dutch.txt | 66 +++++++++++++++---------------- src/lang/english_AU.txt | 66 +++++++++++++++---------------- src/lang/english_US.txt | 66 +++++++++++++++---------------- src/lang/esperanto.txt | 66 +++++++++++++++---------------- src/lang/estonian.txt | 66 +++++++++++++++---------------- src/lang/faroese.txt | 66 +++++++++++++++---------------- src/lang/finnish.txt | 66 +++++++++++++++---------------- src/lang/french.txt | 66 +++++++++++++++---------------- src/lang/frisian.txt | 66 +++++++++++++++---------------- src/lang/gaelic.txt | 66 +++++++++++++++---------------- src/lang/galician.txt | 66 +++++++++++++++---------------- src/lang/german.txt | 66 +++++++++++++++---------------- src/lang/greek.txt | 66 +++++++++++++++---------------- src/lang/hebrew.txt | 66 +++++++++++++++---------------- src/lang/hindi.txt | 2 +- src/lang/hungarian.txt | 66 +++++++++++++++---------------- src/lang/icelandic.txt | 66 +++++++++++++++---------------- src/lang/ido.txt | 66 +++++++++++++++---------------- src/lang/indonesian.txt | 66 +++++++++++++++---------------- src/lang/irish.txt | 66 +++++++++++++++---------------- src/lang/italian.txt | 66 +++++++++++++++---------------- src/lang/japanese.txt | 66 +++++++++++++++---------------- src/lang/korean.txt | 66 +++++++++++++++---------------- src/lang/latin.txt | 66 +++++++++++++++---------------- src/lang/latvian.txt | 66 +++++++++++++++---------------- src/lang/lithuanian.txt | 66 +++++++++++++++---------------- src/lang/luxembourgish.txt | 66 +++++++++++++++---------------- src/lang/macedonian.txt | 66 +++++++++++++++---------------- src/lang/malay.txt | 66 +++++++++++++++---------------- src/lang/marathi.txt | 66 +++++++++++++++---------------- src/lang/norwegian_bokmal.txt | 66 +++++++++++++++---------------- src/lang/norwegian_nynorsk.txt | 66 +++++++++++++++---------------- src/lang/persian.txt | 66 +++++++++++++++---------------- src/lang/polish.txt | 66 +++++++++++++++---------------- src/lang/portuguese.txt | 66 +++++++++++++++---------------- src/lang/romanian.txt | 66 +++++++++++++++---------------- src/lang/russian.txt | 66 +++++++++++++++---------------- src/lang/serbian.txt | 66 +++++++++++++++---------------- src/lang/simplified_chinese.txt | 66 +++++++++++++++---------------- src/lang/slovak.txt | 66 +++++++++++++++---------------- src/lang/slovenian.txt | 66 +++++++++++++++---------------- src/lang/spanish.txt | 66 +++++++++++++++---------------- src/lang/spanish_MX.txt | 66 +++++++++++++++---------------- src/lang/swedish.txt | 66 +++++++++++++++---------------- src/lang/tamil.txt | 66 +++++++++++++++---------------- src/lang/thai.txt | 66 +++++++++++++++---------------- src/lang/traditional_chinese.txt | 66 +++++++++++++++---------------- src/lang/turkish.txt | 66 +++++++++++++++---------------- src/lang/ukrainian.txt | 66 +++++++++++++++---------------- src/lang/urdu.txt | 66 +++++++++++++++---------------- src/lang/vietnamese.txt | 66 +++++++++++++++---------------- src/lang/welsh.txt | 66 +++++++++++++++---------------- 63 files changed, 2047 insertions(+), 2047 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 8cb8e5b438..42282eadd1 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :n.v.t. # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}SK -STR_ABBREV_MAIL :{TINY_FONT}PS -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}VE -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}HT -STR_ABBREV_IRON_ORE :{TINY_FONT}YE -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}EM -STR_ABBREV_COPPER_ORE :{TINY_FONT}KE -STR_ABBREV_MAIZE :{TINY_FONT}ML -STR_ABBREV_FRUIT :{TINY_FONT}VR -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}KO -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WR -STR_ABBREV_WHEAT :{TINY_FONT}KR -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SK -STR_ABBREV_TOYS :{TINY_FONT}SG -STR_ABBREV_SWEETS :{TINY_FONT}LE -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SA -STR_ABBREV_BUBBLES :{TINY_FONT}BO -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GK -STR_ABBREV_NONE :{TINY_FONT}NS -STR_ABBREV_ALL :{TINY_FONT}ALMAL +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :SK +STR_ABBREV_MAIL :PS +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :VE +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :HT +STR_ABBREV_IRON_ORE :YE +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :EM +STR_ABBREV_COPPER_ORE :KE +STR_ABBREV_MAIZE :ML +STR_ABBREV_FRUIT :VR +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :KO +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WR +STR_ABBREV_WHEAT :KR +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SK +STR_ABBREV_TOYS :SG +STR_ABBREV_SWEETS :LE +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :SA +STR_ABBREV_BUBBLES :BO +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :GK +STR_ABBREV_NONE :NS +STR_ABBREV_ALL :ALMAL # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passasier{P "" s} diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 0be534c581..67d935c537 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :غير متاح # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}راكب -STR_ABBREV_COAL :{TINY_FONT}فحم -STR_ABBREV_MAIL :{TINY_FONT}بريد -STR_ABBREV_OIL :{TINY_FONT}نفط -STR_ABBREV_LIVESTOCK :{TINY_FONT}ماشية -STR_ABBREV_GOODS :{TINY_FONT}بضائع -STR_ABBREV_GRAIN :{TINY_FONT}حبوب -STR_ABBREV_WOOD :{TINY_FONT}خشب -STR_ABBREV_IRON_ORE :{TINY_FONT}خام حديد -STR_ABBREV_STEEL :{TINY_FONT}حديد -STR_ABBREV_VALUABLES :{TINY_FONT}ممتلكات ثمينة -STR_ABBREV_COPPER_ORE :{TINY_FONT}خام النحاس -STR_ABBREV_MAIZE :{TINY_FONT}ذرة -STR_ABBREV_FRUIT :{TINY_FONT}فواكة -STR_ABBREV_DIAMONDS :{TINY_FONT}جواهر -STR_ABBREV_FOOD :{TINY_FONT}طعام -STR_ABBREV_PAPER :{TINY_FONT}ورق -STR_ABBREV_GOLD :{TINY_FONT}ذهب -STR_ABBREV_WATER :{TINY_FONT}ماء -STR_ABBREV_WHEAT :{TINY_FONT}قمح -STR_ABBREV_RUBBER :{TINY_FONT}مطاط -STR_ABBREV_SUGAR :{TINY_FONT}سكر -STR_ABBREV_TOYS :{TINY_FONT}العاب -STR_ABBREV_SWEETS :{TINY_FONT}حلويات -STR_ABBREV_COLA :{TINY_FONT}كولا -STR_ABBREV_CANDYFLOSS :{TINY_FONT}سكر نبات -STR_ABBREV_BUBBLES :{TINY_FONT}فقاعات -STR_ABBREV_TOFFEE :{TINY_FONT}توفي -STR_ABBREV_BATTERIES :{TINY_FONT}بطاريات -STR_ABBREV_PLASTIC :{TINY_FONT}بلاستيك -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}شراب مخفوق -STR_ABBREV_NONE :{TINY_FONT}لا شيء -STR_ABBREV_ALL :{TINY_FONT}الكل +STR_ABBREV_PASSENGERS :راكب +STR_ABBREV_COAL :فحم +STR_ABBREV_MAIL :بريد +STR_ABBREV_OIL :نفط +STR_ABBREV_LIVESTOCK :ماشية +STR_ABBREV_GOODS :بضائع +STR_ABBREV_GRAIN :حبوب +STR_ABBREV_WOOD :خشب +STR_ABBREV_IRON_ORE :خام حديد +STR_ABBREV_STEEL :حديد +STR_ABBREV_VALUABLES :ممتلكات ثمينة +STR_ABBREV_COPPER_ORE :خام النحاس +STR_ABBREV_MAIZE :ذرة +STR_ABBREV_FRUIT :فواكة +STR_ABBREV_DIAMONDS :جواهر +STR_ABBREV_FOOD :طعام +STR_ABBREV_PAPER :ورق +STR_ABBREV_GOLD :ذهب +STR_ABBREV_WATER :ماء +STR_ABBREV_WHEAT :قمح +STR_ABBREV_RUBBER :مطاط +STR_ABBREV_SUGAR :سكر +STR_ABBREV_TOYS :العاب +STR_ABBREV_SWEETS :حلويات +STR_ABBREV_COLA :كولا +STR_ABBREV_CANDYFLOSS :سكر نبات +STR_ABBREV_BUBBLES :فقاعات +STR_ABBREV_TOFFEE :توفي +STR_ABBREV_BATTERIES :بطاريات +STR_ABBREV_PLASTIC :بلاستيك +STR_ABBREV_FIZZY_DRINKS :شراب مخفوق +STR_ABBREV_NONE :لا شيء +STR_ABBREV_ALL :الكل # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP} راكب diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 81286cb352..e32b0e7fce 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}BD -STR_ABBREV_COAL :{TINY_FONT}ITZ -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}PR -STR_ABBREV_LIVESTOCK :{TINY_FONT}A -STR_ABBREV_GOODS :{TINY_FONT}MT -STR_ABBREV_GRAIN :{TINY_FONT}GA -STR_ABBREV_WOOD :{TINY_FONT}EG -STR_ABBREV_IRON_ORE :{TINY_FONT}MA -STR_ABBREV_STEEL :{TINY_FONT}AT -STR_ABBREV_VALUABLES :{TINY_FONT}BO -STR_ABBREV_COPPER_ORE :{TINY_FONT}KM -STR_ABBREV_MAIZE :{TINY_FONT}AR -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}JN -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}UE -STR_ABBREV_WATER :{TINY_FONT}UR -STR_ABBREV_WHEAT :{TINY_FONT}GI -STR_ABBREV_RUBBER :{TINY_FONT}GM -STR_ABBREV_SUGAR :{TINY_FONT}AZ -STR_ABBREV_TOYS :{TINY_FONT}JS -STR_ABBREV_SWEETS :{TINY_FONT}GZ -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}PL -STR_ABBREV_BUBBLES :{TINY_FONT}BR -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}PI -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}EB -STR_ABBREV_NONE :{TINY_FONT}EZ -STR_ABBREV_ALL :{TINY_FONT}DEN +STR_ABBREV_PASSENGERS :BD +STR_ABBREV_COAL :ITZ +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :PR +STR_ABBREV_LIVESTOCK :A +STR_ABBREV_GOODS :MT +STR_ABBREV_GRAIN :GA +STR_ABBREV_WOOD :EG +STR_ABBREV_IRON_ORE :MA +STR_ABBREV_STEEL :AT +STR_ABBREV_VALUABLES :BO +STR_ABBREV_COPPER_ORE :KM +STR_ABBREV_MAIZE :AR +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :JN +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :UE +STR_ABBREV_WATER :UR +STR_ABBREV_WHEAT :GI +STR_ABBREV_RUBBER :GM +STR_ABBREV_SUGAR :AZ +STR_ABBREV_TOYS :JS +STR_ABBREV_SWEETS :GZ +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :PL +STR_ABBREV_BUBBLES :BR +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :PI +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :EB +STR_ABBREV_NONE :EZ +STR_ABBREV_ALL :DEN # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}bidaiari{P "" ak} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 836f372dd5..13c87bba55 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -441,39 +441,39 @@ STR_QUANTITY_N_A :адсутнiч # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}ПС -STR_ABBREV_COAL :{TINY_FONT}ВГ -STR_ABBREV_MAIL :{TINY_FONT}ПО -STR_ABBREV_OIL :{TINY_FONT}НФ -STR_ABBREV_LIVESTOCK :{TINY_FONT}ЖВ -STR_ABBREV_GOODS :{TINY_FONT}ТВ -STR_ABBREV_GRAIN :{TINY_FONT}ЗР -STR_ABBREV_WOOD :{TINY_FONT}ДР -STR_ABBREV_IRON_ORE :{TINY_FONT}ЖР -STR_ABBREV_STEEL :{TINY_FONT}СТ -STR_ABBREV_VALUABLES :{TINY_FONT}КШ -STR_ABBREV_COPPER_ORE :{TINY_FONT}МР -STR_ABBREV_MAIZE :{TINY_FONT}КК -STR_ABBREV_FRUIT :{TINY_FONT}СД -STR_ABBREV_DIAMONDS :{TINY_FONT}АЛ -STR_ABBREV_FOOD :{TINY_FONT}ЕЖ -STR_ABBREV_PAPER :{TINY_FONT}ПП -STR_ABBREV_GOLD :{TINY_FONT}ЗЛ -STR_ABBREV_WATER :{TINY_FONT}ВД -STR_ABBREV_WHEAT :{TINY_FONT}ПШ -STR_ABBREV_RUBBER :{TINY_FONT}КЧ -STR_ABBREV_SUGAR :{TINY_FONT}ЦК -STR_ABBREV_TOYS :{TINY_FONT}ЦЦ -STR_ABBREV_SWEETS :{TINY_FONT}ЦУ -STR_ABBREV_COLA :{TINY_FONT}КЛ -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ЦВ -STR_ABBREV_BUBBLES :{TINY_FONT}БУ -STR_ABBREV_TOFFEE :{TINY_FONT}ІР -STR_ABBREV_BATTERIES :{TINY_FONT}БА -STR_ABBREV_PLASTIC :{TINY_FONT}ПЛ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ГЗ -STR_ABBREV_NONE :{TINY_FONT}НЯМА -STR_ABBREV_ALL :{TINY_FONT}Усё +STR_ABBREV_PASSENGERS :ПС +STR_ABBREV_COAL :ВГ +STR_ABBREV_MAIL :ПО +STR_ABBREV_OIL :НФ +STR_ABBREV_LIVESTOCK :ЖВ +STR_ABBREV_GOODS :ТВ +STR_ABBREV_GRAIN :ЗР +STR_ABBREV_WOOD :ДР +STR_ABBREV_IRON_ORE :ЖР +STR_ABBREV_STEEL :СТ +STR_ABBREV_VALUABLES :КШ +STR_ABBREV_COPPER_ORE :МР +STR_ABBREV_MAIZE :КК +STR_ABBREV_FRUIT :СД +STR_ABBREV_DIAMONDS :АЛ +STR_ABBREV_FOOD :ЕЖ +STR_ABBREV_PAPER :ПП +STR_ABBREV_GOLD :ЗЛ +STR_ABBREV_WATER :ВД +STR_ABBREV_WHEAT :ПШ +STR_ABBREV_RUBBER :КЧ +STR_ABBREV_SUGAR :ЦК +STR_ABBREV_TOYS :ЦЦ +STR_ABBREV_SWEETS :ЦУ +STR_ABBREV_COLA :КЛ +STR_ABBREV_CANDYFLOSS :ЦВ +STR_ABBREV_BUBBLES :БУ +STR_ABBREV_TOFFEE :ІР +STR_ABBREV_BATTERIES :БА +STR_ABBREV_PLASTIC :ПЛ +STR_ABBREV_FIZZY_DRINKS :ГЗ +STR_ABBREV_NONE :НЯМА +STR_ABBREV_ALL :Усё # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}пасажыр{P "" ы аў} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 89aec0592f..c22603ab11 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :N/D # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PA -STR_ABBREV_COAL :{TINY_FONT}CV -STR_ABBREV_MAIL :{TINY_FONT}CO -STR_ABBREV_OIL :{TINY_FONT}PE -STR_ABBREV_LIVESTOCK :{TINY_FONT}GA -STR_ABBREV_GOODS :{TINY_FONT}ME -STR_ABBREV_GRAIN :{TINY_FONT}CE -STR_ABBREV_WOOD :{TINY_FONT}MA -STR_ABBREV_IRON_ORE :{TINY_FONT}MF -STR_ABBREV_STEEL :{TINY_FONT}AÇ -STR_ABBREV_VALUABLES :{TINY_FONT}OV -STR_ABBREV_COPPER_ORE :{TINY_FONT}MC -STR_ABBREV_MAIZE :{TINY_FONT}MI -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}AL -STR_ABBREV_PAPER :{TINY_FONT}PP -STR_ABBREV_GOLD :{TINY_FONT}OU -STR_ABBREV_WATER :{TINY_FONT}AG -STR_ABBREV_WHEAT :{TINY_FONT}TG -STR_ABBREV_RUBBER :{TINY_FONT}BO -STR_ABBREV_SUGAR :{TINY_FONT}AÇ -STR_ABBREV_TOYS :{TINY_FONT}BR -STR_ABBREV_SWEETS :{TINY_FONT}DO -STR_ABBREV_COLA :{TINY_FONT}CO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}AD -STR_ABBREV_BUBBLES :{TINY_FONT}BO -STR_ABBREV_TOFFEE :{TINY_FONT}CL -STR_ABBREV_BATTERIES :{TINY_FONT}PI -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}RE -STR_ABBREV_NONE :{TINY_FONT}NADA -STR_ABBREV_ALL :{TINY_FONT}TUDO +STR_ABBREV_PASSENGERS :PA +STR_ABBREV_COAL :CV +STR_ABBREV_MAIL :CO +STR_ABBREV_OIL :PE +STR_ABBREV_LIVESTOCK :GA +STR_ABBREV_GOODS :ME +STR_ABBREV_GRAIN :CE +STR_ABBREV_WOOD :MA +STR_ABBREV_IRON_ORE :MF +STR_ABBREV_STEEL :AÇ +STR_ABBREV_VALUABLES :OV +STR_ABBREV_COPPER_ORE :MC +STR_ABBREV_MAIZE :MI +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :AL +STR_ABBREV_PAPER :PP +STR_ABBREV_GOLD :OU +STR_ABBREV_WATER :AG +STR_ABBREV_WHEAT :TG +STR_ABBREV_RUBBER :BO +STR_ABBREV_SUGAR :AÇ +STR_ABBREV_TOYS :BR +STR_ABBREV_SWEETS :DO +STR_ABBREV_COLA :CO +STR_ABBREV_CANDYFLOSS :AD +STR_ABBREV_BUBBLES :BO +STR_ABBREV_TOFFEE :CL +STR_ABBREV_BATTERIES :PI +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :RE +STR_ABBREV_NONE :NADA +STR_ABBREV_ALL :TUDO # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passageiro{P "" s} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index eedc56a911..6d3d6c50ce 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -130,39 +130,39 @@ STR_QUANTITY_N_A :Не се пр # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}ПС -STR_ABBREV_COAL :{TINY_FONT}ВГ -STR_ABBREV_MAIL :{TINY_FONT}ПЩ -STR_ABBREV_OIL :{TINY_FONT}НФ -STR_ABBREV_LIVESTOCK :{TINY_FONT}ДБ -STR_ABBREV_GOODS :{TINY_FONT}СТ -STR_ABBREV_GRAIN :{TINY_FONT}ЗР -STR_ABBREV_WOOD :{TINY_FONT}ДВ -STR_ABBREV_IRON_ORE :{TINY_FONT}ЖР -STR_ABBREV_STEEL :{TINY_FONT}СТ -STR_ABBREV_VALUABLES :{TINY_FONT}СЦ -STR_ABBREV_COPPER_ORE :{TINY_FONT}МР -STR_ABBREV_MAIZE :{TINY_FONT}ЦВ -STR_ABBREV_FRUIT :{TINY_FONT}ПЛ -STR_ABBREV_DIAMONDS :{TINY_FONT}ДМ -STR_ABBREV_FOOD :{TINY_FONT}ХР -STR_ABBREV_PAPER :{TINY_FONT}ХТ -STR_ABBREV_GOLD :{TINY_FONT}ЗЛ -STR_ABBREV_WATER :{TINY_FONT}ВД -STR_ABBREV_WHEAT :{TINY_FONT}ЗР -STR_ABBREV_RUBBER :{TINY_FONT}КЧ -STR_ABBREV_SUGAR :{TINY_FONT}ЗХ -STR_ABBREV_TOYS :{TINY_FONT}ИЧ -STR_ABBREV_SWEETS :{TINY_FONT}СЛ -STR_ABBREV_COLA :{TINY_FONT}КЛ -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ЗП -STR_ABBREV_BUBBLES :{TINY_FONT}БЛ -STR_ABBREV_TOFFEE :{TINY_FONT}КМ -STR_ABBREV_BATTERIES :{TINY_FONT}БТ -STR_ABBREV_PLASTIC :{TINY_FONT}ПМ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ГН -STR_ABBREV_NONE :{TINY_FONT}НЩ -STR_ABBREV_ALL :{TINY_FONT}ВЧ +STR_ABBREV_PASSENGERS :ПС +STR_ABBREV_COAL :ВГ +STR_ABBREV_MAIL :ПЩ +STR_ABBREV_OIL :НФ +STR_ABBREV_LIVESTOCK :ДБ +STR_ABBREV_GOODS :СТ +STR_ABBREV_GRAIN :ЗР +STR_ABBREV_WOOD :ДВ +STR_ABBREV_IRON_ORE :ЖР +STR_ABBREV_STEEL :СТ +STR_ABBREV_VALUABLES :СЦ +STR_ABBREV_COPPER_ORE :МР +STR_ABBREV_MAIZE :ЦВ +STR_ABBREV_FRUIT :ПЛ +STR_ABBREV_DIAMONDS :ДМ +STR_ABBREV_FOOD :ХР +STR_ABBREV_PAPER :ХТ +STR_ABBREV_GOLD :ЗЛ +STR_ABBREV_WATER :ВД +STR_ABBREV_WHEAT :ЗР +STR_ABBREV_RUBBER :КЧ +STR_ABBREV_SUGAR :ЗХ +STR_ABBREV_TOYS :ИЧ +STR_ABBREV_SWEETS :СЛ +STR_ABBREV_COLA :КЛ +STR_ABBREV_CANDYFLOSS :ЗП +STR_ABBREV_BUBBLES :БЛ +STR_ABBREV_TOFFEE :КМ +STR_ABBREV_BATTERIES :БТ +STR_ABBREV_PLASTIC :ПМ +STR_ABBREV_FIZZY_DRINKS :ГН +STR_ABBREV_NONE :НЩ +STR_ABBREV_ALL :ВЧ # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} пътни{P к ци} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 55431ef234..aa0750bed2 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :n/d # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CB -STR_ABBREV_MAIL :{TINY_FONT}CR -STR_ABBREV_OIL :{TINY_FONT}PT -STR_ABBREV_LIVESTOCK :{TINY_FONT}BE -STR_ABBREV_GOODS :{TINY_FONT}ME -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}FU -STR_ABBREV_IRON_ORE :{TINY_FONT}FE -STR_ABBREV_STEEL :{TINY_FONT}AC -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}BM -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}QV -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}OR -STR_ABBREV_WATER :{TINY_FONT}AI -STR_ABBREV_WHEAT :{TINY_FONT}BL -STR_ABBREV_RUBBER :{TINY_FONT}CX -STR_ABBREV_SUGAR :{TINY_FONT}SU -STR_ABBREV_TOYS :{TINY_FONT}JO -STR_ABBREV_SWEETS :{TINY_FONT}DO -STR_ABBREV_COLA :{TINY_FONT}RF -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CS -STR_ABBREV_BUBBLES :{TINY_FONT}BB -STR_ABBREV_TOFFEE :{TINY_FONT}CA -STR_ABBREV_BATTERIES :{TINY_FONT}PI -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}BG -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}TOT +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CB +STR_ABBREV_MAIL :CR +STR_ABBREV_OIL :PT +STR_ABBREV_LIVESTOCK :BE +STR_ABBREV_GOODS :ME +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :FU +STR_ABBREV_IRON_ORE :FE +STR_ABBREV_STEEL :AC +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :BM +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :QV +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :OR +STR_ABBREV_WATER :AI +STR_ABBREV_WHEAT :BL +STR_ABBREV_RUBBER :CX +STR_ABBREV_SUGAR :SU +STR_ABBREV_TOYS :JO +STR_ABBREV_SWEETS :DO +STR_ABBREV_COLA :RF +STR_ABBREV_CANDYFLOSS :CS +STR_ABBREV_BUBBLES :BB +STR_ABBREV_TOFFEE :CA +STR_ABBREV_BATTERIES :PI +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :BG +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :TOT # 'Mode' of transport for cargoes STR_PASSENGERS :{G=Masculin}{COMMA}{NBSP}passatger{P "" s} diff --git a/src/lang/chuvash.txt b/src/lang/chuvash.txt index c6ef77db1a..acf95424bc 100644 --- a/src/lang/chuvash.txt +++ b/src/lang/chuvash.txt @@ -97,39 +97,39 @@ STR_QUANTITY_N_A :палӑ мар # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}ПА -STR_ABBREV_COAL :{TINY_FONT}КӐ -STR_ABBREV_MAIL :{TINY_FONT}ПО -STR_ABBREV_OIL :{TINY_FONT}НЕ -STR_ABBREV_LIVESTOCK :{TINY_FONT}ВЫ -STR_ABBREV_GOODS :{TINY_FONT}ТВ -STR_ABBREV_GRAIN :{TINY_FONT}ПР -STR_ABBREV_WOOD :{TINY_FONT}ЙВ -STR_ABBREV_IRON_ORE :{TINY_FONT}ТМ -STR_ABBREV_STEEL :{TINY_FONT}ХР -STR_ABBREV_VALUABLES :{TINY_FONT}КП -STR_ABBREV_COPPER_ORE :{TINY_FONT}ПХ -STR_ABBREV_MAIZE :{TINY_FONT}КК -STR_ABBREV_FRUIT :{TINY_FONT}ҪМ -STR_ABBREV_DIAMONDS :{TINY_FONT}КА -STR_ABBREV_FOOD :{TINY_FONT}АП -STR_ABBREV_PAPER :{TINY_FONT}ХТ -STR_ABBREV_GOLD :{TINY_FONT}ЫЛ -STR_ABBREV_WATER :{TINY_FONT}ШВ -STR_ABBREV_WHEAT :{TINY_FONT}ТЛ -STR_ABBREV_RUBBER :{TINY_FONT}КЧ -STR_ABBREV_SUGAR :{TINY_FONT}СХ -STR_ABBREV_TOYS :{TINY_FONT}ТТ -STR_ABBREV_SWEETS :{TINY_FONT}КН -STR_ABBREV_COLA :{TINY_FONT}КЛ -STR_ABBREV_CANDYFLOSS :{TINY_FONT}СВ -STR_ABBREV_BUBBLES :{TINY_FONT}ХМ -STR_ABBREV_TOFFEE :{TINY_FONT}КР -STR_ABBREV_BATTERIES :{TINY_FONT}БТ -STR_ABBREV_PLASTIC :{TINY_FONT}ПЛ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ГШ -STR_ABBREV_NONE :{TINY_FONT}ҪУК -STR_ABBREV_ALL :{TINY_FONT}ПӖРМАЙ +STR_ABBREV_PASSENGERS :ПА +STR_ABBREV_COAL :КӐ +STR_ABBREV_MAIL :ПО +STR_ABBREV_OIL :НЕ +STR_ABBREV_LIVESTOCK :ВЫ +STR_ABBREV_GOODS :ТВ +STR_ABBREV_GRAIN :ПР +STR_ABBREV_WOOD :ЙВ +STR_ABBREV_IRON_ORE :ТМ +STR_ABBREV_STEEL :ХР +STR_ABBREV_VALUABLES :КП +STR_ABBREV_COPPER_ORE :ПХ +STR_ABBREV_MAIZE :КК +STR_ABBREV_FRUIT :ҪМ +STR_ABBREV_DIAMONDS :КА +STR_ABBREV_FOOD :АП +STR_ABBREV_PAPER :ХТ +STR_ABBREV_GOLD :ЫЛ +STR_ABBREV_WATER :ШВ +STR_ABBREV_WHEAT :ТЛ +STR_ABBREV_RUBBER :КЧ +STR_ABBREV_SUGAR :СХ +STR_ABBREV_TOYS :ТТ +STR_ABBREV_SWEETS :КН +STR_ABBREV_COLA :КЛ +STR_ABBREV_CANDYFLOSS :СВ +STR_ABBREV_BUBBLES :ХМ +STR_ABBREV_TOFFEE :КР +STR_ABBREV_BATTERIES :БТ +STR_ABBREV_PLASTIC :ПЛ +STR_ABBREV_FIZZY_DRINKS :ГШ +STR_ABBREV_NONE :ҪУК +STR_ABBREV_ALL :ПӖРМАЙ # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} пассажир{P "" сем} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 4118626417..f2f2cf5c58 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -223,39 +223,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PU -STR_ABBREV_COAL :{TINY_FONT}UG -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}NF -STR_ABBREV_LIVESTOCK :{TINY_FONT}ST -STR_ABBREV_GOODS :{TINY_FONT}RB -STR_ABBREV_GRAIN :{TINY_FONT}ŽT -STR_ABBREV_WOOD :{TINY_FONT}DV -STR_ABBREV_IRON_ORE :{TINY_FONT}FE -STR_ABBREV_STEEL :{TINY_FONT}ČL -STR_ABBREV_VALUABLES :{TINY_FONT}DC -STR_ABBREV_COPPER_ORE :{TINY_FONT}CU -STR_ABBREV_MAIZE :{TINY_FONT}KK -STR_ABBREV_FRUIT :{TINY_FONT}VĆ -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}HN -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}ZL -STR_ABBREV_WATER :{TINY_FONT}VO -STR_ABBREV_WHEAT :{TINY_FONT}PŠ -STR_ABBREV_RUBBER :{TINY_FONT}GM -STR_ABBREV_SUGAR :{TINY_FONT}ŠĆ -STR_ABBREV_TOYS :{TINY_FONT}IG -STR_ABBREV_SWEETS :{TINY_FONT}SL -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ŠV -STR_ABBREV_BUBBLES :{TINY_FONT}BL -STR_ABBREV_TOFFEE :{TINY_FONT}MK -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GP -STR_ABBREV_NONE :{TINY_FONT}NI -STR_ABBREV_ALL :{TINY_FONT}SVE +STR_ABBREV_PASSENGERS :PU +STR_ABBREV_COAL :UG +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :NF +STR_ABBREV_LIVESTOCK :ST +STR_ABBREV_GOODS :RB +STR_ABBREV_GRAIN :ŽT +STR_ABBREV_WOOD :DV +STR_ABBREV_IRON_ORE :FE +STR_ABBREV_STEEL :ČL +STR_ABBREV_VALUABLES :DC +STR_ABBREV_COPPER_ORE :CU +STR_ABBREV_MAIZE :KK +STR_ABBREV_FRUIT :VĆ +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :HN +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :ZL +STR_ABBREV_WATER :VO +STR_ABBREV_WHEAT :PŠ +STR_ABBREV_RUBBER :GM +STR_ABBREV_SUGAR :ŠĆ +STR_ABBREV_TOYS :IG +STR_ABBREV_SWEETS :SL +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :ŠV +STR_ABBREV_BUBBLES :BL +STR_ABBREV_TOFFEE :MK +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :GP +STR_ABBREV_NONE :NI +STR_ABBREV_ALL :SVE # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}putnik{P "" a ""} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 9421123611..86fa247924 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -203,39 +203,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}CE -STR_ABBREV_COAL :{TINY_FONT}UH -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}RO -STR_ABBREV_LIVESTOCK :{TINY_FONT}DO -STR_ABBREV_GOODS :{TINY_FONT}ZB -STR_ABBREV_GRAIN :{TINY_FONT}ZR -STR_ABBREV_WOOD :{TINY_FONT}DŘ -STR_ABBREV_IRON_ORE :{TINY_FONT}ŽR -STR_ABBREV_STEEL :{TINY_FONT}OC -STR_ABBREV_VALUABLES :{TINY_FONT}CN -STR_ABBREV_COPPER_ORE :{TINY_FONT}MR -STR_ABBREV_MAIZE :{TINY_FONT}KU -STR_ABBREV_FRUIT :{TINY_FONT}OV -STR_ABBREV_DIAMONDS :{TINY_FONT}DI -STR_ABBREV_FOOD :{TINY_FONT}JÍ -STR_ABBREV_PAPER :{TINY_FONT}PA -STR_ABBREV_GOLD :{TINY_FONT}ZL -STR_ABBREV_WATER :{TINY_FONT}VO -STR_ABBREV_WHEAT :{TINY_FONT}PŠ -STR_ABBREV_RUBBER :{TINY_FONT}KA -STR_ABBREV_SUGAR :{TINY_FONT}CU -STR_ABBREV_TOYS :{TINY_FONT}HR -STR_ABBREV_SWEETS :{TINY_FONT}BO -STR_ABBREV_COLA :{TINY_FONT}KO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CV -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}KA -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}LI -STR_ABBREV_NONE :{TINY_FONT}NIC -STR_ABBREV_ALL :{TINY_FONT}VŠE +STR_ABBREV_PASSENGERS :CE +STR_ABBREV_COAL :UH +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :RO +STR_ABBREV_LIVESTOCK :DO +STR_ABBREV_GOODS :ZB +STR_ABBREV_GRAIN :ZR +STR_ABBREV_WOOD :DŘ +STR_ABBREV_IRON_ORE :ŽR +STR_ABBREV_STEEL :OC +STR_ABBREV_VALUABLES :CN +STR_ABBREV_COPPER_ORE :MR +STR_ABBREV_MAIZE :KU +STR_ABBREV_FRUIT :OV +STR_ABBREV_DIAMONDS :DI +STR_ABBREV_FOOD :JÍ +STR_ABBREV_PAPER :PA +STR_ABBREV_GOLD :ZL +STR_ABBREV_WATER :VO +STR_ABBREV_WHEAT :PŠ +STR_ABBREV_RUBBER :KA +STR_ABBREV_SUGAR :CU +STR_ABBREV_TOYS :HR +STR_ABBREV_SWEETS :BO +STR_ABBREV_COLA :KO +STR_ABBREV_CANDYFLOSS :CV +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :KA +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :LI +STR_ABBREV_NONE :NIC +STR_ABBREV_ALL :VŠE # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}cestující{P "" "" ch} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index db33865347..7e2aac1fd7 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KU -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}KV -STR_ABBREV_GOODS :{TINY_FONT}SG -STR_ABBREV_GRAIN :{TINY_FONT}KN -STR_ABBREV_WOOD :{TINY_FONT}TR -STR_ABBREV_IRON_ORE :{TINY_FONT}JM -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VÆ -STR_ABBREV_COPPER_ORE :{TINY_FONT}KO -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DI -STR_ABBREV_FOOD :{TINY_FONT}MD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GU -STR_ABBREV_WATER :{TINY_FONT}VA -STR_ABBREV_WHEAT :{TINY_FONT}HV -STR_ABBREV_RUBBER :{TINY_FONT}GM -STR_ABBREV_SUGAR :{TINY_FONT}SU -STR_ABBREV_TOYS :{TINY_FONT}LT -STR_ABBREV_SWEETS :{TINY_FONT}SL -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CF -STR_ABBREV_BUBBLES :{TINY_FONT}BO -STR_ABBREV_TOFFEE :{TINY_FONT}KA -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}SV -STR_ABBREV_NONE :{TINY_FONT}INT -STR_ABBREV_ALL :{TINY_FONT}ALT +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KU +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :KV +STR_ABBREV_GOODS :SG +STR_ABBREV_GRAIN :KN +STR_ABBREV_WOOD :TR +STR_ABBREV_IRON_ORE :JM +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VÆ +STR_ABBREV_COPPER_ORE :KO +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DI +STR_ABBREV_FOOD :MD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GU +STR_ABBREV_WATER :VA +STR_ABBREV_WHEAT :HV +STR_ABBREV_RUBBER :GM +STR_ABBREV_SUGAR :SU +STR_ABBREV_TOYS :LT +STR_ABBREV_SWEETS :SL +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CF +STR_ABBREV_BUBBLES :BO +STR_ABBREV_TOFFEE :KA +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :SV +STR_ABBREV_NONE :INT +STR_ABBREV_ALL :ALT # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} passagerer{P "" s} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 091bf32d45..f3e52f3cb9 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N.v.t. # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KL -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}VE -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}HT -STR_ABBREV_IRON_ORE :{TINY_FONT}IJ -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}KB -STR_ABBREV_COPPER_ORE :{TINY_FONT}KE -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}VD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GO -STR_ABBREV_WATER :{TINY_FONT}WA -STR_ABBREV_WHEAT :{TINY_FONT}TW -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SU -STR_ABBREV_TOYS :{TINY_FONT}SP -STR_ABBREV_SWEETS :{TINY_FONT}SN -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SS -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FR -STR_ABBREV_NONE :{TINY_FONT}GEEN -STR_ABBREV_ALL :{TINY_FONT}ALLES +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KL +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :VE +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :HT +STR_ABBREV_IRON_ORE :IJ +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :KB +STR_ABBREV_COPPER_ORE :KE +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :VD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GO +STR_ABBREV_WATER :WA +STR_ABBREV_WHEAT :TW +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SU +STR_ABBREV_TOYS :SP +STR_ABBREV_SWEETS :SN +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :SS +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FR +STR_ABBREV_NONE :GEEN +STR_ABBREV_ALL :ALLES # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passagier{P "" s} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 4c2a8911bf..65c3ec0f8e 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CL -STR_ABBREV_MAIL :{TINY_FONT}ML -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}LV -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}WD -STR_ABBREV_IRON_ORE :{TINY_FONT}OR -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}CR -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}FD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WR -STR_ABBREV_WHEAT :{TINY_FONT}WH -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SG -STR_ABBREV_TOYS :{TINY_FONT}TY -STR_ABBREV_SWEETS :{TINY_FONT}LL -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}FF -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}SD -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}ALL +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CL +STR_ABBREV_MAIL :ML +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :LV +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :WD +STR_ABBREV_IRON_ORE :OR +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :CR +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :FD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WR +STR_ABBREV_WHEAT :WH +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SG +STR_ABBREV_TOYS :TY +STR_ABBREV_SWEETS :LL +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :FF +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :SD +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :ALL # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passenger{P "" s} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 07403ef058..48123801dd 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CL -STR_ABBREV_MAIL :{TINY_FONT}ML -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}LV -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}WD -STR_ABBREV_IRON_ORE :{TINY_FONT}OR -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}FD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WR -STR_ABBREV_WHEAT :{TINY_FONT}WH -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SG -STR_ABBREV_TOYS :{TINY_FONT}TY -STR_ABBREV_SWEETS :{TINY_FONT}SW -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CF -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FZ -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}ALL +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CL +STR_ABBREV_MAIL :ML +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :LV +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :WD +STR_ABBREV_IRON_ORE :OR +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :FD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WR +STR_ABBREV_WHEAT :WH +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SG +STR_ABBREV_TOYS :TY +STR_ABBREV_SWEETS :SW +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CF +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FZ +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :ALL # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passenger{P "" s} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index c9172ca927..5a284c49f5 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KB -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}BR -STR_ABBREV_GOODS :{TINY_FONT}VR -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}LG -STR_ABBREV_IRON_ORE :{TINY_FONT}FE -STR_ABBREV_STEEL :{TINY_FONT}ŜT -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}KE -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}MN -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}OR -STR_ABBREV_WATER :{TINY_FONT}AK -STR_ABBREV_WHEAT :{TINY_FONT}TT -STR_ABBREV_RUBBER :{TINY_FONT}KA -STR_ABBREV_SUGAR :{TINY_FONT}SK -STR_ABBREV_TOYS :{TINY_FONT}LD -STR_ABBREV_SWEETS :{TINY_FONT}DL -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SS -STR_ABBREV_BUBBLES :{TINY_FONT}VZ -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}AT -STR_ABBREV_NONE :{TINY_FONT}NENIU -STR_ABBREV_ALL :{TINY_FONT}ĈIU +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KB +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :BR +STR_ABBREV_GOODS :VR +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :LG +STR_ABBREV_IRON_ORE :FE +STR_ABBREV_STEEL :ŜT +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :KE +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :MN +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :OR +STR_ABBREV_WATER :AK +STR_ABBREV_WHEAT :TT +STR_ABBREV_RUBBER :KA +STR_ABBREV_SUGAR :SK +STR_ABBREV_TOYS :LD +STR_ABBREV_SWEETS :DL +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :SS +STR_ABBREV_BUBBLES :VZ +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :AT +STR_ABBREV_NONE :NENIU +STR_ABBREV_ALL :ĈIU # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}pasaĝero{P "" j} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 373520d917..0299e28714 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -185,39 +185,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CL -STR_ABBREV_MAIL :{TINY_FONT}ML -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}LV -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}WD -STR_ABBREV_IRON_ORE :{TINY_FONT}OR -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}FD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WR -STR_ABBREV_WHEAT :{TINY_FONT}WH -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SG -STR_ABBREV_TOYS :{TINY_FONT}TY -STR_ABBREV_SWEETS :{TINY_FONT}SW -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CF -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FZ -STR_ABBREV_NONE :{TINY_FONT}EI -STR_ABBREV_ALL :{TINY_FONT}KÕIK +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CL +STR_ABBREV_MAIL :ML +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :LV +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :WD +STR_ABBREV_IRON_ORE :OR +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :FD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WR +STR_ABBREV_WHEAT :WH +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SG +STR_ABBREV_TOYS :TY +STR_ABBREV_SWEETS :SW +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CF +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FZ +STR_ABBREV_NONE :EI +STR_ABBREV_ALL :KÕIK # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} reisija{P "" d} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 8d5505943b..726d8d812f 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}FF -STR_ABBREV_COAL :{TINY_FONT}KL -STR_ABBREV_MAIL :{TINY_FONT}PS -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}KÚ -STR_ABBREV_GOODS :{TINY_FONT}GS -STR_ABBREV_GRAIN :{TINY_FONT}KN -STR_ABBREV_WOOD :{TINY_FONT}TM -STR_ABBREV_IRON_ORE :{TINY_FONT}ML -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}KM -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}MT -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GL -STR_ABBREV_WATER :{TINY_FONT}VN -STR_ABBREV_WHEAT :{TINY_FONT}HV -STR_ABBREV_RUBBER :{TINY_FONT}GM -STR_ABBREV_SUGAR :{TINY_FONT}SK -STR_ABBREV_TOYS :{TINY_FONT}LK -STR_ABBREV_SWEETS :{TINY_FONT}SL -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}KF -STR_ABBREV_BUBBLES :{TINY_FONT}BL -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}SV -STR_ABBREV_NONE :{TINY_FONT}EI -STR_ABBREV_ALL :{TINY_FONT}ALT +STR_ABBREV_PASSENGERS :FF +STR_ABBREV_COAL :KL +STR_ABBREV_MAIL :PS +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :KÚ +STR_ABBREV_GOODS :GS +STR_ABBREV_GRAIN :KN +STR_ABBREV_WOOD :TM +STR_ABBREV_IRON_ORE :ML +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :KM +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :MT +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GL +STR_ABBREV_WATER :VN +STR_ABBREV_WHEAT :HV +STR_ABBREV_RUBBER :GM +STR_ABBREV_SUGAR :SK +STR_ABBREV_TOYS :LK +STR_ABBREV_SWEETS :SL +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :KF +STR_ABBREV_BUBBLES :BL +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :SV +STR_ABBREV_NONE :EI +STR_ABBREV_ALL :ALT # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} ferðafólk diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index c9914411f8..ef553f9e4b 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :- # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}MA -STR_ABBREV_COAL :{TINY_FONT}HL -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}ÖL -STR_ABBREV_LIVESTOCK :{TINY_FONT}KA -STR_ABBREV_GOODS :{TINY_FONT}TA -STR_ABBREV_GRAIN :{TINY_FONT}VL -STR_ABBREV_WOOD :{TINY_FONT}PU -STR_ABBREV_IRON_ORE :{TINY_FONT}RM -STR_ABBREV_STEEL :{TINY_FONT}TR -STR_ABBREV_VALUABLES :{TINY_FONT}AT -STR_ABBREV_COPPER_ORE :{TINY_FONT}KM -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}HE -STR_ABBREV_DIAMONDS :{TINY_FONT}TI -STR_ABBREV_FOOD :{TINY_FONT}RU -STR_ABBREV_PAPER :{TINY_FONT}PA -STR_ABBREV_GOLD :{TINY_FONT}KU -STR_ABBREV_WATER :{TINY_FONT}VS -STR_ABBREV_WHEAT :{TINY_FONT}VH -STR_ABBREV_RUBBER :{TINY_FONT}KI -STR_ABBREV_SUGAR :{TINY_FONT}SK -STR_ABBREV_TOYS :{TINY_FONT}LL -STR_ABBREV_SWEETS :{TINY_FONT}KR -STR_ABBREV_COLA :{TINY_FONT}LM -STR_ABBREV_CANDYFLOSS :{TINY_FONT}HT -STR_ABBREV_BUBBLES :{TINY_FONT}KP -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}PT -STR_ABBREV_PLASTIC :{TINY_FONT}MV -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}SJ -STR_ABBREV_NONE :{TINY_FONT}EI -STR_ABBREV_ALL :{TINY_FONT}KAIKKI +STR_ABBREV_PASSENGERS :MA +STR_ABBREV_COAL :HL +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :ÖL +STR_ABBREV_LIVESTOCK :KA +STR_ABBREV_GOODS :TA +STR_ABBREV_GRAIN :VL +STR_ABBREV_WOOD :PU +STR_ABBREV_IRON_ORE :RM +STR_ABBREV_STEEL :TR +STR_ABBREV_VALUABLES :AT +STR_ABBREV_COPPER_ORE :KM +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :HE +STR_ABBREV_DIAMONDS :TI +STR_ABBREV_FOOD :RU +STR_ABBREV_PAPER :PA +STR_ABBREV_GOLD :KU +STR_ABBREV_WATER :VS +STR_ABBREV_WHEAT :VH +STR_ABBREV_RUBBER :KI +STR_ABBREV_SUGAR :SK +STR_ABBREV_TOYS :LL +STR_ABBREV_SWEETS :KR +STR_ABBREV_COLA :LM +STR_ABBREV_CANDYFLOSS :HT +STR_ABBREV_BUBBLES :KP +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :PT +STR_ABBREV_PLASTIC :MV +STR_ABBREV_FIZZY_DRINKS :SJ +STR_ABBREV_NONE :EI +STR_ABBREV_ALL :KAIKKI # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}matkustaja{P "" a} diff --git a/src/lang/french.txt b/src/lang/french.txt index 8bac1ce996..57ac5edec8 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CH -STR_ABBREV_MAIL :{TINY_FONT}CO -STR_ABBREV_OIL :{TINY_FONT}PT -STR_ABBREV_LIVESTOCK :{TINY_FONT}BT -STR_ABBREV_GOODS :{TINY_FONT}BN -STR_ABBREV_GRAIN :{TINY_FONT}CR -STR_ABBREV_WOOD :{TINY_FONT}BO -STR_ABBREV_IRON_ORE :{TINY_FONT}FE -STR_ABBREV_STEEL :{TINY_FONT}AC -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CV -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}NR -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}OR -STR_ABBREV_WATER :{TINY_FONT}EA -STR_ABBREV_WHEAT :{TINY_FONT}BL -STR_ABBREV_RUBBER :{TINY_FONT}CA -STR_ABBREV_SUGAR :{TINY_FONT}SU -STR_ABBREV_TOYS :{TINY_FONT}JT -STR_ABBREV_SWEETS :{TINY_FONT}BB -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}BP -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}CM -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GZ -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}TOUT +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CH +STR_ABBREV_MAIL :CO +STR_ABBREV_OIL :PT +STR_ABBREV_LIVESTOCK :BT +STR_ABBREV_GOODS :BN +STR_ABBREV_GRAIN :CR +STR_ABBREV_WOOD :BO +STR_ABBREV_IRON_ORE :FE +STR_ABBREV_STEEL :AC +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CV +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :NR +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :OR +STR_ABBREV_WATER :EA +STR_ABBREV_WHEAT :BL +STR_ABBREV_RUBBER :CA +STR_ABBREV_SUGAR :SU +STR_ABBREV_TOYS :JT +STR_ABBREV_SWEETS :BB +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :BP +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :CM +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :GZ +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :TOUT # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passager{P "" s} diff --git a/src/lang/frisian.txt b/src/lang/frisian.txt index 23a4d076a5..23706d2e54 100644 --- a/src/lang/frisian.txt +++ b/src/lang/frisian.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/B # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PZ -STR_ABBREV_COAL :{TINY_FONT}KL -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}FE -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}NT -STR_ABBREV_WOOD :{TINY_FONT}HT -STR_ABBREV_IRON_ORE :{TINY_FONT}IE -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}KH -STR_ABBREV_COPPER_ORE :{TINY_FONT}KE -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}IT -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WR -STR_ABBREV_WHEAT :{TINY_FONT}NÔ -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SÛ -STR_ABBREV_TOYS :{TINY_FONT}BG -STR_ABBREV_SWEETS :{TINY_FONT}SG -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SS -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FD -STR_ABBREV_NONE :{TINY_FONT}NE -STR_ABBREV_ALL :{TINY_FONT}AL +STR_ABBREV_PASSENGERS :PZ +STR_ABBREV_COAL :KL +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :FE +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :NT +STR_ABBREV_WOOD :HT +STR_ABBREV_IRON_ORE :IE +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :KH +STR_ABBREV_COPPER_ORE :KE +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :IT +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WR +STR_ABBREV_WHEAT :NÔ +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SÛ +STR_ABBREV_TOYS :BG +STR_ABBREV_SWEETS :SG +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :SS +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FD +STR_ABBREV_NONE :NE +STR_ABBREV_ALL :AL # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passazjier{P "" s} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 1282041c69..963c69ad08 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -316,39 +316,39 @@ STR_QUANTITY_N_A :— # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}Tais -STR_ABBREV_COAL :{TINY_FONT}Gual -STR_ABBREV_MAIL :{TINY_FONT}Post -STR_ABBREV_OIL :{TINY_FONT}Ola -STR_ABBREV_LIVESTOCK :{TINY_FONT}Sprèidh -STR_ABBREV_GOODS :{TINY_FONT}Bath -STR_ABBREV_GRAIN :{TINY_FONT}Gràn -STR_ABBREV_WOOD :{TINY_FONT}Fiodh -STR_ABBREV_IRON_ORE :{TINY_FONT}Iara -STR_ABBREV_STEEL :{TINY_FONT}Stàil -STR_ABBREV_VALUABLES :{TINY_FONT}Seilbh -STR_ABBREV_COPPER_ORE :{TINY_FONT}Cop -STR_ABBREV_MAIZE :{TINY_FONT}CrIn -STR_ABBREV_FRUIT :{TINY_FONT}Meas -STR_ABBREV_DIAMONDS :{TINY_FONT}Daoim -STR_ABBREV_FOOD :{TINY_FONT}Biadh -STR_ABBREV_PAPER :{TINY_FONT}Pàip -STR_ABBREV_GOLD :{TINY_FONT}Òr -STR_ABBREV_WATER :{TINY_FONT}Uisg -STR_ABBREV_WHEAT :{TINY_FONT}Crui -STR_ABBREV_RUBBER :{TINY_FONT}Rub -STR_ABBREV_SUGAR :{TINY_FONT}Siùc -STR_ABBREV_TOYS :{TINY_FONT}Dèid -STR_ABBREV_SWEETS :{TINY_FONT}Mìls -STR_ABBREV_COLA :{TINY_FONT}Cola -STR_ABBREV_CANDYFLOSS :{TINY_FONT}Can -STR_ABBREV_BUBBLES :{TINY_FONT}Buil -STR_ABBREV_TOFFEE :{TINY_FONT}Tof -STR_ABBREV_BATTERIES :{TINY_FONT}Bat -STR_ABBREV_PLASTIC :{TINY_FONT}Plas -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}Deo -STR_ABBREV_NONE :{TINY_FONT}Gun -STR_ABBREV_ALL :{TINY_FONT}Uile +STR_ABBREV_PASSENGERS :Tais +STR_ABBREV_COAL :Gual +STR_ABBREV_MAIL :Post +STR_ABBREV_OIL :Ola +STR_ABBREV_LIVESTOCK :Sprèidh +STR_ABBREV_GOODS :Bath +STR_ABBREV_GRAIN :Gràn +STR_ABBREV_WOOD :Fiodh +STR_ABBREV_IRON_ORE :Iara +STR_ABBREV_STEEL :Stàil +STR_ABBREV_VALUABLES :Seilbh +STR_ABBREV_COPPER_ORE :Cop +STR_ABBREV_MAIZE :CrIn +STR_ABBREV_FRUIT :Meas +STR_ABBREV_DIAMONDS :Daoim +STR_ABBREV_FOOD :Biadh +STR_ABBREV_PAPER :Pàip +STR_ABBREV_GOLD :Òr +STR_ABBREV_WATER :Uisg +STR_ABBREV_WHEAT :Crui +STR_ABBREV_RUBBER :Rub +STR_ABBREV_SUGAR :Siùc +STR_ABBREV_TOYS :Dèid +STR_ABBREV_SWEETS :Mìls +STR_ABBREV_COLA :Cola +STR_ABBREV_CANDYFLOSS :Can +STR_ABBREV_BUBBLES :Buil +STR_ABBREV_TOFFEE :Tof +STR_ABBREV_BATTERIES :Bat +STR_ABBREV_PLASTIC :Plas +STR_ABBREV_FIZZY_DRINKS :Deo +STR_ABBREV_NONE :Gun +STR_ABBREV_ALL :Uile # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}{P taistealach thaistealach taistealaich taistealach} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index d526bdc634..5c7a5f0a1e 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :N/D # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PX -STR_ABBREV_COAL :{TINY_FONT}CA -STR_ABBREV_MAIL :{TINY_FONT}CO -STR_ABBREV_OIL :{TINY_FONT}PE -STR_ABBREV_LIVESTOCK :{TINY_FONT}GA -STR_ABBREV_GOODS :{TINY_FONT}ME -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}MA -STR_ABBREV_IRON_ORE :{TINY_FONT}FE -STR_ABBREV_STEEL :{TINY_FONT}AÇ -STR_ABBREV_VALUABLES :{TINY_FONT}VA -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}MI -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DI -STR_ABBREV_FOOD :{TINY_FONT}CO -STR_ABBREV_PAPER :{TINY_FONT}PA -STR_ABBREV_GOLD :{TINY_FONT}OU -STR_ABBREV_WATER :{TINY_FONT}AU -STR_ABBREV_WHEAT :{TINY_FONT}MI -STR_ABBREV_RUBBER :{TINY_FONT}CA -STR_ABBREV_SUGAR :{TINY_FONT}AZ -STR_ABBREV_TOYS :{TINY_FONT}XO -STR_ABBREV_SWEETS :{TINY_FONT}LA -STR_ABBREV_COLA :{TINY_FONT}CO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}AL -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TO -STR_ABBREV_BATTERIES :{TINY_FONT}PI -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}BE -STR_ABBREV_NONE :{TINY_FONT}NON -STR_ABBREV_ALL :{TINY_FONT}TODO +STR_ABBREV_PASSENGERS :PX +STR_ABBREV_COAL :CA +STR_ABBREV_MAIL :CO +STR_ABBREV_OIL :PE +STR_ABBREV_LIVESTOCK :GA +STR_ABBREV_GOODS :ME +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :MA +STR_ABBREV_IRON_ORE :FE +STR_ABBREV_STEEL :AÇ +STR_ABBREV_VALUABLES :VA +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :MI +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DI +STR_ABBREV_FOOD :CO +STR_ABBREV_PAPER :PA +STR_ABBREV_GOLD :OU +STR_ABBREV_WATER :AU +STR_ABBREV_WHEAT :MI +STR_ABBREV_RUBBER :CA +STR_ABBREV_SUGAR :AZ +STR_ABBREV_TOYS :XO +STR_ABBREV_SWEETS :LA +STR_ABBREV_COLA :CO +STR_ABBREV_CANDYFLOSS :AL +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TO +STR_ABBREV_BATTERIES :PI +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :BE +STR_ABBREV_NONE :NON +STR_ABBREV_ALL :TODO # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} pasaxeiro{P "" s} diff --git a/src/lang/german.txt b/src/lang/german.txt index f4ad0756c6..e6d0071880 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :k.A. # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KL -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}ÖL -STR_ABBREV_LIVESTOCK :{TINY_FONT}VI -STR_ABBREV_GOODS :{TINY_FONT}WK -STR_ABBREV_GRAIN :{TINY_FONT}GT -STR_ABBREV_WOOD :{TINY_FONT}HO -STR_ABBREV_IRON_ORE :{TINY_FONT}EE -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}WE -STR_ABBREV_COPPER_ORE :{TINY_FONT}KU -STR_ABBREV_MAIZE :{TINY_FONT}MA -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DI -STR_ABBREV_FOOD :{TINY_FONT}NM -STR_ABBREV_PAPER :{TINY_FONT}PA -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WA -STR_ABBREV_WHEAT :{TINY_FONT}WZ -STR_ABBREV_RUBBER :{TINY_FONT}KA -STR_ABBREV_SUGAR :{TINY_FONT}ZU -STR_ABBREV_TOYS :{TINY_FONT}SP -STR_ABBREV_SWEETS :{TINY_FONT}BO -STR_ABBREV_COLA :{TINY_FONT}CO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ZW -STR_ABBREV_BUBBLES :{TINY_FONT}LB -STR_ABBREV_TOFFEE :{TINY_FONT}KM -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}LI -STR_ABBREV_NONE :{TINY_FONT}KEINE -STR_ABBREV_ALL :{TINY_FONT}ALLE +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KL +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :ÖL +STR_ABBREV_LIVESTOCK :VI +STR_ABBREV_GOODS :WK +STR_ABBREV_GRAIN :GT +STR_ABBREV_WOOD :HO +STR_ABBREV_IRON_ORE :EE +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :WE +STR_ABBREV_COPPER_ORE :KU +STR_ABBREV_MAIZE :MA +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DI +STR_ABBREV_FOOD :NM +STR_ABBREV_PAPER :PA +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WA +STR_ABBREV_WHEAT :WZ +STR_ABBREV_RUBBER :KA +STR_ABBREV_SUGAR :ZU +STR_ABBREV_TOYS :SP +STR_ABBREV_SWEETS :BO +STR_ABBREV_COLA :CO +STR_ABBREV_CANDYFLOSS :ZW +STR_ABBREV_BUBBLES :LB +STR_ABBREV_TOFFEE :KM +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :LI +STR_ABBREV_NONE :KEINE +STR_ABBREV_ALL :ALLE # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}Passagier{P "" e} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 045af5a01d..b72104fbf4 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -189,39 +189,39 @@ STR_QUANTITY_N_A :Μ/Δ # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}ΕΠ -STR_ABBREV_COAL :{TINY_FONT}AΘ -STR_ABBREV_MAIL :{TINY_FONT}ΑΓ -STR_ABBREV_OIL :{TINY_FONT}ΠΤ -STR_ABBREV_LIVESTOCK :{TINY_FONT}ΖΩ -STR_ABBREV_GOODS :{TINY_FONT}ΧΡ -STR_ABBREV_GRAIN :{TINY_FONT}ΣΡ -STR_ABBREV_WOOD :{TINY_FONT}ΞΛ -STR_ABBREV_IRON_ORE :{TINY_FONT}ΣΜ -STR_ABBREV_STEEL :{TINY_FONT}ΧΒ -STR_ABBREV_VALUABLES :{TINY_FONT}ΠΕ -STR_ABBREV_COPPER_ORE :{TINY_FONT}ΧΜ -STR_ABBREV_MAIZE :{TINY_FONT}ΚΛ -STR_ABBREV_FRUIT :{TINY_FONT}ΦΡ -STR_ABBREV_DIAMONDS :{TINY_FONT}ΔΜ -STR_ABBREV_FOOD :{TINY_FONT}ΤΦ -STR_ABBREV_PAPER :{TINY_FONT}ΧΤ -STR_ABBREV_GOLD :{TINY_FONT}ΧΡ -STR_ABBREV_WATER :{TINY_FONT}ΝΕ -STR_ABBREV_WHEAT :{TINY_FONT}ΣΤ -STR_ABBREV_RUBBER :{TINY_FONT}ΚΤ -STR_ABBREV_SUGAR :{TINY_FONT}ΖΧ -STR_ABBREV_TOYS :{TINY_FONT}ΠΧ -STR_ABBREV_SWEETS :{TINY_FONT}ΓΛ -STR_ABBREV_COLA :{TINY_FONT}ΚΟ -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ΜΓ -STR_ABBREV_BUBBLES :{TINY_FONT}ΦΥ -STR_ABBREV_TOFFEE :{TINY_FONT}ΚΒ -STR_ABBREV_BATTERIES :{TINY_FONT}ΜΠ -STR_ABBREV_PLASTIC :{TINY_FONT}ΠΛ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ΑΨ -STR_ABBREV_NONE :{TINY_FONT}ΤΠ -STR_ABBREV_ALL :{TINY_FONT}ΟΛΑ +STR_ABBREV_PASSENGERS :ΕΠ +STR_ABBREV_COAL :AΘ +STR_ABBREV_MAIL :ΑΓ +STR_ABBREV_OIL :ΠΤ +STR_ABBREV_LIVESTOCK :ΖΩ +STR_ABBREV_GOODS :ΧΡ +STR_ABBREV_GRAIN :ΣΡ +STR_ABBREV_WOOD :ΞΛ +STR_ABBREV_IRON_ORE :ΣΜ +STR_ABBREV_STEEL :ΧΒ +STR_ABBREV_VALUABLES :ΠΕ +STR_ABBREV_COPPER_ORE :ΧΜ +STR_ABBREV_MAIZE :ΚΛ +STR_ABBREV_FRUIT :ΦΡ +STR_ABBREV_DIAMONDS :ΔΜ +STR_ABBREV_FOOD :ΤΦ +STR_ABBREV_PAPER :ΧΤ +STR_ABBREV_GOLD :ΧΡ +STR_ABBREV_WATER :ΝΕ +STR_ABBREV_WHEAT :ΣΤ +STR_ABBREV_RUBBER :ΚΤ +STR_ABBREV_SUGAR :ΖΧ +STR_ABBREV_TOYS :ΠΧ +STR_ABBREV_SWEETS :ΓΛ +STR_ABBREV_COLA :ΚΟ +STR_ABBREV_CANDYFLOSS :ΜΓ +STR_ABBREV_BUBBLES :ΦΥ +STR_ABBREV_TOFFEE :ΚΒ +STR_ABBREV_BATTERIES :ΜΠ +STR_ABBREV_PLASTIC :ΠΛ +STR_ABBREV_FIZZY_DRINKS :ΑΨ +STR_ABBREV_NONE :ΤΠ +STR_ABBREV_ALL :ΟΛΑ # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}επιβάτ{P ης ες} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index b3a9518899..59f8c1622d 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -142,39 +142,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}נס -STR_ABBREV_COAL :{TINY_FONT}פחם -STR_ABBREV_MAIL :{TINY_FONT}דו -STR_ABBREV_OIL :{TINY_FONT}נפ -STR_ABBREV_LIVESTOCK :{TINY_FONT}בק -STR_ABBREV_GOODS :{TINY_FONT}מצ -STR_ABBREV_GRAIN :{TINY_FONT}תב -STR_ABBREV_WOOD :{TINY_FONT}עץ -STR_ABBREV_IRON_ORE :{TINY_FONT}עב -STR_ABBREV_STEEL :{TINY_FONT}בר -STR_ABBREV_VALUABLES :{TINY_FONT}מע -STR_ABBREV_COPPER_ORE :{TINY_FONT}ענ -STR_ABBREV_MAIZE :{TINY_FONT}תי -STR_ABBREV_FRUIT :{TINY_FONT}פר -STR_ABBREV_DIAMONDS :{TINY_FONT}יה -STR_ABBREV_FOOD :{TINY_FONT}מז -STR_ABBREV_PAPER :{TINY_FONT}ני -STR_ABBREV_GOLD :{TINY_FONT}זה -STR_ABBREV_WATER :{TINY_FONT}מים -STR_ABBREV_WHEAT :{TINY_FONT}חט -STR_ABBREV_RUBBER :{TINY_FONT}גמ -STR_ABBREV_SUGAR :{TINY_FONT}סכ -STR_ABBREV_TOYS :{TINY_FONT}צע -STR_ABBREV_SWEETS :{TINY_FONT}מם -STR_ABBREV_COLA :{TINY_FONT}קולה -STR_ABBREV_CANDYFLOSS :{TINY_FONT}סוכר על מקל -STR_ABBREV_BUBBLES :{TINY_FONT}בועות -STR_ABBREV_TOFFEE :{TINY_FONT}טפ -STR_ABBREV_BATTERIES :{TINY_FONT}בטריות -STR_ABBREV_PLASTIC :{TINY_FONT}פל -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ממ -STR_ABBREV_NONE :{TINY_FONT}כל -STR_ABBREV_ALL :{TINY_FONT}הכל +STR_ABBREV_PASSENGERS :נס +STR_ABBREV_COAL :פחם +STR_ABBREV_MAIL :דו +STR_ABBREV_OIL :נפ +STR_ABBREV_LIVESTOCK :בק +STR_ABBREV_GOODS :מצ +STR_ABBREV_GRAIN :תב +STR_ABBREV_WOOD :עץ +STR_ABBREV_IRON_ORE :עב +STR_ABBREV_STEEL :בר +STR_ABBREV_VALUABLES :מע +STR_ABBREV_COPPER_ORE :ענ +STR_ABBREV_MAIZE :תי +STR_ABBREV_FRUIT :פר +STR_ABBREV_DIAMONDS :יה +STR_ABBREV_FOOD :מז +STR_ABBREV_PAPER :ני +STR_ABBREV_GOLD :זה +STR_ABBREV_WATER :מים +STR_ABBREV_WHEAT :חט +STR_ABBREV_RUBBER :גמ +STR_ABBREV_SUGAR :סכ +STR_ABBREV_TOYS :צע +STR_ABBREV_SWEETS :מם +STR_ABBREV_COLA :קולה +STR_ABBREV_CANDYFLOSS :סוכר על מקל +STR_ABBREV_BUBBLES :בועות +STR_ABBREV_TOFFEE :טפ +STR_ABBREV_BATTERIES :בטריות +STR_ABBREV_PLASTIC :פל +STR_ABBREV_FIZZY_DRINKS :ממ +STR_ABBREV_NONE :כל +STR_ABBREV_ALL :הכל # 'Mode' of transport for cargoes STR_PASSENGERS :{P 0 "נוסע " ""}{COMMA}{P "" " נוסעים"} diff --git a/src/lang/hindi.txt b/src/lang/hindi.txt index 3843617b9b..0643f16469 100644 --- a/src/lang/hindi.txt +++ b/src/lang/hindi.txt @@ -54,7 +54,7 @@ STR_QUANTITY_TOFFEE :{WEIGHT_LONG} # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_COAL :{TINY_FONT}कोयला +STR_ABBREV_COAL :कोयला # 'Mode' of transport for cargoes diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 8c7c8db437..79b9903483 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -191,39 +191,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}UT -STR_ABBREV_COAL :{TINY_FONT}SZ -STR_ABBREV_MAIL :{TINY_FONT}LV -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}ÁL -STR_ABBREV_GOODS :{TINY_FONT}ÁR -STR_ABBREV_GRAIN :{TINY_FONT}BZ -STR_ABBREV_WOOD :{TINY_FONT}FA -STR_ABBREV_IRON_ORE :{TINY_FONT}VÉ -STR_ABBREV_STEEL :{TINY_FONT}AC -STR_ABBREV_VALUABLES :{TINY_FONT}ÉP -STR_ABBREV_COPPER_ORE :{TINY_FONT}RÉ -STR_ABBREV_MAIZE :{TINY_FONT}KU -STR_ABBREV_FRUIT :{TINY_FONT}GÜ -STR_ABBREV_DIAMONDS :{TINY_FONT}GM -STR_ABBREV_FOOD :{TINY_FONT}ÉT -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}AR -STR_ABBREV_WATER :{TINY_FONT}VZ -STR_ABBREV_WHEAT :{TINY_FONT}BZ -STR_ABBREV_RUBBER :{TINY_FONT}GM -STR_ABBREV_SUGAR :{TINY_FONT}CU -STR_ABBREV_TOYS :{TINY_FONT}JT -STR_ABBREV_SWEETS :{TINY_FONT}CK -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}VC -STR_ABBREV_BUBBLES :{TINY_FONT}BB -STR_ABBREV_TOFFEE :{TINY_FONT}TK -STR_ABBREV_BATTERIES :{TINY_FONT}EL -STR_ABBREV_PLASTIC :{TINY_FONT}MA -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}SS -STR_ABBREV_NONE :{TINY_FONT}SÁ -STR_ABBREV_ALL :{TINY_FONT}ÖS +STR_ABBREV_PASSENGERS :UT +STR_ABBREV_COAL :SZ +STR_ABBREV_MAIL :LV +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :ÁL +STR_ABBREV_GOODS :ÁR +STR_ABBREV_GRAIN :BZ +STR_ABBREV_WOOD :FA +STR_ABBREV_IRON_ORE :VÉ +STR_ABBREV_STEEL :AC +STR_ABBREV_VALUABLES :ÉP +STR_ABBREV_COPPER_ORE :RÉ +STR_ABBREV_MAIZE :KU +STR_ABBREV_FRUIT :GÜ +STR_ABBREV_DIAMONDS :GM +STR_ABBREV_FOOD :ÉT +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :AR +STR_ABBREV_WATER :VZ +STR_ABBREV_WHEAT :BZ +STR_ABBREV_RUBBER :GM +STR_ABBREV_SUGAR :CU +STR_ABBREV_TOYS :JT +STR_ABBREV_SWEETS :CK +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :VC +STR_ABBREV_BUBBLES :BB +STR_ABBREV_TOFFEE :TK +STR_ABBREV_BATTERIES :EL +STR_ABBREV_PLASTIC :MA +STR_ABBREV_FIZZY_DRINKS :SS +STR_ABBREV_NONE :SÁ +STR_ABBREV_ALL :ÖS # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}utas diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 9fae64343f..ab74e48c2a 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CL -STR_ABBREV_MAIL :{TINY_FONT}ML -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}LV -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}KR -STR_ABBREV_WOOD :{TINY_FONT}VI -STR_ABBREV_IRON_ORE :{TINY_FONT}OR -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}FD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WR -STR_ABBREV_WHEAT :{TINY_FONT}WH -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SG -STR_ABBREV_TOYS :{TINY_FONT}TY -STR_ABBREV_SWEETS :{TINY_FONT}SW -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CF -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FZ -STR_ABBREV_NONE :{TINY_FONT}EKKERT -STR_ABBREV_ALL :{TINY_FONT}ALLT +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CL +STR_ABBREV_MAIL :ML +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :LV +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :KR +STR_ABBREV_WOOD :VI +STR_ABBREV_IRON_ORE :OR +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :FD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WR +STR_ABBREV_WHEAT :WH +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SG +STR_ABBREV_TOYS :TY +STR_ABBREV_SWEETS :SW +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CF +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FZ +STR_ABBREV_NONE :EKKERT +STR_ABBREV_ALL :ALLT # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} farþeg{P i ar} diff --git a/src/lang/ido.txt b/src/lang/ido.txt index b08ddc7854..e3aecc8545 100644 --- a/src/lang/ido.txt +++ b/src/lang/ido.txt @@ -127,39 +127,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KB -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}BT -STR_ABBREV_GOODS :{TINY_FONT}VR -STR_ABBREV_GRAIN :{TINY_FONT}GN -STR_ABBREV_WOOD :{TINY_FONT}LG -STR_ABBREV_IRON_ORE :{TINY_FONT}EC -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}KP -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}MJ -STR_ABBREV_PAPER :{TINY_FONT}PP -STR_ABBREV_GOLD :{TINY_FONT}OR -STR_ABBREV_WATER :{TINY_FONT}AQ -STR_ABBREV_WHEAT :{TINY_FONT}FM -STR_ABBREV_RUBBER :{TINY_FONT}KK -STR_ABBREV_SUGAR :{TINY_FONT}SK -STR_ABBREV_TOYS :{TINY_FONT}LD -STR_ABBREV_SWEETS :{TINY_FONT}DC -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}KD -STR_ABBREV_BUBBLES :{TINY_FONT}BL -STR_ABBREV_TOFFEE :{TINY_FONT}KR -STR_ABBREV_BATTERIES :{TINY_FONT}BT -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GD -STR_ABBREV_NONE :{TINY_FONT}NL -STR_ABBREV_ALL :{TINY_FONT}OMNA +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KB +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :BT +STR_ABBREV_GOODS :VR +STR_ABBREV_GRAIN :GN +STR_ABBREV_WOOD :LG +STR_ABBREV_IRON_ORE :EC +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :KP +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :MJ +STR_ABBREV_PAPER :PP +STR_ABBREV_GOLD :OR +STR_ABBREV_WATER :AQ +STR_ABBREV_WHEAT :FM +STR_ABBREV_RUBBER :KK +STR_ABBREV_SUGAR :SK +STR_ABBREV_TOYS :LD +STR_ABBREV_SWEETS :DC +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :KD +STR_ABBREV_BUBBLES :BL +STR_ABBREV_TOFFEE :KR +STR_ABBREV_BATTERIES :BT +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :GD +STR_ABBREV_NONE :NL +STR_ABBREV_ALL :OMNA # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} pasajeri diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 81b81b4e09..00b0db5c74 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PN -STR_ABBREV_COAL :{TINY_FONT}BB -STR_ABBREV_MAIL :{TINY_FONT}SR -STR_ABBREV_OIL :{TINY_FONT}MY -STR_ABBREV_LIVESTOCK :{TINY_FONT}TR -STR_ABBREV_GOODS :{TINY_FONT}BR -STR_ABBREV_GRAIN :{TINY_FONT}GD -STR_ABBREV_WOOD :{TINY_FONT}KY -STR_ABBREV_IRON_ORE :{TINY_FONT}BS -STR_ABBREV_STEEL :{TINY_FONT}BJ -STR_ABBREV_VALUABLES :{TINY_FONT}BB -STR_ABBREV_COPPER_ORE :{TINY_FONT}TB -STR_ABBREV_MAIZE :{TINY_FONT}JG -STR_ABBREV_FRUIT :{TINY_FONT}BH -STR_ABBREV_DIAMONDS :{TINY_FONT}IN -STR_ABBREV_FOOD :{TINY_FONT}MK -STR_ABBREV_PAPER :{TINY_FONT}KR -STR_ABBREV_GOLD :{TINY_FONT}EM -STR_ABBREV_WATER :{TINY_FONT}AR -STR_ABBREV_WHEAT :{TINY_FONT}TG -STR_ABBREV_RUBBER :{TINY_FONT}KR -STR_ABBREV_SUGAR :{TINY_FONT}GL -STR_ABBREV_TOYS :{TINY_FONT}MA -STR_ABBREV_SWEETS :{TINY_FONT}GG -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}AM -STR_ABBREV_BUBBLES :{TINY_FONT}GL -STR_ABBREV_TOFFEE :{TINY_FONT}PM -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}MR -STR_ABBREV_NONE :{TINY_FONT}TANPA -STR_ABBREV_ALL :{TINY_FONT}SMA +STR_ABBREV_PASSENGERS :PN +STR_ABBREV_COAL :BB +STR_ABBREV_MAIL :SR +STR_ABBREV_OIL :MY +STR_ABBREV_LIVESTOCK :TR +STR_ABBREV_GOODS :BR +STR_ABBREV_GRAIN :GD +STR_ABBREV_WOOD :KY +STR_ABBREV_IRON_ORE :BS +STR_ABBREV_STEEL :BJ +STR_ABBREV_VALUABLES :BB +STR_ABBREV_COPPER_ORE :TB +STR_ABBREV_MAIZE :JG +STR_ABBREV_FRUIT :BH +STR_ABBREV_DIAMONDS :IN +STR_ABBREV_FOOD :MK +STR_ABBREV_PAPER :KR +STR_ABBREV_GOLD :EM +STR_ABBREV_WATER :AR +STR_ABBREV_WHEAT :TG +STR_ABBREV_RUBBER :KR +STR_ABBREV_SUGAR :GL +STR_ABBREV_TOYS :MA +STR_ABBREV_SWEETS :GG +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :AM +STR_ABBREV_BUBBLES :GL +STR_ABBREV_TOFFEE :PM +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :MR +STR_ABBREV_NONE :TANPA +STR_ABBREV_ALL :SMA # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}penumpang diff --git a/src/lang/irish.txt b/src/lang/irish.txt index b8af320648..36ea90ecad 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/B # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}P -STR_ABBREV_COAL :{TINY_FONT}GL -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}BS -STR_ABBREV_GOODS :{TINY_FONT}EA -STR_ABBREV_GRAIN :{TINY_FONT}AR -STR_ABBREV_WOOD :{TINY_FONT}AD -STR_ABBREV_IRON_ORE :{TINY_FONT}IA -STR_ABBREV_STEEL :{TINY_FONT}CR -STR_ABBREV_VALUABLES :{TINY_FONT}EL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}AI -STR_ABBREV_FRUIT :{TINY_FONT}TO -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}BI -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}ÓR -STR_ABBREV_WATER :{TINY_FONT}UI -STR_ABBREV_WHEAT :{TINY_FONT}CR -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SI -STR_ABBREV_TOYS :{TINY_FONT}BR -STR_ABBREV_SWEETS :{TINY_FONT}MI -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SS -STR_ABBREV_BUBBLES :{TINY_FONT}SÚ -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}CE -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}DS -STR_ABBREV_NONE :{TINY_FONT}TD -STR_ABBREV_ALL :{TINY_FONT}GACH +STR_ABBREV_PASSENGERS :P +STR_ABBREV_COAL :GL +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :BS +STR_ABBREV_GOODS :EA +STR_ABBREV_GRAIN :AR +STR_ABBREV_WOOD :AD +STR_ABBREV_IRON_ORE :IA +STR_ABBREV_STEEL :CR +STR_ABBREV_VALUABLES :EL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :AI +STR_ABBREV_FRUIT :TO +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :BI +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :ÓR +STR_ABBREV_WATER :UI +STR_ABBREV_WHEAT :CR +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SI +STR_ABBREV_TOYS :BR +STR_ABBREV_SWEETS :MI +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :SS +STR_ABBREV_BUBBLES :SÚ +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :CE +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :DS +STR_ABBREV_NONE :TD +STR_ABBREV_ALL :GACH # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}{P ph ph ph bp p}aisinéir diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 10737fb114..be4f6f1f17 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -130,39 +130,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PA -STR_ABBREV_COAL :{TINY_FONT}CA -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}PE -STR_ABBREV_LIVESTOCK :{TINY_FONT}BE -STR_ABBREV_GOODS :{TINY_FONT}BN -STR_ABBREV_GRAIN :{TINY_FONT}CE -STR_ABBREV_WOOD :{TINY_FONT}LE -STR_ABBREV_IRON_ORE :{TINY_FONT}FE -STR_ABBREV_STEEL :{TINY_FONT}AC -STR_ABBREV_VALUABLES :{TINY_FONT}VA -STR_ABBREV_COPPER_ORE :{TINY_FONT}RM -STR_ABBREV_MAIZE :{TINY_FONT}MA -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}CB -STR_ABBREV_PAPER :{TINY_FONT}CT -STR_ABBREV_GOLD :{TINY_FONT}OR -STR_ABBREV_WATER :{TINY_FONT}AQ -STR_ABBREV_WHEAT :{TINY_FONT}FR -STR_ABBREV_RUBBER :{TINY_FONT}GM -STR_ABBREV_SUGAR :{TINY_FONT}ZU -STR_ABBREV_TOYS :{TINY_FONT}GI -STR_ABBREV_SWEETS :{TINY_FONT}CM -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ZF -STR_ABBREV_BUBBLES :{TINY_FONT}BO -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}BF -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}TUT +STR_ABBREV_PASSENGERS :PA +STR_ABBREV_COAL :CA +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :PE +STR_ABBREV_LIVESTOCK :BE +STR_ABBREV_GOODS :BN +STR_ABBREV_GRAIN :CE +STR_ABBREV_WOOD :LE +STR_ABBREV_IRON_ORE :FE +STR_ABBREV_STEEL :AC +STR_ABBREV_VALUABLES :VA +STR_ABBREV_COPPER_ORE :RM +STR_ABBREV_MAIZE :MA +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :CB +STR_ABBREV_PAPER :CT +STR_ABBREV_GOLD :OR +STR_ABBREV_WATER :AQ +STR_ABBREV_WHEAT :FR +STR_ABBREV_RUBBER :GM +STR_ABBREV_SUGAR :ZU +STR_ABBREV_TOYS :GI +STR_ABBREV_SWEETS :CM +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :ZF +STR_ABBREV_BUBBLES :BO +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :BF +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :TUT # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passegger{P o i} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index cc1bb6db58..a7f04e7f0a 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}客 -STR_ABBREV_COAL :{TINY_FONT}炭 -STR_ABBREV_MAIL :{TINY_FONT}郵 -STR_ABBREV_OIL :{TINY_FONT}油 -STR_ABBREV_LIVESTOCK :{TINY_FONT}飼 -STR_ABBREV_GOODS :{TINY_FONT}品 -STR_ABBREV_GRAIN :{TINY_FONT}穀 -STR_ABBREV_WOOD :{TINY_FONT}木 -STR_ABBREV_IRON_ORE :{TINY_FONT}鉄 -STR_ABBREV_STEEL :{TINY_FONT}鋼 -STR_ABBREV_VALUABLES :{TINY_FONT}貴 -STR_ABBREV_COPPER_ORE :{TINY_FONT}銅 -STR_ABBREV_MAIZE :{TINY_FONT}黍 -STR_ABBREV_FRUIT :{TINY_FONT}果 -STR_ABBREV_DIAMONDS :{TINY_FONT}宝 -STR_ABBREV_FOOD :{TINY_FONT}食 -STR_ABBREV_PAPER :{TINY_FONT}紙 -STR_ABBREV_GOLD :{TINY_FONT}金 -STR_ABBREV_WATER :{TINY_FONT}水 -STR_ABBREV_WHEAT :{TINY_FONT}麦 -STR_ABBREV_RUBBER :{TINY_FONT}ゴ -STR_ABBREV_SUGAR :{TINY_FONT}糖 -STR_ABBREV_TOYS :{TINY_FONT}玩 -STR_ABBREV_SWEETS :{TINY_FONT}菓 -STR_ABBREV_COLA :{TINY_FONT}コ -STR_ABBREV_CANDYFLOSS :{TINY_FONT}わ -STR_ABBREV_BUBBLES :{TINY_FONT}泡 -STR_ABBREV_TOFFEE :{TINY_FONT}タ -STR_ABBREV_BATTERIES :{TINY_FONT}電 -STR_ABBREV_PLASTIC :{TINY_FONT}プ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ソ -STR_ABBREV_NONE :{TINY_FONT}無 -STR_ABBREV_ALL :{TINY_FONT}全 +STR_ABBREV_PASSENGERS :客 +STR_ABBREV_COAL :炭 +STR_ABBREV_MAIL :郵 +STR_ABBREV_OIL :油 +STR_ABBREV_LIVESTOCK :飼 +STR_ABBREV_GOODS :品 +STR_ABBREV_GRAIN :穀 +STR_ABBREV_WOOD :木 +STR_ABBREV_IRON_ORE :鉄 +STR_ABBREV_STEEL :鋼 +STR_ABBREV_VALUABLES :貴 +STR_ABBREV_COPPER_ORE :銅 +STR_ABBREV_MAIZE :黍 +STR_ABBREV_FRUIT :果 +STR_ABBREV_DIAMONDS :宝 +STR_ABBREV_FOOD :食 +STR_ABBREV_PAPER :紙 +STR_ABBREV_GOLD :金 +STR_ABBREV_WATER :水 +STR_ABBREV_WHEAT :麦 +STR_ABBREV_RUBBER :ゴ +STR_ABBREV_SUGAR :糖 +STR_ABBREV_TOYS :玩 +STR_ABBREV_SWEETS :菓 +STR_ABBREV_COLA :コ +STR_ABBREV_CANDYFLOSS :わ +STR_ABBREV_BUBBLES :泡 +STR_ABBREV_TOFFEE :タ +STR_ABBREV_BATTERIES :電 +STR_ABBREV_PLASTIC :プ +STR_ABBREV_FIZZY_DRINKS :ソ +STR_ABBREV_NONE :無 +STR_ABBREV_ALL :全 # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}人 diff --git a/src/lang/korean.txt b/src/lang/korean.txt index b99c905bb6..56d57c5bb0 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :없음 # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}승 -STR_ABBREV_COAL :{TINY_FONT}석 -STR_ABBREV_MAIL :{TINY_FONT}우 -STR_ABBREV_OIL :{TINY_FONT}유 -STR_ABBREV_LIVESTOCK :{TINY_FONT}축 -STR_ABBREV_GOODS :{TINY_FONT}품 -STR_ABBREV_GRAIN :{TINY_FONT}곡 -STR_ABBREV_WOOD :{TINY_FONT}목 -STR_ABBREV_IRON_ORE :{TINY_FONT}광 -STR_ABBREV_STEEL :{TINY_FONT}철 -STR_ABBREV_VALUABLES :{TINY_FONT}귀 -STR_ABBREV_COPPER_ORE :{TINY_FONT}구 -STR_ABBREV_MAIZE :{TINY_FONT}옥 -STR_ABBREV_FRUIT :{TINY_FONT}과 -STR_ABBREV_DIAMONDS :{TINY_FONT}다 -STR_ABBREV_FOOD :{TINY_FONT}식 -STR_ABBREV_PAPER :{TINY_FONT}종 -STR_ABBREV_GOLD :{TINY_FONT}금 -STR_ABBREV_WATER :{TINY_FONT}물 -STR_ABBREV_WHEAT :{TINY_FONT}밀 -STR_ABBREV_RUBBER :{TINY_FONT}고 -STR_ABBREV_SUGAR :{TINY_FONT}설 -STR_ABBREV_TOYS :{TINY_FONT}장 -STR_ABBREV_SWEETS :{TINY_FONT}사 -STR_ABBREV_COLA :{TINY_FONT}콜 -STR_ABBREV_CANDYFLOSS :{TINY_FONT}솜 -STR_ABBREV_BUBBLES :{TINY_FONT}거 -STR_ABBREV_TOFFEE :{TINY_FONT}토 -STR_ABBREV_BATTERIES :{TINY_FONT}건 -STR_ABBREV_PLASTIC :{TINY_FONT}플 -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}탄 -STR_ABBREV_NONE :{TINY_FONT}X -STR_ABBREV_ALL :{TINY_FONT}모두 +STR_ABBREV_PASSENGERS :승 +STR_ABBREV_COAL :석 +STR_ABBREV_MAIL :우 +STR_ABBREV_OIL :유 +STR_ABBREV_LIVESTOCK :축 +STR_ABBREV_GOODS :품 +STR_ABBREV_GRAIN :곡 +STR_ABBREV_WOOD :목 +STR_ABBREV_IRON_ORE :광 +STR_ABBREV_STEEL :철 +STR_ABBREV_VALUABLES :귀 +STR_ABBREV_COPPER_ORE :구 +STR_ABBREV_MAIZE :옥 +STR_ABBREV_FRUIT :과 +STR_ABBREV_DIAMONDS :다 +STR_ABBREV_FOOD :식 +STR_ABBREV_PAPER :종 +STR_ABBREV_GOLD :금 +STR_ABBREV_WATER :물 +STR_ABBREV_WHEAT :밀 +STR_ABBREV_RUBBER :고 +STR_ABBREV_SUGAR :설 +STR_ABBREV_TOYS :장 +STR_ABBREV_SWEETS :사 +STR_ABBREV_COLA :콜 +STR_ABBREV_CANDYFLOSS :솜 +STR_ABBREV_BUBBLES :거 +STR_ABBREV_TOFFEE :토 +STR_ABBREV_BATTERIES :건 +STR_ABBREV_PLASTIC :플 +STR_ABBREV_FIZZY_DRINKS :탄 +STR_ABBREV_NONE :X +STR_ABBREV_ALL :모두 # 'Mode' of transport for cargoes STR_PASSENGERS :{G=m}{COMMA}명 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 07df11a838..ad799ca250 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -316,39 +316,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}VC -STR_ABBREV_COAL :{TINY_FONT}CA -STR_ABBREV_MAIL :{TINY_FONT}EP -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}PC -STR_ABBREV_GOODS :{TINY_FONT}ME -STR_ABBREV_GRAIN :{TINY_FONT}FR -STR_ABBREV_WOOD :{TINY_FONT}LI -STR_ABBREV_IRON_ORE :{TINY_FONT}FE -STR_ABBREV_STEEL :{TINY_FONT}CH -STR_ABBREV_VALUABLES :{TINY_FONT}RP -STR_ABBREV_COPPER_ORE :{TINY_FONT}AE -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}AD -STR_ABBREV_FOOD :{TINY_FONT}AL -STR_ABBREV_PAPER :{TINY_FONT}CA -STR_ABBREV_GOLD :{TINY_FONT}AU -STR_ABBREV_WATER :{TINY_FONT}AQ -STR_ABBREV_WHEAT :{TINY_FONT}TR -STR_ABBREV_RUBBER :{TINY_FONT}GU -STR_ABBREV_SUGAR :{TINY_FONT}SC -STR_ABBREV_TOYS :{TINY_FONT}LD -STR_ABBREV_SWEETS :{TINY_FONT}BL -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SX -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}ST -STR_ABBREV_BATTERIES :{TINY_FONT}PE -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}PC -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}OMN +STR_ABBREV_PASSENGERS :VC +STR_ABBREV_COAL :CA +STR_ABBREV_MAIL :EP +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :PC +STR_ABBREV_GOODS :ME +STR_ABBREV_GRAIN :FR +STR_ABBREV_WOOD :LI +STR_ABBREV_IRON_ORE :FE +STR_ABBREV_STEEL :CH +STR_ABBREV_VALUABLES :RP +STR_ABBREV_COPPER_ORE :AE +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :AD +STR_ABBREV_FOOD :AL +STR_ABBREV_PAPER :CA +STR_ABBREV_GOLD :AU +STR_ABBREV_WATER :AQ +STR_ABBREV_WHEAT :TR +STR_ABBREV_RUBBER :GU +STR_ABBREV_SUGAR :SC +STR_ABBREV_TOYS :LD +STR_ABBREV_SWEETS :BL +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :SX +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :ST +STR_ABBREV_BATTERIES :PE +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :PC +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :OMN # 'Mode' of transport for cargoes STR_PASSENGERS :{G=mp}{COMMA}{NBSP}vector{P "" es} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index b4aaab0146..8f1051824a 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -130,39 +130,39 @@ STR_QUANTITY_N_A :nav informācij # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PA -STR_ABBREV_COAL :{TINY_FONT}OG -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}NF -STR_ABBREV_LIVESTOCK :{TINY_FONT}LL -STR_ABBREV_GOODS :{TINY_FONT}PR -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}KM -STR_ABBREV_IRON_ORE :{TINY_FONT}DZ -STR_ABBREV_STEEL :{TINY_FONT}TR -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}VR -STR_ABBREV_MAIZE :{TINY_FONT}KU -STR_ABBREV_FRUIT :{TINY_FONT}AU -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}PP -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}ZE -STR_ABBREV_WATER :{TINY_FONT}ŪD -STR_ABBREV_WHEAT :{TINY_FONT}KV -STR_ABBREV_RUBBER :{TINY_FONT}KČ -STR_ABBREV_SUGAR :{TINY_FONT}CU -STR_ABBREV_TOYS :{TINY_FONT}RT -STR_ABBREV_SWEETS :{TINY_FONT}SA -STR_ABBREV_COLA :{TINY_FONT}KO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CV -STR_ABBREV_BUBBLES :{TINY_FONT}BB -STR_ABBREV_TOFFEE :{TINY_FONT}CP -STR_ABBREV_BATTERIES :{TINY_FONT}BT -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}LM -STR_ABBREV_NONE :{TINY_FONT}NAV -STR_ABBREV_ALL :{TINY_FONT}VISI +STR_ABBREV_PASSENGERS :PA +STR_ABBREV_COAL :OG +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :NF +STR_ABBREV_LIVESTOCK :LL +STR_ABBREV_GOODS :PR +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :KM +STR_ABBREV_IRON_ORE :DZ +STR_ABBREV_STEEL :TR +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :VR +STR_ABBREV_MAIZE :KU +STR_ABBREV_FRUIT :AU +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :PP +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :ZE +STR_ABBREV_WATER :ŪD +STR_ABBREV_WHEAT :KV +STR_ABBREV_RUBBER :KČ +STR_ABBREV_SUGAR :CU +STR_ABBREV_TOYS :RT +STR_ABBREV_SWEETS :SA +STR_ABBREV_COLA :KO +STR_ABBREV_CANDYFLOSS :CV +STR_ABBREV_BUBBLES :BB +STR_ABBREV_TOFFEE :CP +STR_ABBREV_BATTERIES :BT +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :LM +STR_ABBREV_NONE :NAV +STR_ABBREV_ALL :VISI # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}pasažier{P is i u} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 0d74a5cbe5..eadc43a877 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -323,39 +323,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}KL -STR_ABBREV_COAL :{TINY_FONT}AN -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}NF -STR_ABBREV_LIVESTOCK :{TINY_FONT}GJ -STR_ABBREV_GOODS :{TINY_FONT}PR -STR_ABBREV_GRAIN :{TINY_FONT}GD -STR_ABBREV_WOOD :{TINY_FONT}MD -STR_ABBREV_IRON_ORE :{TINY_FONT}GL -STR_ABBREV_STEEL :{TINY_FONT}PN -STR_ABBREV_VALUABLES :{TINY_FONT}VT -STR_ABBREV_COPPER_ORE :{TINY_FONT}VR -STR_ABBREV_MAIZE :{TINY_FONT}KK -STR_ABBREV_FRUIT :{TINY_FONT}VS -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}MT -STR_ABBREV_PAPER :{TINY_FONT}PP -STR_ABBREV_GOLD :{TINY_FONT}AU -STR_ABBREV_WATER :{TINY_FONT}VD -STR_ABBREV_WHEAT :{TINY_FONT}VN -STR_ABBREV_RUBBER :{TINY_FONT}KČ -STR_ABBREV_SUGAR :{TINY_FONT}CK -STR_ABBREV_TOYS :{TINY_FONT}ŽL -STR_ABBREV_SWEETS :{TINY_FONT}SL -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CV -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}KR -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PM -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GG -STR_ABBREV_NONE :{TINY_FONT}- -STR_ABBREV_ALL :{TINY_FONT}VISI +STR_ABBREV_PASSENGERS :KL +STR_ABBREV_COAL :AN +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :NF +STR_ABBREV_LIVESTOCK :GJ +STR_ABBREV_GOODS :PR +STR_ABBREV_GRAIN :GD +STR_ABBREV_WOOD :MD +STR_ABBREV_IRON_ORE :GL +STR_ABBREV_STEEL :PN +STR_ABBREV_VALUABLES :VT +STR_ABBREV_COPPER_ORE :VR +STR_ABBREV_MAIZE :KK +STR_ABBREV_FRUIT :VS +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :MT +STR_ABBREV_PAPER :PP +STR_ABBREV_GOLD :AU +STR_ABBREV_WATER :VD +STR_ABBREV_WHEAT :VN +STR_ABBREV_RUBBER :KČ +STR_ABBREV_SUGAR :CK +STR_ABBREV_TOYS :ŽL +STR_ABBREV_SWEETS :SL +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CV +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :KR +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PM +STR_ABBREV_FIZZY_DRINKS :GG +STR_ABBREV_NONE :- +STR_ABBREV_ALL :VISI # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}keleiv{P is iai ių} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index ff6759df24..32f3bd201b 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KU -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}UL -STR_ABBREV_LIVESTOCK :{TINY_FONT}VE -STR_ABBREV_GOODS :{TINY_FONT}WU -STR_ABBREV_GRAIN :{TINY_FONT}KA -STR_ABBREV_WOOD :{TINY_FONT}HO -STR_ABBREV_IRON_ORE :{TINY_FONT}EA -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}WS -STR_ABBREV_COPPER_ORE :{TINY_FONT}KE -STR_ABBREV_MAIZE :{TINY_FONT}MA -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}IE -STR_ABBREV_PAPER :{TINY_FONT}PB -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WA -STR_ABBREV_WHEAT :{TINY_FONT}WE -STR_ABBREV_RUBBER :{TINY_FONT}KT -STR_ABBREV_SUGAR :{TINY_FONT}ZO -STR_ABBREV_TOYS :{TINY_FONT}SP -STR_ABBREV_SWEETS :{TINY_FONT}SE -STR_ABBREV_COLA :{TINY_FONT}CO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ZW -STR_ABBREV_BUBBLES :{TINY_FONT}BL -STR_ABBREV_TOFFEE :{TINY_FONT}KA -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}KG -STR_ABBREV_NONE :{TINY_FONT}KG -STR_ABBREV_ALL :{TINY_FONT}ALL +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KU +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :UL +STR_ABBREV_LIVESTOCK :VE +STR_ABBREV_GOODS :WU +STR_ABBREV_GRAIN :KA +STR_ABBREV_WOOD :HO +STR_ABBREV_IRON_ORE :EA +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :WS +STR_ABBREV_COPPER_ORE :KE +STR_ABBREV_MAIZE :MA +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :IE +STR_ABBREV_PAPER :PB +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WA +STR_ABBREV_WHEAT :WE +STR_ABBREV_RUBBER :KT +STR_ABBREV_SUGAR :ZO +STR_ABBREV_TOYS :SP +STR_ABBREV_SWEETS :SE +STR_ABBREV_COLA :CO +STR_ABBREV_CANDYFLOSS :ZW +STR_ABBREV_BUBBLES :BL +STR_ABBREV_TOFFEE :KA +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :KG +STR_ABBREV_NONE :KG +STR_ABBREV_ALL :ALL # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}Passagéier diff --git a/src/lang/macedonian.txt b/src/lang/macedonian.txt index 1daf3e8765..1b2a4b0dd5 100644 --- a/src/lang/macedonian.txt +++ b/src/lang/macedonian.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}ПА -STR_ABBREV_COAL :{TINY_FONT}ЈА -STR_ABBREV_MAIL :{TINY_FONT}ПО -STR_ABBREV_OIL :{TINY_FONT}НА -STR_ABBREV_LIVESTOCK :{TINY_FONT}ГД -STR_ABBREV_GOODS :{TINY_FONT}СТ -STR_ABBREV_GRAIN :{TINY_FONT}ЖИ -STR_ABBREV_WOOD :{TINY_FONT}ДР -STR_ABBREV_IRON_ORE :{TINY_FONT}ЖР -STR_ABBREV_STEEL :{TINY_FONT}ЧЕ -STR_ABBREV_VALUABLES :{TINY_FONT}СЦ -STR_ABBREV_COPPER_ORE :{TINY_FONT}БР -STR_ABBREV_MAIZE :{TINY_FONT}ПЧ -STR_ABBREV_FRUIT :{TINY_FONT}ОВ -STR_ABBREV_DIAMONDS :{TINY_FONT}ДИ -STR_ABBREV_FOOD :{TINY_FONT}ХР -STR_ABBREV_PAPER :{TINY_FONT}ХА -STR_ABBREV_GOLD :{TINY_FONT}ЗЛ -STR_ABBREV_WATER :{TINY_FONT}ВО -STR_ABBREV_WHEAT :{TINY_FONT}ПЦ -STR_ABBREV_RUBBER :{TINY_FONT}ГУ -STR_ABBREV_SUGAR :{TINY_FONT}ШЕ -STR_ABBREV_TOYS :{TINY_FONT}ИГ -STR_ABBREV_SWEETS :{TINY_FONT}КЊ -STR_ABBREV_COLA :{TINY_FONT}КЛ -STR_ABBREV_CANDYFLOSS :{TINY_FONT}СК -STR_ABBREV_BUBBLES :{TINY_FONT}МЕ -STR_ABBREV_TOFFEE :{TINY_FONT}КА -STR_ABBREV_BATTERIES :{TINY_FONT}БА -STR_ABBREV_PLASTIC :{TINY_FONT}ПЛ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ПП -STR_ABBREV_NONE :{TINY_FONT}НТ -STR_ABBREV_ALL :{TINY_FONT}Се` +STR_ABBREV_PASSENGERS :ПА +STR_ABBREV_COAL :ЈА +STR_ABBREV_MAIL :ПО +STR_ABBREV_OIL :НА +STR_ABBREV_LIVESTOCK :ГД +STR_ABBREV_GOODS :СТ +STR_ABBREV_GRAIN :ЖИ +STR_ABBREV_WOOD :ДР +STR_ABBREV_IRON_ORE :ЖР +STR_ABBREV_STEEL :ЧЕ +STR_ABBREV_VALUABLES :СЦ +STR_ABBREV_COPPER_ORE :БР +STR_ABBREV_MAIZE :ПЧ +STR_ABBREV_FRUIT :ОВ +STR_ABBREV_DIAMONDS :ДИ +STR_ABBREV_FOOD :ХР +STR_ABBREV_PAPER :ХА +STR_ABBREV_GOLD :ЗЛ +STR_ABBREV_WATER :ВО +STR_ABBREV_WHEAT :ПЦ +STR_ABBREV_RUBBER :ГУ +STR_ABBREV_SUGAR :ШЕ +STR_ABBREV_TOYS :ИГ +STR_ABBREV_SWEETS :КЊ +STR_ABBREV_COLA :КЛ +STR_ABBREV_CANDYFLOSS :СК +STR_ABBREV_BUBBLES :МЕ +STR_ABBREV_TOFFEE :КА +STR_ABBREV_BATTERIES :БА +STR_ABBREV_PLASTIC :ПЛ +STR_ABBREV_FIZZY_DRINKS :ПП +STR_ABBREV_NONE :НТ +STR_ABBREV_ALL :Се` # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} патници{P "" s} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 1e97cb276c..0e39213214 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :Tiada # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PEN -STR_ABBREV_COAL :{TINY_FONT}BA -STR_ABBREV_MAIL :{TINY_FONT}SR -STR_ABBREV_OIL :{TINY_FONT}MI -STR_ABBREV_LIVESTOCK :{TINY_FONT}TR -STR_ABBREV_GOODS :{TINY_FONT}BR -STR_ABBREV_GRAIN :{TINY_FONT}BJ -STR_ABBREV_WOOD :{TINY_FONT}KA -STR_ABBREV_IRON_ORE :{TINY_FONT}OR -STR_ABBREV_STEEL :{TINY_FONT}BS -STR_ABBREV_VALUABLES :{TINY_FONT}BB -STR_ABBREV_COPPER_ORE :{TINY_FONT}TB -STR_ABBREV_MAIZE :{TINY_FONT}JG -STR_ABBREV_FRUIT :{TINY_FONT}BU -STR_ABBREV_DIAMONDS :{TINY_FONT}BL -STR_ABBREV_FOOD :{TINY_FONT}MK -STR_ABBREV_PAPER :{TINY_FONT}KR -STR_ABBREV_GOLD :{TINY_FONT}EM -STR_ABBREV_WATER :{TINY_FONT}AR -STR_ABBREV_WHEAT :{TINY_FONT}GD -STR_ABBREV_RUBBER :{TINY_FONT}GT -STR_ABBREV_SUGAR :{TINY_FONT}GU -STR_ABBREV_TOYS :{TINY_FONT}MA -STR_ABBREV_SWEETS :{TINY_FONT}GG -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}GK -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BT -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FZ -STR_ABBREV_NONE :{TINY_FONT}TIADA -STR_ABBREV_ALL :{TINY_FONT}SEMUA +STR_ABBREV_PASSENGERS :PEN +STR_ABBREV_COAL :BA +STR_ABBREV_MAIL :SR +STR_ABBREV_OIL :MI +STR_ABBREV_LIVESTOCK :TR +STR_ABBREV_GOODS :BR +STR_ABBREV_GRAIN :BJ +STR_ABBREV_WOOD :KA +STR_ABBREV_IRON_ORE :OR +STR_ABBREV_STEEL :BS +STR_ABBREV_VALUABLES :BB +STR_ABBREV_COPPER_ORE :TB +STR_ABBREV_MAIZE :JG +STR_ABBREV_FRUIT :BU +STR_ABBREV_DIAMONDS :BL +STR_ABBREV_FOOD :MK +STR_ABBREV_PAPER :KR +STR_ABBREV_GOLD :EM +STR_ABBREV_WATER :AR +STR_ABBREV_WHEAT :GD +STR_ABBREV_RUBBER :GT +STR_ABBREV_SUGAR :GU +STR_ABBREV_TOYS :MA +STR_ABBREV_SWEETS :GG +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :GK +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BT +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FZ +STR_ABBREV_NONE :TIADA +STR_ABBREV_ALL :SEMUA # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} penumpang diff --git a/src/lang/marathi.txt b/src/lang/marathi.txt index e97568a999..f4ce363e64 100644 --- a/src/lang/marathi.txt +++ b/src/lang/marathi.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :उपलब् # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}प्र -STR_ABBREV_COAL :{TINY_FONT}को -STR_ABBREV_MAIL :{TINY_FONT}टपाल -STR_ABBREV_OIL :{TINY_FONT}तेल -STR_ABBREV_LIVESTOCK :{TINY_FONT}पशु -STR_ABBREV_GOODS :{TINY_FONT}वस्तू -STR_ABBREV_GRAIN :{TINY_FONT}धान्य -STR_ABBREV_WOOD :{TINY_FONT}ला -STR_ABBREV_IRON_ORE :{TINY_FONT}लोह -STR_ABBREV_STEEL :{TINY_FONT}पो -STR_ABBREV_VALUABLES :{TINY_FONT}मौल्य -STR_ABBREV_COPPER_ORE :{TINY_FONT}तांबे -STR_ABBREV_MAIZE :{TINY_FONT}मका -STR_ABBREV_FRUIT :{TINY_FONT}फळ -STR_ABBREV_DIAMONDS :{TINY_FONT}हिरे -STR_ABBREV_FOOD :{TINY_FONT}अन्न -STR_ABBREV_PAPER :{TINY_FONT}का -STR_ABBREV_GOLD :{TINY_FONT}सोनं -STR_ABBREV_WATER :{TINY_FONT}पाणी -STR_ABBREV_WHEAT :{TINY_FONT}गहू -STR_ABBREV_RUBBER :{TINY_FONT}रबर -STR_ABBREV_SUGAR :{TINY_FONT}सा -STR_ABBREV_TOYS :{TINY_FONT}खे -STR_ABBREV_SWEETS :{TINY_FONT}गोड -STR_ABBREV_COLA :{TINY_FONT}कोला -STR_ABBREV_CANDYFLOSS :{TINY_FONT}म्हाता -STR_ABBREV_BUBBLES :{TINY_FONT}बु -STR_ABBREV_TOFFEE :{TINY_FONT}टॉ -STR_ABBREV_BATTERIES :{TINY_FONT}बॅ -STR_ABBREV_PLASTIC :{TINY_FONT}प्लॅ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}फस -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}सर्व +STR_ABBREV_PASSENGERS :प्र +STR_ABBREV_COAL :को +STR_ABBREV_MAIL :टपाल +STR_ABBREV_OIL :तेल +STR_ABBREV_LIVESTOCK :पशु +STR_ABBREV_GOODS :वस्तू +STR_ABBREV_GRAIN :धान्य +STR_ABBREV_WOOD :ला +STR_ABBREV_IRON_ORE :लोह +STR_ABBREV_STEEL :पो +STR_ABBREV_VALUABLES :मौल्य +STR_ABBREV_COPPER_ORE :तांबे +STR_ABBREV_MAIZE :मका +STR_ABBREV_FRUIT :फळ +STR_ABBREV_DIAMONDS :हिरे +STR_ABBREV_FOOD :अन्न +STR_ABBREV_PAPER :का +STR_ABBREV_GOLD :सोनं +STR_ABBREV_WATER :पाणी +STR_ABBREV_WHEAT :गहू +STR_ABBREV_RUBBER :रबर +STR_ABBREV_SUGAR :सा +STR_ABBREV_TOYS :खे +STR_ABBREV_SWEETS :गोड +STR_ABBREV_COLA :कोला +STR_ABBREV_CANDYFLOSS :म्हाता +STR_ABBREV_BUBBLES :बु +STR_ABBREV_TOFFEE :टॉ +STR_ABBREV_BATTERIES :बॅ +STR_ABBREV_PLASTIC :प्लॅ +STR_ABBREV_FIZZY_DRINKS :फस +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :सर्व # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} प्रवासी diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index c58cb54e5c..e70a645baa 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -130,39 +130,39 @@ STR_QUANTITY_N_A :Ikke tilgjengel # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KL -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}BS -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}KN -STR_ABBREV_WOOD :{TINY_FONT}TR -STR_ABBREV_IRON_ORE :{TINY_FONT}JM -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VS -STR_ABBREV_COPPER_ORE :{TINY_FONT}KM -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}MT -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GL -STR_ABBREV_WATER :{TINY_FONT}VN -STR_ABBREV_WHEAT :{TINY_FONT}HV -STR_ABBREV_RUBBER :{TINY_FONT}GM -STR_ABBREV_SUGAR :{TINY_FONT}SK -STR_ABBREV_TOYS :{TINY_FONT}LT -STR_ABBREV_SWEETS :{TINY_FONT}GT -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SP -STR_ABBREV_BUBBLES :{TINY_FONT}BO -STR_ABBREV_TOFFEE :{TINY_FONT}KM -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}MV -STR_ABBREV_NONE :{TINY_FONT}IN -STR_ABBREV_ALL :{TINY_FONT}ALLE +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KL +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :BS +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :KN +STR_ABBREV_WOOD :TR +STR_ABBREV_IRON_ORE :JM +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VS +STR_ABBREV_COPPER_ORE :KM +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :MT +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GL +STR_ABBREV_WATER :VN +STR_ABBREV_WHEAT :HV +STR_ABBREV_RUBBER :GM +STR_ABBREV_SUGAR :SK +STR_ABBREV_TOYS :LT +STR_ABBREV_SWEETS :GT +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :SP +STR_ABBREV_BUBBLES :BO +STR_ABBREV_TOFFEE :KM +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :MV +STR_ABBREV_NONE :IN +STR_ABBREV_ALL :ALLE # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passasjer{P "" er} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index c9d566c8b7..b8c185d792 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -130,39 +130,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KL -STR_ABBREV_MAIL :{TINY_FONT}PT -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}BS -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}KN -STR_ABBREV_WOOD :{TINY_FONT}TR -STR_ABBREV_IRON_ORE :{TINY_FONT}JM -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VS -STR_ABBREV_COPPER_ORE :{TINY_FONT}KM -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}MT -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GL -STR_ABBREV_WATER :{TINY_FONT}VN -STR_ABBREV_WHEAT :{TINY_FONT}KV -STR_ABBREV_RUBBER :{TINY_FONT}GM -STR_ABBREV_SUGAR :{TINY_FONT}SK -STR_ABBREV_TOYS :{TINY_FONT}LT -STR_ABBREV_SWEETS :{TINY_FONT}GT -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SP -STR_ABBREV_BUBBLES :{TINY_FONT}BO -STR_ABBREV_TOFFEE :{TINY_FONT}KM -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}MV -STR_ABBREV_NONE :{TINY_FONT}IN -STR_ABBREV_ALL :{TINY_FONT}ALLE +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KL +STR_ABBREV_MAIL :PT +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :BS +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :KN +STR_ABBREV_WOOD :TR +STR_ABBREV_IRON_ORE :JM +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VS +STR_ABBREV_COPPER_ORE :KM +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :MT +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GL +STR_ABBREV_WATER :VN +STR_ABBREV_WHEAT :KV +STR_ABBREV_RUBBER :GM +STR_ABBREV_SUGAR :SK +STR_ABBREV_TOYS :LT +STR_ABBREV_SWEETS :GT +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :SP +STR_ABBREV_BUBBLES :BO +STR_ABBREV_TOFFEE :KM +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :MV +STR_ABBREV_NONE :IN +STR_ABBREV_ALL :ALLE # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} passasjer{P "" ar} diff --git a/src/lang/persian.txt b/src/lang/persian.txt index 780a806327..6e4d28d63d 100644 --- a/src/lang/persian.txt +++ b/src/lang/persian.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}زس -STR_ABBREV_MAIL :{TINY_FONT}ML -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}LV -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}چوب -STR_ABBREV_IRON_ORE :{TINY_FONT}OR -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}قیمتی ها -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}FD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}آب -STR_ABBREV_WHEAT :{TINY_FONT}گندم -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}شکر -STR_ABBREV_TOYS :{TINY_FONT}اسباب بازی -STR_ABBREV_SWEETS :{TINY_FONT}شیرینی -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CF -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}آبنبات -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FZ -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}همه +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :زس +STR_ABBREV_MAIL :ML +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :LV +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :چوب +STR_ABBREV_IRON_ORE :OR +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :قیمتی ها +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :FD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :آب +STR_ABBREV_WHEAT :گندم +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :شکر +STR_ABBREV_TOYS :اسباب بازی +STR_ABBREV_SWEETS :شیرینی +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CF +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :آبنبات +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FZ +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :همه # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}مسافر{P "" s} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index da7f42100f..520656080e 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -501,39 +501,39 @@ STR_QUANTITY_N_A :N/D # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PŻ -STR_ABBREV_COAL :{TINY_FONT}WG -STR_ABBREV_MAIL :{TINY_FONT}PC -STR_ABBREV_OIL :{TINY_FONT}RP -STR_ABBREV_LIVESTOCK :{TINY_FONT}ŻC -STR_ABBREV_GOODS :{TINY_FONT}TW -STR_ABBREV_GRAIN :{TINY_FONT}ZB -STR_ABBREV_WOOD :{TINY_FONT}DR -STR_ABBREV_IRON_ORE :{TINY_FONT}RŻ -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}KS -STR_ABBREV_COPPER_ORE :{TINY_FONT}RM -STR_ABBREV_MAIZE :{TINY_FONT}KK -STR_ABBREV_FRUIT :{TINY_FONT}OW -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}ŻN -STR_ABBREV_PAPER :{TINY_FONT}PP -STR_ABBREV_GOLD :{TINY_FONT}ZŁ -STR_ABBREV_WATER :{TINY_FONT}WD -STR_ABBREV_WHEAT :{TINY_FONT}PS -STR_ABBREV_RUBBER :{TINY_FONT}KC -STR_ABBREV_SUGAR :{TINY_FONT}CK -STR_ABBREV_TOYS :{TINY_FONT}ZA -STR_ABBREV_SWEETS :{TINY_FONT}SŁ -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}WC -STR_ABBREV_BUBBLES :{TINY_FONT}BB -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BT -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}NG -STR_ABBREV_NONE :{TINY_FONT}0 -STR_ABBREV_ALL :{TINY_FONT}+ +STR_ABBREV_PASSENGERS :PŻ +STR_ABBREV_COAL :WG +STR_ABBREV_MAIL :PC +STR_ABBREV_OIL :RP +STR_ABBREV_LIVESTOCK :ŻC +STR_ABBREV_GOODS :TW +STR_ABBREV_GRAIN :ZB +STR_ABBREV_WOOD :DR +STR_ABBREV_IRON_ORE :RŻ +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :KS +STR_ABBREV_COPPER_ORE :RM +STR_ABBREV_MAIZE :KK +STR_ABBREV_FRUIT :OW +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :ŻN +STR_ABBREV_PAPER :PP +STR_ABBREV_GOLD :ZŁ +STR_ABBREV_WATER :WD +STR_ABBREV_WHEAT :PS +STR_ABBREV_RUBBER :KC +STR_ABBREV_SUGAR :CK +STR_ABBREV_TOYS :ZA +STR_ABBREV_SWEETS :SŁ +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :WC +STR_ABBREV_BUBBLES :BB +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BT +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :NG +STR_ABBREV_NONE :0 +STR_ABBREV_ALL :+ # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}pasażer{P "" ów ów} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index c48696062b..788e60d54d 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :N/D # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CV -STR_ABBREV_MAIL :{TINY_FONT}CR -STR_ABBREV_OIL :{TINY_FONT}PT -STR_ABBREV_LIVESTOCK :{TINY_FONT}GD -STR_ABBREV_GOODS :{TINY_FONT}BN -STR_ABBREV_GRAIN :{TINY_FONT}CR -STR_ABBREV_WOOD :{TINY_FONT}MD -STR_ABBREV_IRON_ORE :{TINY_FONT}FR -STR_ABBREV_STEEL :{TINY_FONT}AC -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}ML -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}AL -STR_ABBREV_PAPER :{TINY_FONT}PP -STR_ABBREV_GOLD :{TINY_FONT}OU -STR_ABBREV_WATER :{TINY_FONT}AG -STR_ABBREV_WHEAT :{TINY_FONT}TR -STR_ABBREV_RUBBER :{TINY_FONT}BR -STR_ABBREV_SUGAR :{TINY_FONT}AÇ -STR_ABBREV_TOYS :{TINY_FONT}BQ -STR_ABBREV_SWEETS :{TINY_FONT}DC -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}AD -STR_ABBREV_BUBBLES :{TINY_FONT}BO -STR_ABBREV_TOFFEE :{TINY_FONT}CM -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}RF -STR_ABBREV_NONE :{TINY_FONT}NÃO -STR_ABBREV_ALL :{TINY_FONT}TUDO +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CV +STR_ABBREV_MAIL :CR +STR_ABBREV_OIL :PT +STR_ABBREV_LIVESTOCK :GD +STR_ABBREV_GOODS :BN +STR_ABBREV_GRAIN :CR +STR_ABBREV_WOOD :MD +STR_ABBREV_IRON_ORE :FR +STR_ABBREV_STEEL :AC +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :ML +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :AL +STR_ABBREV_PAPER :PP +STR_ABBREV_GOLD :OU +STR_ABBREV_WATER :AG +STR_ABBREV_WHEAT :TR +STR_ABBREV_RUBBER :BR +STR_ABBREV_SUGAR :AÇ +STR_ABBREV_TOYS :BQ +STR_ABBREV_SWEETS :DC +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :AD +STR_ABBREV_BUBBLES :BO +STR_ABBREV_TOFFEE :CM +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :RF +STR_ABBREV_NONE :NÃO +STR_ABBREV_ALL :TUDO # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} passageiro{P "" s} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 4fd8f230f5..af0acccaff 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :indisponibilă # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}CL -STR_ABBREV_COAL :{TINY_FONT}CB -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}PT -STR_ABBREV_LIVESTOCK :{TINY_FONT}AN -STR_ABBREV_GOODS :{TINY_FONT}BN -STR_ABBREV_GRAIN :{TINY_FONT}CR -STR_ABBREV_WOOD :{TINY_FONT}LM -STR_ABBREV_IRON_ORE :{TINY_FONT}FE -STR_ABBREV_STEEL :{TINY_FONT}OT -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CP -STR_ABBREV_MAIZE :{TINY_FONT}PR -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}AL -STR_ABBREV_PAPER :{TINY_FONT}HR -STR_ABBREV_GOLD :{TINY_FONT}AU -STR_ABBREV_WATER :{TINY_FONT}AP -STR_ABBREV_WHEAT :{TINY_FONT}GR -STR_ABBREV_RUBBER :{TINY_FONT}CC -STR_ABBREV_SUGAR :{TINY_FONT}ZH -STR_ABBREV_TOYS :{TINY_FONT}JC -STR_ABBREV_SWEETS :{TINY_FONT}BB -STR_ABBREV_COLA :{TINY_FONT}CO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}VZ -STR_ABBREV_BUBBLES :{TINY_FONT}BL -STR_ABBREV_TOFFEE :{TINY_FONT}CM -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}SC -STR_ABBREV_NONE :{TINY_FONT}NU -STR_ABBREV_ALL :{TINY_FONT}TOT +STR_ABBREV_PASSENGERS :CL +STR_ABBREV_COAL :CB +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :PT +STR_ABBREV_LIVESTOCK :AN +STR_ABBREV_GOODS :BN +STR_ABBREV_GRAIN :CR +STR_ABBREV_WOOD :LM +STR_ABBREV_IRON_ORE :FE +STR_ABBREV_STEEL :OT +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CP +STR_ABBREV_MAIZE :PR +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :AL +STR_ABBREV_PAPER :HR +STR_ABBREV_GOLD :AU +STR_ABBREV_WATER :AP +STR_ABBREV_WHEAT :GR +STR_ABBREV_RUBBER :CC +STR_ABBREV_SUGAR :ZH +STR_ABBREV_TOYS :JC +STR_ABBREV_SWEETS :BB +STR_ABBREV_COLA :CO +STR_ABBREV_CANDYFLOSS :VZ +STR_ABBREV_BUBBLES :BL +STR_ABBREV_TOFFEE :CM +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :SC +STR_ABBREV_NONE :NU +STR_ABBREV_ALL :TOT # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}{P călător călători "de călători"} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 4e25b7ba24..adb6128922 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -254,39 +254,39 @@ STR_QUANTITY_N_A :отсутст # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}ПС -STR_ABBREV_COAL :{TINY_FONT}УГ -STR_ABBREV_MAIL :{TINY_FONT}ПЧ -STR_ABBREV_OIL :{TINY_FONT}НФ -STR_ABBREV_LIVESTOCK :{TINY_FONT}СК -STR_ABBREV_GOODS :{TINY_FONT}ТВ -STR_ABBREV_GRAIN :{TINY_FONT}ЗР -STR_ABBREV_WOOD :{TINY_FONT}ДВ -STR_ABBREV_IRON_ORE :{TINY_FONT}ЖР -STR_ABBREV_STEEL :{TINY_FONT}СТ -STR_ABBREV_VALUABLES :{TINY_FONT}ДР -STR_ABBREV_COPPER_ORE :{TINY_FONT}МР -STR_ABBREV_MAIZE :{TINY_FONT}КК -STR_ABBREV_FRUIT :{TINY_FONT}ФР -STR_ABBREV_DIAMONDS :{TINY_FONT}АЛ -STR_ABBREV_FOOD :{TINY_FONT}ПР -STR_ABBREV_PAPER :{TINY_FONT}БМ -STR_ABBREV_GOLD :{TINY_FONT}ЗЛ -STR_ABBREV_WATER :{TINY_FONT}ВД -STR_ABBREV_WHEAT :{TINY_FONT}ПШ -STR_ABBREV_RUBBER :{TINY_FONT}КЧ -STR_ABBREV_SUGAR :{TINY_FONT}СХ -STR_ABBREV_TOYS :{TINY_FONT}ИГ -STR_ABBREV_SWEETS :{TINY_FONT}КФ -STR_ABBREV_COLA :{TINY_FONT}КЛ -STR_ABBREV_CANDYFLOSS :{TINY_FONT}СВ -STR_ABBREV_BUBBLES :{TINY_FONT}ПЗ -STR_ABBREV_TOFFEE :{TINY_FONT}ИР -STR_ABBREV_BATTERIES :{TINY_FONT}БТ -STR_ABBREV_PLASTIC :{TINY_FONT}ПЛ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ГЗ -STR_ABBREV_NONE :{TINY_FONT}НЕТ -STR_ABBREV_ALL :{TINY_FONT}Все +STR_ABBREV_PASSENGERS :ПС +STR_ABBREV_COAL :УГ +STR_ABBREV_MAIL :ПЧ +STR_ABBREV_OIL :НФ +STR_ABBREV_LIVESTOCK :СК +STR_ABBREV_GOODS :ТВ +STR_ABBREV_GRAIN :ЗР +STR_ABBREV_WOOD :ДВ +STR_ABBREV_IRON_ORE :ЖР +STR_ABBREV_STEEL :СТ +STR_ABBREV_VALUABLES :ДР +STR_ABBREV_COPPER_ORE :МР +STR_ABBREV_MAIZE :КК +STR_ABBREV_FRUIT :ФР +STR_ABBREV_DIAMONDS :АЛ +STR_ABBREV_FOOD :ПР +STR_ABBREV_PAPER :БМ +STR_ABBREV_GOLD :ЗЛ +STR_ABBREV_WATER :ВД +STR_ABBREV_WHEAT :ПШ +STR_ABBREV_RUBBER :КЧ +STR_ABBREV_SUGAR :СХ +STR_ABBREV_TOYS :ИГ +STR_ABBREV_SWEETS :КФ +STR_ABBREV_COLA :КЛ +STR_ABBREV_CANDYFLOSS :СВ +STR_ABBREV_BUBBLES :ПЗ +STR_ABBREV_TOFFEE :ИР +STR_ABBREV_BATTERIES :БТ +STR_ABBREV_PLASTIC :ПЛ +STR_ABBREV_FIZZY_DRINKS :ГЗ +STR_ABBREV_NONE :НЕТ +STR_ABBREV_ALL :Все # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}пассажир{P "" а ов} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 6494f0d3cd..39565c8ac6 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -316,39 +316,39 @@ STR_QUANTITY_N_A :Nepoznato # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PT -STR_ABBREV_COAL :{TINY_FONT}UG -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}NF -STR_ABBREV_LIVESTOCK :{TINY_FONT}ST -STR_ABBREV_GOODS :{TINY_FONT}RB -STR_ABBREV_GRAIN :{TINY_FONT}ŽT -STR_ABBREV_WOOD :{TINY_FONT}DR -STR_ABBREV_IRON_ORE :{TINY_FONT}RG -STR_ABBREV_STEEL :{TINY_FONT}ČE -STR_ABBREV_VALUABLES :{TINY_FONT}DG -STR_ABBREV_COPPER_ORE :{TINY_FONT}BR -STR_ABBREV_MAIZE :{TINY_FONT}KZ -STR_ABBREV_FRUIT :{TINY_FONT}VĆ -STR_ABBREV_DIAMONDS :{TINY_FONT}DT -STR_ABBREV_FOOD :{TINY_FONT}HR -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}ZL -STR_ABBREV_WATER :{TINY_FONT}VD -STR_ABBREV_WHEAT :{TINY_FONT}PŠ -STR_ABBREV_RUBBER :{TINY_FONT}KČ -STR_ABBREV_SUGAR :{TINY_FONT}ŠĆ -STR_ABBREV_TOYS :{TINY_FONT}IG -STR_ABBREV_SWEETS :{TINY_FONT}SL -STR_ABBREV_COLA :{TINY_FONT}KL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ŠV -STR_ABBREV_BUBBLES :{TINY_FONT}BA -STR_ABBREV_TOFFEE :{TINY_FONT}KA -STR_ABBREV_BATTERIES :{TINY_FONT}BT -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GP -STR_ABBREV_NONE :{TINY_FONT}NŠT -STR_ABBREV_ALL :{TINY_FONT}SVE +STR_ABBREV_PASSENGERS :PT +STR_ABBREV_COAL :UG +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :NF +STR_ABBREV_LIVESTOCK :ST +STR_ABBREV_GOODS :RB +STR_ABBREV_GRAIN :ŽT +STR_ABBREV_WOOD :DR +STR_ABBREV_IRON_ORE :RG +STR_ABBREV_STEEL :ČE +STR_ABBREV_VALUABLES :DG +STR_ABBREV_COPPER_ORE :BR +STR_ABBREV_MAIZE :KZ +STR_ABBREV_FRUIT :VĆ +STR_ABBREV_DIAMONDS :DT +STR_ABBREV_FOOD :HR +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :ZL +STR_ABBREV_WATER :VD +STR_ABBREV_WHEAT :PŠ +STR_ABBREV_RUBBER :KČ +STR_ABBREV_SUGAR :ŠĆ +STR_ABBREV_TOYS :IG +STR_ABBREV_SWEETS :SL +STR_ABBREV_COLA :KL +STR_ABBREV_CANDYFLOSS :ŠV +STR_ABBREV_BUBBLES :BA +STR_ABBREV_TOFFEE :KA +STR_ABBREV_BATTERIES :BT +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :GP +STR_ABBREV_NONE :NŠT +STR_ABBREV_ALL :SVE # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} putnik{P "" a a} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index f86ba0be08..4aa10b4f22 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}客 -STR_ABBREV_COAL :{TINY_FONT}煤 -STR_ABBREV_MAIL :{TINY_FONT}邮 -STR_ABBREV_OIL :{TINY_FONT}油 -STR_ABBREV_LIVESTOCK :{TINY_FONT}畜 -STR_ABBREV_GOODS :{TINY_FONT}货 -STR_ABBREV_GRAIN :{TINY_FONT}谷 -STR_ABBREV_WOOD :{TINY_FONT}木 -STR_ABBREV_IRON_ORE :{TINY_FONT}铁 -STR_ABBREV_STEEL :{TINY_FONT}钢 -STR_ABBREV_VALUABLES :{TINY_FONT}贵 -STR_ABBREV_COPPER_ORE :{TINY_FONT}铜 -STR_ABBREV_MAIZE :{TINY_FONT}黍 -STR_ABBREV_FRUIT :{TINY_FONT}果 -STR_ABBREV_DIAMONDS :{TINY_FONT}钻 -STR_ABBREV_FOOD :{TINY_FONT}食 -STR_ABBREV_PAPER :{TINY_FONT}纸 -STR_ABBREV_GOLD :{TINY_FONT}金 -STR_ABBREV_WATER :{TINY_FONT}水 -STR_ABBREV_WHEAT :{TINY_FONT}麦 -STR_ABBREV_RUBBER :{TINY_FONT}胶 -STR_ABBREV_SUGAR :{TINY_FONT}蔗 -STR_ABBREV_TOYS :{TINY_FONT}玩 -STR_ABBREV_SWEETS :{TINY_FONT}糖 -STR_ABBREV_COLA :{TINY_FONT}可 -STR_ABBREV_CANDYFLOSS :{TINY_FONT}棉 -STR_ABBREV_BUBBLES :{TINY_FONT}泡 -STR_ABBREV_TOFFEE :{TINY_FONT}太 -STR_ABBREV_BATTERIES :{TINY_FONT}电 -STR_ABBREV_PLASTIC :{TINY_FONT}塑 -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}汽 -STR_ABBREV_NONE :{TINY_FONT}无 -STR_ABBREV_ALL :{TINY_FONT}全 +STR_ABBREV_PASSENGERS :客 +STR_ABBREV_COAL :煤 +STR_ABBREV_MAIL :邮 +STR_ABBREV_OIL :油 +STR_ABBREV_LIVESTOCK :畜 +STR_ABBREV_GOODS :货 +STR_ABBREV_GRAIN :谷 +STR_ABBREV_WOOD :木 +STR_ABBREV_IRON_ORE :铁 +STR_ABBREV_STEEL :钢 +STR_ABBREV_VALUABLES :贵 +STR_ABBREV_COPPER_ORE :铜 +STR_ABBREV_MAIZE :黍 +STR_ABBREV_FRUIT :果 +STR_ABBREV_DIAMONDS :钻 +STR_ABBREV_FOOD :食 +STR_ABBREV_PAPER :纸 +STR_ABBREV_GOLD :金 +STR_ABBREV_WATER :水 +STR_ABBREV_WHEAT :麦 +STR_ABBREV_RUBBER :胶 +STR_ABBREV_SUGAR :蔗 +STR_ABBREV_TOYS :玩 +STR_ABBREV_SWEETS :糖 +STR_ABBREV_COLA :可 +STR_ABBREV_CANDYFLOSS :棉 +STR_ABBREV_BUBBLES :泡 +STR_ABBREV_TOFFEE :太 +STR_ABBREV_BATTERIES :电 +STR_ABBREV_PLASTIC :塑 +STR_ABBREV_FIZZY_DRINKS :汽 +STR_ABBREV_NONE :无 +STR_ABBREV_ALL :全 # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}旅客 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 65c546e1e1..03b4125aa9 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -192,39 +192,39 @@ STR_QUANTITY_N_A :Nie je # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}CE -STR_ABBREV_COAL :{TINY_FONT}UH -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}RO -STR_ABBREV_LIVESTOCK :{TINY_FONT}DO -STR_ABBREV_GOODS :{TINY_FONT}TO -STR_ABBREV_GRAIN :{TINY_FONT}OB -STR_ABBREV_WOOD :{TINY_FONT}DR -STR_ABBREV_IRON_ORE :{TINY_FONT}ZR -STR_ABBREV_STEEL :{TINY_FONT}OC -STR_ABBREV_VALUABLES :{TINY_FONT}CE -STR_ABBREV_COPPER_ORE :{TINY_FONT}MR -STR_ABBREV_MAIZE :{TINY_FONT}KU -STR_ABBREV_FRUIT :{TINY_FONT}OV -STR_ABBREV_DIAMONDS :{TINY_FONT}DI -STR_ABBREV_FOOD :{TINY_FONT}JE -STR_ABBREV_PAPER :{TINY_FONT}PA -STR_ABBREV_GOLD :{TINY_FONT}ZL -STR_ABBREV_WATER :{TINY_FONT}VO -STR_ABBREV_WHEAT :{TINY_FONT}PS -STR_ABBREV_RUBBER :{TINY_FONT}KA -STR_ABBREV_SUGAR :{TINY_FONT}CU -STR_ABBREV_TOYS :{TINY_FONT}HR -STR_ABBREV_SWEETS :{TINY_FONT}CK -STR_ABBREV_COLA :{TINY_FONT}KO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CV -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}KR -STR_ABBREV_BATTERIES :{TINY_FONT}BT -STR_ABBREV_PLASTIC :{TINY_FONT}UM -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}MA -STR_ABBREV_NONE :{TINY_FONT}NIC -STR_ABBREV_ALL :{TINY_FONT}VS. +STR_ABBREV_PASSENGERS :CE +STR_ABBREV_COAL :UH +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :RO +STR_ABBREV_LIVESTOCK :DO +STR_ABBREV_GOODS :TO +STR_ABBREV_GRAIN :OB +STR_ABBREV_WOOD :DR +STR_ABBREV_IRON_ORE :ZR +STR_ABBREV_STEEL :OC +STR_ABBREV_VALUABLES :CE +STR_ABBREV_COPPER_ORE :MR +STR_ABBREV_MAIZE :KU +STR_ABBREV_FRUIT :OV +STR_ABBREV_DIAMONDS :DI +STR_ABBREV_FOOD :JE +STR_ABBREV_PAPER :PA +STR_ABBREV_GOLD :ZL +STR_ABBREV_WATER :VO +STR_ABBREV_WHEAT :PS +STR_ABBREV_RUBBER :KA +STR_ABBREV_SUGAR :CU +STR_ABBREV_TOYS :HR +STR_ABBREV_SWEETS :CK +STR_ABBREV_COLA :KO +STR_ABBREV_CANDYFLOSS :CV +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :KR +STR_ABBREV_BATTERIES :BT +STR_ABBREV_PLASTIC :UM +STR_ABBREV_FIZZY_DRINKS :MA +STR_ABBREV_NONE :NIC +STR_ABBREV_ALL :VS. # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} cestujúci{P "" "" ch} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 646bcc76e2..9a9e1954fa 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -281,39 +281,39 @@ STR_QUANTITY_N_A :Ni na voljo # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PO -STR_ABBREV_COAL :{TINY_FONT}PR -STR_ABBREV_MAIL :{TINY_FONT}PŠ -STR_ABBREV_OIL :{TINY_FONT}NF -STR_ABBREV_LIVESTOCK :{TINY_FONT}ŽV -STR_ABBREV_GOODS :{TINY_FONT}IZ -STR_ABBREV_GRAIN :{TINY_FONT}ŽT -STR_ABBREV_WOOD :{TINY_FONT}LS -STR_ABBREV_IRON_ORE :{TINY_FONT}ŽR -STR_ABBREV_STEEL :{TINY_FONT}JK -STR_ABBREV_VALUABLES :{TINY_FONT}VR -STR_ABBREV_COPPER_ORE :{TINY_FONT}BK -STR_ABBREV_MAIZE :{TINY_FONT}KZ -STR_ABBREV_FRUIT :{TINY_FONT}SJ -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}HR -STR_ABBREV_PAPER :{TINY_FONT}PA -STR_ABBREV_GOLD :{TINY_FONT}ZL -STR_ABBREV_WATER :{TINY_FONT}VO -STR_ABBREV_WHEAT :{TINY_FONT}PN -STR_ABBREV_RUBBER :{TINY_FONT}KČ -STR_ABBREV_SUGAR :{TINY_FONT}SK -STR_ABBREV_TOYS :{TINY_FONT}IG -STR_ABBREV_SWEETS :{TINY_FONT}SL -STR_ABBREV_COLA :{TINY_FONT}CK -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SP -STR_ABBREV_BUBBLES :{TINY_FONT}MH -STR_ABBREV_TOFFEE :{TINY_FONT}KR -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GP -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}VSE +STR_ABBREV_PASSENGERS :PO +STR_ABBREV_COAL :PR +STR_ABBREV_MAIL :PŠ +STR_ABBREV_OIL :NF +STR_ABBREV_LIVESTOCK :ŽV +STR_ABBREV_GOODS :IZ +STR_ABBREV_GRAIN :ŽT +STR_ABBREV_WOOD :LS +STR_ABBREV_IRON_ORE :ŽR +STR_ABBREV_STEEL :JK +STR_ABBREV_VALUABLES :VR +STR_ABBREV_COPPER_ORE :BK +STR_ABBREV_MAIZE :KZ +STR_ABBREV_FRUIT :SJ +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :HR +STR_ABBREV_PAPER :PA +STR_ABBREV_GOLD :ZL +STR_ABBREV_WATER :VO +STR_ABBREV_WHEAT :PN +STR_ABBREV_RUBBER :KČ +STR_ABBREV_SUGAR :SK +STR_ABBREV_TOYS :IG +STR_ABBREV_SWEETS :SL +STR_ABBREV_COLA :CK +STR_ABBREV_CANDYFLOSS :SP +STR_ABBREV_BUBBLES :MH +STR_ABBREV_TOFFEE :KR +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :GP +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :VSE # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} potnik{P "" a i ov} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index e1832eaac3..e8f04ac022 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :Ninguna # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PJ -STR_ABBREV_COAL :{TINY_FONT}CB -STR_ABBREV_MAIL :{TINY_FONT}CR -STR_ABBREV_OIL :{TINY_FONT}PT -STR_ABBREV_LIVESTOCK :{TINY_FONT}GN -STR_ABBREV_GOODS :{TINY_FONT}MC -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}MD -STR_ABBREV_IRON_ORE :{TINY_FONT}MH -STR_ABBREV_STEEL :{TINY_FONT}AC -STR_ABBREV_VALUABLES :{TINY_FONT}OV -STR_ABBREV_COPPER_ORE :{TINY_FONT}MC -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}AL -STR_ABBREV_PAPER :{TINY_FONT}PP -STR_ABBREV_GOLD :{TINY_FONT}OR -STR_ABBREV_WATER :{TINY_FONT}AG -STR_ABBREV_WHEAT :{TINY_FONT}TG -STR_ABBREV_RUBBER :{TINY_FONT}CA -STR_ABBREV_SUGAR :{TINY_FONT}AZ -STR_ABBREV_TOYS :{TINY_FONT}JG -STR_ABBREV_SWEETS :{TINY_FONT}DC -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}AA -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}PI -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}RF -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}TOD +STR_ABBREV_PASSENGERS :PJ +STR_ABBREV_COAL :CB +STR_ABBREV_MAIL :CR +STR_ABBREV_OIL :PT +STR_ABBREV_LIVESTOCK :GN +STR_ABBREV_GOODS :MC +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :MD +STR_ABBREV_IRON_ORE :MH +STR_ABBREV_STEEL :AC +STR_ABBREV_VALUABLES :OV +STR_ABBREV_COPPER_ORE :MC +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :AL +STR_ABBREV_PAPER :PP +STR_ABBREV_GOLD :OR +STR_ABBREV_WATER :AG +STR_ABBREV_WHEAT :TG +STR_ABBREV_RUBBER :CA +STR_ABBREV_SUGAR :AZ +STR_ABBREV_TOYS :JG +STR_ABBREV_SWEETS :DC +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :AA +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :PI +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :RF +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :TOD # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}pasajero{P "" s} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 0ad79981b2..ecc22dc1dd 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CA -STR_ABBREV_MAIL :{TINY_FONT}CO -STR_ABBREV_OIL :{TINY_FONT}PE -STR_ABBREV_LIVESTOCK :{TINY_FONT}GA -STR_ABBREV_GOODS :{TINY_FONT}ME -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}MA -STR_ABBREV_IRON_ORE :{TINY_FONT}HI -STR_ABBREV_STEEL :{TINY_FONT}AC -STR_ABBREV_VALUABLES :{TINY_FONT}OV -STR_ABBREV_COPPER_ORE :{TINY_FONT}CB -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DI -STR_ABBREV_FOOD :{TINY_FONT}AL -STR_ABBREV_PAPER :{TINY_FONT}PA -STR_ABBREV_GOLD :{TINY_FONT}OR -STR_ABBREV_WATER :{TINY_FONT}AG -STR_ABBREV_WHEAT :{TINY_FONT}TR -STR_ABBREV_RUBBER :{TINY_FONT}CH -STR_ABBREV_SUGAR :{TINY_FONT}AZ -STR_ABBREV_TOYS :{TINY_FONT}JU -STR_ABBREV_SWEETS :{TINY_FONT}DU -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}AA -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}CS -STR_ABBREV_BATTERIES :{TINY_FONT}PI -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}RE -STR_ABBREV_NONE :{TINY_FONT}NADA -STR_ABBREV_ALL :{TINY_FONT}TODO +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CA +STR_ABBREV_MAIL :CO +STR_ABBREV_OIL :PE +STR_ABBREV_LIVESTOCK :GA +STR_ABBREV_GOODS :ME +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :MA +STR_ABBREV_IRON_ORE :HI +STR_ABBREV_STEEL :AC +STR_ABBREV_VALUABLES :OV +STR_ABBREV_COPPER_ORE :CB +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DI +STR_ABBREV_FOOD :AL +STR_ABBREV_PAPER :PA +STR_ABBREV_GOLD :OR +STR_ABBREV_WATER :AG +STR_ABBREV_WHEAT :TR +STR_ABBREV_RUBBER :CH +STR_ABBREV_SUGAR :AZ +STR_ABBREV_TOYS :JU +STR_ABBREV_SWEETS :DU +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :AA +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :CS +STR_ABBREV_BATTERIES :PI +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :RE +STR_ABBREV_NONE :NADA +STR_ABBREV_ALL :TODO # 'Mode' of transport for cargoes STR_PASSENGERS :{G=m}{COMMA}{NBSP}pasajero{P "" s} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 37d031e853..1ad90a5727 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}KL -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}BO -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}SP -STR_ABBREV_WOOD :{TINY_FONT}TI -STR_ABBREV_IRON_ORE :{TINY_FONT}JÄ -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VÄ -STR_ABBREV_COPPER_ORE :{TINY_FONT}KO -STR_ABBREV_MAIZE :{TINY_FONT}MA -STR_ABBREV_FRUIT :{TINY_FONT}FR -STR_ABBREV_DIAMONDS :{TINY_FONT}DI -STR_ABBREV_FOOD :{TINY_FONT}MT -STR_ABBREV_PAPER :{TINY_FONT}PA -STR_ABBREV_GOLD :{TINY_FONT}GL -STR_ABBREV_WATER :{TINY_FONT}VA -STR_ABBREV_WHEAT :{TINY_FONT}VE -STR_ABBREV_RUBBER :{TINY_FONT}GU -STR_ABBREV_SUGAR :{TINY_FONT}SO -STR_ABBREV_TOYS :{TINY_FONT}LE -STR_ABBREV_SWEETS :{TINY_FONT}GO -STR_ABBREV_COLA :{TINY_FONT}KA -STR_ABBREV_CANDYFLOSS :{TINY_FONT}SS -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}KN -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}LÄ -STR_ABBREV_NONE :{TINY_FONT}NEJ -STR_ABBREV_ALL :{TINY_FONT}ALLA +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :KL +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :BO +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :SP +STR_ABBREV_WOOD :TI +STR_ABBREV_IRON_ORE :JÄ +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VÄ +STR_ABBREV_COPPER_ORE :KO +STR_ABBREV_MAIZE :MA +STR_ABBREV_FRUIT :FR +STR_ABBREV_DIAMONDS :DI +STR_ABBREV_FOOD :MT +STR_ABBREV_PAPER :PA +STR_ABBREV_GOLD :GL +STR_ABBREV_WATER :VA +STR_ABBREV_WHEAT :VE +STR_ABBREV_RUBBER :GU +STR_ABBREV_SUGAR :SO +STR_ABBREV_TOYS :LE +STR_ABBREV_SWEETS :GO +STR_ABBREV_COLA :KA +STR_ABBREV_CANDYFLOSS :SS +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :KN +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :LÄ +STR_ABBREV_NONE :NEJ +STR_ABBREV_ALL :ALLA # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passagerare diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index cfb16b6411..899cdb826d 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}PS -STR_ABBREV_COAL :{TINY_FONT}CL -STR_ABBREV_MAIL :{TINY_FONT}ML -STR_ABBREV_OIL :{TINY_FONT}OL -STR_ABBREV_LIVESTOCK :{TINY_FONT}LV -STR_ABBREV_GOODS :{TINY_FONT}GD -STR_ABBREV_GRAIN :{TINY_FONT}GR -STR_ABBREV_WOOD :{TINY_FONT}WD -STR_ABBREV_IRON_ORE :{TINY_FONT}OR -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}VL -STR_ABBREV_COPPER_ORE :{TINY_FONT}CO -STR_ABBREV_MAIZE :{TINY_FONT}MZ -STR_ABBREV_FRUIT :{TINY_FONT}FT -STR_ABBREV_DIAMONDS :{TINY_FONT}DM -STR_ABBREV_FOOD :{TINY_FONT}FD -STR_ABBREV_PAPER :{TINY_FONT}PR -STR_ABBREV_GOLD :{TINY_FONT}GD -STR_ABBREV_WATER :{TINY_FONT}WR -STR_ABBREV_WHEAT :{TINY_FONT}WH -STR_ABBREV_RUBBER :{TINY_FONT}RB -STR_ABBREV_SUGAR :{TINY_FONT}SG -STR_ABBREV_TOYS :{TINY_FONT}TY -STR_ABBREV_SWEETS :{TINY_FONT}SW -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CF -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}TF -STR_ABBREV_BATTERIES :{TINY_FONT}BA -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}FZ -STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}அனைத்தும் +STR_ABBREV_PASSENGERS :PS +STR_ABBREV_COAL :CL +STR_ABBREV_MAIL :ML +STR_ABBREV_OIL :OL +STR_ABBREV_LIVESTOCK :LV +STR_ABBREV_GOODS :GD +STR_ABBREV_GRAIN :GR +STR_ABBREV_WOOD :WD +STR_ABBREV_IRON_ORE :OR +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :VL +STR_ABBREV_COPPER_ORE :CO +STR_ABBREV_MAIZE :MZ +STR_ABBREV_FRUIT :FT +STR_ABBREV_DIAMONDS :DM +STR_ABBREV_FOOD :FD +STR_ABBREV_PAPER :PR +STR_ABBREV_GOLD :GD +STR_ABBREV_WATER :WR +STR_ABBREV_WHEAT :WH +STR_ABBREV_RUBBER :RB +STR_ABBREV_SUGAR :SG +STR_ABBREV_TOYS :TY +STR_ABBREV_SWEETS :SW +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CF +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :TF +STR_ABBREV_BATTERIES :BA +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :FZ +STR_ABBREV_NONE :NO +STR_ABBREV_ALL :அனைத்தும் # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} பயணி{P "" கள்} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 0174d95a1a..3082cdc9db 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}คน -STR_ABBREV_COAL :{TINY_FONT}ถ่าน -STR_ABBREV_MAIL :{TINY_FONT}พัสดุ -STR_ABBREV_OIL :{TINY_FONT}น้ำมัน -STR_ABBREV_LIVESTOCK :{TINY_FONT}สัตว์ -STR_ABBREV_GOODS :{TINY_FONT}สินค้า -STR_ABBREV_GRAIN :{TINY_FONT}ข้าวเปลือก -STR_ABBREV_WOOD :{TINY_FONT}ไม้ -STR_ABBREV_IRON_ORE :{TINY_FONT}เหล็ก -STR_ABBREV_STEEL :{TINY_FONT}เหล็กกล้า -STR_ABBREV_VALUABLES :{TINY_FONT}มีค่า -STR_ABBREV_COPPER_ORE :{TINY_FONT}ทองแดง -STR_ABBREV_MAIZE :{TINY_FONT}ข้าวโพด -STR_ABBREV_FRUIT :{TINY_FONT}ผลไม้ -STR_ABBREV_DIAMONDS :{TINY_FONT}เพชร -STR_ABBREV_FOOD :{TINY_FONT}อาหาร -STR_ABBREV_PAPER :{TINY_FONT}กระดาษ -STR_ABBREV_GOLD :{TINY_FONT}ทอง -STR_ABBREV_WATER :{TINY_FONT}น้ำ -STR_ABBREV_WHEAT :{TINY_FONT}ข้าวสาลี -STR_ABBREV_RUBBER :{TINY_FONT}ยาง -STR_ABBREV_SUGAR :{TINY_FONT}น้ำตาล -STR_ABBREV_TOYS :{TINY_FONT}ของเล่น -STR_ABBREV_SWEETS :{TINY_FONT}ขนม -STR_ABBREV_COLA :{TINY_FONT}โคล่า -STR_ABBREV_CANDYFLOSS :{TINY_FONT}สายไหม -STR_ABBREV_BUBBLES :{TINY_FONT}ฟอง -STR_ABBREV_TOFFEE :{TINY_FONT}ลูกอม -STR_ABBREV_BATTERIES :{TINY_FONT}ถ่าน -STR_ABBREV_PLASTIC :{TINY_FONT}พลาสติก -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}น้ำอัดลม -STR_ABBREV_NONE :{TINY_FONT}ว่าง -STR_ABBREV_ALL :{TINY_FONT}ทั้งหมด +STR_ABBREV_PASSENGERS :คน +STR_ABBREV_COAL :ถ่าน +STR_ABBREV_MAIL :พัสดุ +STR_ABBREV_OIL :น้ำมัน +STR_ABBREV_LIVESTOCK :สัตว์ +STR_ABBREV_GOODS :สินค้า +STR_ABBREV_GRAIN :ข้าวเปลือก +STR_ABBREV_WOOD :ไม้ +STR_ABBREV_IRON_ORE :เหล็ก +STR_ABBREV_STEEL :เหล็กกล้า +STR_ABBREV_VALUABLES :มีค่า +STR_ABBREV_COPPER_ORE :ทองแดง +STR_ABBREV_MAIZE :ข้าวโพด +STR_ABBREV_FRUIT :ผลไม้ +STR_ABBREV_DIAMONDS :เพชร +STR_ABBREV_FOOD :อาหาร +STR_ABBREV_PAPER :กระดาษ +STR_ABBREV_GOLD :ทอง +STR_ABBREV_WATER :น้ำ +STR_ABBREV_WHEAT :ข้าวสาลี +STR_ABBREV_RUBBER :ยาง +STR_ABBREV_SUGAR :น้ำตาล +STR_ABBREV_TOYS :ของเล่น +STR_ABBREV_SWEETS :ขนม +STR_ABBREV_COLA :โคล่า +STR_ABBREV_CANDYFLOSS :สายไหม +STR_ABBREV_BUBBLES :ฟอง +STR_ABBREV_TOFFEE :ลูกอม +STR_ABBREV_BATTERIES :ถ่าน +STR_ABBREV_PLASTIC :พลาสติก +STR_ABBREV_FIZZY_DRINKS :น้ำอัดลม +STR_ABBREV_NONE :ว่าง +STR_ABBREV_ALL :ทั้งหมด # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} คน diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 84c7c9ccfb..747f5c6ff0 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}客 -STR_ABBREV_COAL :{TINY_FONT}煤 -STR_ABBREV_MAIL :{TINY_FONT}郵 -STR_ABBREV_OIL :{TINY_FONT}油 -STR_ABBREV_LIVESTOCK :{TINY_FONT}畜 -STR_ABBREV_GOODS :{TINY_FONT}商 -STR_ABBREV_GRAIN :{TINY_FONT}穀 -STR_ABBREV_WOOD :{TINY_FONT}木 -STR_ABBREV_IRON_ORE :{TINY_FONT}鐵 -STR_ABBREV_STEEL :{TINY_FONT}鋼 -STR_ABBREV_VALUABLES :{TINY_FONT}貴 -STR_ABBREV_COPPER_ORE :{TINY_FONT}銅 -STR_ABBREV_MAIZE :{TINY_FONT}玉 -STR_ABBREV_FRUIT :{TINY_FONT}果 -STR_ABBREV_DIAMONDS :{TINY_FONT}鑽 -STR_ABBREV_FOOD :{TINY_FONT}食 -STR_ABBREV_PAPER :{TINY_FONT}紙 -STR_ABBREV_GOLD :{TINY_FONT}金 -STR_ABBREV_WATER :{TINY_FONT}水 -STR_ABBREV_WHEAT :{TINY_FONT}麥 -STR_ABBREV_RUBBER :{TINY_FONT}橡 -STR_ABBREV_SUGAR :{TINY_FONT}糖 -STR_ABBREV_TOYS :{TINY_FONT}玩 -STR_ABBREV_SWEETS :{TINY_FONT}甜 -STR_ABBREV_COLA :{TINY_FONT}可 -STR_ABBREV_CANDYFLOSS :{TINY_FONT}棉 -STR_ABBREV_BUBBLES :{TINY_FONT}泡 -STR_ABBREV_TOFFEE :{TINY_FONT}太 -STR_ABBREV_BATTERIES :{TINY_FONT}電 -STR_ABBREV_PLASTIC :{TINY_FONT}塑 -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}汽 -STR_ABBREV_NONE :{TINY_FONT}無 -STR_ABBREV_ALL :{TINY_FONT}全 +STR_ABBREV_PASSENGERS :客 +STR_ABBREV_COAL :煤 +STR_ABBREV_MAIL :郵 +STR_ABBREV_OIL :油 +STR_ABBREV_LIVESTOCK :畜 +STR_ABBREV_GOODS :商 +STR_ABBREV_GRAIN :穀 +STR_ABBREV_WOOD :木 +STR_ABBREV_IRON_ORE :鐵 +STR_ABBREV_STEEL :鋼 +STR_ABBREV_VALUABLES :貴 +STR_ABBREV_COPPER_ORE :銅 +STR_ABBREV_MAIZE :玉 +STR_ABBREV_FRUIT :果 +STR_ABBREV_DIAMONDS :鑽 +STR_ABBREV_FOOD :食 +STR_ABBREV_PAPER :紙 +STR_ABBREV_GOLD :金 +STR_ABBREV_WATER :水 +STR_ABBREV_WHEAT :麥 +STR_ABBREV_RUBBER :橡 +STR_ABBREV_SUGAR :糖 +STR_ABBREV_TOYS :玩 +STR_ABBREV_SWEETS :甜 +STR_ABBREV_COLA :可 +STR_ABBREV_CANDYFLOSS :棉 +STR_ABBREV_BUBBLES :泡 +STR_ABBREV_TOFFEE :太 +STR_ABBREV_BATTERIES :電 +STR_ABBREV_PLASTIC :塑 +STR_ABBREV_FIZZY_DRINKS :汽 +STR_ABBREV_NONE :無 +STR_ABBREV_ALL :全 # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}名乘客 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 1b03496a25..dd1c56f04b 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :yok # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}YL -STR_ABBREV_COAL :{TINY_FONT}KÖ -STR_ABBREV_MAIL :{TINY_FONT}PO -STR_ABBREV_OIL :{TINY_FONT}PE -STR_ABBREV_LIVESTOCK :{TINY_FONT}HV -STR_ABBREV_GOODS :{TINY_FONT}EŞ -STR_ABBREV_GRAIN :{TINY_FONT}TH -STR_ABBREV_WOOD :{TINY_FONT}OD -STR_ABBREV_IRON_ORE :{TINY_FONT}DM -STR_ABBREV_STEEL :{TINY_FONT}ÇE -STR_ABBREV_VALUABLES :{TINY_FONT}DE -STR_ABBREV_COPPER_ORE :{TINY_FONT}BK -STR_ABBREV_MAIZE :{TINY_FONT}MS -STR_ABBREV_FRUIT :{TINY_FONT}MV -STR_ABBREV_DIAMONDS :{TINY_FONT}EL -STR_ABBREV_FOOD :{TINY_FONT}GI -STR_ABBREV_PAPER :{TINY_FONT}KĞ -STR_ABBREV_GOLD :{TINY_FONT}AL -STR_ABBREV_WATER :{TINY_FONT}SU -STR_ABBREV_WHEAT :{TINY_FONT}BĞ -STR_ABBREV_RUBBER :{TINY_FONT}KA -STR_ABBREV_SUGAR :{TINY_FONT}ŞK -STR_ABBREV_TOYS :{TINY_FONT}OY -STR_ABBREV_SWEETS :{TINY_FONT}TA -STR_ABBREV_COLA :{TINY_FONT}KO -STR_ABBREV_CANDYFLOSS :{TINY_FONT}PŞ -STR_ABBREV_BUBBLES :{TINY_FONT}BA -STR_ABBREV_TOFFEE :{TINY_FONT}ŞL -STR_ABBREV_BATTERIES :{TINY_FONT}PL -STR_ABBREV_PLASTIC :{TINY_FONT}PL -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}İÇ -STR_ABBREV_NONE :{TINY_FONT}YO -STR_ABBREV_ALL :{TINY_FONT}TÜMÜ +STR_ABBREV_PASSENGERS :YL +STR_ABBREV_COAL :KÖ +STR_ABBREV_MAIL :PO +STR_ABBREV_OIL :PE +STR_ABBREV_LIVESTOCK :HV +STR_ABBREV_GOODS :EŞ +STR_ABBREV_GRAIN :TH +STR_ABBREV_WOOD :OD +STR_ABBREV_IRON_ORE :DM +STR_ABBREV_STEEL :ÇE +STR_ABBREV_VALUABLES :DE +STR_ABBREV_COPPER_ORE :BK +STR_ABBREV_MAIZE :MS +STR_ABBREV_FRUIT :MV +STR_ABBREV_DIAMONDS :EL +STR_ABBREV_FOOD :GI +STR_ABBREV_PAPER :KĞ +STR_ABBREV_GOLD :AL +STR_ABBREV_WATER :SU +STR_ABBREV_WHEAT :BĞ +STR_ABBREV_RUBBER :KA +STR_ABBREV_SUGAR :ŞK +STR_ABBREV_TOYS :OY +STR_ABBREV_SWEETS :TA +STR_ABBREV_COLA :KO +STR_ABBREV_CANDYFLOSS :PŞ +STR_ABBREV_BUBBLES :BA +STR_ABBREV_TOFFEE :ŞL +STR_ABBREV_BATTERIES :PL +STR_ABBREV_PLASTIC :PL +STR_ABBREV_FIZZY_DRINKS :İÇ +STR_ABBREV_NONE :YO +STR_ABBREV_ALL :TÜMÜ # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}yolcu diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index ff3fb30a35..06d65ecea9 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -253,39 +253,39 @@ STR_QUANTITY_N_A :немає # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}ПС -STR_ABBREV_COAL :{TINY_FONT}ВГ -STR_ABBREV_MAIL :{TINY_FONT}ПШ -STR_ABBREV_OIL :{TINY_FONT}НФ -STR_ABBREV_LIVESTOCK :{TINY_FONT}ХД -STR_ABBREV_GOODS :{TINY_FONT}ТВ -STR_ABBREV_GRAIN :{TINY_FONT}ЗЕ -STR_ABBREV_WOOD :{TINY_FONT}ДР -STR_ABBREV_IRON_ORE :{TINY_FONT}ЗЛ -STR_ABBREV_STEEL :{TINY_FONT}СТ -STR_ABBREV_VALUABLES :{TINY_FONT}КШ -STR_ABBREV_COPPER_ORE :{TINY_FONT}МД -STR_ABBREV_MAIZE :{TINY_FONT}КУ -STR_ABBREV_FRUIT :{TINY_FONT}ФР -STR_ABBREV_DIAMONDS :{TINY_FONT}ДІ -STR_ABBREV_FOOD :{TINY_FONT}ПР -STR_ABBREV_PAPER :{TINY_FONT}ПА -STR_ABBREV_GOLD :{TINY_FONT}ЗО -STR_ABBREV_WATER :{TINY_FONT}ВО -STR_ABBREV_WHEAT :{TINY_FONT}ПШ -STR_ABBREV_RUBBER :{TINY_FONT}КА -STR_ABBREV_SUGAR :{TINY_FONT}ЦК -STR_ABBREV_TOYS :{TINY_FONT}ІГ -STR_ABBREV_SWEETS :{TINY_FONT}СЛ -STR_ABBREV_COLA :{TINY_FONT}КО -STR_ABBREV_CANDYFLOSS :{TINY_FONT}ВА -STR_ABBREV_BUBBLES :{TINY_FONT}БУ -STR_ABBREV_TOFFEE :{TINY_FONT}ІР -STR_ABBREV_BATTERIES :{TINY_FONT}БТ -STR_ABBREV_PLASTIC :{TINY_FONT}ПЛ -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}ГЗ -STR_ABBREV_NONE :{TINY_FONT}НІ -STR_ABBREV_ALL :{TINY_FONT}Все +STR_ABBREV_PASSENGERS :ПС +STR_ABBREV_COAL :ВГ +STR_ABBREV_MAIL :ПШ +STR_ABBREV_OIL :НФ +STR_ABBREV_LIVESTOCK :ХД +STR_ABBREV_GOODS :ТВ +STR_ABBREV_GRAIN :ЗЕ +STR_ABBREV_WOOD :ДР +STR_ABBREV_IRON_ORE :ЗЛ +STR_ABBREV_STEEL :СТ +STR_ABBREV_VALUABLES :КШ +STR_ABBREV_COPPER_ORE :МД +STR_ABBREV_MAIZE :КУ +STR_ABBREV_FRUIT :ФР +STR_ABBREV_DIAMONDS :ДІ +STR_ABBREV_FOOD :ПР +STR_ABBREV_PAPER :ПА +STR_ABBREV_GOLD :ЗО +STR_ABBREV_WATER :ВО +STR_ABBREV_WHEAT :ПШ +STR_ABBREV_RUBBER :КА +STR_ABBREV_SUGAR :ЦК +STR_ABBREV_TOYS :ІГ +STR_ABBREV_SWEETS :СЛ +STR_ABBREV_COLA :КО +STR_ABBREV_CANDYFLOSS :ВА +STR_ABBREV_BUBBLES :БУ +STR_ABBREV_TOFFEE :ІР +STR_ABBREV_BATTERIES :БТ +STR_ABBREV_PLASTIC :ПЛ +STR_ABBREV_FIZZY_DRINKS :ГЗ +STR_ABBREV_NONE :НІ +STR_ABBREV_ALL :Все # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}пасажир{P "" и ів} diff --git a/src/lang/urdu.txt b/src/lang/urdu.txt index 145f8e3d61..7e0c993ea4 100644 --- a/src/lang/urdu.txt +++ b/src/lang/urdu.txt @@ -129,39 +129,39 @@ STR_QUANTITY_N_A :- # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}مسافر -STR_ABBREV_COAL :{TINY_FONT} کل -STR_ABBREV_MAIL :{TINY_FONT} ڈاک -STR_ABBREV_OIL :{TINY_FONT} تیل -STR_ABBREV_LIVESTOCK :{TINY_FONT} م ش -STR_ABBREV_GOODS :{TINY_FONT} س م -STR_ABBREV_GRAIN :{TINY_FONT}اناج -STR_ABBREV_WOOD :{TINY_FONT}لکڑی -STR_ABBREV_IRON_ORE :{TINY_FONT}خام لوہا -STR_ABBREV_STEEL :{TINY_FONT}اسٹیل -STR_ABBREV_VALUABLES :{TINY_FONT}قیمتی اشیاء -STR_ABBREV_COPPER_ORE :{TINY_FONT}خام تانبا -STR_ABBREV_MAIZE :{TINY_FONT}مکئی -STR_ABBREV_FRUIT :{TINY_FONT}پھل -STR_ABBREV_DIAMONDS :{TINY_FONT}ہیرے -STR_ABBREV_FOOD :{TINY_FONT}خوراک -STR_ABBREV_PAPER :{TINY_FONT}کاغذ -STR_ABBREV_GOLD :{TINY_FONT}سونا -STR_ABBREV_WATER :{TINY_FONT}پانی -STR_ABBREV_WHEAT :{TINY_FONT}گندم -STR_ABBREV_RUBBER :{TINY_FONT}ربڑ -STR_ABBREV_SUGAR :{TINY_FONT}چینی -STR_ABBREV_TOYS :{TINY_FONT}کھلونے -STR_ABBREV_SWEETS :{TINY_FONT}مٹھائی -STR_ABBREV_COLA :{TINY_FONT}کولا -STR_ABBREV_CANDYFLOSS :{TINY_FONT}میٹھی گولیاں -STR_ABBREV_BUBBLES :{TINY_FONT}بُلبُلے -STR_ABBREV_TOFFEE :{TINY_FONT}ٹافی -STR_ABBREV_BATTERIES :{TINY_FONT}سیل -STR_ABBREV_PLASTIC :{TINY_FONT}پلاسٹِک -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}سوڈا واٹر -STR_ABBREV_NONE :{TINY_FONT}نہیں -STR_ABBREV_ALL :{TINY_FONT}تمام +STR_ABBREV_PASSENGERS :مسافر +STR_ABBREV_COAL : کل +STR_ABBREV_MAIL : ڈاک +STR_ABBREV_OIL : تیل +STR_ABBREV_LIVESTOCK : م ش +STR_ABBREV_GOODS : س م +STR_ABBREV_GRAIN :اناج +STR_ABBREV_WOOD :لکڑی +STR_ABBREV_IRON_ORE :خام لوہا +STR_ABBREV_STEEL :اسٹیل +STR_ABBREV_VALUABLES :قیمتی اشیاء +STR_ABBREV_COPPER_ORE :خام تانبا +STR_ABBREV_MAIZE :مکئی +STR_ABBREV_FRUIT :پھل +STR_ABBREV_DIAMONDS :ہیرے +STR_ABBREV_FOOD :خوراک +STR_ABBREV_PAPER :کاغذ +STR_ABBREV_GOLD :سونا +STR_ABBREV_WATER :پانی +STR_ABBREV_WHEAT :گندم +STR_ABBREV_RUBBER :ربڑ +STR_ABBREV_SUGAR :چینی +STR_ABBREV_TOYS :کھلونے +STR_ABBREV_SWEETS :مٹھائی +STR_ABBREV_COLA :کولا +STR_ABBREV_CANDYFLOSS :میٹھی گولیاں +STR_ABBREV_BUBBLES :بُلبُلے +STR_ABBREV_TOFFEE :ٹافی +STR_ABBREV_BATTERIES :سیل +STR_ABBREV_PLASTIC :پلاسٹِک +STR_ABBREV_FIZZY_DRINKS :سوڈا واٹر +STR_ABBREV_NONE :نہیں +STR_ABBREV_ALL :تمام # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA} مسافرین diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 818a70aa22..397dd2261e 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}HK -STR_ABBREV_COAL :{TINY_FONT}Th -STR_ABBREV_MAIL :{TINY_FONT}BK -STR_ABBREV_OIL :{TINY_FONT}Dau -STR_ABBREV_LIVESTOCK :{TINY_FONT}GS -STR_ABBREV_GOODS :{TINY_FONT}Hh -STR_ABBREV_GRAIN :{TINY_FONT}NgC -STR_ABBREV_WOOD :{TINY_FONT}Go -STR_ABBREV_IRON_ORE :{TINY_FONT}Qs -STR_ABBREV_STEEL :{TINY_FONT}ST -STR_ABBREV_VALUABLES :{TINY_FONT}DQG -STR_ABBREV_COPPER_ORE :{TINY_FONT}Qd -STR_ABBREV_MAIZE :{TINY_FONT}Ngo -STR_ABBREV_FRUIT :{TINY_FONT}HQ -STR_ABBREV_DIAMONDS :{TINY_FONT}Kc -STR_ABBREV_FOOD :{TINY_FONT}Tp -STR_ABBREV_PAPER :{TINY_FONT}Gi -STR_ABBREV_GOLD :{TINY_FONT}Vg -STR_ABBREV_WATER :{TINY_FONT}Nc -STR_ABBREV_WHEAT :{TINY_FONT}Bm -STR_ABBREV_RUBBER :{TINY_FONT}Cs -STR_ABBREV_SUGAR :{TINY_FONT}Dg -STR_ABBREV_TOYS :{TINY_FONT}Đc -STR_ABBREV_SWEETS :{TINY_FONT}Bk -STR_ABBREV_COLA :{TINY_FONT}CL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CF -STR_ABBREV_BUBBLES :{TINY_FONT}BU -STR_ABBREV_TOFFEE :{TINY_FONT}Kb -STR_ABBREV_BATTERIES :{TINY_FONT}Pi -STR_ABBREV_PLASTIC :{TINY_FONT}Cd -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}Ug -STR_ABBREV_NONE :{TINY_FONT}K0 -STR_ABBREV_ALL :{TINY_FONT}Tất +STR_ABBREV_PASSENGERS :HK +STR_ABBREV_COAL :Th +STR_ABBREV_MAIL :BK +STR_ABBREV_OIL :Dau +STR_ABBREV_LIVESTOCK :GS +STR_ABBREV_GOODS :Hh +STR_ABBREV_GRAIN :NgC +STR_ABBREV_WOOD :Go +STR_ABBREV_IRON_ORE :Qs +STR_ABBREV_STEEL :ST +STR_ABBREV_VALUABLES :DQG +STR_ABBREV_COPPER_ORE :Qd +STR_ABBREV_MAIZE :Ngo +STR_ABBREV_FRUIT :HQ +STR_ABBREV_DIAMONDS :Kc +STR_ABBREV_FOOD :Tp +STR_ABBREV_PAPER :Gi +STR_ABBREV_GOLD :Vg +STR_ABBREV_WATER :Nc +STR_ABBREV_WHEAT :Bm +STR_ABBREV_RUBBER :Cs +STR_ABBREV_SUGAR :Dg +STR_ABBREV_TOYS :Đc +STR_ABBREV_SWEETS :Bk +STR_ABBREV_COLA :CL +STR_ABBREV_CANDYFLOSS :CF +STR_ABBREV_BUBBLES :BU +STR_ABBREV_TOFFEE :Kb +STR_ABBREV_BATTERIES :Pi +STR_ABBREV_PLASTIC :Cd +STR_ABBREV_FIZZY_DRINKS :Ug +STR_ABBREV_NONE :K0 +STR_ABBREV_ALL :Tất # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}hành khách diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 5f4a36dd0a..1404de439f 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -128,39 +128,39 @@ STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name STR_ABBREV_NOTHING : -STR_ABBREV_PASSENGERS :{TINY_FONT}TEI -STR_ABBREV_COAL :{TINY_FONT}GLO -STR_ABBREV_MAIL :{TINY_FONT}PST -STR_ABBREV_OIL :{TINY_FONT}OLW -STR_ABBREV_LIVESTOCK :{TINY_FONT}DBW -STR_ABBREV_GOODS :{TINY_FONT}NWY -STR_ABBREV_GRAIN :{TINY_FONT}GRW -STR_ABBREV_WOOD :{TINY_FONT}COE -STR_ABBREV_IRON_ORE :{TINY_FONT}HAE -STR_ABBREV_STEEL :{TINY_FONT}DUR -STR_ABBREV_VALUABLES :{TINY_FONT}TRY -STR_ABBREV_COPPER_ORE :{TINY_FONT}CPR -STR_ABBREV_MAIZE :{TINY_FONT}CRN -STR_ABBREV_FRUIT :{TINY_FONT}FFR -STR_ABBREV_DIAMONDS :{TINY_FONT}DMN -STR_ABBREV_FOOD :{TINY_FONT}BWD -STR_ABBREV_PAPER :{TINY_FONT}PAP -STR_ABBREV_GOLD :{TINY_FONT}AUR -STR_ABBREV_WATER :{TINY_FONT}DWR -STR_ABBREV_WHEAT :{TINY_FONT}GTH -STR_ABBREV_RUBBER :{TINY_FONT}RWB -STR_ABBREV_SUGAR :{TINY_FONT}SIW -STR_ABBREV_TOYS :{TINY_FONT}TEG -STR_ABBREV_SWEETS :{TINY_FONT}MEL -STR_ABBREV_COLA :{TINY_FONT}COL -STR_ABBREV_CANDYFLOSS :{TINY_FONT}CFF -STR_ABBREV_BUBBLES :{TINY_FONT}SWI -STR_ABBREV_TOFFEE :{TINY_FONT}TFI -STR_ABBREV_BATTERIES :{TINY_FONT}BAT -STR_ABBREV_PLASTIC :{TINY_FONT}PLS -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}DIO -STR_ABBREV_NONE :{TINY_FONT}DIM -STR_ABBREV_ALL :{TINY_FONT}OLL +STR_ABBREV_PASSENGERS :TEI +STR_ABBREV_COAL :GLO +STR_ABBREV_MAIL :PST +STR_ABBREV_OIL :OLW +STR_ABBREV_LIVESTOCK :DBW +STR_ABBREV_GOODS :NWY +STR_ABBREV_GRAIN :GRW +STR_ABBREV_WOOD :COE +STR_ABBREV_IRON_ORE :HAE +STR_ABBREV_STEEL :DUR +STR_ABBREV_VALUABLES :TRY +STR_ABBREV_COPPER_ORE :CPR +STR_ABBREV_MAIZE :CRN +STR_ABBREV_FRUIT :FFR +STR_ABBREV_DIAMONDS :DMN +STR_ABBREV_FOOD :BWD +STR_ABBREV_PAPER :PAP +STR_ABBREV_GOLD :AUR +STR_ABBREV_WATER :DWR +STR_ABBREV_WHEAT :GTH +STR_ABBREV_RUBBER :RWB +STR_ABBREV_SUGAR :SIW +STR_ABBREV_TOYS :TEG +STR_ABBREV_SWEETS :MEL +STR_ABBREV_COLA :COL +STR_ABBREV_CANDYFLOSS :CFF +STR_ABBREV_BUBBLES :SWI +STR_ABBREV_TOFFEE :TFI +STR_ABBREV_BATTERIES :BAT +STR_ABBREV_PLASTIC :PLS +STR_ABBREV_FIZZY_DRINKS :DIO +STR_ABBREV_NONE :DIM +STR_ABBREV_ALL :OLL # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}teithiwr From cf3cb8d2a5e9afe09b0e6eaf562dcfafa2a28181 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 30 Apr 2023 18:40:41 +0000 Subject: [PATCH 22/31] Update: Translations from eints english (au): 4 changes by krysclarke vietnamese: 4 changes by KhoiCanDev korean: 4 changes by telk5093 russian: 1 change by Ln-Wolf --- src/lang/english_AU.txt | 4 ++++ src/lang/korean.txt | 4 ++++ src/lang/russian.txt | 2 +- src/lang/vietnamese.txt | 4 ++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 65c3ec0f8e..dd147d2ab0 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -983,6 +983,10 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Select i # Autosave dropdown ###length 5 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Off +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_10_MINUTES :Every 10 minutes +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_30_MINUTES :Every 30 minutes +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_60_MINUTES :Every 60 minutes +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_120_MINUTES :Every 120 minutes STR_GAME_OPTIONS_LANGUAGE :{BLACK}Language STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Select the interface language to use diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 56d57c5bb0..de13e6da6b 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -984,6 +984,10 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}게임 # Autosave dropdown ###length 5 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :사용 안 함 +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_10_MINUTES :매 10분마다 +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_30_MINUTES :매 30분마다 +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_60_MINUTES :매 60분마다 +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_120_MINUTES :매 120분마다 STR_GAME_OPTIONS_LANGUAGE :{BLACK}언어 STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}사용할 언어를 선택하세요 diff --git a/src/lang/russian.txt b/src/lang/russian.txt index adb6128922..8254fd0f4f 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1127,7 +1127,7 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Инте # Autosave dropdown ###length 5 -STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Отключено +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :отключено STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_10_MINUTES :каждые 10 минут STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_30_MINUTES :каждые 30 минут STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_60_MINUTES :каждые 60 минут diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 397dd2261e..ad22d47759 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -983,6 +983,10 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Lựa ch # Autosave dropdown ###length 5 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Tắt +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_10_MINUTES :Mỗi 10 phút +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_30_MINUTES :Mỗi 30 phút +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_60_MINUTES :Mỗi 60 phút +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_120_MINUTES :Mỗi 120 phút STR_GAME_OPTIONS_LANGUAGE :{BLACK}Ngôn ngữ STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Lựa chọn sử dụng ngôn ngữ giao diện From 003bab3c8a0f7c51e0dba649229f426100a726b1 Mon Sep 17 00:00:00 2001 From: PeterN Date: Sun, 30 Apr 2023 23:11:00 +0100 Subject: [PATCH 23/31] Change: Size space for editbox clear button by interface scale. (#10749) --- src/misc_gui.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index f9fecdb9f0..5d272080b8 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -793,7 +793,7 @@ void QueryString::DrawEditBox(const Window *w, int wid) const assert((wi->type & WWT_MASK) == WWT_EDITBOX); bool rtl = _current_text_dir == TD_RTL; - Dimension sprite_size = GetSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); + Dimension sprite_size = GetScaledSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); int clearbtn_width = sprite_size.width + WidgetDimensions::scaled.imgbtn.Horizontal(); Rect r = wi->GetCurrentRect(); @@ -801,7 +801,7 @@ void QueryString::DrawEditBox(const Window *w, int wid) const Rect fr = r.Indent(clearbtn_width, !rtl); DrawFrameRect(cr, wi->colour, wi->IsLowered() ? FR_LOWERED : FR_NONE); - DrawSprite(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT, PAL_NONE, cr.left + WidgetDimensions::scaled.imgbtn.left + (wi->IsLowered() ? 1 : 0), CenterBounds(r.top, r.bottom, sprite_size.height) + (wi->IsLowered() ? 1 : 0)); + DrawSpriteIgnorePadding(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT, PAL_NONE, cr, wi->IsLowered(), SA_CENTER); if (this->text.bytes == 1) GfxFillRect(cr.Shrink(WidgetDimensions::scaled.bevel), _colour_gradient[wi->colour & 0xF][2], FILLRECT_CHECKER); DrawFrameRect(fr, wi->colour, FR_LOWERED | FR_DARKENED); @@ -845,7 +845,7 @@ Point QueryString::GetCaretPosition(const Window *w, int wid) const assert((wi->type & WWT_MASK) == WWT_EDITBOX); bool rtl = _current_text_dir == TD_RTL; - Dimension sprite_size = GetSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); + Dimension sprite_size = GetScaledSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); int clearbtn_width = sprite_size.width + WidgetDimensions::scaled.imgbtn.Horizontal(); Rect r = wi->GetCurrentRect().Indent(clearbtn_width, !rtl).Shrink(WidgetDimensions::scaled.framerect); @@ -874,7 +874,7 @@ Rect QueryString::GetBoundingRect(const Window *w, int wid, const char *from, co assert((wi->type & WWT_MASK) == WWT_EDITBOX); bool rtl = _current_text_dir == TD_RTL; - Dimension sprite_size = GetSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); + Dimension sprite_size = GetScaledSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); int clearbtn_width = sprite_size.width + WidgetDimensions::scaled.imgbtn.Horizontal(); Rect r = wi->GetCurrentRect().Indent(clearbtn_width, !rtl).Shrink(WidgetDimensions::scaled.framerect); @@ -905,7 +905,7 @@ const char *QueryString::GetCharAtPosition(const Window *w, int wid, const Point assert((wi->type & WWT_MASK) == WWT_EDITBOX); bool rtl = _current_text_dir == TD_RTL; - Dimension sprite_size = GetSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); + Dimension sprite_size = GetScaledSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); int clearbtn_width = sprite_size.width + WidgetDimensions::scaled.imgbtn.Horizontal(); Rect r = wi->GetCurrentRect().Indent(clearbtn_width, !rtl).Shrink(WidgetDimensions::scaled.framerect); @@ -927,7 +927,7 @@ void QueryString::ClickEditBox(Window *w, Point pt, int wid, int click_count, bo assert((wi->type & WWT_MASK) == WWT_EDITBOX); bool rtl = _current_text_dir == TD_RTL; - Dimension sprite_size = GetSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); + Dimension sprite_size = GetScaledSpriteSize(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); int clearbtn_width = sprite_size.width + WidgetDimensions::scaled.imgbtn.Horizontal(); Rect cr = wi->GetCurrentRect().WithWidth(clearbtn_width, !rtl); From cc44aa7438bbfe4ba606bb0817fed2f70d4e51fe Mon Sep 17 00:00:00 2001 From: PeterN Date: Mon, 1 May 2023 12:58:22 +0100 Subject: [PATCH 24/31] Change: Split Game options into General, Graphics and Sound tabs. (#10674) --- src/lang/english.txt | 18 +++ src/settings_gui.cpp | 240 +++++++++++++++++++++------------- src/widgets/settings_widget.h | 7 +- 3 files changed, 176 insertions(+), 89 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 8ada06d097..8f813a4b0c 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -930,6 +930,24 @@ STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Copy the # Game options window STR_GAME_OPTIONS_CAPTION :{WHITE}Game Options + +STR_GAME_OPTIONS_TAB_GENERAL :General +STR_GAME_OPTIONS_TAB_GENERAL_TT :{BLACK}Choose general settings +STR_GAME_OPTIONS_TAB_GRAPHICS :Graphics +STR_GAME_OPTIONS_TAB_GRAPHICS_TT :{BLACK}Choose graphics settings +STR_GAME_OPTIONS_TAB_SOUND :Sound +STR_GAME_OPTIONS_TAB_SOUND_TT :{BLACK}Choose sound and music settings + +STR_GAME_OPTIONS_VOLUME :Volume +STR_GAME_OPTIONS_SFX_VOLUME :Sound effects +STR_GAME_OPTIONS_MUSIC_VOLUME :Music + +STR_GAME_OPTIONS_VOLUME_0 :0% +STR_GAME_OPTIONS_VOLUME_25 :25% +STR_GAME_OPTIONS_VOLUME_50 :50% +STR_GAME_OPTIONS_VOLUME_75 :75% +STR_GAME_OPTIONS_VOLUME_100 :100% + STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Currency units STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Currency units selection diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 28ec208195..bd5ac49630 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -163,6 +163,18 @@ static const std::map _scale_labels = { { 500, STR_GAME_OPTIONS_GUI_SCALE_5X }, }; +static const std::map _volume_labels = { + { 0, STR_GAME_OPTIONS_VOLUME_0 }, + { 15, STR_NULL }, + { 31, STR_GAME_OPTIONS_VOLUME_25 }, + { 47, STR_NULL }, + { 63, STR_GAME_OPTIONS_VOLUME_50 }, + { 79, STR_NULL }, + { 95, STR_GAME_OPTIONS_VOLUME_75 }, + { 111, STR_NULL }, + { 127, STR_GAME_OPTIONS_VOLUME_100 }, +}; + struct GameOptionsWindow : Window { GameSettings *opt; bool reload; @@ -178,6 +190,8 @@ struct GameOptionsWindow : Window { this->InitNested(WN_GAME_OPTIONS_GAME_OPTIONS); this->OnInvalidateData(0); + + this->SetTab(WID_GO_TAB_GENERAL); } void Close() override @@ -342,15 +356,27 @@ struct GameOptionsWindow : Window { break; case WID_GO_BASE_SFX_VOLUME: - DrawSliderWidget(r, 0, INT8_MAX, _settings_client.music.effect_vol, {}); + DrawSliderWidget(r, 0, INT8_MAX, _settings_client.music.effect_vol, _volume_labels); break; case WID_GO_BASE_MUSIC_VOLUME: - DrawSliderWidget(r, 0, INT8_MAX, _settings_client.music.music_vol, {}); + DrawSliderWidget(r, 0, INT8_MAX, _settings_client.music.music_vol, _volume_labels); break; } } + void SetTab(int widget) + { + this->SetWidgetsLoweredState(false, WID_GO_TAB_GENERAL, WID_GO_TAB_GRAPHICS, WID_GO_TAB_SOUND, WIDGET_LIST_END); + this->LowerWidget(widget); + + int pane = 0; + if (widget == WID_GO_TAB_GRAPHICS) pane = 1; + else if (widget == WID_GO_TAB_SOUND) pane = 2; + this->GetWidget(WID_GO_TAB_SELECTION)->SetDisplayedPlane(pane); + this->SetDirty(); + } + void OnResize() override { bool changed = false; @@ -384,7 +410,7 @@ struct GameOptionsWindow : Window { y = GetStringHeight(STR_GAME_OPTIONS_VIDEO_DRIVER_INFO, wid->current_x); changed |= wid->UpdateVerticalSize(y); - if (changed) this->ReInit(0, 0, true); + if (changed) this->ReInit(0, 0, this->flags & WF_CENTERED); } void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override @@ -412,6 +438,15 @@ struct GameOptionsWindow : Window { } break; + case WID_GO_TEXT_SFX_VOLUME: + case WID_GO_TEXT_MUSIC_VOLUME: { + Dimension d = maxdim(GetStringBoundingBox(STR_GAME_OPTIONS_SFX_VOLUME), GetStringBoundingBox(STR_GAME_OPTIONS_MUSIC_VOLUME)); + d.width += padding.width; + d.height += padding.height; + *size = maxdim(*size, d); + break; + } + default: { int selected; DropDownList list = this->BuildDropDownList(widget, &selected); @@ -450,6 +485,12 @@ struct GameOptionsWindow : Window { return; } switch (widget) { + case WID_GO_TAB_GENERAL: + case WID_GO_TAB_GRAPHICS: + case WID_GO_TAB_SOUND: + this->SetTab(widget); + break; + case WID_GO_FULLSCREEN_BUTTON: // Click fullscreen on/off /* try to toggle full-screen on/off */ if (!ToggleFullScreen(!_fullscreen)) { @@ -678,21 +719,32 @@ static const NWidgetPart _nested_game_options_widgets[] = { NWidget(WWT_CLOSEBOX, COLOUR_GREY), NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_GO_BACKGROUND), SetPIP(6, 6, 10), - NWidget(NWID_HORIZONTAL), SetPIP(10, 10, 10), - NWidget(NWID_VERTICAL), SetPIP(0, 6, 0), - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_AUTOSAVE_FRAME, STR_NULL), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_AUTOSAVE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP), SetFill(1, 0), + NWidget(WWT_PANEL, COLOUR_GREY), + NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPadding(5, 10, 5, 10), + NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_GENERAL), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_GENERAL, STR_GAME_OPTIONS_TAB_GENERAL_TT), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_GRAPHICS), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_GRAPHICS, STR_GAME_OPTIONS_TAB_GRAPHICS_TT), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_SOUND), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_SOUND, STR_GAME_OPTIONS_TAB_SOUND_TT), SetFill(1, 0), + EndContainer(), + EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GO_TAB_SELECTION), + /* General tab */ + NWidget(NWID_VERTICAL), SetPadding(10), SetPIP(0, WidgetDimensions::unscaled.vsep_wide, 0), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_LANGUAGE, STR_NULL), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_LANG_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_LANGUAGE_TOOLTIP), SetFill(1, 0), EndContainer(), + + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_AUTOSAVE_FRAME, STR_NULL), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_AUTOSAVE_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP), SetFill(1, 0), + EndContainer(), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME, STR_NULL), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_CURRENCY_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_CURRENCY_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0), EndContainer(), EndContainer(), - NWidget(NWID_VERTICAL), SetPIP(0, 6, 0), - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_LANGUAGE, STR_NULL), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_LANG_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_LANGUAGE_TOOLTIP), SetFill(1, 0), - EndContainer(), + /* Graphics tab */ + NWidget(NWID_VERTICAL), SetPadding(10), SetPIP(0, WidgetDimensions::unscaled.vsep_wide, 0), NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_GUI_SCALE_FRAME, STR_NULL), NWidget(NWID_VERTICAL), SetPIP(0, WidgetDimensions::unscaled.vsep_normal, 0), NWidget(WWT_EMPTY, COLOUR_GREY, WID_GO_GUI_SCALE), SetMinimalSize(67, 0), SetMinimalTextLines(1, 12 + WidgetDimensions::unscaled.vsep_normal, FS_SMALL), SetFill(0, 0), SetDataTip(0x0, STR_GAME_OPTIONS_GUI_SCALE_TOOLTIP), @@ -708,89 +760,101 @@ static const NWidgetPart _nested_game_options_widgets[] = { EndContainer(), EndContainer(), EndContainer(), - EndContainer(), - EndContainer(), - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_GRAPHICS, STR_NULL), SetPadding(0, 10, 0, 10), - NWidget(NWID_HORIZONTAL), - NWidget(NWID_VERTICAL), SetPIP(0, 2, 0), - NWidget(NWID_HORIZONTAL), - NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12),SetDataTip(STR_GAME_OPTIONS_RESOLUTION, STR_NULL), - NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_RESOLUTION_DROPDOWN), SetMinimalSize(200, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_RESOLUTION_TOOLTIP), - EndContainer(), - NWidget(NWID_HORIZONTAL), - NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_REFRESH_RATE, STR_NULL), - NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_REFRESH_RATE_DROPDOWN), SetMinimalSize(200, 12), SetDataTip(STR_GAME_OPTIONS_REFRESH_RATE_ITEM, STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP), - EndContainer(), - NWidget(NWID_HORIZONTAL), - NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_FULLSCREEN, STR_NULL), - NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), - NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_FULLSCREEN_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP), - EndContainer(), - NWidget(NWID_HORIZONTAL), - NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_VIDEO_ACCELERATION, STR_NULL), - NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), - NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_VIDEO_ACCEL_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP), - EndContainer(), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_GRAPHICS, STR_NULL), + NWidget(NWID_VERTICAL), SetPIP(0, WidgetDimensions::unscaled.vsep_normal, 0), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12),SetDataTip(STR_GAME_OPTIONS_RESOLUTION, STR_NULL), + NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_RESOLUTION_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_RESOLUTION_TOOLTIP), + EndContainer(), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_REFRESH_RATE, STR_NULL), + NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_REFRESH_RATE_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_GAME_OPTIONS_REFRESH_RATE_ITEM, STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP), + EndContainer(), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_FULLSCREEN, STR_NULL), + NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_FULLSCREEN_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP), + EndContainer(), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_VIDEO_ACCELERATION, STR_NULL), + NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_VIDEO_ACCEL_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP), + EndContainer(), #ifndef __APPLE__ - NWidget(NWID_HORIZONTAL), - NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_VIDEO_VSYNC, STR_NULL), - NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), - NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_VIDEO_VSYNC_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP), - EndContainer(), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_VIDEO_VSYNC, STR_NULL), + NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_VIDEO_VSYNC_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP), + EndContainer(), #endif - NWidget(NWID_HORIZONTAL), - NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GO_VIDEO_DRIVER_INFO), SetMinimalTextLines(1, 0), SetFill(1, 0), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GO_VIDEO_DRIVER_INFO), SetMinimalTextLines(1, 0), SetFill(1, 0), + EndContainer(), + EndContainer(), + EndContainer(), + + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_GRF, STR_NULL), + NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 0), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_BASE_GRF_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_GRF_TOOLTIP), + NWidget(WWT_TEXT, COLOUR_GREY, WID_GO_BASE_GRF_STATUS), SetMinimalSize(100, 12), SetDataTip(STR_EMPTY, STR_NULL), SetFill(1, 0), + EndContainer(), + NWidget(WWT_TEXT, COLOUR_GREY, WID_GO_BASE_GRF_DESCRIPTION), SetMinimalSize(200, 0), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 6, 0), + NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_GRF_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_GRF_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_GRF_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL), EndContainer(), EndContainer(), EndContainer(), - EndContainer(), - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_GRF, STR_NULL), SetPadding(0, 10, 0, 10), - NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 0), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_BASE_GRF_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_GRF_TOOLTIP), - NWidget(WWT_TEXT, COLOUR_GREY, WID_GO_BASE_GRF_STATUS), SetMinimalSize(150, 12), SetDataTip(STR_EMPTY, STR_NULL), SetFill(1, 0), - EndContainer(), - NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GO_BASE_GRF_DESCRIPTION), SetMinimalSize(330, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_NULL, STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 6, 0), - NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_GRF_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_GRF_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_GRF_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL), - EndContainer(), - EndContainer(), - - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_SFX, STR_NULL), SetPadding(0, 10, 0, 10), - NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 7), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_BASE_SFX_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_SFX_TOOLTIP), - NWidget(NWID_SPACER), SetMinimalSize(150, 12), SetFill(1, 0), - NWidget(WWT_EMPTY, COLOUR_GREY, WID_GO_BASE_SFX_VOLUME), SetMinimalSize(67, 12), SetFill(0, 0), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC), - EndContainer(), - NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GO_BASE_SFX_DESCRIPTION), SetMinimalSize(330, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_NULL, STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 6, 0), - NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_SFX_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_SFX_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_SFX_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL), - EndContainer(), - EndContainer(), - - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_MUSIC, STR_NULL), SetPadding(0, 10, 0, 10), - NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 7), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_BASE_MUSIC_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP), - NWidget(WWT_TEXT, COLOUR_GREY, WID_GO_BASE_MUSIC_STATUS), SetMinimalSize(150, 12), SetDataTip(STR_EMPTY, STR_NULL), SetFill(1, 0), - NWidget(WWT_EMPTY, COLOUR_GREY, WID_GO_BASE_MUSIC_VOLUME), SetMinimalSize(67, 12), SetFill(0, 0), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC), - EndContainer(), - NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 7), - NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GO_BASE_MUSIC_DESCRIPTION), SetMinimalSize(330, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_NULL, STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 6, 0), - NWidget(NWID_VERTICAL), SetPIP(0, 0, 0), - NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GO_BASE_MUSIC_JUKEBOX), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_MUSIC, STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW), SetPadding(6, 0, 6, 0), + /* Sound/Music tab */ + NWidget(NWID_VERTICAL), SetPadding(10), SetPIP(0, WidgetDimensions::unscaled.vsep_wide, 0), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_VOLUME, STR_NULL), + NWidget(NWID_VERTICAL), SetPIP(0, WidgetDimensions::unscaled.vsep_wide, 0), + NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_wide, 0), + NWidget(WWT_TEXT, COLOUR_GREY, WID_GO_TEXT_SFX_VOLUME), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_SFX_VOLUME, STR_NULL), + NWidget(WWT_EMPTY, COLOUR_GREY, WID_GO_BASE_SFX_VOLUME), SetMinimalSize(67, 0), SetMinimalTextLines(1, 12 + WidgetDimensions::unscaled.vsep_normal, FS_SMALL), SetFill(1, 0), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC), + EndContainer(), + NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_wide, 0), + NWidget(WWT_TEXT, COLOUR_GREY, WID_GO_TEXT_MUSIC_VOLUME), SetMinimalSize(0, 12), SetDataTip(STR_GAME_OPTIONS_MUSIC_VOLUME, STR_NULL), + NWidget(WWT_EMPTY, COLOUR_GREY, WID_GO_BASE_MUSIC_VOLUME), SetMinimalSize(67, 0), SetMinimalTextLines(1, 12 + WidgetDimensions::unscaled.vsep_normal, FS_SMALL), SetFill(1, 0), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC), + EndContainer(), + EndContainer(), + EndContainer(), + + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_SFX, STR_NULL), + NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 7), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_BASE_SFX_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_SFX_TOOLTIP), + NWidget(NWID_SPACER), SetMinimalSize(100, 12), SetFill(1, 0), + EndContainer(), + NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GO_BASE_SFX_DESCRIPTION), SetMinimalSize(200, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_NULL, STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 6, 0), + NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_SFX_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_SFX_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_SFX_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL), + EndContainer(), + EndContainer(), + + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_MUSIC, STR_NULL), + NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 7), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_BASE_MUSIC_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP), + NWidget(WWT_TEXT, COLOUR_GREY, WID_GO_BASE_MUSIC_STATUS), SetMinimalSize(100, 12), SetDataTip(STR_EMPTY, STR_NULL), SetFill(1, 0), + EndContainer(), + NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 7), + NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GO_BASE_MUSIC_DESCRIPTION), SetMinimalSize(200, 0), SetMinimalTextLines(1, 0), SetDataTip(STR_NULL, STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 6, 0), + NWidget(NWID_VERTICAL), SetPIP(0, 0, 0), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GO_BASE_MUSIC_JUKEBOX), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_MUSIC, STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW), SetPadding(6, 0, 6, 0), + EndContainer(), + EndContainer(), + NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_MUSIC_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_MUSIC_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_MUSIC_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL), + EndContainer(), EndContainer(), - EndContainer(), - NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_MUSIC_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_MUSIC_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_BASE_MUSIC_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL), EndContainer(), EndContainer(), EndContainer(), diff --git a/src/widgets/settings_widget.h b/src/widgets/settings_widget.h index 8f655d945a..8e324f0d55 100644 --- a/src/widgets/settings_widget.h +++ b/src/widgets/settings_widget.h @@ -12,7 +12,10 @@ /** Widgets of the #GameOptionsWindow class. */ enum GameOptionsWidgets { - WID_GO_BACKGROUND, ///< Background of the window. + WID_GO_TAB_GENERAL, ///< General tab. + WID_GO_TAB_GRAPHICS, ///< Graphics tab. + WID_GO_TAB_SOUND, ///< Sound tab. + WID_GO_TAB_SELECTION, ///< Background of the tab selection. WID_GO_CURRENCY_DROPDOWN, ///< Currency dropdown. WID_GO_DISTANCE_DROPDOWN, ///< Measuring unit dropdown. WID_GO_AUTOSAVE_DROPDOWN, ///< Dropdown to say how often to autosave. @@ -27,10 +30,12 @@ enum GameOptionsWidgets { WID_GO_BASE_GRF_TEXTFILE, ///< Open base GRF readme, changelog (+1) or license (+2). WID_GO_BASE_GRF_DESCRIPTION = WID_GO_BASE_GRF_TEXTFILE + TFT_END, ///< Description of selected base GRF. WID_GO_BASE_SFX_DROPDOWN, ///< Use to select a base SFX. + WID_GO_TEXT_SFX_VOLUME, ///< Sound effects volume label. WID_GO_BASE_SFX_VOLUME, ///< Change sound effects volume. WID_GO_BASE_SFX_TEXTFILE, ///< Open base SFX readme, changelog (+1) or license (+2). WID_GO_BASE_SFX_DESCRIPTION = WID_GO_BASE_SFX_TEXTFILE + TFT_END, ///< Description of selected base SFX. WID_GO_BASE_MUSIC_DROPDOWN, ///< Use to select a base music set. + WID_GO_TEXT_MUSIC_VOLUME, ///< Music volume label. WID_GO_BASE_MUSIC_VOLUME, ///< Change music volume. WID_GO_BASE_MUSIC_JUKEBOX, ///< Open the jukebox. WID_GO_BASE_MUSIC_STATUS, ///< Info about corrupted files etc. From 3342967ad919b667d2c036da4b15197d0f027788 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 27 Apr 2023 19:03:03 +0200 Subject: [PATCH 25/31] Codechange: use std::string instead of stredup/free for goals --- src/goal.cpp | 15 ++++----------- src/goal_base.h | 14 +++++++------- src/goal_gui.cpp | 22 +++++++++------------- src/gui.h | 2 +- src/saveload/goal_sl.cpp | 12 ++++++------ 5 files changed, 27 insertions(+), 38 deletions(-) diff --git a/src/goal.cpp b/src/goal.cpp index 208678678d..d6866ade02 100644 --- a/src/goal.cpp +++ b/src/goal.cpp @@ -84,8 +84,7 @@ std::tuple CmdCreateGoal(DoCommandFlag flags, CompanyID com g->type = type; g->dst = dest; g->company = company; - g->text = stredup(text.c_str()); - g->progress = nullptr; + g->text = text; g->completed = false; if (g->company == INVALID_COMPANY) { @@ -143,8 +142,7 @@ CommandCost CmdSetGoalText(DoCommandFlag flags, GoalID goal, const std::string & if (flags & DC_EXEC) { Goal *g = Goal::Get(goal); - free(g->text); - g->text = stredup(text.c_str()); + g->text = text; if (g->company == INVALID_COMPANY) { InvalidateWindowClassesData(WC_GOALS_LIST); @@ -170,12 +168,7 @@ CommandCost CmdSetGoalProgress(DoCommandFlag flags, GoalID goal, const std::stri if (flags & DC_EXEC) { Goal *g = Goal::Get(goal); - free(g->progress); - if (text.empty()) { - g->progress = nullptr; - } else { - g->progress = stredup(text.c_str()); - } + g->progress = text; if (g->company == INVALID_COMPANY) { InvalidateWindowClassesData(WC_GOALS_LIST); @@ -255,7 +248,7 @@ CommandCost CmdGoalQuestion(DoCommandFlag flags, uint16 uniqueid, uint32 target, if (company == INVALID_COMPANY && !Company::IsValidID(_local_company)) return CommandCost(); if (company != INVALID_COMPANY && company != _local_company) return CommandCost(); } - ShowGoalQuestion(uniqueid, type, button_mask, text.c_str()); + ShowGoalQuestion(uniqueid, type, button_mask, text); } return CommandCost(); diff --git a/src/goal_base.h b/src/goal_base.h index ceeb0ef933..c73699514e 100644 --- a/src/goal_base.h +++ b/src/goal_base.h @@ -19,12 +19,12 @@ extern GoalPool _goal_pool; /** Struct about goals, current and completed */ struct Goal : GoalPool::PoolItem<&_goal_pool> { - CompanyID company; ///< Goal is for a specific company; INVALID_COMPANY if it is global - GoalType type; ///< Type of the goal - GoalTypeID dst; ///< Index of type - char *text; ///< Text of the goal. - char *progress; ///< Progress text of the goal. - bool completed; ///< Is the goal completed or not? + CompanyID company; ///< Goal is for a specific company; INVALID_COMPANY if it is global + GoalType type; ///< Type of the goal + GoalTypeID dst; ///< Index of type + std::string text; ///< Text of the goal. + std::string progress; ///< Progress text of the goal. + bool completed; ///< Is the goal completed or not? /** * We need an (empty) constructor so struct isn't zeroed (as C++ standard states) @@ -34,7 +34,7 @@ struct Goal : GoalPool::PoolItem<&_goal_pool> { /** * (Empty) destructor has to be defined else operator delete might be called with nullptr parameter */ - inline ~Goal() { free(this->text); free(this->progress); } + inline ~Goal() { } }; #endif /* GOAL_BASE_H */ diff --git a/src/goal_gui.cpp b/src/goal_gui.cpp index bf7381c140..bdf9d3fca6 100644 --- a/src/goal_gui.cpp +++ b/src/goal_gui.cpp @@ -212,7 +212,7 @@ struct GoalListWindow : public Window { } case GC_PROGRESS: - if (s->progress != nullptr) { + if (!s->progress.empty()) { SetDParamStr(0, s->progress); StringID str = s->completed ? STR_GOALS_PROGRESS_COMPLETE : STR_GOALS_PROGRESS; DrawString(r.WithWidth(progress_col_width, !rtl), str, TC_FROMSTRING, SA_RIGHT | SA_FORCE); @@ -242,7 +242,7 @@ struct GoalListWindow : public Window { /* Calculate progress column width. */ uint max_width = 0; for (const Goal *s : Goal::Iterate()) { - if (s->progress != nullptr) { + if (!s->progress.empty()) { SetDParamStr(0, s->progress); StringID str = s->completed ? STR_GOALS_PROGRESS_COMPLETE : STR_GOALS_PROGRESS; uint str_width = GetStringBoundingBox(str).width; @@ -322,14 +322,14 @@ void ShowGoalsList(CompanyID company) /** Ask a question about a goal. */ struct GoalQuestionWindow : public Window { - char *question; ///< Question to ask (private copy). - int buttons; ///< Number of valid buttons in #button. - int button[3]; ///< Buttons to display. - TextColour colour; ///< Colour of the question text. + std::string question; ///< Question to ask (private copy). + int buttons; ///< Number of valid buttons in #button. + int button[3]; ///< Buttons to display. + TextColour colour; ///< Colour of the question text. - GoalQuestionWindow(WindowDesc *desc, WindowNumber window_number, TextColour colour, uint32 button_mask, const char *question) : Window(desc), colour(colour) + GoalQuestionWindow(WindowDesc *desc, WindowNumber window_number, TextColour colour, uint32 button_mask, const std::string &question) : Window(desc), colour(colour) { - this->question = stredup(question); + this->question = question; /* Figure out which buttons we have to enable. */ int n = 0; @@ -352,10 +352,6 @@ struct GoalQuestionWindow : public Window { this->FinishInitNested(window_number); } - ~GoalQuestionWindow() - { - free(this->question); - } void SetStringParameters(int widget) const override { @@ -554,7 +550,7 @@ static WindowDesc _goal_question_list_desc[] = { * @param button_mask Buttons to display. * @param question Question to ask. */ -void ShowGoalQuestion(uint16 id, byte type, uint32 button_mask, const char *question) +void ShowGoalQuestion(uint16 id, byte type, uint32 button_mask, const std::string &question) { assert(type < GQT_END); new GoalQuestionWindow(&_goal_question_list_desc[type], id, type == 3 ? TC_WHITE : TC_BLACK, button_mask, question); diff --git a/src/gui.h b/src/gui.h index 4eb2fb7f66..a489648193 100644 --- a/src/gui.h +++ b/src/gui.h @@ -49,7 +49,7 @@ void ShowIndustryDirectory(); void ShowIndustryCargoesWindow(); void ShowSubsidiesList(); void ShowGoalsList(CompanyID company); -void ShowGoalQuestion(uint16 id, byte type, uint32 button_mask, const char *question); +void ShowGoalQuestion(uint16 id, byte type, uint32 button_mask, const std::string &question); void ShowStoryBook(CompanyID company, uint16 page_id = INVALID_STORY_PAGE); void ShowEstimatedCostOrIncome(Money cost, int x, int y); diff --git a/src/saveload/goal_sl.cpp b/src/saveload/goal_sl.cpp index ae6b8577b2..003e92b20f 100644 --- a/src/saveload/goal_sl.cpp +++ b/src/saveload/goal_sl.cpp @@ -17,12 +17,12 @@ #include "../safeguards.h" static const SaveLoad _goals_desc[] = { - SLE_VAR(Goal, company, SLE_FILE_U16 | SLE_VAR_U8), - SLE_VAR(Goal, type, SLE_FILE_U16 | SLE_VAR_U8), - SLE_VAR(Goal, dst, SLE_UINT32), - SLE_STR(Goal, text, SLE_STR | SLF_ALLOW_CONTROL, 0), - SLE_CONDSTR(Goal, progress, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_182, SL_MAX_VERSION), - SLE_CONDVAR(Goal, completed, SLE_BOOL, SLV_182, SL_MAX_VERSION), + SLE_VAR(Goal, company, SLE_FILE_U16 | SLE_VAR_U8), + SLE_VAR(Goal, type, SLE_FILE_U16 | SLE_VAR_U8), + SLE_VAR(Goal, dst, SLE_UINT32), + SLE_SSTR(Goal, text, SLE_STR | SLF_ALLOW_CONTROL), + SLE_CONDSSTR(Goal, progress, SLE_STR | SLF_ALLOW_CONTROL, SLV_182, SL_MAX_VERSION), + SLE_CONDVAR(Goal, completed, SLE_BOOL, SLV_182, SL_MAX_VERSION), }; struct GOALChunkHandler : ChunkHandler { From aac95eeaf5e0cd9edb6aae2c1b05ac4edb28a0ba Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 27 Apr 2023 19:21:06 +0200 Subject: [PATCH 26/31] Codechange: use std::string instead of stredup/free for stories --- src/saveload/story_sl.cpp | 4 ++-- src/story.cpp | 35 +++++++++++++---------------------- src/story_base.h | 11 +++++------ src/story_gui.cpp | 20 ++++++++++---------- 4 files changed, 30 insertions(+), 40 deletions(-) diff --git a/src/saveload/story_sl.cpp b/src/saveload/story_sl.cpp index d20bc3b4cd..c071e7e81d 100644 --- a/src/saveload/story_sl.cpp +++ b/src/saveload/story_sl.cpp @@ -35,7 +35,7 @@ static const SaveLoad _story_page_elements_desc[] = { SLE_CONDVAR(StoryPageElement, type, SLE_FILE_U16 | SLE_VAR_U8, SL_MIN_VERSION, SLV_185), SLE_CONDVAR(StoryPageElement, type, SLE_UINT8, SLV_185, SL_MAX_VERSION), SLE_VAR(StoryPageElement, referenced_id, SLE_UINT32), - SLE_STR(StoryPageElement, text, SLE_STR | SLF_ALLOW_CONTROL, 0), + SLE_SSTR(StoryPageElement, text, SLE_STR | SLF_ALLOW_CONTROL), }; struct STPEChunkHandler : ChunkHandler { @@ -77,7 +77,7 @@ static const SaveLoad _story_pages_desc[] = { SLE_VAR(StoryPage, date, SLE_UINT32), SLE_CONDVAR(StoryPage, company, SLE_FILE_U16 | SLE_VAR_U8, SL_MIN_VERSION, SLV_185), SLE_CONDVAR(StoryPage, company, SLE_UINT8, SLV_185, SL_MAX_VERSION), - SLE_STR(StoryPage, title, SLE_STR | SLF_ALLOW_CONTROL, 0), + SLE_SSTR(StoryPage, title, SLE_STR | SLF_ALLOW_CONTROL), }; struct STPAChunkHandler : ChunkHandler { diff --git a/src/story.cpp b/src/story.cpp index 9629c17584..e5758a1b8e 100644 --- a/src/story.cpp +++ b/src/story.cpp @@ -47,16 +47,16 @@ INSTANTIATE_POOL_METHODS(StoryPage) * @param text The text parameter of the DoCommand proc * @return true, if and only if the given parameters are valid for the given page element type and page id. */ -static bool VerifyElementContentParameters(StoryPageID page_id, StoryPageElementType type, TileIndex tile, uint32 reference, const char *text) +static bool VerifyElementContentParameters(StoryPageID page_id, StoryPageElementType type, TileIndex tile, uint32 reference, const std::string &text) { StoryPageButtonData button_data{ reference }; switch (type) { case SPET_TEXT: - if (StrEmpty(text)) return false; + if (text.empty()) return false; break; case SPET_LOCATION: - if (StrEmpty(text)) return false; + if (text.empty()) return false; if (!IsValidTile(tile)) return false; break; case SPET_GOAL: @@ -91,14 +91,14 @@ static bool VerifyElementContentParameters(StoryPageID page_id, StoryPageElement * @param reference The reference parameter of the DoCommand proc (p2) * @param text The text parameter of the DoCommand proc */ -static void UpdateElement(StoryPageElement &pe, TileIndex tile, uint32 reference, const char *text) +static void UpdateElement(StoryPageElement &pe, TileIndex tile, uint32 reference, const std::string &text) { switch (pe.type) { case SPET_TEXT: - pe.text = stredup(text); + pe.text = text; break; case SPET_LOCATION: - pe.text = stredup(text); + pe.text = text; pe.referenced_id = tile; break; case SPET_GOAL: @@ -107,7 +107,7 @@ static void UpdateElement(StoryPageElement &pe, TileIndex tile, uint32 reference case SPET_BUTTON_PUSH: case SPET_BUTTON_TILE: case SPET_BUTTON_VEHICLE: - pe.text = stredup(text); + pe.text = text; pe.referenced_id = reference; break; default: NOT_REACHED(); @@ -220,11 +220,7 @@ std::tuple CmdCreateStoryPage(DoCommandFlag flags, Com s->sort_value = _story_page_next_sort_value; s->date = TimerGameCalendar::date; s->company = company; - if (text.empty()) { - s->title = nullptr; - } else { - s->title = stredup(text.c_str()); - } + s->title = text; InvalidateWindowClassesData(WC_STORY_BOOK, -1); if (StoryPage::GetNumItems() == 1) InvalidateWindowData(WC_MAIN_TOOLBAR, 0); @@ -259,7 +255,7 @@ std::tuple CmdCreateStoryPageElement(DoCommandF if (_current_company != OWNER_DEITY) return { CMD_ERROR, INVALID_STORY_PAGE_ELEMENT }; if (!StoryPage::IsValidID(page_id)) return { CMD_ERROR, INVALID_STORY_PAGE_ELEMENT }; - if (!VerifyElementContentParameters(page_id, type, tile, reference, text.c_str())) return { CMD_ERROR, INVALID_STORY_PAGE_ELEMENT }; + if (!VerifyElementContentParameters(page_id, type, tile, reference, text)) return { CMD_ERROR, INVALID_STORY_PAGE_ELEMENT }; if (flags & DC_EXEC) { @@ -272,7 +268,7 @@ std::tuple CmdCreateStoryPageElement(DoCommandF pe->sort_value = _story_page_element_next_sort_value; pe->type = type; pe->page = page_id; - UpdateElement(*pe, tile, reference, text.c_str()); + UpdateElement(*pe, tile, reference, text); InvalidateWindowClassesData(WC_STORY_BOOK, page_id); @@ -301,10 +297,10 @@ CommandCost CmdUpdateStoryPageElement(DoCommandFlag flags, TileIndex tile, Story StoryPageID page_id = pe->page; StoryPageElementType type = pe->type; - if (!VerifyElementContentParameters(page_id, type, tile, reference, text.c_str())) return CMD_ERROR; + if (!VerifyElementContentParameters(page_id, type, tile, reference, text)) return CMD_ERROR; if (flags & DC_EXEC) { - UpdateElement(*pe, tile, reference, text.c_str()); + UpdateElement(*pe, tile, reference, text); InvalidateWindowClassesData(WC_STORY_BOOK, pe->page); } @@ -325,12 +321,7 @@ CommandCost CmdSetStoryPageTitle(DoCommandFlag flags, StoryPageID page_id, const if (flags & DC_EXEC) { StoryPage *p = StoryPage::Get(page_id); - free(p->title); - if (text.empty()) { - p->title = nullptr; - } else { - p->title = stredup(text.c_str()); - } + p->title = text; InvalidateWindowClassesData(WC_STORY_BOOK, page_id); } diff --git a/src/story_base.h b/src/story_base.h index f63cf06e00..3f4a292c3d 100644 --- a/src/story_base.h +++ b/src/story_base.h @@ -147,7 +147,7 @@ struct StoryPageElement : StoryPageElementPool::PoolItem<&_story_page_element_po StoryPageElementType type; ///< Type of page element uint32 referenced_id; ///< Id of referenced object (location, goal etc.) - char *text; ///< Static content text of page element + std::string text; ///< Static content text of page element /** * We need an (empty) constructor so struct isn't zeroed (as C++ standard states) @@ -157,16 +157,16 @@ struct StoryPageElement : StoryPageElementPool::PoolItem<&_story_page_element_po /** * (Empty) destructor has to be defined else operator delete might be called with nullptr parameter */ - inline ~StoryPageElement() { free(this->text); } + inline ~StoryPageElement() { } }; /** Struct about stories, current and completed */ struct StoryPage : StoryPagePool::PoolItem<&_story_page_pool> { - uint32 sort_value; ///< A number that increases for every created story page. Used for sorting. The id of a story page is the pool index. + uint32 sort_value; ///< A number that increases for every created story page. Used for sorting. The id of a story page is the pool index. TimerGameCalendar::Date date; ///< Date when the page was created. - CompanyID company; ///< StoryPage is for a specific company; INVALID_COMPANY if it is global + CompanyID company; ///< StoryPage is for a specific company; INVALID_COMPANY if it is global - char *title; ///< Title of story page + std::string title; ///< Title of story page /** * We need an (empty) constructor so struct isn't zeroed (as C++ standard states) @@ -183,7 +183,6 @@ struct StoryPage : StoryPagePool::PoolItem<&_story_page_pool> { if (spe->page == this->index) delete spe; } } - free(this->title); } }; diff --git a/src/story_gui.cpp b/src/story_gui.cpp index 5635f8c18e..16dbe9a640 100644 --- a/src/story_gui.cpp +++ b/src/story_gui.cpp @@ -60,7 +60,7 @@ protected: GUIStoryPageList story_pages; ///< Sorted list of pages. GUIStoryPageElementList story_page_elements; ///< Sorted list of page elements that belong to the current page. StoryPageID selected_page_id; ///< Pool index of selected page. - char selected_generic_title[255]; ///< If the selected page doesn't have a custom title, this buffer is used to store a generic page title. + std::string selected_generic_title; ///< If the selected page doesn't have a custom title, this buffer is used to store a generic page title. StoryPageElementID active_button_id; ///< Which button element the player is currently using @@ -188,9 +188,9 @@ protected: { /* Generate generic title if selected page have no custom title. */ StoryPage *page = this->GetSelPage(); - if (page != nullptr && page->title == nullptr) { + if (page != nullptr && page->title.empty()) { SetDParam(0, GetSelPageNum() + 1); - GetString(selected_generic_title, STR_STORY_BOOK_GENERIC_PAGE_ITEM, lastof(selected_generic_title)); + selected_generic_title = GetString(STR_STORY_BOOK_GENERIC_PAGE_ITEM); } this->story_page_elements.ForceRebuild(); @@ -255,7 +255,7 @@ protected: for (const StoryPage *p : this->story_pages) { bool current_page = p->index == this->selected_page_id; DropDownListStringItem *item = nullptr; - if (p->title != nullptr) { + if (!p->title.empty()) { item = new DropDownListCharStringItem(p->title, p->index, current_page); } else { /* No custom title => use a generic page title with page number. */ @@ -295,7 +295,7 @@ protected: /* Title lines */ height += FONT_HEIGHT_NORMAL; // Date always use exactly one line. - SetDParamStr(0, page->title != nullptr ? page->title : this->selected_generic_title); + SetDParamStr(0, !page->title.empty() ? page->title : this->selected_generic_title); height += GetStringHeight(STR_STORY_BOOK_TITLE, max_width); return height; @@ -616,7 +616,7 @@ public: this->owner = (Owner)this->window_number; /* Initialize selected vars. */ - this->selected_generic_title[0] = '\0'; + this->selected_generic_title.clear(); this->selected_page_id = INVALID_STORY_PAGE; this->active_button_id = INVALID_STORY_PAGE_ELEMENT; @@ -655,7 +655,7 @@ public: switch (widget) { case WID_SB_SEL_PAGE: { StoryPage *page = this->GetSelPage(); - SetDParamStr(0, page != nullptr && page->title != nullptr ? page->title : this->selected_generic_title); + SetDParamStr(0, page != nullptr && !page->title.empty() ? page->title : this->selected_generic_title); break; } case WID_SB_CAPTION: @@ -713,7 +713,7 @@ public: y_offset += line_height; /* Title */ - SetDParamStr(0, page->title != nullptr ? page->title : this->selected_generic_title); + SetDParamStr(0, !page->title.empty() ? page->title : this->selected_generic_title); y_offset = DrawStringMultiLine(0, fr.right, y_offset, fr.bottom, STR_STORY_BOOK_TITLE, TC_BLACK, SA_TOP | SA_HOR_CENTER); /* Page elements */ @@ -773,7 +773,7 @@ public: for (size_t i = 0; i < this->story_pages.size(); i++) { const StoryPage *s = this->story_pages[i]; - if (s->title != nullptr) { + if (!s->title.empty()) { SetDParamStr(0, s->title); } else { SetDParamStr(0, this->selected_generic_title); @@ -877,7 +877,7 @@ public: /* Was the last page removed? */ if (this->story_pages.size() == 0) { - this->selected_generic_title[0] = '\0'; + this->selected_generic_title.clear(); } /* Verify page selection. */ From a931378c523a6baecd597dc3baa471ae73b05bfd Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sat, 29 Apr 2023 20:39:09 +0200 Subject: [PATCH 27/31] Codechange: use std::string instead of stredup/free for ScanProgressWindow --- src/newgrf_gui.cpp | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index e0430f4d28..e29092317b 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -2184,21 +2184,15 @@ static WindowDesc _scan_progress_desc( /** Window for showing the progress of NewGRF scanning. */ struct ScanProgressWindow : public Window { - char *last_name; ///< The name of the last 'seen' NewGRF. - int scanned; ///< The number of NewGRFs that we have seen. + std::string last_name; ///< The name of the last 'seen' NewGRF. + int scanned; ///< The number of NewGRFs that we have seen. /** Create the window. */ - ScanProgressWindow() : Window(&_scan_progress_desc), last_name(nullptr), scanned(0) + ScanProgressWindow() : Window(&_scan_progress_desc), scanned(0) { this->InitNested(1); } - /** Free the last name buffer. */ - ~ScanProgressWindow() - { - free(last_name); - } - void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override { switch (widget) { @@ -2241,7 +2235,7 @@ struct ScanProgressWindow : public Window { SetDParam(1, _settings_client.gui.last_newgrf_count); DrawString(r.left, r.right, r.top, STR_NEWGRF_SCAN_STATUS, TC_FROMSTRING, SA_HOR_CENTER); - DrawString(r.left, r.right, r.top + FONT_HEIGHT_NORMAL + WidgetDimensions::scaled.vsep_normal, this->last_name == nullptr ? "" : this->last_name, TC_BLACK, SA_HOR_CENTER); + DrawString(r.left, r.right, r.top + FONT_HEIGHT_NORMAL + WidgetDimensions::scaled.vsep_normal, this->last_name, TC_BLACK, SA_HOR_CENTER); break; } } @@ -2253,13 +2247,10 @@ struct ScanProgressWindow : public Window { */ void UpdateNewGRFScanStatus(uint num, const char *name) { - free(this->last_name); if (name == nullptr) { - char buf[256]; - GetString(buf, STR_NEWGRF_SCAN_ARCHIVES, lastof(buf)); - this->last_name = stredup(buf); + this->last_name = GetString(STR_NEWGRF_SCAN_ARCHIVES); } else { - this->last_name = stredup(name); + this->last_name = name; } this->scanned = num; if (num > _settings_client.gui.last_newgrf_count) _settings_client.gui.last_newgrf_count = num; From 8665404fe020469e9bddd8f0c49853a1edcd8aae Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sat, 29 Apr 2023 20:45:46 +0200 Subject: [PATCH 28/31] Codechange: use std::string instead of stredup for missing glyph error messages --- src/strings.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/strings.cpp b/src/strings.cpp index 9b24703fbf..0e885e7387 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -2218,8 +2218,8 @@ void CheckForMissingGlyphs(bool base_font, MissingGlyphSearcher *searcher) * future, so for safety we just Utf8 Encode it into the string, * which takes exactly three characters, so it replaces the "XXX" * with the colour marker. */ - static char *err_str = stredup("XXXThe current font is missing some of the characters used in the texts for this language. Using system fallback font instead."); - Utf8Encode(err_str, SCC_YELLOW); + static std::string err_str("XXXThe current font is missing some of the characters used in the texts for this language. Using system fallback font instead."); + Utf8Encode(err_str.data(), SCC_YELLOW); SetDParamStr(0, err_str); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_WARNING); } @@ -2239,8 +2239,8 @@ void CheckForMissingGlyphs(bool base_font, MissingGlyphSearcher *searcher) * properly we have to set the colour of the string, otherwise we end up with a lot of artifacts. * The colour 'character' might change in the future, so for safety we just Utf8 Encode it into * the string, which takes exactly three characters, so it replaces the "XXX" with the colour marker. */ - static char *err_str = stredup("XXXThe current font is missing some of the characters used in the texts for this language. Read the readme to see how to solve this."); - Utf8Encode(err_str, SCC_YELLOW); + static std::string err_str("XXXThe current font is missing some of the characters used in the texts for this language. Read the readme to see how to solve this."); + Utf8Encode(err_str.data(), SCC_YELLOW); SetDParamStr(0, err_str); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_WARNING); @@ -2267,8 +2267,8 @@ void CheckForMissingGlyphs(bool base_font, MissingGlyphSearcher *searcher) * the colour marker. */ if (_current_text_dir != TD_LTR) { - static char *err_str = stredup("XXXThis version of OpenTTD does not support right-to-left languages. Recompile with icu enabled."); - Utf8Encode(err_str, SCC_YELLOW); + static std::string err_str("XXXThis version of OpenTTD does not support right-to-left languages. Recompile with icu enabled."); + Utf8Encode(err_str.data(), SCC_YELLOW); SetDParamStr(0, err_str); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_ERROR); } From 1f3b7e2efde8cd9438fd7cb1f3075d3fcdb06911 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 30 Apr 2023 21:46:49 +0200 Subject: [PATCH 29/31] Codechange: use std::string instead of stredup for saveload error messages --- src/fios.h | 4 ++-- src/fios_gui.cpp | 5 ++--- src/openttd.cpp | 2 +- src/saveload/saveload.cpp | 12 +++++------- src/saveload/saveload_error.hpp | 6 +++--- 5 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/fios.h b/src/fios.h index 0d9b170541..d5e0b9ff7a 100644 --- a/src/fios.h +++ b/src/fios.h @@ -32,7 +32,7 @@ typedef SmallMap CompanyPropertiesMap; struct LoadCheckData { bool checkable; ///< True if the savegame could be checked by SL_LOAD_CHECK. (Old savegames are not checkable.) StringID error; ///< Error message from loading. INVALID_STRING_ID if no error. - char *error_data; ///< Data to pass to SetDParamStr when displaying #error. + std::string error_msg; ///< Data to pass to SetDParamStr when displaying #error. uint32 map_size_x, map_size_y; TimerGameCalendar::Date current_date; @@ -47,7 +47,7 @@ struct LoadCheckData { struct LoggedAction *gamelog_action; ///< Gamelog actions uint gamelog_actions; ///< Number of gamelog actions - LoadCheckData() : error_data(nullptr), grfconfig(nullptr), + LoadCheckData() : grfconfig(nullptr), grf_compatibility(GLC_NOT_FOUND), gamelog_action(nullptr), gamelog_actions(0) { this->Clear(); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 11d74b5e4c..c358e4a597 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -49,8 +49,7 @@ void LoadCheckData::Clear() { this->checkable = false; this->error = INVALID_STRING_ID; - free(this->error_data); - this->error_data = nullptr; + this->error_msg.clear(); this->map_size_x = this->map_size_y = 256; // Default for old savegames which do not store mapsize. this->current_date = 0; @@ -500,7 +499,7 @@ public: tr.top += FONT_HEIGHT_NORMAL; } else if (_load_check_data.error != INVALID_STRING_ID) { /* Incompatible / broken savegame */ - SetDParamStr(0, _load_check_data.error_data); + SetDParamStr(0, _load_check_data.error_msg); tr.top = DrawStringMultiLine(tr, _load_check_data.error, TC_RED); } else { /* Mapsize */ diff --git a/src/openttd.cpp b/src/openttd.cpp index e919e80b66..380dcb3b4e 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -623,7 +623,7 @@ int openttd_main(int argc, char *argv[]) if (_load_check_data.HasErrors()) { InitializeLanguagePacks(); // A language pack is needed for GetString() char buf[256]; - SetDParamStr(0, _load_check_data.error_data); + SetDParamStr(0, _load_check_data.error_msg); GetString(buf, _load_check_data.error, lastof(buf)); fprintf(stderr, "%s\n", buf); } diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 0632451a71..0dc1baa10d 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -208,7 +208,7 @@ struct SaveLoadParams { LoadFilter *lf; ///< Filter to read the savegame from. StringID error_str; ///< the translatable error message to show - char *extra_msg; ///< the error message + std::string extra_msg; ///< the error message bool saveinprogress; ///< Whether there is currently a save in progress. }; @@ -330,17 +330,15 @@ static void SlNullPointers() * @note This function does never return as it throws an exception to * break out of all the saveload code. */ -void NORETURN SlError(StringID string, const char *extra_msg) +void NORETURN SlError(StringID string, const std::string &extra_msg) { /* Distinguish between loading into _load_check_data vs. normal save/load. */ if (_sl.action == SLA_LOAD_CHECK) { _load_check_data.error = string; - free(_load_check_data.error_data); - _load_check_data.error_data = (extra_msg == nullptr) ? nullptr : stredup(extra_msg); + _load_check_data.error_msg = extra_msg; } else { _sl.error_str = string; - free(_sl.extra_msg); - _sl.extra_msg = (extra_msg == nullptr) ? nullptr : stredup(extra_msg); + _sl.extra_msg = extra_msg; } /* We have to nullptr all pointers here; we might be in a state where @@ -362,7 +360,7 @@ void NORETURN SlError(StringID string, const char *extra_msg) * @note This function does never return as it throws an exception to * break out of all the saveload code. */ -void NORETURN SlErrorCorrupt(const char *msg) +void NORETURN SlErrorCorrupt(const std::string &msg) { SlError(STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME, msg); } diff --git a/src/saveload/saveload_error.hpp b/src/saveload/saveload_error.hpp index 77025f5a33..5a42257daa 100644 --- a/src/saveload/saveload_error.hpp +++ b/src/saveload/saveload_error.hpp @@ -13,8 +13,8 @@ #include "../3rdparty/fmt/format.h" #include "../strings_type.h" -void NORETURN SlError(StringID string, const char *extra_msg = nullptr); -void NORETURN SlErrorCorrupt(const char *msg); +void NORETURN SlError(StringID string, const std::string &extra_msg = {}); +void NORETURN SlErrorCorrupt(const std::string &msg); /** * Issue an SlErrorCorrupt with a format string. @@ -28,7 +28,7 @@ void NORETURN SlErrorCorrupt(const char *msg); template static inline void NORETURN SlErrorCorruptFmt(const T &format, Args&&... fmt_args) { - SlErrorCorrupt(fmt::format(format, fmt_args...).c_str()); + SlErrorCorrupt(fmt::format(format, fmt_args...)); } #endif /* SAVELOAD_ERROR_HPP */ From 715234502c2632e88a35eb47f9ebfd803dd74273 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Mon, 1 May 2023 15:22:23 +0200 Subject: [PATCH 30/31] Fix: Typo in variable name. --- src/os/windows/string_uniscribe.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/os/windows/string_uniscribe.cpp b/src/os/windows/string_uniscribe.cpp index d4b122346a..a118b2ee7b 100644 --- a/src/os/windows/string_uniscribe.cpp +++ b/src/os/windows/string_uniscribe.cpp @@ -347,7 +347,7 @@ static std::vector UniscribeItemizeString(UniscribeParagraphLayoutF } /* If the text does not fit into the available width, find a suitable breaking point. */ - int remaing_offset = (last_run - 1)->len; + int remaining_offset = (last_run - 1)->len; if (cur_width > max_width) { std::vector log_attribs; @@ -390,9 +390,9 @@ static std::vector UniscribeItemizeString(UniscribeParagraphLayoutF num_chars -= run->len; if (num_chars <= 0) { - remaing_offset = num_chars + run->len + 1; + remaining_offset = num_chars + run->len + 1; last_run = run + 1; - assert(remaing_offset - 1 > 0); + assert(remaining_offset - 1 > 0); break; } } @@ -415,8 +415,8 @@ static std::vector UniscribeItemizeString(UniscribeParagraphLayoutF UniscribeRun run = *i_run; /* Partial run after line break (either start or end)? Reshape run to get the first/last glyphs right. */ - if (i_run == last_run - 1 && remaing_offset < (last_run - 1)->len) { - run.len = remaing_offset - 1; + if (i_run == last_run - 1 && remaining_offset < (last_run - 1)->len) { + run.len = remaining_offset - 1; if (!UniscribeShapeRun(this->text_buffer, run)) return nullptr; } @@ -432,9 +432,9 @@ static std::vector UniscribeItemizeString(UniscribeParagraphLayoutF cur_pos += run.total_advance; } - if (remaing_offset < (last_run - 1)->len) { + if (remaining_offset < (last_run - 1)->len) { /* We didn't use up all of the last run, store remainder for the next line. */ - this->cur_range_offset = remaing_offset - 1; + this->cur_range_offset = remaining_offset - 1; this->cur_range = last_run - 1; assert(this->cur_range->len > this->cur_range_offset); } else { From 908be59699b8662fd555a7b33c07aea561773c79 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Mon, 1 May 2023 15:32:59 +0200 Subject: [PATCH 31/31] Fix: [Win32] Wrong multi-line text layout due to incorrect whitespace handling. --- src/os/windows/string_uniscribe.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/os/windows/string_uniscribe.cpp b/src/os/windows/string_uniscribe.cpp index a118b2ee7b..f1a859aa10 100644 --- a/src/os/windows/string_uniscribe.cpp +++ b/src/os/windows/string_uniscribe.cpp @@ -348,6 +348,7 @@ static std::vector UniscribeItemizeString(UniscribeParagraphLayoutF /* If the text does not fit into the available width, find a suitable breaking point. */ int remaining_offset = (last_run - 1)->len; + int whitespace_count = 0; if (cur_width > max_width) { std::vector log_attribs; @@ -380,10 +381,10 @@ static std::vector UniscribeItemizeString(UniscribeParagraphLayoutF num_chars = last_cluster; } - /* Include whitespace characters after the breaking point. */ - while (num_chars < (int)log_attribs.size() && log_attribs[num_chars].fWhiteSpace) { - num_chars++; - } + /* Eat any whitespace characters before the breaking point. */ + while (num_chars - 1 > this->cur_range_offset && log_attribs[num_chars - 1].fWhiteSpace) num_chars--; + /* Count whitespace after the breaking point. */ + while (num_chars + whitespace_count < (int)log_attribs.size() && log_attribs[num_chars + whitespace_count].fWhiteSpace) whitespace_count++; /* Get last run that corresponds to the number of characters to show. */ for (std::vector::iterator run = start_run; run != last_run; run++) { @@ -432,9 +433,9 @@ static std::vector UniscribeItemizeString(UniscribeParagraphLayoutF cur_pos += run.total_advance; } - if (remaining_offset < (last_run - 1)->len) { + if (remaining_offset + whitespace_count < (last_run - 1)->len) { /* We didn't use up all of the last run, store remainder for the next line. */ - this->cur_range_offset = remaining_offset - 1; + this->cur_range_offset = remaining_offset + whitespace_count - 1; this->cur_range = last_run - 1; assert(this->cur_range->len > this->cur_range_offset); } else {