From 2687704afc028a5e165d0aa21c2074051ff67fc6 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Wed, 21 Jun 2023 06:35:06 +0200 Subject: [PATCH 01/58] Codechange: introduce new type and functions for StringParameter backups --- src/strings.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++ src/strings_func.h | 5 +++++ src/strings_type.h | 30 ++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) diff --git a/src/strings.cpp b/src/strings.cpp index e3abf74d5d..fe70915c1c 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -197,6 +197,56 @@ void CopyOutDParam(uint64 *dst, const char **strings, StringID string, int num) } } +/** + * Copy the parameters from the backup into the global string parameter array. + * @param backup The backup to copy from. + */ +void CopyInDParam(const span backup) +{ + for (size_t i = 0; i < backup.size(); i++) { + auto &value = backup[i]; + if (value.string.has_value()) { + _global_string_params.SetParam(i, value.string.value()); + } else { + _global_string_params.SetParam(i, value.data); + } + } +} + +/** + * Copy \a num string parameters from the global string parameter array to the \a backup. + * @param backup The backup to write to. + * @param num Number of string parameters to copy. + */ +void CopyOutDParam(std::vector &backup, size_t num) +{ + backup.resize(num); + for (size_t i = 0; i < backup.size(); i++) { + backup[i] = _global_string_params.GetParam(i); + } +} + +/** + * Copy \a num string parameters from the global string parameter array to the \a backup. + * @param backup The backup to write to. + * @param num Number of string parameters to copy. + * @param string The string used to determine where raw strings are and where there are no raw strings. + */ +void CopyOutDParam(std::vector &backup, size_t num, StringID string) +{ + /* Just get the string to extract the type information. */ + GetString(string); + + backup.resize(num); + for (size_t i = 0; i < backup.size(); i++) { + if (_global_string_params.GetTypeAtOffset(i) == SCC_RAW_STRING_POINTER) { + backup[i] = (const char *)(size_t)_global_string_params.GetParam(i); + } else { + backup[i] = _global_string_params.GetParam(i); + } + } +} + static void StationGetSpecialString(StringBuilder &builder, StationFacility x); static void GetSpecialTownNameString(StringBuilder &builder, int ind, uint32 seed); static void GetSpecialNameString(StringBuilder &builder, int ind, StringParameters &args); diff --git a/src/strings_func.h b/src/strings_func.h index aa726e2435..5e407f9a40 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -14,6 +14,7 @@ #include "string_type.h" #include "gfx_type.h" #include "core/bitmath_func.hpp" +#include "core/span_type.hpp" #include "vehicle_type.h" /** @@ -89,6 +90,10 @@ void CopyInDParam(const uint64 *src, int num); void CopyOutDParam(uint64 *dst, int num); void CopyOutDParam(uint64 *dst, const char **strings, StringID string, int num); +void CopyInDParam(const span backup); +void CopyOutDParam(std::vector &backup, size_t num); +void CopyOutDParam(std::vector &backup, size_t num, StringID string); + uint64_t GetDParam(size_t n); extern TextDirection _current_text_dir; ///< Text direction of the currently selected language diff --git a/src/strings_type.h b/src/strings_type.h index 7ad0c71265..53b2abd48b 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -88,4 +88,34 @@ enum SpecialStrings { SPECSTR_PRESIDENT_NAME = 0x70E7, }; +/** Data that is to be stored when backing up StringParameters. */ +struct StringParameterBackup { + uint64_t data; ///< The data field; valid *when* string has no value. + std::optional string; ///< The string value. + + /** + * Assign the numeric data with the given value, while clearing the stored string. + * @param data The new value of the data field. + * @return This object. + */ + StringParameterBackup &operator=(uint64_t data) + { + this->string.reset(); + this->data = data; + return *this; + } + + /** + * Assign a copy of the given string to the string field, while clearing the data field. + * @param string The new value of the string. + * @return This object. + */ + StringParameterBackup &operator=(const std::string_view string) + { + this->data = 0; + this->string.emplace(string); + return *this; + } +}; + #endif /* STRINGS_TYPE_H */ From f4a30329852273d3411354f172b67dc283754245 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Wed, 21 Jun 2023 06:57:10 +0200 Subject: [PATCH 02/58] Codechange: move tooltip and query window over to the new StringParameterBackup type --- src/misc_gui.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 71994c4e14..0880b1c839 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -662,17 +662,14 @@ static WindowDesc _tool_tips_desc( struct TooltipsWindow : public Window { StringID string_id; ///< String to display as tooltip. - byte paramcount; ///< Number of string parameters in #string_id. - uint64 params[8]; ///< The string parameters. + std::vector params; ///< The string parameters. TooltipCloseCondition close_cond; ///< Condition for closing the window. TooltipsWindow(Window *parent, StringID str, uint paramcount, TooltipCloseCondition close_tooltip) : Window(&_tool_tips_desc) { this->parent = parent; this->string_id = str; - assert(paramcount <= lengthof(this->params)); - this->paramcount = paramcount; - if (paramcount > 0) CopyOutDParam(this->params, this->paramcount); + CopyOutDParam(this->params, paramcount); this->close_cond = close_tooltip; this->InitNested(); @@ -703,7 +700,7 @@ struct TooltipsWindow : public Window void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override { /* There is only one widget. */ - for (uint i = 0; i != this->paramcount; i++) SetDParam(i, this->params[i]); + CopyInDParam(this->params); size->width = std::min(GetStringBoundingBox(this->string_id).width, ScaleGUITrad(194)); size->height = GetStringHeight(this->string_id, size->width); @@ -719,9 +716,7 @@ struct TooltipsWindow : public Window GfxFillRect(r, PC_BLACK); GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), PC_LIGHT_YELLOW); - for (uint arg = 0; arg < this->paramcount; arg++) { - SetDParam(arg, this->params[arg]); - } + CopyInDParam(this->params); DrawStringMultiLine(r.Shrink(WidgetDimensions::scaled.framerect).Shrink(WidgetDimensions::scaled.fullbevel), this->string_id, TC_BLACK, SA_CENTER); } @@ -1098,14 +1093,14 @@ void ShowQueryString(StringID str, StringID caption, uint maxsize, Window *paren */ struct QueryWindow : public Window { QueryCallbackProc *proc; ///< callback function executed on closing of popup. Window* points to parent, bool is true if 'yes' clicked, false otherwise - uint64 params[10]; ///< local copy of #_global_string_params + std::vector params; ///< local copy of #_global_string_params StringID message; ///< message shown for query window QueryWindow(WindowDesc *desc, StringID caption, StringID message, Window *parent, QueryCallbackProc *callback) : Window(desc) { /* Create a backup of the variadic arguments to strings because it will be * overridden pretty often. We will copy these back for drawing */ - CopyOutDParam(this->params, lengthof(this->params)); + CopyOutDParam(this->params, 10); this->message = message; this->proc = callback; this->parent = parent; @@ -1134,7 +1129,7 @@ struct QueryWindow : public Window { switch (widget) { case WID_Q_CAPTION: case WID_Q_TEXT: - CopyInDParam(this->params, lengthof(this->params)); + CopyInDParam(this->params); break; } } From 0943402babe3ab824d4ba156899553a4ea9ed846 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Wed, 21 Jun 2023 06:57:24 +0200 Subject: [PATCH 03/58] Codechange: move news over to the new StringParameterBackup type --- src/news_gui.cpp | 16 ++++++++-------- src/news_type.h | 2 +- src/statusbar_gui.cpp | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/news_gui.cpp b/src/news_gui.cpp index ce4da6ba96..a030672533 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -280,7 +280,7 @@ struct NewsWindow : Window { this->CreateNestedTree(); /* For company news with a face we have a separate headline in param[0] */ - if (desc == &_company_news_desc) this->GetWidget(WID_N_TITLE)->widget_data = this->ni->params[0]; + if (desc == &_company_news_desc) this->GetWidget(WID_N_TITLE)->widget_data = this->ni->params[0].data; NWidgetCore *nwid = this->GetWidget(WID_N_SHOW_GROUP); if (ni->reftype1 == NR_VEHICLE && nwid != nullptr) { @@ -361,7 +361,7 @@ struct NewsWindow : Window { break; case WID_N_MESSAGE: - CopyInDParam(this->ni->params, lengthof(this->ni->params)); + CopyInDParam(this->ni->params); str = this->ni->string_id; break; @@ -429,7 +429,7 @@ struct NewsWindow : Window { break; case WID_N_MESSAGE: - CopyInDParam(this->ni->params, lengthof(this->ni->params)); + CopyInDParam(this->ni->params); DrawStringMultiLine(r.left, r.right, r.top, r.bottom, this->ni->string_id, TC_FROMSTRING, SA_CENTER); break; @@ -582,8 +582,8 @@ private: StringID GetCompanyMessageString() const { /* Company news with a face have a separate headline, so the normal message is shifted by two params */ - CopyInDParam(this->ni->params + 2, lengthof(this->ni->params) - 2); - return this->ni->params[1]; + CopyInDParam(span(this->ni->params.data() + 2, this->ni->params.size() - 2)); + return this->ni->params[1].data; } StringID GetNewVehicleMessageString(int widget) const @@ -804,7 +804,7 @@ NewsItem::NewsItem(StringID string_id, NewsType type, NewsFlag flags, NewsRefere { /* show this news message in colour? */ if (TimerGameCalendar::year >= _settings_client.gui.coloured_news_year) this->flags |= NF_INCOLOUR; - CopyOutDParam(this->params, lengthof(this->params)); + CopyOutDParam(this->params, 10); } /** @@ -998,7 +998,7 @@ void ChangeVehicleNews(VehicleID from_index, VehicleID to_index) for (NewsItem *ni = _oldest_news; ni != nullptr; ni = ni->next) { if (ni->reftype1 == NR_VEHICLE && ni->ref1 == from_index) ni->ref1 = to_index; if (ni->reftype2 == NR_VEHICLE && ni->ref2 == from_index) ni->ref2 = to_index; - if (ni->flags & NF_VEHICLE_PARAM0 && ni->params[0] == from_index) ni->params[0] = to_index; + if (ni->flags & NF_VEHICLE_PARAM0 && ni->params[0].data == from_index) ni->params[0] = to_index; } } @@ -1099,7 +1099,7 @@ void ShowLastNewsMessage() */ static void DrawNewsString(uint left, uint right, int y, TextColour colour, const NewsItem *ni) { - CopyInDParam(ni->params, lengthof(ni->params)); + CopyInDParam(ni->params); /* Get the string, replaces newlines with spaces and remove control codes from the string. */ std::string message = StrMakeValid(GetString(ni->string_id), SVS_REPLACE_TAB_CR_NL_WITH_SPACE); diff --git a/src/news_type.h b/src/news_type.h index c1e4586004..c4b6076b24 100644 --- a/src/news_type.h +++ b/src/news_type.h @@ -138,7 +138,7 @@ struct NewsItem { std::unique_ptr data; ///< Custom data for the news item that will be deallocated (deleted) when the news item has reached its end. - uint64 params[10]; ///< Parameters for string resolving. + std::vector params; ///< Parameters for string resolving. NewsItem(StringID string_id, NewsType type, NewsFlag flags, NewsReferenceType reftype1, uint32 ref1, NewsReferenceType reftype2, uint32 ref2, const NewsAllocatedData *data); }; diff --git a/src/statusbar_gui.cpp b/src/statusbar_gui.cpp index ce8acf86ef..0a56a0c816 100644 --- a/src/statusbar_gui.cpp +++ b/src/statusbar_gui.cpp @@ -39,7 +39,7 @@ static bool DrawScrollingStatusText(const NewsItem *ni, int scroll_pos, int left, int right, int top, int bottom) { - CopyInDParam(ni->params, lengthof(ni->params)); + CopyInDParam(ni->params); /* Replace newlines and the likes with spaces. */ std::string message = StrMakeValid(GetString(ni->string_id), SVS_REPLACE_TAB_CR_NL_WITH_SPACE); From 6313b8a4cba69f565c87215521649a313cfa3e3c Mon Sep 17 00:00:00 2001 From: Rubidium Date: Wed, 21 Jun 2023 07:03:20 +0200 Subject: [PATCH 04/58] Codechange: move errors over to the new StringParameterBackup type --- src/error.h | 4 +--- src/error_gui.cpp | 42 +++++++++++------------------------------- 2 files changed, 12 insertions(+), 34 deletions(-) diff --git a/src/error.h b/src/error.h index 88ec12e9f6..a20be8883f 100644 --- a/src/error.h +++ b/src/error.h @@ -31,8 +31,7 @@ enum WarningLevel { class ErrorMessageData { protected: bool is_critical; ///< Whether the error message is critical. - uint64 decode_params[20]; ///< Parameters of the message strings. - const char *strings[20]; ///< Copies of raw strings that were used. + std::vector params; ///< Backup of parameters of the message strings. const GRFFile *textref_stack_grffile; ///< NewGRF that filled the #TextRefStack for the error message. uint textref_stack_size; ///< Number of uint32 values to put on the #TextRefStack for the error message. uint32 textref_stack[16]; ///< Values to put on the #TextRefStack for the error message. @@ -44,7 +43,6 @@ protected: public: ErrorMessageData(const ErrorMessageData &data); - ~ErrorMessageData(); ErrorMessageData(StringID summary_msg, StringID detailed_msg, bool is_critical = false, int x = 0, int y = 0, const GRFFile *textref_stack_grffile = nullptr, uint textref_stack_size = 0, const uint32 *textref_stack = nullptr, StringID extra_msg = INVALID_STRING_ID); /* Remove the copy assignment, as the default implementation will not do the right thing. */ diff --git a/src/error_gui.cpp b/src/error_gui.cpp index e73da56fdd..07873e2114 100644 --- a/src/error_gui.cpp +++ b/src/error_gui.cpp @@ -74,24 +74,10 @@ static WindowDesc _errmsg_face_desc( * @param data The data to copy. */ ErrorMessageData::ErrorMessageData(const ErrorMessageData &data) : - is_critical(data.is_critical), textref_stack_grffile(data.textref_stack_grffile), textref_stack_size(data.textref_stack_size), + is_critical(data.is_critical), params(data.params), textref_stack_grffile(data.textref_stack_grffile), textref_stack_size(data.textref_stack_size), summary_msg(data.summary_msg), detailed_msg(data.detailed_msg), extra_msg(data.extra_msg), position(data.position), face(data.face) { memcpy(this->textref_stack, data.textref_stack, sizeof(this->textref_stack)); - memcpy(this->decode_params, data.decode_params, sizeof(this->decode_params)); - memcpy(this->strings, data.strings, sizeof(this->strings)); - for (size_t i = 0; i < lengthof(this->strings); i++) { - if (this->strings[i] != nullptr) { - this->strings[i] = stredup(this->strings[i]); - this->decode_params[i] = (size_t)this->strings[i]; - } - } -} - -/** Free all the strings. */ -ErrorMessageData::~ErrorMessageData() -{ - for (size_t i = 0; i < lengthof(this->strings); i++) free(this->strings[i]); } /** @@ -118,9 +104,6 @@ ErrorMessageData::ErrorMessageData(StringID summary_msg, StringID detailed_msg, this->position.x = x; this->position.y = y; - memset(this->decode_params, 0, sizeof(this->decode_params)); - memset(this->strings, 0, sizeof(this->strings)); - if (textref_stack_size > 0) MemCpyT(this->textref_stack, textref_stack, textref_stack_size); assert(summary_msg != INVALID_STRING_ID); @@ -137,14 +120,9 @@ void ErrorMessageData::CopyOutDParams() if (company < MAX_COMPANIES) face = company; } - /* Reset parameters */ - for (size_t i = 0; i < lengthof(this->strings); i++) free(this->strings[i]); - memset(this->decode_params, 0, sizeof(this->decode_params)); - memset(this->strings, 0, sizeof(this->strings)); - /* Get parameters using type information */ if (this->textref_stack_size > 0) StartTextRefStackUsage(this->textref_stack_grffile, this->textref_stack_size, this->textref_stack); - CopyOutDParam(this->decode_params, this->strings, this->detailed_msg == INVALID_STRING_ID ? this->summary_msg : this->detailed_msg, lengthof(this->decode_params)); + CopyOutDParam(this->params, 20, this->detailed_msg == INVALID_STRING_ID ? this->summary_msg : this->detailed_msg); if (this->textref_stack_size > 0) StopTextRefStackUsage(); } @@ -155,7 +133,8 @@ void ErrorMessageData::CopyOutDParams() */ void ErrorMessageData::SetDParam(uint n, uint64 v) { - this->decode_params[n] = v; + if (n >= this->params.size()) this->params.resize(n + 1); + this->params[n] = v; } /** @@ -165,8 +144,8 @@ void ErrorMessageData::SetDParam(uint n, uint64 v) */ void ErrorMessageData::SetDParamStr(uint n, const char *str) { - free(this->strings[n]); - this->strings[n] = stredup(str); + if (n >= this->params.size()) this->params.resize(n + 1); + this->params[n] = str; } /** @@ -176,7 +155,8 @@ void ErrorMessageData::SetDParamStr(uint n, const char *str) */ void ErrorMessageData::SetDParamStr(uint n, const std::string &str) { - this->SetDParamStr(n, str.c_str()); + if (n >= this->params.size()) this->params.resize(n + 1); + this->params[n] = str; } /** The actual queue with errors. */ @@ -212,7 +192,7 @@ public: { switch (widget) { case WID_EM_MESSAGE: { - CopyInDParam(this->decode_params, lengthof(this->decode_params)); + CopyInDParam(this->params); if (this->textref_stack_size > 0) StartTextRefStackUsage(this->textref_stack_grffile, this->textref_stack_size, this->textref_stack); this->height_summary = GetStringHeight(this->summary_msg, size->width); @@ -281,7 +261,7 @@ public: void SetStringParameters(int widget) const override { - if (widget == WID_EM_CAPTION) CopyInDParam(this->decode_params, lengthof(this->decode_params)); + if (widget == WID_EM_CAPTION) CopyInDParam(this->params); } void DrawWidget(const Rect &r, int widget) const override @@ -294,7 +274,7 @@ public: } case WID_EM_MESSAGE: - CopyInDParam(this->decode_params, lengthof(this->decode_params)); + CopyInDParam(this->params); if (this->textref_stack_size > 0) StartTextRefStackUsage(this->textref_stack_grffile, this->textref_stack_size, this->textref_stack); if (this->detailed_msg == INVALID_STRING_ID) { From 05ef3f09989d30164daeca57c1e263fef3e98e9a Mon Sep 17 00:00:00 2001 From: Rubidium Date: Wed, 21 Jun 2023 07:05:15 +0200 Subject: [PATCH 05/58] Cleanup: remove old backup/restore of string parameters --- src/strings.cpp | 44 -------------------------------------------- src/strings_func.h | 4 ---- 2 files changed, 48 deletions(-) diff --git a/src/strings.cpp b/src/strings.cpp index fe70915c1c..69c1791f30 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -153,50 +153,6 @@ void SetDParamMaxDigits(size_t n, uint count, FontSize size) SetDParam(n, val); } -/** - * Copy \a num string parameters from array \a src into the global string parameter array. - * @param src Source array of string parameters. - * @param num Number of string parameters to copy. - */ -void CopyInDParam(const uint64 *src, int num) -{ - for (int i = 0; i < num; i++) SetDParam(i, src[i]); -} - -/** - * Copy \a num string parameters from the global string parameter array to the \a dst array. - * @param dst Destination array of string parameters. - * @param num Number of string parameters to copy. - */ -void CopyOutDParam(uint64 *dst, int num) -{ - for (int i = 0; i < num; i++) dst[i] = GetDParam(i); -} - -/** - * Copy \a num string parameters from the global string parameter array to the \a dst array. - * Furthermore clone raw string parameters into \a strings and amend the data in \a dst. - * @param dst Destination array of string parameters. - * @param strings Destination array for clone of the raw strings. Must be of same length as dst. Deallocation left to the caller. - * @param string The string used to determine where raw strings are and where there are no raw strings. - * @param num Number of string parameters to copy. - */ -void CopyOutDParam(uint64 *dst, const char **strings, StringID string, int num) -{ - /* Just get the string to extract the type information. */ - GetString(string); - - for (int i = 0; i < num; i++) { - if (_global_string_params.GetTypeAtOffset(i) == SCC_RAW_STRING_POINTER) { - strings[i] = stredup((const char *)(size_t)_global_string_params.GetParam(i)); - dst[i] = (size_t)strings[i]; - } else { - strings[i] = nullptr; - dst[i] = _global_string_params.GetParam(i); - } - } -} - /** * Copy the parameters from the backup into the global string parameter array. * @param backup The backup to copy from. diff --git a/src/strings_func.h b/src/strings_func.h index 5e407f9a40..e05085ba7b 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -86,10 +86,6 @@ void SetDParamStr(size_t n, const char *str); void SetDParamStr(size_t n, const std::string &str); void SetDParamStr(size_t n, std::string &&str) = delete; // block passing temporaries to SetDParamStr -void CopyInDParam(const uint64 *src, int num); -void CopyOutDParam(uint64 *dst, int num); -void CopyOutDParam(uint64 *dst, const char **strings, StringID string, int num); - void CopyInDParam(const span backup); void CopyOutDParam(std::vector &backup, size_t num); void CopyOutDParam(std::vector &backup, size_t num, StringID string); From 7ed90a859f3a4831fd047750f7cd142419b99022 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 25 Jun 2023 06:26:37 +0200 Subject: [PATCH 06/58] Codechange: function to check whether string parameters have changed since the backup --- src/strings.cpp | 18 ++++++++++++++++++ src/strings_func.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/strings.cpp b/src/strings.cpp index 69c1791f30..51f5eb2db2 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -203,6 +203,24 @@ void CopyOutDParam(std::vector &backup, size_t num, Strin } } +/** + * Checks whether the global string parameters have changed compared to the given backup. + * @param backup The backup to check against. + * @return True when the parameters have changed, otherwise false. + */ +bool HaveDParamChanged(const std::vector &backup) +{ + bool changed = false; + for (size_t i = 0; !changed && i < backup.size(); i++) { + if (backup[i].string.has_value()) { + changed = backup[i].string.value() != (const char *)(size_t)_global_string_params.GetParam(i); + } else { + changed = backup[i].data != _global_string_params.GetParam(i); + } + } + return changed; +} + static void StationGetSpecialString(StringBuilder &builder, StationFacility x); static void GetSpecialTownNameString(StringBuilder &builder, int ind, uint32 seed); static void GetSpecialNameString(StringBuilder &builder, int ind, StringParameters &args); diff --git a/src/strings_func.h b/src/strings_func.h index e05085ba7b..3518725c68 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -89,6 +89,7 @@ void SetDParamStr(size_t n, std::string &&str) = delete; // block passing tempor void CopyInDParam(const span backup); void CopyOutDParam(std::vector &backup, size_t num); void CopyOutDParam(std::vector &backup, size_t num, StringID string); +bool HaveDParamChanged(const std::vector &backup); uint64_t GetDParam(size_t n); From 8b7c34d7d4ae76424011133c84cb402335c546af Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 25 Jun 2023 06:27:33 +0200 Subject: [PATCH 07/58] Codechange: use string parameter backps for the text effects --- src/texteff.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/texteff.cpp b/src/texteff.cpp index e974160974..ae1e796880 100644 --- a/src/texteff.cpp +++ b/src/texteff.cpp @@ -21,8 +21,7 @@ /** Container for all information about a text effect */ struct TextEffect : public ViewportSign { - uint64 params_1; ///< DParam parameter - uint64 params_2; ///< second DParam parameter + std::vector params; ///< Backup of string parameters StringID string_id; ///< String to draw for the text effect, if INVALID_STRING_ID then it's not valid uint8 duration; ///< How long the text effect should stay, in ticks (applies only when mode == TE_RISING) TextEffectMode mode; ///< Type of text effect @@ -54,8 +53,7 @@ TextEffectID AddTextEffect(StringID msg, int center, int y, uint8 duration, Text /* Start defining this object */ te.string_id = msg; te.duration = duration; - te.params_1 = GetDParam(0); - te.params_2 = GetDParam(1); + CopyOutDParam(te.params, 2); te.mode = mode; /* Make sure we only dirty the new area */ @@ -69,10 +67,9 @@ void UpdateTextEffect(TextEffectID te_id, StringID msg) { /* Update details */ TextEffect *te = _text_effects.data() + te_id; - if (msg == te->string_id && GetDParam(0) == te->params_1) return; + if (msg == te->string_id && !HaveDParamChanged(te->params)) return; te->string_id = msg; - te->params_1 = GetDParam(0); - te->params_2 = GetDParam(1); + CopyOutDParam(te->params, 2); te->UpdatePosition(te->center, te->top, te->string_id, te->string_id - 1); } @@ -81,8 +78,7 @@ void UpdateAllTextEffectVirtCoords() { for (auto &te : _text_effects) { if (te.string_id == INVALID_STRING_ID) continue; - SetDParam(0, te.params_1); - SetDParam(1, te.params_2); + CopyInDParam(te.params); te.UpdatePosition(te.center, te.top, te.string_id, te.string_id - 1); } } @@ -126,8 +122,7 @@ void DrawTextEffects(DrawPixelInfo *dpi) for (TextEffect &te : _text_effects) { if (te.string_id == INVALID_STRING_ID) continue; if (te.mode == TE_RISING || (_settings_client.gui.loading_indicators && !IsTransparencySet(TO_LOADING))) { - SetDParam(0, te.params_1); - SetDParam(1, te.params_2); + CopyInDParam(te.params); ViewportAddString(dpi, ZOOM_LVL_OUT_8X, &te, te.string_id, te.string_id - 1, STR_NULL); } } From 4654b2b0aae35bf870e943d4a9be4a572d672f99 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 22 Jun 2023 18:47:32 +0200 Subject: [PATCH 08/58] Codechange: separate integer and string usage in StringParameters --- src/strings.cpp | 21 ++++++++------------- src/strings_internal.h | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/strings.cpp b/src/strings.cpp index 51f5eb2db2..c4e095cf72 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -178,7 +178,12 @@ void CopyOutDParam(std::vector &backup, size_t num) { backup.resize(num); for (size_t i = 0; i < backup.size(); i++) { - backup[i] = _global_string_params.GetParam(i); + const char *str = _global_string_params.GetParamStr(i); + if (str != nullptr) { + backup[i] = str; + } else { + backup[i] = _global_string_params.GetParam(i); + } } } @@ -190,17 +195,7 @@ void CopyOutDParam(std::vector &backup, size_t num) */ void CopyOutDParam(std::vector &backup, size_t num, StringID string) { - /* Just get the string to extract the type information. */ - GetString(string); - - backup.resize(num); - for (size_t i = 0; i < backup.size(); i++) { - if (_global_string_params.GetTypeAtOffset(i) == SCC_RAW_STRING_POINTER) { - backup[i] = (const char *)(size_t)_global_string_params.GetParam(i); - } else { - backup[i] = _global_string_params.GetParam(i); - } - } + CopyOutDParam(backup, num); } /** @@ -1124,7 +1119,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara break; case SCC_RAW_STRING_POINTER: { // {RAW_STRING} - const char *raw_string = (const char *)(size_t)args.GetNextParameter(); + const char *raw_string = args.GetNextParameterString(); /* raw_string can be(come) nullptr when the parameter is out of range and 0 is returned instead. */ if (raw_string == nullptr || (game_script && std::find(_game_script_raw_strings.begin(), _game_script_raw_strings.end(), raw_string) == _game_script_raw_strings.end())) { diff --git a/src/strings_internal.h b/src/strings_internal.h index e214a3c1a1..3759c9bfab 100644 --- a/src/strings_internal.h +++ b/src/strings_internal.h @@ -17,6 +17,7 @@ /** The data required to format and validate a single parameter of a string. */ struct StringParameter { uint64_t data; ///< The data of the parameter. + const char *string_view; ///< The string value, if it has any. WChar type; ///< The #StringControlCode to interpret this data with when it's the first parameter, otherwise '\0'. }; @@ -92,6 +93,18 @@ public: return static_cast(ptr == nullptr ? 0 : ptr->data); } + /** + * Get the next string parameter from our parameters. + * This updates the offset, so the next time this is called the next parameter + * will be read. + * @return The next parameter's value. + */ + const char *GetNextParameterString() + { + auto ptr = GetNextParameterPointer(); + return ptr == nullptr ? nullptr : ptr->string_view; + } + /** * Get a new instance of StringParameters that is a "range" into the * remaining existing parameters. Upon destruction the offset in the parent @@ -134,17 +147,36 @@ public: { assert(n < this->parameters.size()); this->parameters[n].data = v; + this->parameters[n].string_view = nullptr; + } + + void SetParam(size_t n, const char *str) + { + assert(n < this->parameters.size()); + this->parameters[n].data = 0; + this->parameters[n].string_view = str; } - void SetParam(size_t n, const char *str) { this->SetParam(n, (uint64_t)(size_t)str); } void SetParam(size_t n, const std::string &str) { this->SetParam(n, str.c_str()); } void SetParam(size_t n, std::string &&str) = delete; // block passing temporaries to SetDParam uint64 GetParam(size_t n) const { assert(n < this->parameters.size()); + assert(this->parameters[n].string_view == nullptr); return this->parameters[n].data; } + + /** + * Get the stored string of the parameter, or \c nullptr when there is none. + * @param n The index into the parameters. + * @return The stored string. + */ + const char *GetParamStr(size_t n) const + { + assert(n < this->parameters.size()); + return this->parameters[n].string_view; + } }; /** From b2edf82b69d4672f26a8747a3e1dc42c2d3d285c Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 22 Jun 2023 18:49:32 +0200 Subject: [PATCH 09/58] Cleanup: remove unneeded CopyOutDParam version with StringID --- src/error_gui.cpp | 2 +- src/strings.cpp | 11 ----------- src/strings_func.h | 1 - 3 files changed, 1 insertion(+), 13 deletions(-) diff --git a/src/error_gui.cpp b/src/error_gui.cpp index 07873e2114..39809797a0 100644 --- a/src/error_gui.cpp +++ b/src/error_gui.cpp @@ -122,7 +122,7 @@ void ErrorMessageData::CopyOutDParams() /* Get parameters using type information */ if (this->textref_stack_size > 0) StartTextRefStackUsage(this->textref_stack_grffile, this->textref_stack_size, this->textref_stack); - CopyOutDParam(this->params, 20, this->detailed_msg == INVALID_STRING_ID ? this->summary_msg : this->detailed_msg); + CopyOutDParam(this->params, 20); if (this->textref_stack_size > 0) StopTextRefStackUsage(); } diff --git a/src/strings.cpp b/src/strings.cpp index c4e095cf72..1e243b42da 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -187,17 +187,6 @@ void CopyOutDParam(std::vector &backup, size_t num) } } -/** - * Copy \a num string parameters from the global string parameter array to the \a backup. - * @param backup The backup to write to. - * @param num Number of string parameters to copy. - * @param string The string used to determine where raw strings are and where there are no raw strings. - */ -void CopyOutDParam(std::vector &backup, size_t num, StringID string) -{ - CopyOutDParam(backup, num); -} - /** * Checks whether the global string parameters have changed compared to the given backup. * @param backup The backup to check against. diff --git a/src/strings_func.h b/src/strings_func.h index 3518725c68..afabbe33ea 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -88,7 +88,6 @@ void SetDParamStr(size_t n, std::string &&str) = delete; // block passing tempor void CopyInDParam(const span backup); void CopyOutDParam(std::vector &backup, size_t num); -void CopyOutDParam(std::vector &backup, size_t num, StringID string); bool HaveDParamChanged(const std::vector &backup); uint64_t GetDParam(size_t n); From 78f5d58dc64712be97cf50b9b94e7893b5599d34 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Mon, 3 Jul 2023 16:22:15 +0200 Subject: [PATCH 10/58] Codechange: use std::string without const as return Otherwise some compilers, e.g. MSVC, do not pick up that these are temporaries and as such it will pass the temporaries to `const std::string &` instead of the wanted `std::string &&` --- src/script/api/script_goal.cpp | 6 +++--- src/script/api/script_league.cpp | 14 +++++++------- src/script/api/script_news.cpp | 2 +- src/script/api/script_text.cpp | 2 +- src/script/api/script_text.hpp | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/script/api/script_goal.cpp b/src/script/api/script_goal.cpp index 4430326101..da19ba464c 100644 --- a/src/script/api/script_goal.cpp +++ b/src/script/api/script_goal.cpp @@ -48,7 +48,7 @@ EnforceDeityMode(GOAL_INVALID); EnforcePrecondition(GOAL_INVALID, goal != nullptr); - const std::string &text = goal->GetEncodedText(); + std::string text = goal->GetEncodedText(); EnforcePreconditionEncodedText(GOAL_INVALID, text); EnforcePrecondition(GOAL_INVALID, company == ScriptCompany::COMPANY_INVALID || ScriptCompany::ResolveCompanyID(company) != ScriptCompany::COMPANY_INVALID); EnforcePrecondition(GOAL_INVALID, IsValidGoalDestination(company, type, destination)); @@ -84,7 +84,7 @@ EnforcePrecondition(false, IsValidGoal(goal_id)); EnforceDeityMode(false); EnforcePrecondition(false, goal != nullptr); - const std::string &text = goal->GetEncodedText(); + std::string text = goal->GetEncodedText(); EnforcePreconditionEncodedText(false, text); return ScriptObject::Command::Do(goal_id, text); @@ -123,7 +123,7 @@ EnforceDeityMode(false); EnforcePrecondition(false, question != nullptr); - const std::string &text = question->GetEncodedText(); + std::string text = question->GetEncodedText(); EnforcePreconditionEncodedText(false, text); uint min_buttons = (type == QT_QUESTION ? 1 : 0); EnforcePrecondition(false, CountBits(buttons) >= min_buttons && CountBits(buttons) <= 3); diff --git a/src/script/api/script_league.cpp b/src/script/api/script_league.cpp index 905f8b40ea..28a4e8e674 100644 --- a/src/script/api/script_league.cpp +++ b/src/script/api/script_league.cpp @@ -32,11 +32,11 @@ EnforceDeityMode(LEAGUE_TABLE_INVALID); EnforcePrecondition(LEAGUE_TABLE_INVALID, title != nullptr); - const std::string &encoded_title = title->GetEncodedText(); + std::string encoded_title = title->GetEncodedText(); EnforcePreconditionEncodedText(LEAGUE_TABLE_INVALID, encoded_title); - const std::string &encoded_header = (header != nullptr ? header->GetEncodedText() : std::string{}); - const std::string &encoded_footer = (footer != nullptr ? footer->GetEncodedText() : std::string{}); + std::string encoded_header = (header != nullptr ? header->GetEncodedText() : std::string{}); + std::string encoded_footer = (footer != nullptr ? footer->GetEncodedText() : std::string{}); if (!ScriptObject::Command::Do(&ScriptInstance::DoCommandReturnLeagueTableID, encoded_title, encoded_header, encoded_footer)) return LEAGUE_TABLE_INVALID; @@ -63,11 +63,11 @@ if (company == ScriptCompany::COMPANY_INVALID) c = INVALID_COMPANY; EnforcePrecondition(LEAGUE_TABLE_ELEMENT_INVALID, text != nullptr); - const std::string &encoded_text = text->GetEncodedText(); + std::string encoded_text = text->GetEncodedText(); EnforcePreconditionEncodedText(LEAGUE_TABLE_ELEMENT_INVALID, encoded_text); EnforcePrecondition(LEAGUE_TABLE_ELEMENT_INVALID, score != nullptr); - const std::string &encoded_score = score->GetEncodedText(); + std::string encoded_score = score->GetEncodedText(); EnforcePreconditionEncodedText(LEAGUE_TABLE_ELEMENT_INVALID, encoded_score); EnforcePrecondition(LEAGUE_TABLE_ELEMENT_INVALID, IsValidLink(Link((::LinkType)link_type, link_target))); @@ -90,7 +90,7 @@ if (company == ScriptCompany::COMPANY_INVALID) c = INVALID_COMPANY; EnforcePrecondition(false, text != nullptr); - const std::string &encoded_text = text->GetEncodedText(); + std::string encoded_text = text->GetEncodedText(); EnforcePreconditionEncodedText(false, encoded_text); EnforcePrecondition(false, IsValidLink(Link((::LinkType)link_type, link_target))); @@ -106,7 +106,7 @@ EnforcePrecondition(false, IsValidLeagueTableElement(element)); EnforcePrecondition(false, score != nullptr); - const std::string &encoded_score = score->GetEncodedText(); + std::string encoded_score = score->GetEncodedText(); EnforcePreconditionEncodedText(false, encoded_score); return ScriptObject::Command::Do(element, rating, encoded_score); diff --git a/src/script/api/script_news.cpp b/src/script/api/script_news.cpp index 6d668fea05..7f0968db90 100644 --- a/src/script/api/script_news.cpp +++ b/src/script/api/script_news.cpp @@ -26,7 +26,7 @@ EnforceDeityMode(false); EnforcePrecondition(false, text != nullptr); - const std::string &encoded = text->GetEncodedText(); + std::string encoded = text->GetEncodedText(); EnforcePreconditionEncodedText(false, encoded); EnforcePrecondition(false, type == NT_ECONOMY || type == NT_SUBSIDIES || type == NT_GENERAL); EnforcePrecondition(false, company == ScriptCompany::COMPANY_INVALID || ScriptCompany::ResolveCompanyID(company) != ScriptCompany::COMPANY_INVALID); diff --git a/src/script/api/script_text.cpp b/src/script/api/script_text.cpp index a4e8dd7196..753050ea8e 100644 --- a/src/script/api/script_text.cpp +++ b/src/script/api/script_text.cpp @@ -158,7 +158,7 @@ SQInteger ScriptText::_set(HSQUIRRELVM vm) return this->_SetParam(k, vm); } -const std::string ScriptText::GetEncodedText() +std::string ScriptText::GetEncodedText() { static StringIDList seen_ids; int param_count = 0; diff --git a/src/script/api/script_text.hpp b/src/script/api/script_text.hpp index 92928b8b8f..7509065fde 100644 --- a/src/script/api/script_text.hpp +++ b/src/script/api/script_text.hpp @@ -26,7 +26,7 @@ public: * @return A string. * @api -all */ - virtual const std::string GetEncodedText() = 0; + virtual std::string GetEncodedText() = 0; /** * Convert a #ScriptText into a decoded normal string. @@ -44,7 +44,7 @@ class RawText : public Text { public: RawText(const std::string &text); - const std::string GetEncodedText() override { return this->text; } + std::string GetEncodedText() override { return this->text; } private: const std::string text; }; @@ -125,7 +125,7 @@ public: /** * @api -all */ - virtual const std::string GetEncodedText(); + virtual std::string GetEncodedText(); private: using ScriptTextRef = ScriptObjectRef; From 3e488465f8c959b168d4d41c46d3f99884d00e68 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Tue, 27 Jun 2023 16:59:44 +0200 Subject: [PATCH 11/58] Codechange: allow string temporaries in a StringParameter --- src/strings.cpp | 12 ++++++++++++ src/strings_func.h | 2 +- src/strings_internal.h | 20 ++++++++++++++++---- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/strings.cpp b/src/strings.cpp index 1e243b42da..b052814eae 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -363,6 +363,18 @@ void SetDParamStr(size_t n, const std::string &str) _global_string_params.SetParam(n, str); } +/** + * This function is used to "bind" the std::string to a OpenTTD dparam slot. + * Contrary to the other \c SetDParamStr functions, this moves the string into + * the parameter slot. + * @param n slot of the string + * @param str string to bind + */ +void SetDParamStr(size_t n, std::string &&str) +{ + _global_string_params.SetParam(n, std::move(str)); +} + /** * Format a number into a string. * @param builder the string builder to write to diff --git a/src/strings_func.h b/src/strings_func.h index afabbe33ea..9806661656 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -84,7 +84,7 @@ void SetDParamMaxDigits(size_t n, uint count, FontSize size = FS_NORMAL); void SetDParamStr(size_t n, const char *str); void SetDParamStr(size_t n, const std::string &str); -void SetDParamStr(size_t n, std::string &&str) = delete; // block passing temporaries to SetDParamStr +void SetDParamStr(size_t n, std::string &&str); void CopyInDParam(const span backup); void CopyOutDParam(std::vector &backup, size_t num); diff --git a/src/strings_internal.h b/src/strings_internal.h index 3759c9bfab..6dc0f086db 100644 --- a/src/strings_internal.h +++ b/src/strings_internal.h @@ -18,6 +18,7 @@ struct StringParameter { uint64_t data; ///< The data of the parameter. const char *string_view; ///< The string value, if it has any. + std::unique_ptr string; ///< Copied string value, if it has any. WChar type; ///< The #StringControlCode to interpret this data with when it's the first parameter, otherwise '\0'. }; @@ -102,7 +103,8 @@ public: const char *GetNextParameterString() { auto ptr = GetNextParameterPointer(); - return ptr == nullptr ? nullptr : ptr->string_view; + if (ptr == nullptr) return nullptr; + return ptr->string != nullptr ? ptr->string->c_str() : ptr->string_view; } /** @@ -147,6 +149,7 @@ public: { assert(n < this->parameters.size()); this->parameters[n].data = v; + this->parameters[n].string.reset(); this->parameters[n].string_view = nullptr; } @@ -154,16 +157,24 @@ public: { assert(n < this->parameters.size()); this->parameters[n].data = 0; + this->parameters[n].string.reset(); this->parameters[n].string_view = str; } void SetParam(size_t n, const std::string &str) { this->SetParam(n, str.c_str()); } - void SetParam(size_t n, std::string &&str) = delete; // block passing temporaries to SetDParam + + void SetParam(size_t n, std::string &&str) + { + assert(n < this->parameters.size()); + this->parameters[n].data = 0; + this->parameters[n].string = std::make_unique(std::move(str)); + this->parameters[n].string_view = nullptr; + } uint64 GetParam(size_t n) const { assert(n < this->parameters.size()); - assert(this->parameters[n].string_view == nullptr); + assert(this->parameters[n].string_view == nullptr && this->parameters[n].string == nullptr); return this->parameters[n].data; } @@ -175,7 +186,8 @@ public: const char *GetParamStr(size_t n) const { assert(n < this->parameters.size()); - return this->parameters[n].string_view; + auto ¶m = this->parameters[n]; + return param.string != nullptr ? param.string->c_str() : param.string_view; } }; From 2ec4ea2b992a351fc6099e4becee9c2d3868cc28 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Tue, 27 Jun 2023 17:03:24 +0200 Subject: [PATCH 12/58] Codechange: use the string temporaries for game script strings --- src/strings.cpp | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/src/strings.cpp b/src/strings.cpp index b052814eae..dab5993328 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -859,8 +859,6 @@ uint ConvertDisplaySpeedToKmhishSpeed(uint speed, VehicleType type) return _units_velocity[GetVelocityUnits(type)].c.FromDisplay(speed * 16, true, 10); } -static std::vector _game_script_raw_strings; - /** * Parse most format codes within a string and write the result to a buffer. * @param builder The string builder to write the final string to. @@ -926,9 +924,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara args.SetTypeOfNextParameter(b); switch (b) { case SCC_ENCODED: { - bool sub_args_need_free[20]; AllocatedStringParameters sub_args(20); - memset(sub_args_need_free, 0, sizeof(sub_args_need_free)); char *p; uint32 stringid = std::strtoul(str, &p, 16); @@ -998,12 +994,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara sub_args.SetParam(i++, param); } else { s++; // skip the leading \" - char *g = stredup(s); - g[p - s - 1] = '\0'; // skip the trailing \" - - sub_args_need_free[i] = true; - sub_args.SetParam(i++, (uint64)(size_t)g); - _game_script_raw_strings.push_back(g); + sub_args.SetParam(i++, std::string(s, p - s - 1)); // also skip the trailing \". } } /* If we didn't error out, we can actually print the string. */ @@ -1011,13 +1002,6 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara str = p; GetStringWithArgs(builder, MakeStringID(TEXT_TAB_GAMESCRIPT_START, stringid), sub_args, true); } - - for (i = 0; i < 20; i++) { - if (sub_args_need_free[i]) { - free((void *)sub_args.GetParam(i)); - _game_script_raw_strings.pop_back(); - } - } break; } @@ -1122,8 +1106,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara case SCC_RAW_STRING_POINTER: { // {RAW_STRING} const char *raw_string = args.GetNextParameterString(); /* raw_string can be(come) nullptr when the parameter is out of range and 0 is returned instead. */ - if (raw_string == nullptr || - (game_script && std::find(_game_script_raw_strings.begin(), _game_script_raw_strings.end(), raw_string) == _game_script_raw_strings.end())) { + if (raw_string == nullptr) { builder += "(invalid RAW_STRING parameter)"; break; } From e04d43f396edc3d9e8353268a96327df9ed9dc23 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Tue, 27 Jun 2023 17:07:56 +0200 Subject: [PATCH 13/58] Remove: now unused stredup --- src/safeguards.h | 2 +- src/string.cpp | 15 --------------- src/string_func.h | 1 - 3 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/safeguards.h b/src/safeguards.h index 09cfe9a919..daf941482a 100644 --- a/src/safeguards.h +++ b/src/safeguards.h @@ -28,7 +28,7 @@ /* Use ReallocT instead. */ #define realloc SAFEGUARD_DO_NOT_USE_THIS_METHOD -/* Use stredup instead. */ +/* Use std::string instead. */ #define strdup SAFEGUARD_DO_NOT_USE_THIS_METHOD #define strndup SAFEGUARD_DO_NOT_USE_THIS_METHOD diff --git a/src/string.cpp b/src/string.cpp index 4795a226e7..5acc14147d 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -80,21 +80,6 @@ char *strecpy(char *dst, const char *src, const char *last) return dst; } -/** - * Create a duplicate of the given string. - * @param s The string to duplicate. - * @param last The last character that is safe to duplicate. If nullptr, the whole string is duplicated. - * @note The maximum length of the resulting string might therefore be last - s + 1. - * @return The duplicate of the string. - */ -char *stredup(const char *s, const char *last) -{ - size_t len = last == nullptr ? strlen(s) : ttd_strnlen(s, last - s + 1); - char *tmp = CallocT(len + 1); - memcpy(tmp, s, len); - return tmp; -} - /** * Format a byte array into a continuous hex string. * @param data Array to format diff --git a/src/string_func.h b/src/string_func.h index 62f472d26f..2286f2fe25 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -19,7 +19,6 @@ #include "string_type.h" char *strecpy(char *dst, const char *src, const char *last) NOACCESS(3); -char *stredup(const char *src, const char *last = nullptr) NOACCESS(2); std::string FormatArrayAsHex(span data); From af9b9327afdbd621d9467c128bdb2bce06cd2732 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Tue, 27 Jun 2023 17:24:43 +0200 Subject: [PATCH 14/58] Codechange: do not keep local variable for temporary string parameters --- src/fios.cpp | 3 +-- src/misc_gui.cpp | 3 +-- src/network/network_client.cpp | 3 +-- src/newgrf_gui.cpp | 13 ++++--------- src/script/api/script_text.cpp | 4 +--- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/fios.cpp b/src/fios.cpp index 20f923804f..b78bd1cc49 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -377,8 +377,7 @@ static void FiosGetFileList(SaveLoadOperation fop, FiosGetTypeAndNameProc *callb fios->type = FIOS_TYPE_DIR; fios->mtime = 0; fios->name = d_name; - std::string dirname = fios->name + PATHSEP; - SetDParamStr(0, dirname); + SetDParamStr(0, fios->name + PATHSEP); fios->title = GetString(STR_SAVELOAD_DIRECTORY); } } diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 0880b1c839..032ee8e136 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -208,12 +208,11 @@ public: /* Location */ std::stringstream tile_ss; tile_ss << "0x" << std::setfill('0') << std::setw(4) << std::hex << std::uppercase << tile; // 0x%.4X - std::string tile_str = tile_ss.str(); // Can't pass it directly to SetDParamStr as the string is only a temporary and would be destructed before the GetString call. SetDParam(0, TileX(tile)); SetDParam(1, TileY(tile)); SetDParam(2, GetTileZ(tile)); - SetDParamStr(3, tile_str); + SetDParamStr(3, tile_ss.str()); this->landinfo_data.push_back(GetString(STR_LAND_AREA_INFORMATION_LANDINFO_COORDS)); /* Local authority */ diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 3ea79d4949..6464e714a3 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -641,8 +641,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_ERROR(Packet *p if (error < (ptrdiff_t)lengthof(network_error_strings)) err = network_error_strings[error]; /* In case of kicking a client, we assume there is a kick message in the packet if we can read one byte */ if (error == NETWORK_ERROR_KICKED && p->CanReadFromPacket(1)) { - std::string kick_msg = p->Recv_string(NETWORK_CHAT_LENGTH); - SetDParamStr(0, kick_msg); + SetDParamStr(0, p->Recv_string(NETWORK_CHAT_LENGTH)); ShowErrorMessage(err, STR_NETWORK_ERROR_KICK_MESSAGE, WL_CRITICAL); } else { ShowErrorMessage(err, INVALID_STRING_ID, WL_CRITICAL); diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 785adf046f..fbaf7b162d 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -77,9 +77,8 @@ static void ShowNewGRFInfo(const GRFConfig *c, const Rect &r, bool show_params) for (uint i = 0; i < c->error->param_value.size(); i++) { SetDParam(3 + i, c->error->param_value[i]); } - std::string message = GetString(c->error->message != STR_NULL ? c->error->message : STR_JUST_RAW_STRING); - SetDParamStr(0, message); + SetDParamStr(0, GetString(c->error->message != STR_NULL ? c->error->message : STR_JUST_RAW_STRING)); tr.top = DrawStringMultiLine(tr, c->error->severity); } @@ -90,8 +89,7 @@ static void ShowNewGRFInfo(const GRFConfig *c, const Rect &r, bool show_params) } /* Prepare and draw GRF ID */ - std::string tmp = fmt::format("{:08X}", BSWAP32(c->ident.grfid)); - SetDParamStr(0, tmp); + SetDParamStr(0, fmt::format("{:08X}", BSWAP32(c->ident.grfid))); tr.top = DrawStringMultiLine(tr, STR_NEWGRF_SETTINGS_GRF_ID); if ((_settings_client.gui.newgrf_developer_tools || _settings_client.gui.newgrf_show_old_versions) && c->version != 0) { @@ -104,17 +102,14 @@ static void ShowNewGRFInfo(const GRFConfig *c, const Rect &r, bool show_params) } /* Prepare and draw MD5 sum */ - tmp = FormatArrayAsHex(c->ident.md5sum); - SetDParamStr(0, tmp); + SetDParamStr(0, FormatArrayAsHex(c->ident.md5sum)); tr.top = DrawStringMultiLine(tr, STR_NEWGRF_SETTINGS_MD5SUM); /* Show GRF parameter list */ if (show_params) { - std::string params; if (c->num_params > 0) { - params = GRFBuildParamList(c); SetDParam(0, STR_JUST_RAW_STRING); - SetDParamStr(1, params); + SetDParamStr(1, GRFBuildParamList(c)); } else { SetDParam(0, STR_NEWGRF_SETTINGS_PARAMETER_NONE); } diff --git a/src/script/api/script_text.cpp b/src/script/api/script_text.cpp index 753050ea8e..b574e8e5fe 100644 --- a/src/script/api/script_text.cpp +++ b/src/script/api/script_text.cpp @@ -248,8 +248,6 @@ void ScriptText::_GetEncodedText(std::back_insert_iterator &output, const std::string Text::GetDecodedText() { - const std::string &encoded_text = this->GetEncodedText(); - - ::SetDParamStr(0, encoded_text); + ::SetDParamStr(0, this->GetEncodedText()); return ::GetString(STR_JUST_RAW_STRING); } From bcaa60612e6d6a398bba9db519cbd8f959301e36 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 3 Jul 2023 18:40:35 +0000 Subject: [PATCH 15/58] Update: Translations from eints portuguese: 3 changes by azulcosta --- src/lang/portuguese.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 199599dd9c..c9fb156d09 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1060,12 +1060,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Taxas de atualização maiores que 60Hz podem interferir no desempenho. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Seleccione o conjunto de gráficos base a usar +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecione o conjunto de gráficos base a usar (não pode ser alterado no jogo, só a partir do menu principal) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ficheiro{P "" s} que falta{P "" m} / corrupto{P "" s} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Informação adicional sobre o conjunto de gráficos base STR_GAME_OPTIONS_BASE_SFX :{BLACK}Conjunto de sons base -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Seleccione o conjunto de sons base a usar +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Selecione o conjunto de sons base a usar (não pode ser alterado no jogo, só a partir do menu principal) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Informação adicional sobre o conjunto de sons base STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Conjunto de música base @@ -2274,7 +2274,7 @@ STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}Anos STR_NETWORK_SERVER_LIST_YEARS_CAPTION_TOOLTIP :{BLACK}Número de anos{}que o jogo vai durar STR_NETWORK_SERVER_LIST_INFO_ICONS_TOOLTIP :{BLACK}Idioma, versão do servidor, etc. -STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Clique num jogo da lista para o seleccionar +STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Clique num jogo da lista para o selecionar STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}O servidor em que entraste na última vez: STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Clique para indicar o servidor que jogaste a última vez From f1a6f912358605014d046b417e65947a8d3dd86e Mon Sep 17 00:00:00 2001 From: merni-ns <66267867+merni-ns@users.noreply.github.com> Date: Mon, 3 Jul 2023 23:15:06 +0530 Subject: [PATCH 16/58] Doc: Remove redundant

---
 CODINGSTYLE.md | 2 --
 1 file changed, 2 deletions(-)

diff --git a/CODINGSTYLE.md b/CODINGSTYLE.md
index 2c204446c8..9c6bfe6e67 100644
--- a/CODINGSTYLE.md
+++ b/CODINGSTYLE.md
@@ -416,9 +416,7 @@ There is a check-script on the git server (also available for clients, see below
 
 The first line of a message must match:
 ```
-
 ( #| (, ( #|))*)?: ([
-
``` Keywords are: * Add, Feature: Adding new stuff. Difference between "Feature" and "Add" is somewhat subjective. "Feature" for user-point-of-view stuff, "Add" for other. From 96da5581cee0fec96087e39ca4082a2e9037f8aa Mon Sep 17 00:00:00 2001 From: merni-ns <66267867+merni-ns@users.noreply.github.com> Date: Mon, 3 Jul 2023 23:20:58 +0530 Subject: [PATCH 17/58] Doc: Link to coding style in the repository itself and add Discord link in addition to IRC --- CONTRIBUTING.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0ca0ab7a9..2c76179dee 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ In return, they should reciprocate that respect in addressing your issue or asse The [issue tracker](https://github.com/OpenTTD/OpenTTD/issues) is the preferred channel for [bug reports](#bug-reports), but please respect the following restrictions: * Please **do not** use the issue tracker for help playing or using OpenTTD. -Please try [irc](https://wiki.openttd.org/en/Development/IRC%20channel), or the [forums](https://www.tt-forums.net/) +Please try [irc](https://wiki.openttd.org/en/Development/IRC%20channel), [Discord](https://discord.gg/openttd), or the [forums](https://www.tt-forums.net/) * Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others. @@ -23,7 +23,7 @@ Use [GitHub's "reactions" feature](https://github.com/blog/2119-add-reactions-to We reserve the right to delete comments which violate this rule. * Please **do not** open issues or pull requests regarding add-on content in NewGRF, GameScripts, AIs, etc. -These are created by third-parties. Please try [irc](https://wiki.openttd.org/en/Development/IRC%20channel) or the [forums](https://www.tt-forums.net/) to discuss these. +These are created by third-parties. Please try [irc](https://wiki.openttd.org/en/Development/IRC%20channel), [Discord](https://discord.gg/openttd), or the [forums](https://www.tt-forums.net/) to discuss these. * Please use [the web translator](https://translator.openttd.org/) to submit corrections and improvements to translations of the game. @@ -108,7 +108,7 @@ Pull requests should fit with the [goals of the project](./CONTRIBUTING.md#proje Every pull request should have a clear scope, with no unrelated commits. -[Code style](https://wiki.openttd.org/en/Development/Coding%20style) must be complied with for pull requests to be accepted; this also includes [commit message format](https://wiki.openttd.org/en/Development/Coding%20style#commit-message). +[Code style](./CODINGSTYLE.md) must be complied with for pull requests to be accepted; this also includes [commit message format](./CODINGSTYLE.md#commit-message). Adhering to the following process is the best way to get your work included in the project: @@ -136,7 +136,7 @@ contain your feature, change, or fix: git checkout upstream/master -b ``` -4. Commit your changes in logical chunks. Please adhere to these [git commit message guidelines](https://wiki.openttd.org/en/Development/Coding%20style#commit-message) or your code is unlikely to be merged into the main project. +4. Commit your changes in logical chunks. Please adhere to these [git commit message guidelines](./CODINGSTYLE.md#commit-message) or your code is unlikely to be merged into the main project. Use Git's [interactive rebase](https://docs.github.com/en/get-started/using-git/about-git-rebase) feature to tidy up your commits before making them public. 5. Locally rebase the upstream development branch into your topic branch: @@ -172,7 +172,7 @@ The results of the CI tests will show on your pull request. By clicking on Details you can further zoom in; in case of a failure it will show you why it failed. In case of success it will report how awesome you were. -Tip: [commit message format](https://wiki.openttd.org/en/Development/Coding%20style#commit-message) is a common reason for pull requests to fail validation. +Tip: [commit message format](./CODINGSTYLE.md#commit-message) is a common reason for pull requests to fail validation. ### Are there any development docs? From a8a4737c5bcb0d228cb1dc817179c9ba94382f84 Mon Sep 17 00:00:00 2001 From: merni-ns <66267867+merni-ns@users.noreply.github.com> Date: Tue, 4 Jul 2023 02:54:44 +0530 Subject: [PATCH 18/58] Fix #11096: Increase priority of error and confirmation windows (#11104) --- src/window.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/window.cpp b/src/window.cpp index ad1a817cdc..870371c9ba 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1332,15 +1332,20 @@ static uint GetWindowZPriority(WindowClass wc) uint z_priority = 0; switch (wc) { - case WC_ENDSCREEN: + case WC_TOOLTIPS: ++z_priority; FALLTHROUGH; - case WC_HIGHSCORE: + case WC_ERRMSG: + case WC_CONFIRM_POPUP_QUERY: ++z_priority; FALLTHROUGH; - case WC_TOOLTIPS: + case WC_ENDSCREEN: + ++z_priority; + FALLTHROUGH; + + case WC_HIGHSCORE: ++z_priority; FALLTHROUGH; @@ -1362,8 +1367,6 @@ static uint GetWindowZPriority(WindowClass wc) ++z_priority; FALLTHROUGH; - case WC_ERRMSG: - case WC_CONFIRM_POPUP_QUERY: case WC_NETWORK_ASK_RELAY: case WC_MODAL_PROGRESS: case WC_NETWORK_STATUS_WINDOW: From 381fa3645095b7691398529bfe4bb13dc4f6b3ae Mon Sep 17 00:00:00 2001 From: Koen Bussemaker Date: Fri, 30 Jun 2023 21:17:26 +0200 Subject: [PATCH 19/58] Change: Autorail / autoroad tools can start dragging from invalid tiles --- src/rail_cmd.cpp | 6 +++--- src/road_cmd.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 7e1ec01ee3..2e35c19b20 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -875,8 +875,8 @@ static CommandCost ValidateAutoDrag(Trackdir *trackdir, TileIndex start, TileInd * @param railtype railroad type normal/maglev (0 = normal, 1 = mono, 2 = maglev), only used for building * @param track track-orientation * @param remove remove tracks? - * @param auto_remove_signals false = build up to an obstacle, true = fail if an obstacle is found (used for AIs), only used for building - * @param fail_on_obstacle false = error on signal in the way, true = auto remove signals when in the way, only used for building + * @param auto_remove_signals false = error on signal in the way, true = auto remove signals when in the way, only used for building + * @param fail_on_obstacle false = build starting from and up to an obstacle, true = fail if an obstacle is found (used for AIs) * @return the cost of this operation or an error */ static CommandCost CmdRailTrackHelper(DoCommandFlag flags, TileIndex tile, TileIndex end_tile, RailType railtype, Track track, bool remove, bool auto_remove_signals, bool fail_on_obstacle) @@ -900,7 +900,7 @@ static CommandCost CmdRailTrackHelper(DoCommandFlag flags, TileIndex tile, TileI last_error = ret; if (last_error.GetErrorMessage() != STR_ERROR_ALREADY_BUILT && !remove) { if (fail_on_obstacle) return last_error; - break; + if (had_success) break; // Keep going if we haven't constructed any rail yet, skipping the start of the drag } /* Ownership errors are more important. */ diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 3802f884e3..ed3fbdc392 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1034,7 +1034,7 @@ CommandCost CmdBuildLongRoad(DoCommandFlag flags, TileIndex end_tile, TileIndex last_error = ret; if (last_error.GetErrorMessage() != STR_ERROR_ALREADY_BUILT) { if (is_ai) return last_error; - break; + if (had_success) break; // Keep going if we haven't constructed any road yet, skipping the start of the drag } } else { had_success = true; From bc83974b3839d65bb9a88baaaad807b974656f56 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 4 Jul 2023 14:39:55 +0200 Subject: [PATCH 20/58] Fix: [Emscripten] switch to URL for content-service that supports WebSocket (#11106) In the old days, content.openttd.org and bananas-server.openttd.org ended up on the same route. But with a recent migration, they do not. content.openttd.org only serves the custom TCP protocol, and bananas-server.openttd.org only serves the HTTP(S). Websockets use HTTPS, and as such, should be routed via the latter. --- os/emscripten/pre.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/os/emscripten/pre.js b/os/emscripten/pre.js index 2fb641017c..31858b1894 100644 --- a/os/emscripten/pre.js +++ b/os/emscripten/pre.js @@ -2,7 +2,7 @@ Module.arguments.push('-mnull', '-snull', '-vsdl:relative_mode'); Module['websocket'] = { url: function(host, port, proto) { /* openttd.org hosts a WebSocket proxy for the content service. */ if (host == "content.openttd.org" && port == 3978 && proto == "tcp") { - return "wss://content.openttd.org/"; + return "wss://bananas-server.openttd.org/"; } /* Everything else just tries to make a default WebSocket connection. @@ -41,7 +41,7 @@ Module.preRun.push(function() { /* Check if the OpenGFX baseset is already downloaded. */ if (!FS.analyzePath(content_download_dir + '/baseset/opengfx-0.6.0.tar').exists) { window.openttd_downloaded_opengfx = true; - FS.createPreloadedFile(content_download_dir + '/baseset', 'opengfx-0.6.0.tar', 'https://installer.cdn.openttd.org/emscripten/opengfx-0.6.0.tar', true, true); + FS.createPreloadedFile(content_download_dir + '/baseset', 'opengfx-0.6.0.tar', 'https://binaries.openttd.org/installer/emscripten/opengfx-0.6.0.tar', true, true); } else { /* Fake dependency increase, so the counter is stable. */ Module.addRunDependency('opengfx'); From 48f25427bce047e0201af27080f28ad8ee29c640 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 4 Jul 2023 18:43:15 +0000 Subject: [PATCH 21/58] Update: Translations from eints english (us): 15 changes by 2TallTyler korean: 2 changes by telk5093 german: 41 changes by Wuzzy2 portuguese (brazilian): 2 changes by pasantoro --- src/lang/brazilian_portuguese.txt | 4 +-- src/lang/english_US.txt | 20 ++++++++--- src/lang/german.txt | 55 +++++++++++++++++++++++-------- src/lang/korean.txt | 4 +-- 4 files changed, 60 insertions(+), 23 deletions(-) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 4659fd800c..b96d2cb95e 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1060,12 +1060,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Taxas de atualização superiores a 60Hz podem afetar o desempenho. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecionar o conjunto de gráficos base para usar +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecione o conjunto de gráficos base a usar (não pode ser alterado no jogo, só a partir do menu principal) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arquivo{P "" s} faltando/corrompido{P "" s} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Informações adicionais sobre o conjunto de gráficos base STR_GAME_OPTIONS_BASE_SFX :{BLACK}Conjunto de sons base -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Selecionar o conjunto base de sons para usar +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Selecione o conjunto de sons base a usar (não pode ser alterado no jogo, só a partir do menu principal) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Informações sobre o conjunto de sons base STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Conjunto de músicas base diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index ff09eff6ad..c31409f9d4 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -846,7 +846,7 @@ STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLAC STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} has been closed down by creditors and all assets sold off! STR_NEWS_COMPANY_LAUNCH_TITLE :{BIG_FONT}{BLACK}New transport company launched! STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} starts construction near {TOWN}! -STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} has been taken over by {STRING}! +STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} has been taken over by {STRING} for an undisclosed amount! STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(President) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} sponsored construction of new town {TOWN}! @@ -951,6 +951,7 @@ 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 +STR_GAME_OPTIONS_CURRENCY_CODE :{STRING} ({STRING}) ###length 42 STR_GAME_OPTIONS_CURRENCY_GBP :British Pound @@ -972,7 +973,7 @@ STR_GAME_OPTIONS_CURRENCY_ISK :Icelandic Krona STR_GAME_OPTIONS_CURRENCY_ITL :Italian Lira STR_GAME_OPTIONS_CURRENCY_NLG :Dutch Guilder STR_GAME_OPTIONS_CURRENCY_NOK :Norwegian Krone -STR_GAME_OPTIONS_CURRENCY_PLN :Polish Złoty +STR_GAME_OPTIONS_CURRENCY_PLN :Polish Zloty STR_GAME_OPTIONS_CURRENCY_RON :Romanian Leu STR_GAME_OPTIONS_CURRENCY_RUR :Russian Ruble STR_GAME_OPTIONS_CURRENCY_SIT :Slovenian Tolar @@ -1058,12 +1059,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Refresh rates higher than 60Hz might impact performance. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use (cannot be changed in-game, only from the main menu) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Additional information about the base graphics set STR_GAME_OPTIONS_BASE_SFX :{BLACK}Base sounds set -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Select the base sounds set to use +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Select the base sounds set to use (cannot be changed in-game, only from the main menu) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Additional information about the base sounds set STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Base music set @@ -1559,7 +1560,7 @@ STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREY_TO_RED :Gray to red STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREYSCALE :Grayscale STR_CONFIG_SETTING_SCROLLMODE :Viewport scroll behavior: {STRING} -STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Behavior when scrolling the map +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Behavior when scrolling the map. The "mouse position locked" options don't work on all systems, like web-based versions, touchscreens, Linux with Wayland, and others ###length 4 STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Move viewport with RMB, mouse position locked STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Move map with RMB, mouse position locked @@ -2081,6 +2082,7 @@ STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allocati # Video initalization errors STR_VIDEO_DRIVER_ERROR :{WHITE}Error with video settings... STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no compatible GPU found. Hardware acceleration disabled +STR_VIDEO_DRIVER_ERROR_HARDWARE_ACCELERATION_CRASH :{WHITE}... GPU driver crashed the game. Hardware acceleration disabled # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3760,6 +3762,8 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Details STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}View detailed infrastructure counts STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Give money STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Give money to this company +STR_COMPANY_VIEW_HOSTILE_TAKEOVER_BUTTON :{BLACK}Hostile takeover +STR_COMPANY_VIEW_HOSTILE_TAKEOVER_TOOLTIP :{BLACK}Do a hostile takeover of this company STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}New Face STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Select new face for president @@ -3775,6 +3779,7 @@ STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :President's Nam STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Enter the amount of money you want to give STR_BUY_COMPANY_MESSAGE :{WHITE}We are looking for a transport company to take-over our company.{}{}Do you want to purchase {COMPANY} for {CURRENCY_LONG}? +STR_BUY_COMPANY_HOSTILE_TAKEOVER :{WHITE}In a hostile takeover of {COMPANY} you will purchase all assets, pay off all loans, and pay two years worth of profits.{}{}The total is estimated to be {CURRENCY_LONG}.{}{}Do you want to continue this hostile takeover? # Company infrastructure window STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastructure of {COMPANY} @@ -3846,6 +3851,7 @@ STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Manage l STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Send instructions to all vehicles in this list STR_VEHICLE_LIST_REPLACE_VEHICLES :Replace vehicles STR_VEHICLE_LIST_SEND_FOR_SERVICING :Send for Maintenance +STR_VEHICLE_LIST_CREATE_GROUP :Create group STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Profit this year: {CURRENCY_LONG} (last year: {CURRENCY_LONG}) STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING} {STRING} @@ -4568,6 +4574,8 @@ STR_TIMETABLE_EXPECTED :{BLACK}Expected STR_TIMETABLE_SCHEDULED :{BLACK}Scheduled STR_TIMETABLE_EXPECTED_TOOLTIP :{BLACK}Switch between expected and scheduled +STR_TIMETABLE_ARRIVAL :A: {COLOUR}{DATE_TINY} +STR_TIMETABLE_DEPARTURE :D: {COLOUR}{DATE_TINY} # Date window (for timetable) @@ -5622,6 +5630,8 @@ STR_JUST_DATE_SHORT :{DATE_SHORT} STR_JUST_DATE_LONG :{DATE_LONG} STR_JUST_DATE_ISO :{DATE_ISO} STR_JUST_STRING :{STRING} +STR_JUST_STRING1 :{STRING} +STR_JUST_STRING2 :{STRING} STR_JUST_STRING_STRING :{STRING}{STRING} STR_JUST_RAW_STRING :{STRING} STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index 3d665b7679..e3b1939e8d 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -346,8 +346,8 @@ STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Auftrags STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Spiel anhalten STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Zeitraffer (Zeit vergeht schnellstmöglich) STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Optionen und Einstellungen -STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Spiel speichern, Spiel laden, Spiel abbrechen, (OpenTTD) Beenden -STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Weltkarte, zusätzliche Fenster oder Schilderliste anzeigen +STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Spiel speichern, laden oder abbrechen, Programm beenden +STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Weltkarte, zusätzliche Fenster, Warenfluss oder Schilderliste anzeigen STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Städteverzeichnis anzeigen STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Subventionen anzeigen STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Liste der firmeneigenen Stationen anzeigen @@ -355,9 +355,9 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Firmenfi STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Allgemeine Firmeninformationen anzeigen STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Zeigt die Chronik an STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Zeigt die von einem Spielskript festgelegten Ziele an -STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Diagramme anzeigen +STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Firmendiagramme und Frachtraten anzeigen STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Firmentabelle oder Punktestand anzeigen -STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Liste aller Industrien oder Errichtung und Finanzierung einer neuen Industrie +STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Industrien betrachten oder den Bau einer neuen Industrie finanzieren STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Zuglisten der Firmen anzeigen. Strg+Klick wechselt zwischen einfacher und erweiterter Liste STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Fahrzeuglisten der Firmen anzeigen. Strg+Klick wechselt zwischen einfacher und erweiterter Liste STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Schiffslisten der Firmen anzeigen. Strg+Klick wechselt zwischen einfacher und erweiterter Liste @@ -371,8 +371,8 @@ STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Häfen u STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Flughäfen bauen STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Landschaftsbau: Land heben/senken, Bäume pflanzen etc. STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Sound-/Musikfenster anzeigen -STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Zeige letzte Mitteilung/Nachricht, Nachrichtenoptionen anzeigen -STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Gebietsinformation, Konsole, KI- und Skript-Debug, Screenshots, über OpenTTD +STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Zeige letzte Mitteilung/Nachricht, Nachrichtenhistorie oder lösche alle Nachrichten +STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Gebietsinformation, Screenshot, über OpenTTD und Entwicklerwerkzeuge STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Werkzeugleisten wechseln # Extra tooltips for the scenario editor toolbar @@ -847,7 +847,7 @@ STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLAC STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} ist von den Gläubigern geschlossen worden, alles Vermögen wurde veräussert! STR_NEWS_COMPANY_LAUNCH_TITLE :{BIG_FONT}{BLACK}Neue Transportfirma gegründet! STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} startet bei {TOWN}! -STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} wurde von {STRING} übernommen! +STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} wurde von {STRING} für eine geheimgehaltene Summe übernommen! STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Manager) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} finanziert die Gründung der Stadt {TOWN}! @@ -935,7 +935,9 @@ STR_GAME_OPTIONS_CAPTION :{WHITE}Spielein STR_GAME_OPTIONS_TAB_GENERAL :Allgemein STR_GAME_OPTIONS_TAB_GENERAL_TT :{BLACK}Wähle allgemeine Einstellungen STR_GAME_OPTIONS_TAB_GRAPHICS :Grafik +STR_GAME_OPTIONS_TAB_GRAPHICS_TT :{BLACK}Grafikeinstellungen wählen STR_GAME_OPTIONS_TAB_SOUND :Sound +STR_GAME_OPTIONS_TAB_SOUND_TT :{BLACK}Sound- und Musikeinstellungen auswählen STR_GAME_OPTIONS_VOLUME :Lautstärke STR_GAME_OPTIONS_SFX_VOLUME :Sound-Effekte @@ -945,10 +947,12 @@ 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}Währung STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Währung auswählen +STR_GAME_OPTIONS_CURRENCY_CODE :{STRING} ({STRING}) ###length 42 STR_GAME_OPTIONS_CURRENCY_GBP :Britische Pfund @@ -1040,7 +1044,11 @@ STR_GAME_OPTIONS_GUI_SCALE_3X :3× STR_GAME_OPTIONS_GUI_SCALE_4X :4× STR_GAME_OPTIONS_GUI_SCALE_5X :5x +STR_GAME_OPTIONS_PARTICIPATE_SURVEY_FRAME :{BLACK}Automatische Umfrage +STR_GAME_OPTIONS_PARTICIPATE_SURVEY :{BLACK}Bei automatischer Umfrage teilnehmen +STR_GAME_OPTIONS_PARTICIPATE_SURVEY_TOOLTIP :{BLACK}Falls aktiviert, wird OpenTTD eine Umfrage beim Verlassen des Spiels übertragen STR_GAME_OPTIONS_PARTICIPATE_SURVEY_LINK :{BLACK}Über Umfrage und Privatsphäre +STR_GAME_OPTIONS_PARTICIPATE_SURVEY_LINK_TOOLTIP :{BLACK}Dies öffnet einen Browser mit mehr Informationen über die automatische Umfrage STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW :{BLACK}Vorschau des Umfrageergebnisses STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW_TOOLTIP :{BLACK}Zeige die Umfrageergebnisse des gerade laufenden Spiels an @@ -1052,12 +1060,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Wiederholraten größer als 60Hz beeinträchtigen möglicherweise die Performance. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisgrafiken -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zu benutzendes Set an Basisgrafiken auswählen +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zu benutzendes Set an Basisgrafiken auswählen (kann nicht im Spiel geändert werden, nur im Hauptmenü) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fehlende/fehlerhafte Datei{P "" en} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Zusatzinformationen zu den Basisgrafiken STR_GAME_OPTIONS_BASE_SFX :{BLACK}Basissounds -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Basissounds auswählen +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Basissounds auswählen (kann nicht im Spiel geändert werden, nur im Hauptmenü) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Zusatzinformationen zu den Basissounds STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Basismusikset @@ -1553,7 +1561,7 @@ STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREY_TO_RED :Grau zu rot STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREYSCALE :Graustufe STR_CONFIG_SETTING_SCROLLMODE :Verhalten beim Verschieben der Zusatzansicht: {STRING} -STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Verhalten beim Verschieben der Karte +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Verhalten beim Verschieben der Karte. Die „Mausposition gesperrt“-Optionen funktionieren nicht auf allen Systemen, wie den webbasierten Versionen, Touchscreens, Linux mit Wayland und anderen ###length 4 STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Bewege Zusatzansicht mit rechter Maustaste, Mausposition fixiert STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Bewege die Karte mit rechter Maustaste, Mausposition fixiert @@ -1734,7 +1742,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Wie viel Arbeit STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB STR_CONFIG_SETTING_SERVINT_ISPERCENT :Wartungsintervalle in Prozent: {STRING} -STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Lege fest, ob Fahrzeuge zur Wartung geschickt werden basierend auf der verstrichenen Zeit seit der letzten Wartung oder dem Absinken der Zuverlässigkeit auf einen gewissen Prozentsatz der maximalen Zuverlässigkeit des Fahrzeugtyps +STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Falls aktiviert, werden Fahrzeuge versuchen, sich in die Wartung zu begeben, sobald ihre Zuverlässigkeit unter einer bestimmten Prozentzahl unterhalb der maximalen Zuverlässigkeit liegt.{}{}Zum Beispiel: Wenn die maximale Zuverlässigkeit eines Fahrzeugs 90% beträgt und das Wartungsintervall bei 20% liegt, wird das Fahrzeug versuchen, sich in die Wartung zu begeben, sobald es eine Zuverlässigkeit von 72% erreicht. STR_CONFIG_SETTING_SERVINT_TRAINS :Standard-Wartungsintervall für Züge: {STRING} STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Setze das Standardwartungsintervall für Schienenfahrzeuge. Dieses Wartungsintervall wird von allen Zügen eingehalten, denen kein individuelles Wartungsintervall zugewiesen worden ist @@ -1939,6 +1947,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Keine STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Größe von Großstädten bei Spielbeginn: {STRING}× STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Durchschnittliche Größe von Großstädten relativ zu normalen Städten bei Spielbeginn +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Verteilungsgraphen jede {STRING}{NBSP}Sekund{P 0:2 "" en} aktualisieren +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Zeit zwischen anfolgenden Neuberechnungen der Warenverteilung. Jede Neuberechnung berechnet die Pläne für eine Komponente des Graphen. Das bedeutet, dass ein Wert X für diese Einstellung nicht bedeutet, dass der gesamte Graph alle X Sekunden aktualisiert wird. Nur ein Teil wird es. Je kürzer du die Zeit festlegst, desto mehr CPU-Zeit wird nötig sein, um ihn zu berechnen. Je länger du die Zeit festlegst, desto länger wird es dauern, bis die Frachtverteilung auf neuen Strecken beginnt. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :{STRING}{NBSP}Sekund{P 0:2 "" en} für Neuberechnung des Verteilungsgraphen nehmen +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Zeit für jede Neuberechnung einer Warenverteilungskomponente. Wenn eine Neuberechnung gestartet wird, wird ein Thread gestartet, der für diese Anzahl von Sekunden laufen darf. Je kürzer du ihn festlegst, desto wahrscheinlicher ist es, dass der Thread nicht beendet ist, wenn er aber sein sollte. Dann wird das Spiel beendet, sobald dies der Fall ist („Lag“). Je länger du es festlegst, desto länger dauert es, bis die Verteilung aktualisiert wird, wenn sich Routen ändern. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Verteilungsschema für Passagiere: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :„Symmetrisch“ heißt, dass etwa die selbe Zahl von Passagieren von einer Station A zu einer anderen Station B reisen, wie von B nach A. „Asymmetrisch“ heißt, dass Passagiere in beliebigen Zahlen hin- und her fahren können. „Manuell“ heißt, dass keine automatische Verteilung der Passagiere stattfindet. @@ -1964,7 +1976,7 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Wenn hier wenig STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Auslastung der kürzeren Verbindungen bevor längere Verbindungen gewählt werden: {STRING} STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Häufig gibt es mehrere Verbindungen um von einer Station zu einer anderen zu kommen. Zuerst wird der Algorithmus die kürzesten Verbindungen auslasten, dann die längeren usw. Wenn alle Verbindungen ausgelastet sind, verteilt er die verbliebene Nachfrage gleichmäßig. Diese Einstellung besagt, ab welcher Auslastung eine Verbinudng als „voll“ gilt und der Algorithmus in der ersten Runde die nächst längere wählt. Da die Kapazität der Verbindungen geschätzt wird, ist es sinnvoll, hier weniger als 100% anzugeben, um etwas „Luft“ für Fehlschätzungen zu lassen. -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Geschwindigkeitseinheit: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Geschwindigkeitseinheiten (Land): {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Geschwindigkeitseinheit (nautisch): {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Immer wenn die Geschwindigkeit angezeigt wird, sie in den gewählten Einheiten anzeigen ###length 5 @@ -1972,6 +1984,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrisch (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Spieleinheiten (Spielfeldkacheln/Tag) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_KNOTS :Knoten STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Leistungseinheit von Fahrzeugen: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Immer wenn die Leistung eins Fahrzeugs angezeigt wird, sie in den gewählten Einheiten anzeigen @@ -2070,6 +2083,7 @@ STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Reservie # Video initalization errors STR_VIDEO_DRIVER_ERROR :{WHITE}Fehler mit den Grafikeinstellungen ... STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... keine kompatible GPU gefunden. Hardwarebeschleunigung deaktiviert +STR_VIDEO_DRIVER_ERROR_HARDWARE_ACCELERATION_CRASH :{WHITE}… GPU-Treiber brachte das Spiel zum Absturz. Hardwarebeschleunigung deaktiviert # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2400,6 +2414,9 @@ STR_NETWORK_ASK_RELAY_NO :{BLACK}Nein STR_NETWORK_ASK_RELAY_YES_ONCE :{BLACK}Ja, diesmal STR_NETWORK_ASK_RELAY_YES_ALWAYS :{BLACK}Ja, nicht erneut fragen +STR_NETWORK_ASK_SURVEY_CAPTION :Bei automatischer Umfrage teilnehmen? +STR_NETWORK_ASK_SURVEY_TEXT :Möchtest du an einer automatischen Umfrage teilnehmen?{}OpenTTD wird beim Verlassen des Spiels eine Umfrage übermitteln.{}Du kannst dies jederzeit unter „Spieloptionen“ ändern. +STR_NETWORK_ASK_SURVEY_PREVIEW :Vorschau des Umfrageergebnisses STR_NETWORK_ASK_SURVEY_LINK :Über Umfrage und Privatsphäre STR_NETWORK_ASK_SURVEY_NO :Nein STR_NETWORK_ASK_SURVEY_YES :Ja @@ -2693,7 +2710,7 @@ STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}Stations STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Eine Stationsart zum Anzeigen auswählen STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Die Stationsart auswählen, die gebaut werden soll -STR_STATION_CLASS_DFLT :Standardstation +STR_STATION_CLASS_DFLT :Standard STR_STATION_CLASS_DFLT_STATION :Standart-Haltestelle STR_STATION_CLASS_DFLT_ROADSTOP :Standard-Staßenhaltestelle STR_STATION_CLASS_WAYP :Wegpunkte @@ -3747,6 +3764,7 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Detailli STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Verschenke Geld STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Geld an diese Firma verschenken STR_COMPANY_VIEW_HOSTILE_TAKEOVER_BUTTON :{BLACK}Feindliche Übernahme +STR_COMPANY_VIEW_HOSTILE_TAKEOVER_TOOLTIP :{BLACK}Feindliche Übernahme dieses Unternehmens vornehmen STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Neues Gesicht STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Neues Gesicht für Manager aussuchen @@ -3762,6 +3780,7 @@ STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Name des Manage STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Geben Sie den Betrag des Geldes ein, welchen sie verschenken möchten. STR_BUY_COMPANY_MESSAGE :{WHITE}Wir suchen eine Transportfirma, die unsere Firma übernimmt.{}{}Besteht Interesse daran, {COMPANY} für {CURRENCY_LONG} zu übernehmen? +STR_BUY_COMPANY_HOSTILE_TAKEOVER :{WHITE}Bei einer feindlichen Übernahme von {COMPANY} wirst du alle Vermögenswerte erwerben, alle Darlehen zurückzahlen und die Profite im Wert von zwei Jahren zahlen.{}{}Die Gesamtsumme wird auf {CURRENCY_LONG} geschätzt.{}{}Möchtest du mit der feindlichen Übernahme fortfahren? # Company infrastructure window STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastruktur von {COMPANY} @@ -3833,7 +3852,10 @@ STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Liste ve STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Aufträge an alle Fahrzeuge in der Liste verschicken STR_VEHICLE_LIST_REPLACE_VEHICLES :Fahrzeuge ersetzen STR_VEHICLE_LIST_SEND_FOR_SERVICING :Zur Wartung schicken +STR_VEHICLE_LIST_CREATE_GROUP :Gruppe erstellen STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Gewinn im laufenden Jahr: {CURRENCY_LONG} (vergangenes Jahr: {CURRENCY_LONG}) +STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] +STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING} {STRING} STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Ins Depot schicken STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Ins Depot schicken @@ -4553,6 +4575,8 @@ STR_TIMETABLE_EXPECTED :{BLACK}Voraussi STR_TIMETABLE_SCHEDULED :{BLACK}Fahrplanmäßig STR_TIMETABLE_EXPECTED_TOOLTIP :{BLACK}Umschalten zwischen Anzeige der erwarteten Ankunftszeit und des Fahrplans +STR_TIMETABLE_ARRIVAL :An: {COLOUR}{DATE_TINY} +STR_TIMETABLE_DEPARTURE :Ab: {COLOUR}{DATE_TINY} # Date window (for timetable) @@ -4611,7 +4635,7 @@ STR_AI_CONFIG_AI :{SILVER}KIs STR_AI_CONFIG_CHANGE_AI :{BLACK}KI auswählen STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Spielskript auswählen -STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Lade ein anderes Skript +STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Lade ein anderes Skript. Strg+Klick, um alle verfügbaren Versionen anzuzeigen STR_AI_CONFIG_CONFIGURE :{BLACK}Einstellungen STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Einstellungen des Skripts anzeigen oder ändern @@ -4657,6 +4681,7 @@ STR_TEXTFILE_VIEW_LICENCE :{BLACK}Lizenz STR_TEXTFILE_README_CAPTION :{WHITE}{STRING}-Liesmich von {STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING}-Änderungen von {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING}-Lizenz von {STRING} +STR_TEXTFILE_SURVEY_RESULT_CAPTION :{WHITE}Vorschau des Umfragenergebnisses # Vehicle loading indicators @@ -5606,6 +5631,8 @@ STR_JUST_DATE_SHORT :{DATE_SHORT} STR_JUST_DATE_LONG :{DATE_LONG} STR_JUST_DATE_ISO :{DATE_ISO} STR_JUST_STRING :{STRING} +STR_JUST_STRING1 :{STRING} +STR_JUST_STRING2 :{STRING} STR_JUST_STRING_STRING :{STRING}{STRING} STR_JUST_RAW_STRING :{STRING} STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index bf24a4b662..45a958961e 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1060,12 +1060,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}60Hz를 넘는 화면 주사율을 사용하면 성능에 영향이 갈 수도 있습니다. STR_GAME_OPTIONS_BASE_GRF :{BLACK}기본 그래픽 세트 -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}게임에 사용할 기본 그래픽 세트를 선택하세요 +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}게임에 사용할 기본 그래픽 세트를 선택하세요 (플레이 도중에는 변경할 수 없고 메인 메뉴에서만 변경 가능합니다) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM}개 파일 손실 STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}기본 그래픽 세트에 대한 추가 정보를 봅니다. STR_GAME_OPTIONS_BASE_SFX :{BLACK}기본 효과음 세트 -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}게임에 사용할 기본 효과음 세트를 선택하세요 +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}게임에 사용할 기본 효과음 세트를 선택하세요 (플레이 도중에는 변경할 수 없고 메인 메뉴에서만 변경 가능합니다) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}기본 효과음 세트에 대한 추가 정보를 봅니다. STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}기본 배경 음악 세트 From 83b6512032531a9f2b1ed88d39b97bba4bea2754 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 4 Jul 2023 22:53:46 +0200 Subject: [PATCH 22/58] Fix d5a72193: [CI] downloading single artifact doesn't add folder to it (#11107) --- .github/workflows/upload-gog.yml | 5 +++++ .github/workflows/upload-steam.yml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/upload-gog.yml b/.github/workflows/upload-gog.yml index e8143024a0..c1d0678859 100644 --- a/.github/workflows/upload-gog.yml +++ b/.github/workflows/upload-gog.yml @@ -18,26 +18,31 @@ jobs: uses: actions/download-artifact@v3 with: name: internal-source + path: internal-source - name: Download bundle (Windows x86) uses: actions/download-artifact@v3 with: name: openttd-windows-x86 + path: openttd-windows-x86 - name: Download bundle (Windows x64) uses: actions/download-artifact@v3 with: name: openttd-windows-x64 + path: openttd-windows-x64 - name: Download bundle (MacOS) uses: actions/download-artifact@v3 with: name: openttd-macos-universal + path: openttd-macos-universal - name: Download bundle (Linux) uses: actions/download-artifact@v3 with: name: openttd-linux-generic + path: openttd-linux-generic - name: Install GOG Galaxy Build Creator run: | diff --git a/.github/workflows/upload-steam.yml b/.github/workflows/upload-steam.yml index 2b0173f91f..808983f828 100644 --- a/.github/workflows/upload-steam.yml +++ b/.github/workflows/upload-steam.yml @@ -21,26 +21,31 @@ jobs: uses: actions/download-artifact@v3 with: name: internal-source + path: internal-source - name: Download bundle (Windows x86) uses: actions/download-artifact@v3 with: name: openttd-windows-x86 + path: openttd-windows-x86 - name: Download bundle (Windows x64) uses: actions/download-artifact@v3 with: name: openttd-windows-x64 + path: openttd-windows-x64 - name: Download bundle (MacOS) uses: actions/download-artifact@v3 with: name: openttd-macos-universal + path: openttd-macos-universal - name: Download bundle (Linux) uses: actions/download-artifact@v3 with: name: openttd-linux-generic + path: openttd-linux-generic - name: Setup steamcmd uses: CyberAndrii/setup-steamcmd@v1 From 9f28da4e3343b64111197169dec420734426599a Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 5 Jul 2023 18:42:59 +0000 Subject: [PATCH 23/58] Update: Translations from eints tamil: 3 changes by merni-ns --- src/lang/tamil.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 54112d2360..3c8c9255d7 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2239,6 +2239,7 @@ STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}தர STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}தேர்ந்தெடுத்தவற்றின் குறியினை நீக்கு STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}அனைத்தையும் பதிவிறக்க வேண்டாம் என்று குறிக்கவும் STR_CONTENT_SEARCH_EXTERNAL :{BLACK}வெளி இணையதளங்களில் தேடு +STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}OpenTTDஇன் கோப்பு சேவையில் கிடைக்காத கோப்புகளுக்கு OpenTTDஉடன் தொடர்பில்லாத இணையதளங்களில் தேடவும் STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}நீங்கள் OpenTTD ஐ விட்டு வெளியேறுகிறீர்கள்! STR_CONTENT_FILTER_TITLE :{BLACK}குறியீடு/பெயர் வடிகட்டி: STR_CONTENT_OPEN_URL :{BLACK}இணையதளத்தினை பார்வையிடு @@ -2449,6 +2450,7 @@ STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}நீ STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}கப்பல் பணிமனையினைக் கட்டவும்(கப்பல்களை வாங்க மற்றும் பழுதுபார்க்க). Shift அழுத்தினால் கட்டுமான/செலவு மதிப்பீடு காட்டப்படும் STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}கப்பல் துறைமுகத்தினைக் கட்டவும். Ctrl அழுத்தினால் துறைமுகங்களினை இணைக்கலாம். Shift அழுத்தினால் கட்டுமான/செலவு மதிப்பீடு காட்டப்படும் STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}நீர்வாழ்வை உருவாக்குங்கள். Shift கட்டிடம் கட்டுதல் / செலவு மதிப்பீட்டைக் காட்டும் +STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}நீர் பரப்பளவு வரையறுக்கவும்.{}கால்வாய் கட்டவும். கடல் மட்டத்தில் Ctrl அழுத்திவைத்தால், சுற்றில் வெள்ளமாக்கவும் STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}ஆறுகளை அமைக்கவும். Ctrl அழுத்தினால் குறுக்கான பகுதியைத் தேர்ந்தெடுக்கலாம் # Ship depot construction window @@ -2801,6 +2803,7 @@ STR_MAPGEN_QUANTITY_OF_RIVERS :{BLACK}ஆற STR_MAPGEN_SMOOTHNESS :{BLACK}சமநிலை: STR_MAPGEN_VARIETY :{BLACK}பலவகை பரவல்: STR_MAPGEN_GENERATE :{WHITE}உருவாக்கு +STR_MAPGEN_NEWGRF_SETTINGS :{BLACK}NewGRF அமைப்புகள் ###length 21 STR_MAPGEN_TOWN_NAME_ORIGINAL_ENGLISH :ஆங்கிலம் (இயற்கையான) From 5f2246eabf242e396fda49cf7239f1fd399b54cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guilloux?= Date: Thu, 6 Jul 2023 11:49:06 +0200 Subject: [PATCH 24/58] Fix 021c45c: [CMake] detection and use of nlohmann-json for emscripten (#11113) --- .github/workflows/ci-build.yml | 3 ++- .github/workflows/preview_build.yml | 3 ++- os/emscripten/cmake/Findnlohmann_json.cmake | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 6ddb2e5901..1baf2c7e9a 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -32,10 +32,11 @@ jobs: path: /emsdk/upstream/emscripten/cache key: 3.1.37-${{ runner.os }} - - name: Patch Emscripten to support LZMA + - name: Patch Emscripten to support LZMA and nlohmann-json run: | cd /emsdk/upstream/emscripten patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-liblzma.patch + patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-nlohmann-json.patch - name: Build (host tools) run: | diff --git a/.github/workflows/preview_build.yml b/.github/workflows/preview_build.yml index b73d993665..773b8ce3de 100644 --- a/.github/workflows/preview_build.yml +++ b/.github/workflows/preview_build.yml @@ -47,10 +47,11 @@ jobs: path: /emsdk/upstream/emscripten/cache key: 3.1.37-${{ runner.os }} - - name: Patch Emscripten to support LZMA + - name: Patch Emscripten to support LZMA and nlohmann_json run: | cd /emsdk/upstream/emscripten patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-liblzma.patch + patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-nlohmann-json.patch - name: Build (host tools) run: | diff --git a/os/emscripten/cmake/Findnlohmann_json.cmake b/os/emscripten/cmake/Findnlohmann_json.cmake index 6ff84544da..7e863a7cf8 100644 --- a/os/emscripten/cmake/Findnlohmann_json.cmake +++ b/os/emscripten/cmake/Findnlohmann_json.cmake @@ -6,10 +6,10 @@ set(CMAKE_REQUIRED_FLAGS "-sUSE_NLOHMANN_JSON=1") check_cxx_source_compiles(" #include int main() { return 0; }" - NLOHMANN_JSON_FOUND + nlohmann_json_FOUND ) -if (NLOHMANN_JSON_FOUND) +if (nlohmann_json_FOUND) add_library(nlohmann_json INTERFACE IMPORTED) set_target_properties(nlohmann_json PROPERTIES INTERFACE_COMPILE_OPTIONS "-sUSE_NLOHMANN_JSON=1" From 968de827d63c72c71b8b6f38ec0e19ea3d05b559 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 6 Jul 2023 18:50:27 +0200 Subject: [PATCH 25/58] Fix #11108, e2f583a: missing argument for SCC_CARGO_SHORT formatting --- src/strings.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/strings.cpp b/src/strings.cpp index dab5993328..37e0f6efa4 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -1213,15 +1213,17 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara switch (cargo_str) { case STR_TONS: { assert(_settings_game.locale.units_weight < lengthof(_units_weight)); - auto tmp_params = MakeParameters(_units_weight[_settings_game.locale.units_weight].c.ToDisplay(args.GetNextParameter())); - FormatString(builder, GetStringPtr(_units_weight[_settings_game.locale.units_weight].l), tmp_params); + const auto &x = _units_weight[_settings_game.locale.units_weight]; + auto tmp_params = MakeParameters(x.c.ToDisplay(args.GetNextParameter()), x.decimal_places); + FormatString(builder, GetStringPtr(x.l), tmp_params); break; } case STR_LITERS: { assert(_settings_game.locale.units_volume < lengthof(_units_volume)); - auto tmp_params = MakeParameters(_units_volume[_settings_game.locale.units_volume].c.ToDisplay(args.GetNextParameter())); - FormatString(builder, GetStringPtr(_units_volume[_settings_game.locale.units_volume].l), tmp_params); + const auto &x = _units_volume[_settings_game.locale.units_volume]; + auto tmp_params = MakeParameters(x.c.ToDisplay(args.GetNextParameter()), x.decimal_places); + FormatString(builder, GetStringPtr(x.l), tmp_params); break; } From b958a343fe24b4562a358e9fe3f5a50d6138a5af Mon Sep 17 00:00:00 2001 From: Rubidium Date: Wed, 5 Jul 2023 20:27:21 +0200 Subject: [PATCH 26/58] Codechange: the templated StrMakeValidInPlace is not in place --- src/string.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/string.cpp b/src/string.cpp index 5acc14147d..1de35f66bf 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -98,8 +98,20 @@ std::string FormatArrayAsHex(span data) } +/** + * Copies the valid (UTF-8) characters from \c str up to \c last to the \c dst. + * Depending on the \c settings invalid characters can be replaced with a + * question mark, as well as determining what characters are deemed invalid. + * + * It is allowed for \c dst to be the same as \c src, in which case the string + * is make valid in place. + * @param dst The destination to write to. + * @param str The string to validate. + * @param last The last valid character of str. + * @param settings The settings for the string validation. + */ template -static void StrMakeValidInPlace(T &dst, const char *str, const char *last, StringValidationSettings settings) +static void StrMakeValid(T &dst, const char *str, const char *last, StringValidationSettings settings) { /* Assume the ABSOLUTE WORST to be in str as it comes from the outside. */ @@ -173,7 +185,7 @@ static void StrMakeValidInPlace(T &dst, const char *str, const char *last, Strin void StrMakeValidInPlace(char *str, const char *last, StringValidationSettings settings) { char *dst = str; - StrMakeValidInPlace(dst, str, last, settings); + StrMakeValid(dst, str, last, settings); *dst = '\0'; } @@ -191,8 +203,9 @@ void StrMakeValidInPlace(char *str, StringValidationSettings settings) } /** - * Scans the string for invalid characters and replaces then with a - * question mark '?' (if not ignored). + * Copies the valid (UTF-8) characters from \c str to the returned string. + * Depending on the \c settings invalid characters can be replaced with a + * question mark, as well as determining what characters are deemed invalid. * @param str The string to validate. * @param settings The settings for the string validation. */ @@ -203,7 +216,7 @@ std::string StrMakeValid(std::string_view str, StringValidationSettings settings std::ostringstream dst; std::ostreambuf_iterator dst_iter(dst); - StrMakeValidInPlace(dst_iter, buf, last, settings); + StrMakeValid(dst_iter, buf, last, settings); return dst.str(); } From 18a31cca7ca68c3b102ced5ccfbae28f5675fe81 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Wed, 5 Jul 2023 19:36:35 +0200 Subject: [PATCH 27/58] Codechange: do not make a string valid in place, to then copy it --- src/newgrf.cpp | 9 +++------ src/saveload/gamelog_sl.cpp | 3 +-- src/script/script_instance.cpp | 3 +-- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 31efc7360e..2349f02888 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -2651,12 +2651,9 @@ static ChangeInfoResult LoadTranslationTable(uint gvid, int numinfo, ByteReader */ static std::string ReadDWordAsString(ByteReader *reader) { - char output[5]; - for (int i = 0; i < 4; i++) output[i] = reader->ReadByte(); - output[4] = '\0'; - StrMakeValidInPlace(output, lastof(output)); - - return std::string(output); + std::string output; + for (int i = 0; i < 4; i++) output.push_back(reader->ReadByte()); + return StrMakeValid(output); } /** diff --git a/src/saveload/gamelog_sl.cpp b/src/saveload/gamelog_sl.cpp index 0033f83ef4..7eb059414a 100644 --- a/src/saveload/gamelog_sl.cpp +++ b/src/saveload/gamelog_sl.cpp @@ -68,8 +68,7 @@ public: SlObject(lc, this->GetLoadDescription()); if (IsSavegameVersionBefore(SLV_STRING_GAMELOG)) { - StrMakeValidInPlace(SlGamelogRevision::revision_text, lastof(SlGamelogRevision::revision_text)); - static_cast(lc)->text = SlGamelogRevision::revision_text; + static_cast(lc)->text = StrMakeValid(std::string_view(SlGamelogRevision::revision_text, lengthof(SlGamelogRevision::revision_text))); } } diff --git a/src/script/script_instance.cpp b/src/script/script_instance.cpp index ab0adfb34d..32b8762e0d 100644 --- a/src/script/script_instance.cpp +++ b/src/script/script_instance.cpp @@ -573,8 +573,7 @@ bool ScriptInstance::IsPaused() SlObject(nullptr, _script_byte); static char buf[std::numeric_limits::max()]; SlCopy(buf, _script_sl_byte, SLE_CHAR); - StrMakeValidInPlace(buf, buf + _script_sl_byte); - if (data != nullptr) data->push_back(std::string(buf)); + if (data != nullptr) data->push_back(StrMakeValid(std::string_view(buf, _script_sl_byte))); return true; } From b2ccc19f2d13266f3aefd08260872c7397546314 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 6 Jul 2023 18:40:33 +0000 Subject: [PATCH 28/58] Update: Translations from eints vietnamese: 2 changes by KhoiCanDev --- src/lang/vietnamese.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 09ab232eff..ea6ebe9615 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1059,12 +1059,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Tần số quét hơn 60Hz có thể làm ảnh hưởng đến hiệu năng STR_GAME_OPTIONS_BASE_GRF :{BLACK}Gói đồ họa -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Chọn gói đồ họa để sử dụng +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Chọn gói đồ họa để sử dụng (không thể thay đổi khi trong ván chơi, chỉ đổi được khi ở menu chính) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} thiếu/hỏng file STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Thông tin thêm về gói đồ họa STR_GAME_OPTIONS_BASE_SFX :{BLACK}Bộ âm thanh chuẩn -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Chọn bộ âm thanh chuẩn để dùng +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Chọn bộ âm thanh chuẩn để dùng (không thể thay đổi khi trong ván chơi, chỉ đổi được khi ở menu chính) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Thông tin thêm về bộ âm thanh chuẩn STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Gói nhạc chuẩn From bd91d249ea396e3ffc6a89761f1f7b64cde3103a Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 7 Jul 2023 18:41:15 +0000 Subject: [PATCH 29/58] Update: Translations from eints dutch: 3 changes by Afoklala --- src/lang/dutch.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 610e421fa3..846e933a86 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -973,7 +973,7 @@ STR_GAME_OPTIONS_CURRENCY_ISK :IJslandse Kroon STR_GAME_OPTIONS_CURRENCY_ITL :Italiaanse Lire STR_GAME_OPTIONS_CURRENCY_NLG :Nederlandse Gulden STR_GAME_OPTIONS_CURRENCY_NOK :Noorse Kroon -STR_GAME_OPTIONS_CURRENCY_PLN :Poolse Zloty +STR_GAME_OPTIONS_CURRENCY_PLN :Poolse Złoty STR_GAME_OPTIONS_CURRENCY_RON :Roemeense Leu STR_GAME_OPTIONS_CURRENCY_RUR :Russische Roebel STR_GAME_OPTIONS_CURRENCY_SIT :Sloveense Tolar @@ -1059,12 +1059,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Verversingssnelheden boven 60 Hz kunnen de prestaties beïnvloeden. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisset voor graphics -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecteer de te gebruiken basisset voor grafische elementen +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecteer de te gebruiken basisset voor grafische elementen (kan tijdens het spel niet worden gewijzigd, alleen in het hoofdmenu) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ontbrekend{P "" e}/beschadigd{P "" e} bestand{P "" en} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Aanvullende informatie over de basisset voor graphics STR_GAME_OPTIONS_BASE_SFX :{BLACK}Basisset voor geluidseffecten -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Selecteer de te gebruiken basisset voor geluidseffecten +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Selecteer de te gebruiken basisset voor geluidseffecten (kan tijdens het spel niet worden gewijzigd, alleen in het hoofdmenu) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Aanvullende informatie over de basisset voor geluidseffecten STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Basisset voor muziek From c236ff356d76dacaef3a5bf9b194eb4987aae27a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guilloux?= Date: Fri, 7 Jul 2023 22:32:33 +0200 Subject: [PATCH 30/58] Codechange: [Emscripten] enable WASM_BIGINT (#11118) --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index f62917b50e..5339244f2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -347,6 +347,7 @@ if(EMSCRIPTEN) target_link_libraries(WASM::WASM INTERFACE "-s ALLOW_MEMORY_GROWTH=1") target_link_libraries(WASM::WASM INTERFACE "-s INITIAL_MEMORY=33554432") target_link_libraries(WASM::WASM INTERFACE "-s DISABLE_EXCEPTION_CATCHING=0") + target_link_libraries(WASM::WASM INTERFACE "-s WASM_BIGINT") add_definitions(-s DISABLE_EXCEPTION_CATCHING=0) # Export functions to Javascript. From 153323a4c023bbacf231fdc7ba564982e9f77644 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Fri, 7 Jul 2023 23:21:43 +0200 Subject: [PATCH 31/58] Fix: [Emscripten] actually link against nlohmann_json (#11120) We fake a plain (non-scoped) library, but we don't actually set the library to anything valid. In result, it is never actually linked. --- os/emscripten/cmake/Findnlohmann_json.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/os/emscripten/cmake/Findnlohmann_json.cmake b/os/emscripten/cmake/Findnlohmann_json.cmake index 7e863a7cf8..8a1c075ad0 100644 --- a/os/emscripten/cmake/Findnlohmann_json.cmake +++ b/os/emscripten/cmake/Findnlohmann_json.cmake @@ -15,6 +15,7 @@ if (nlohmann_json_FOUND) INTERFACE_COMPILE_OPTIONS "-sUSE_NLOHMANN_JSON=1" INTERFACE_LINK_LIBRARIES "-sUSE_NLOHMANN_JSON=1" ) + set(nlohmann_json_LIBRARY "nlohmann_json") else() message(WARNING "You are using an emscripten SDK without nlohmann-json support. Please apply 'emsdk-nlohmann_json.patch' to your local emsdk installation.") endif() From 323dd619bbea3d2fdd618dc864ccfb76640bdcc4 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 8 Jul 2023 12:30:27 +0200 Subject: [PATCH 32/58] Change: [CI] rework preview flow and use Cloudflare Pages to publish (#11116) --- .github/workflows/ci-build.yml | 4 +- .github/workflows/preview-build.yml | 107 ++++++++++++++++++++++ .github/workflows/preview.yml | 16 ++++ .github/workflows/preview_build.yml | 135 ---------------------------- .github/workflows/preview_label.yml | 66 -------------- .github/workflows/preview_push.yml | 66 -------------- os/emscripten/Dockerfile | 2 +- 7 files changed, 126 insertions(+), 270 deletions(-) create mode 100644 .github/workflows/preview-build.yml create mode 100644 .github/workflows/preview.yml delete mode 100644 .github/workflows/preview_build.yml delete mode 100644 .github/workflows/preview_label.yml delete mode 100644 .github/workflows/preview_push.yml diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 1baf2c7e9a..4f84a69ef3 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-20.04 container: # If you change this version, change the number in the cache step too. - image: emscripten/emsdk:3.1.37 + image: emscripten/emsdk:3.1.42 steps: - name: Checkout @@ -30,7 +30,7 @@ jobs: uses: actions/cache@v3 with: path: /emsdk/upstream/emscripten/cache - key: 3.1.37-${{ runner.os }} + key: 3.1.42-${{ runner.os }} - name: Patch Emscripten to support LZMA and nlohmann-json run: | diff --git a/.github/workflows/preview-build.yml b/.github/workflows/preview-build.yml new file mode 100644 index 0000000000..8b1360cdec --- /dev/null +++ b/.github/workflows/preview-build.yml @@ -0,0 +1,107 @@ +name: Preview build + +on: + workflow_call: + secrets: + PREVIEW_CLOUDFLARE_API_TOKEN: + description: API token to upload a preview to Cloudflare Pages + required: true + PREVIEW_CLOUDFLARE_ACCOUNT_ID: + description: Account ID to upload a preview to Cloudflare Pages + required: true + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + preview: + name: Build preview + + environment: + name: preview + url: https://preview.openttd.org/pr${{ github.event.pull_request.number }}/ + + runs-on: ubuntu-latest + container: + # If you change this version, change the number in the cache step too. + image: emscripten/emsdk:3.1.42 + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - name: Name branch + run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} + git checkout -b pr${{ github.event.pull_request.number }} + + - name: Setup cache + uses: actions/cache@v3 + with: + path: /emsdk/upstream/emscripten/cache + key: 3.1.42-${{ runner.os }} + + - name: Patch Emscripten to support LZMA and nlohmann_json + run: | + cd /emsdk/upstream/emscripten + patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-liblzma.patch + patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-nlohmann-json.patch + + - name: Build (host tools) + run: | + mkdir build-host + cd build-host + + echo "::group::CMake" + cmake .. -DOPTION_TOOLS_ONLY=ON + echo "::endgroup::" + + echo "::group::Build" + echo "Running on $(nproc) cores" + make -j$(nproc) tools + echo "::endgroup::" + + - name: Install GCC problem matcher + uses: ammaraskar/gcc-problem-matcher@master + + - name: Build + run: | + mkdir build + cd build + + echo "::group::CMake" + emcmake cmake .. \ + -DHOST_BINARY_DIR=../build-host \ + -DCMAKE_BUILD_TYPE=Release \ + # EOF + echo "::endgroup::" + + echo "::group::Build" + echo "Running on $(nproc) cores" + cmake --build . -j $(nproc) --target openttd + echo "::endgroup::" + + - name: Prepare preview + run: | + mkdir public + + cp build/openttd.data public/ + cp build/openttd.html public/ + cp build/openttd.js public/ + cp build/openttd.wasm public/ + + # Ensure we use the latest version of npm; the one we get with current + # emscripten doesn't allow running "npx wrangler" as root. + npm install -g npm + + - name: Publish preview + uses: cloudflare/pages-action@v1 + with: + apiToken: ${{ secrets.PREVIEW_CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.PREVIEW_CLOUDFLARE_ACCOUNT_ID }} + projectName: ${{ vars.PREVIEW_CLOUDFLARE_PROJECT_NAME }} + directory: public + branch: pr${{ github.event.pull_request.number }} diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml new file mode 100644 index 0000000000..590d8d392a --- /dev/null +++ b/.github/workflows/preview.yml @@ -0,0 +1,16 @@ +name: Preview + +on: + pull_request_target: + types: + - labeled + - synchronize + branches: + - master + +jobs: + preview: + if: ${{ (github.event.action == 'labeled' && github.event.label.name == 'preview') || (github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'preview')) }} + name: Preview + uses: ./.github/workflows/preview-build.yml + secrets: inherit diff --git a/.github/workflows/preview_build.yml b/.github/workflows/preview_build.yml deleted file mode 100644 index 773b8ce3de..0000000000 --- a/.github/workflows/preview_build.yml +++ /dev/null @@ -1,135 +0,0 @@ -name: Preview build - -on: - repository_dispatch: - types: - - Preview* - -jobs: - preview: - name: Build preview - - runs-on: ubuntu-20.04 - container: - # If you change this version, change the number in the cache step too. - image: emscripten/emsdk:3.1.37 - - steps: - - name: Update deployment status to in progress - uses: octokit/request-action@v2.x - with: - route: POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses - mediaType: | - previews: - - ant-man - - flash - owner: ${{ github.event.repository.owner.login }} - repo: ${{ github.event.repository.name }} - deployment_id: ${{ github.event.client_payload.deployment_id }} - state: in_progress - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - - - name: Checkout - uses: actions/checkout@v3 - with: - ref: ${{ github.event.client_payload.sha }} - - - name: Name branch - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - name=$(echo "${{ github.event.client_payload.folder }}") - git checkout -b ${name} - - - name: Setup cache - uses: actions/cache@v3 - with: - path: /emsdk/upstream/emscripten/cache - key: 3.1.37-${{ runner.os }} - - - name: Patch Emscripten to support LZMA and nlohmann_json - run: | - cd /emsdk/upstream/emscripten - patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-liblzma.patch - patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-nlohmann-json.patch - - - name: Build (host tools) - run: | - mkdir build-host - cd build-host - - echo "::group::CMake" - cmake .. -DOPTION_TOOLS_ONLY=ON - echo "::endgroup::" - - echo "::group::Build" - echo "Running on $(nproc) cores" - make -j$(nproc) tools - echo "::endgroup::" - - - name: Install GCC problem matcher - uses: ammaraskar/gcc-problem-matcher@master - - - name: Build - run: | - mkdir build - cd build - - echo "::group::CMake" - emcmake cmake .. \ - -DHOST_BINARY_DIR=../build-host \ - -DCMAKE_BUILD_TYPE=Release \ - # EOF - echo "::endgroup::" - - echo "::group::Build" - echo "Running on $(nproc) cores" - cmake --build . -j $(nproc) --target openttd - echo "::endgroup::" - - - name: Publish preview - run: | - pip3 install awscli - - aws s3 cp --only-show-errors build/openttd.data s3://${{ secrets.PREVIEW_S3_BUCKET }}/${{ github.event.client_payload.folder }}/ - aws s3 cp --only-show-errors build/openttd.html s3://${{ secrets.PREVIEW_S3_BUCKET }}/${{ github.event.client_payload.folder }}/ - aws s3 cp --only-show-errors build/openttd.js s3://${{ secrets.PREVIEW_S3_BUCKET }}/${{ github.event.client_payload.folder }}/ - aws s3 cp --only-show-errors build/openttd.wasm s3://${{ secrets.PREVIEW_S3_BUCKET }}/${{ github.event.client_payload.folder }}/ - - # Invalidate the cache of the CloudFront distribution - aws cloudfront create-invalidation --distribution-id ${{ secrets.PREVIEW_CF_DISTRIBUTION_ID }} --paths "/${{ github.event.client_payload.folder }}/*" - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - - name: Update deployment status to success - uses: octokit/request-action@v2.x - with: - route: POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses - mediaType: | - previews: - - ant-man - - flash - owner: ${{ github.event.repository.owner.login }} - repo: ${{ github.event.repository.name }} - deployment_id: ${{ github.event.client_payload.deployment_id }} - state: success - environment_url: https://preview.openttd.org/${{ github.event.client_payload.folder }}/ - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - - - if: failure() - name: Update deployment status to failure - uses: octokit/request-action@v2.x - with: - route: POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses - mediaType: | - previews: - - ant-man - - flash - owner: ${{ github.event.repository.owner.login }} - repo: ${{ github.event.repository.name }} - deployment_id: ${{ github.event.client_payload.deployment_id }} - state: failure - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} diff --git a/.github/workflows/preview_label.yml b/.github/workflows/preview_label.yml deleted file mode 100644 index 503d4e53eb..0000000000 --- a/.github/workflows/preview_label.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: Preview label - -on: - pull_request_target: - types: - - labeled - -env: - TEAM_CORE_DEVELOPER: core-developers - -jobs: - check_preview_label: - name: Check for preview label - if: github.event.action == 'labeled' && github.event.label.name == 'preview' - - runs-on: ubuntu-20.04 - - steps: - - name: Check if label was added by core developer - id: core_developer - continue-on-error: true - uses: octokit/request-action@v2.x - with: - route: GET /orgs/OpenTTD/teams/${{ env.TEAM_CORE_DEVELOPER }}/memberships/${{ github.event.sender.login }} - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - - - if: steps.core_developer.outcome == 'failure' - name: Remove preview label if not core developer - uses: octokit/request-action@v2.x - with: - route: DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/preview - owner: ${{ github.event.repository.owner.login }} - repo: ${{ github.event.repository.name }} - issue_number: ${{ github.event.number }} - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - - - if: steps.core_developer.outcome == 'success' - name: Create deployment - id: deployment - uses: octokit/request-action@v2.x - with: - route: POST /repos/{owner}/{repo}/deployments - mediaType: | - previews: - - ant-man - - flash - owner: ${{ github.event.repository.owner.login }} - repo: ${{ github.event.repository.name }} - ref: ${{ github.event.pull_request.head.sha }} - task: deploy:preview - auto_merge: false - required_contexts: "[]" - environment: preview-pr-${{ github.event.number }} - description: "Preview for Pull Request #${{ github.event.number }}" - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - - - if: steps.core_developer.outcome == 'success' - name: Trigger 'preview build' - uses: peter-evans/repository-dispatch@v2 - with: - token: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - event-type: "Preview build #${{ github.event.number }}" - client-payload: '{"folder": "pr${{ github.event.number }}", "sha": "${{ github.event.pull_request.head.sha }}", "deployment_id": "${{ fromJson(steps.deployment.outputs.data).id }}"}' diff --git a/.github/workflows/preview_push.yml b/.github/workflows/preview_push.yml deleted file mode 100644 index 3868c16f90..0000000000 --- a/.github/workflows/preview_push.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: Preview push - -on: - pull_request_target: - types: - - synchronize - -jobs: - check_new_preview: - name: Check preview needs update - - runs-on: ubuntu-20.04 - - steps: - - name: Check if earlier preview exists - id: earlier_preview - uses: octokit/request-action@v2.x - with: - route: GET /repos/{owner}/{repo}/deployments - owner: ${{ github.event.repository.owner.login }} - repo: ${{ github.event.repository.name }} - environment: preview-pr-${{ github.event.number }} - per_page: 1 - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - - - if: toJson(fromJson(steps.earlier_preview.outputs.data)) != '[]' - name: Check for preview label - id: preview_label - uses: octokit/request-action@v2.x - with: - route: GET /repos/{owner}/{repo}/issues/{issue_number}/labels - owner: ${{ github.event.repository.owner.login }} - repo: ${{ github.event.repository.name }} - issue_number: ${{ github.event.number }} - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - - - if: toJson(fromJson(steps.earlier_preview.outputs.data)) != '[]' && contains(fromJson(steps.preview_label.outputs.data).*.name, 'preview') - name: Create deployment - id: deployment - uses: octokit/request-action@v2.x - with: - route: POST /repos/{owner}/{repo}/deployments - mediaType: | - previews: - - ant-man - - flash - owner: ${{ github.event.repository.owner.login }} - repo: ${{ github.event.repository.name }} - ref: ${{ github.event.pull_request.head.sha }} - task: deploy:preview - auto_merge: false - required_contexts: "[]" - environment: preview-pr-${{ github.event.number }} - description: "Preview for Pull Request #${{ github.event.number }}" - env: - GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - - - if: toJson(fromJson(steps.earlier_preview.outputs.data)) != '[]' && contains(fromJson(steps.preview_label.outputs.data).*.name, 'preview') - name: Trigger 'preview build' - uses: peter-evans/repository-dispatch@v2 - with: - token: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - event-type: "Preview build #${{ github.event.number }}" - client-payload: '{"folder": "pr${{ github.event.number }}", "sha": "${{ github.event.pull_request.head.sha }}", "deployment_id": "${{ fromJson(steps.deployment.outputs.data).id }}"}' diff --git a/os/emscripten/Dockerfile b/os/emscripten/Dockerfile index 4ded7fe57c..60a2c6985f 100644 --- a/os/emscripten/Dockerfile +++ b/os/emscripten/Dockerfile @@ -1,4 +1,4 @@ -FROM emscripten/emsdk:3.1.37 +FROM emscripten/emsdk:3.1.42 COPY emsdk-liblzma.patch / RUN cd /emsdk/upstream/emscripten && patch -p1 < /emsdk-liblzma.patch From dadcade81c511dae87def5549c32f92ef19a5f9c Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 8 Jul 2023 14:10:15 +0200 Subject: [PATCH 33/58] Fix: [CI] preview for one PR could cancel the preview of another (#11121) --- .github/workflows/preview-build.yml | 4 ---- .github/workflows/preview.yml | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/preview-build.yml b/.github/workflows/preview-build.yml index 8b1360cdec..a968899edf 100644 --- a/.github/workflows/preview-build.yml +++ b/.github/workflows/preview-build.yml @@ -10,10 +10,6 @@ on: description: Account ID to upload a preview to Cloudflare Pages required: true -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number }} - cancel-in-progress: true - jobs: preview: name: Build preview diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 590d8d392a..97ab31955b 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -8,6 +8,10 @@ on: branches: - master +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + jobs: preview: if: ${{ (github.event.action == 'labeled' && github.event.label.name == 'preview') || (github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'preview')) }} From 119ac66c5c70da2cff0cb434597755aa1a5dd78f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guilloux?= Date: Sat, 8 Jul 2023 16:54:39 +0200 Subject: [PATCH 34/58] Fix: [Bootstrap] don't crash when failing to connect to content server (#11122) --- src/bootstrap_gui.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/bootstrap_gui.cpp b/src/bootstrap_gui.cpp index b77e72049b..57d7e96fd2 100644 --- a/src/bootstrap_gui.cpp +++ b/src/bootstrap_gui.cpp @@ -263,6 +263,14 @@ public: void OnConnect(bool success) override { + if (!success) { + UserError("Failed to connect to content server. Please acquire a graphics set for OpenTTD. See section 1.4 of README.md."); + /* _exit_game is used to break out of the outer video driver's MainLoop. */ + _exit_game = true; + this->Close(); + return; + } + /* Once connected, request the metadata. */ _network_content_client.RequestContentList(CONTENT_TYPE_BASE_GRAPHICS); } From a54c28f2c3f720831a58cfcfc5d0d034efe91b22 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 8 Jul 2023 18:39:43 +0000 Subject: [PATCH 35/58] Update: Translations from eints polish: 3 changes by pAter-exe --- src/lang/polish.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 9e14dca33d..4ff68338fe 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -1439,12 +1439,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Częstotliwość odświeżania wyższa niż 60Hz może mieć wpływ na wydajność. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Podstawowy zestaw grafik -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Wybierz podstawowy zestaw grafik do użycia +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Wybierz podstawowy zestaw grafik (nie można tego zmienić w trakcie gry, jedynie w menu głównym) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} brak/uszkodzony plik{P "" i ów} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Dodatkowe informacje o grafice STR_GAME_OPTIONS_BASE_SFX :{BLACK}Podstawowy zestaw dźwięków -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Wybierz podstawowy zestaw dźwięków do użycia +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Wybierz podstawowy zestaw dźwięków (nie można tego zmienić w trakcie gry, jedynie w menu głównym) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Dodatkowe informacje o zestawie podstawowych dźwięków STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Podstawowy zestaw muzyki @@ -2962,7 +2962,7 @@ STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD STR_CONTENT_NO_ZLIB_SUB :{WHITE}... pobieranie zawartości nie jest możliwe! # Order of these is important! -STR_CONTENT_TYPE_BASE_GRAPHICS :Grafiki bazowe +STR_CONTENT_TYPE_BASE_GRAPHICS :Podstawowa grafika STR_CONTENT_TYPE_NEWGRF :NewGRF STR_CONTENT_TYPE_AI :SI STR_CONTENT_TYPE_AI_LIBRARY :Biblioteka SI From d3181375a4174497d0718048ad3698178276cc16 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 9 Jul 2023 18:39:28 +0000 Subject: [PATCH 36/58] Update: Translations from eints danish: 2 changes by bscargo french: 2 changes by Lishouuu --- src/lang/danish.txt | 4 ++-- src/lang/french.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 525fed90c3..4606a7b47d 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -1059,12 +1059,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Opdateringshastigheder over 60Hz kan påvirke ydeevnen. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basis-grafiksæt -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vælg det basis-grafiksæt der skal bruges +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vælg det grundlæggende grafiksæt, der skal bruges STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} forsvund{P en ne}/ødelagt{P "" e} fil{P "" er} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Yderligere information om basis-grafiksættet STR_GAME_OPTIONS_BASE_SFX :{BLACK}Basis-lydsæt -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Vælg basis-lydsættet der skal bruges +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Vælg det grundlæggende lyd sæt, der skal bruges STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Mere information om basis-lydsættet STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Basis-musiksæt diff --git a/src/lang/french.txt b/src/lang/french.txt index 818e417de6..6df23d03fa 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1060,12 +1060,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE} Les taux de rafraîchissement supérieurs à 60Hz peuvent avoir un impact sur les performances. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Graphiques de base -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Sélectionner les graphiques de base à utiliser +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Sélectionner les graphiques de base à utiliser (ne peuvent pas être modifiés en jeu, que depuis le menu principal) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fichier{P "" s} manquant{P "" s}/corrompu{P "" s} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Informations additionnelles sur les graphiques de base STR_GAME_OPTIONS_BASE_SFX :{BLACK}Sons de base -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Sélectionner les sons de base à utiliser +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Sélectionner les sons de base à utiliser (ne peuvent pas être modifiés en jeu, que depuis le menu principal) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Informations additionnelles sur les sons de base STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Musique de base From 7ef6e990835ac7db6eaf7d9ce0ef4ef9556914b5 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 11 Jul 2023 15:14:50 +0200 Subject: [PATCH 37/58] Fix: [CI] actually use the GitHub Apps token to trigger "Publish Docs" (#11128) --- .github/workflows/upload-cdn.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-cdn.yml b/.github/workflows/upload-cdn.yml index 735c8ef8b6..f7f925222c 100644 --- a/.github/workflows/upload-cdn.yml +++ b/.github/workflows/upload-cdn.yml @@ -97,7 +97,7 @@ jobs: - name: Trigger 'Publish Docs' uses: peter-evans/repository-dispatch@v2 with: - token: ${{ secrets.DEPLOYMENT_TOKEN }} + token: ${{ steps.generate_token.outputs.token }} repository: OpenTTD/workflows event-type: publish-docs client-payload: '{"version": "${{ inputs.version }}", "folder": "${{ inputs.folder }}"}' From 97138acc8a05ba4d2bf631fb72533ac28ae88fbb Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 12 Jul 2023 15:15:24 +0200 Subject: [PATCH 38/58] Codechange: make date-related variables constexpr (#11129) This hints the compiler even more to result math-related questions compile-time. --- src/date_type.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/date_type.h b/src/date_type.h index 1544f71d87..8bbc7ac252 100644 --- a/src/date_type.h +++ b/src/date_type.h @@ -45,18 +45,18 @@ static const int INDUSTRY_CUT_TREE_TICKS = INDUSTRY_PRODUCE_TICKS * 2; ///< cyc */ /** The minimum starting year/base year of the original TTD */ -static const TimerGameCalendar::Year ORIGINAL_BASE_YEAR = 1920; +static constexpr TimerGameCalendar::Year ORIGINAL_BASE_YEAR = 1920; /** The original ending year */ -static const TimerGameCalendar::Year ORIGINAL_END_YEAR = 2051; +static constexpr TimerGameCalendar::Year ORIGINAL_END_YEAR = 2051; /** The maximum year of the original TTD */ -static const TimerGameCalendar::Year ORIGINAL_MAX_YEAR = 2090; +static constexpr TimerGameCalendar::Year ORIGINAL_MAX_YEAR = 2090; /** * Calculate the date of the first day of a given year. * @param year the year to get the first day of. * @return the date. */ -static inline TimerGameCalendar::Date DateAtStartOfYear(TimerGameCalendar::Year year) +static constexpr TimerGameCalendar::Date DateAtStartOfYear(TimerGameCalendar::Year year) { uint number_of_leap_years = (year == 0) ? 0 : ((year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400 + 1); @@ -66,27 +66,27 @@ static inline TimerGameCalendar::Date DateAtStartOfYear(TimerGameCalendar::Year /** * The date of the first day of the original base year. */ -static const TimerGameCalendar::Date DAYS_TILL_ORIGINAL_BASE_YEAR = DateAtStartOfYear(ORIGINAL_BASE_YEAR); +static constexpr TimerGameCalendar::Date DAYS_TILL_ORIGINAL_BASE_YEAR = DateAtStartOfYear(ORIGINAL_BASE_YEAR); /** The absolute minimum & maximum years in OTTD */ -static const TimerGameCalendar::Year MIN_YEAR = 0; +static constexpr TimerGameCalendar::Year MIN_YEAR = 0; /** The default starting year */ -static const TimerGameCalendar::Year DEF_START_YEAR = 1950; +static constexpr TimerGameCalendar::Year DEF_START_YEAR = 1950; /** The default scoring end year */ -static const TimerGameCalendar::Year DEF_END_YEAR = ORIGINAL_END_YEAR - 1; +static constexpr TimerGameCalendar::Year DEF_END_YEAR = ORIGINAL_END_YEAR - 1; /** * MAX_YEAR, nicely rounded value of the number of years that can * be encoded in a single 32 bits date, about 2^31 / 366 years. */ -static const TimerGameCalendar::Year MAX_YEAR = 5000000; +static constexpr TimerGameCalendar::Year MAX_YEAR = 5000000; /** The date of the last day of the max year. */ -static const TimerGameCalendar::Date MAX_DATE = DateAtStartOfYear(MAX_YEAR + 1) - 1; +static constexpr TimerGameCalendar::Date MAX_DATE = DateAtStartOfYear(MAX_YEAR + 1) - 1; -static const TimerGameCalendar::Year INVALID_YEAR = -1; ///< Representation of an invalid year -static const TimerGameCalendar::Date INVALID_DATE = -1; ///< Representation of an invalid date -static const Ticks INVALID_TICKS = -1; ///< Representation of an invalid number of ticks +static constexpr TimerGameCalendar::Year INVALID_YEAR = -1; ///< Representation of an invalid year +static constexpr TimerGameCalendar::Date INVALID_DATE = -1; ///< Representation of an invalid date +static constexpr Ticks INVALID_TICKS = -1; ///< Representation of an invalid number of ticks #endif /* DATE_TYPE_H */ From ab19882e9424e10c42f341cc73e700ac57618270 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 12 Jul 2023 15:54:44 +0200 Subject: [PATCH 39/58] Codechange: hint in all branches of ClampTo to resolve compile-time (#11130) --- src/core/math_func.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/math_func.hpp b/src/core/math_func.hpp index a9784dee51..c8916fb051 100644 --- a/src/core/math_func.hpp +++ b/src/core/math_func.hpp @@ -168,12 +168,12 @@ constexpr To ClampTo(From value) static_assert(std::numeric_limits::is_integer, "Do not clamp from non-integer values"); static_assert(std::numeric_limits::is_integer, "Do not clamp to non-integer values"); - if (sizeof(To) >= sizeof(From) && std::numeric_limits::is_signed == std::numeric_limits::is_signed) { + if constexpr (sizeof(To) >= sizeof(From) && std::numeric_limits::is_signed == std::numeric_limits::is_signed) { /* Same signedness and To type is larger or equal than From type, no clamping is required. */ return static_cast(value); } - if (sizeof(To) > sizeof(From) && std::numeric_limits::is_signed) { + if constexpr (sizeof(To) > sizeof(From) && std::numeric_limits::is_signed) { /* Signed destination and a larger To type, no clamping is required. */ return static_cast(value); } From 9f6fec01cd3a207bd64d6e9fb087d21fe6257576 Mon Sep 17 00:00:00 2001 From: rubidium42 Date: Wed, 12 Jul 2023 19:20:02 +0200 Subject: [PATCH 40/58] Codechange: rename cargo aging days to periods, as they are not really days (#11112) --- src/cargopacket.cpp | 30 ++++++++++++------------ src/cargopacket.h | 41 +++++++++++++++++---------------- src/cargotype.h | 2 +- src/economy.cpp | 39 ++++++++++++++++--------------- src/economy_func.h | 2 +- src/newgrf.cpp | 4 ++-- src/newgrf_engine.cpp | 2 +- src/newgrf_station.cpp | 4 ++-- src/saveload/cargopacket_sl.cpp | 5 ++-- src/saveload/oldloader_sl.cpp | 10 ++++---- src/saveload/saveload.h | 1 + src/saveload/station_sl.cpp | 8 +++---- src/saveload/vehicle_sl.cpp | 6 ++--- src/table/cargo_const.h | 4 ++-- 14 files changed, 82 insertions(+), 76 deletions(-) diff --git a/src/cargopacket.cpp b/src/cargopacket.cpp index a72e8fe622..b4562a524c 100644 --- a/src/cargopacket.cpp +++ b/src/cargopacket.cpp @@ -44,7 +44,7 @@ CargoPacket::CargoPacket() CargoPacket::CargoPacket(StationID source, TileIndex source_xy, uint16 count, SourceType source_type, SourceID source_id) : feeder_share(0), count(count), - days_in_transit(0), + periods_in_transit(0), source_id(source_id), source(source), source_xy(source_xy), @@ -58,7 +58,7 @@ CargoPacket::CargoPacket(StationID source, TileIndex source_xy, uint16 count, So * Creates a new cargo packet. Initializes the fields that cannot be changed later. * Used when loading or splitting packets. * @param count Number of cargo entities to put in this packet. - * @param days_in_transit Number of days the cargo has been in transit. + * @param periods_in_transit Number of cargo aging periods the cargo has been in transit. * @param source Station the cargo was initially loaded. * @param source_xy Station location the cargo was initially loaded. * @param loaded_at_xy Location the cargo was loaded last. @@ -68,10 +68,10 @@ CargoPacket::CargoPacket(StationID source, TileIndex source_xy, uint16 count, So * @note We have to zero memory ourselves here because we are using a 'new' * that, in contrary to all other pools, does not memset to 0. */ -CargoPacket::CargoPacket(uint16 count, uint16 days_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share, SourceType source_type, SourceID source_id) : +CargoPacket::CargoPacket(uint16 count, uint16 periods_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share, SourceType source_type, SourceID source_id) : feeder_share(feeder_share), count(count), - days_in_transit(days_in_transit), + periods_in_transit(periods_in_transit), source_id(source_id), source(source), source_xy(source_xy), @@ -91,7 +91,7 @@ CargoPacket *CargoPacket::Split(uint new_size) if (!CargoPacket::CanAllocateItem()) return nullptr; Money fs = this->FeederShare(new_size); - CargoPacket *cp_new = new CargoPacket(new_size, this->days_in_transit, this->source, this->source_xy, this->loaded_at_xy, fs, this->source_type, this->source_id); + CargoPacket *cp_new = new CargoPacket(new_size, this->periods_in_transit, this->source, this->source_xy, this->loaded_at_xy, fs, this->source_type, this->source_id); this->feeder_share -= fs; this->count -= new_size; return cp_new; @@ -171,7 +171,7 @@ void CargoList::OnCleanPool() /** * Update the cached values to reflect the removal of this packet or part of it. - * Decreases count and days_in_transit. + * Decreases count and periods_in_transit. * @param cp Packet to be removed from cache. * @param count Amount of cargo from the given packet to be removed. */ @@ -180,19 +180,19 @@ void CargoList::RemoveFromCache(const CargoPacket *cp, uint count) { assert(count <= cp->count); this->count -= count; - this->cargo_days_in_transit -= static_cast(cp->days_in_transit) * count; + this->cargo_periods_in_transit -= static_cast(cp->periods_in_transit) * count; } /** * Update the cache to reflect adding of this packet. - * Increases count and days_in_transit. + * Increases count and periods_in_transit. * @param cp New packet to be inserted. */ template void CargoList::AddToCache(const CargoPacket *cp) { this->count += cp->count; - this->cargo_days_in_transit += static_cast(cp->days_in_transit) * cp->count; + this->cargo_periods_in_transit += static_cast(cp->periods_in_transit) * cp->count; } /** Invalidates the cached data and rebuilds it. */ @@ -200,7 +200,7 @@ template void CargoList::InvalidateCache() { this->count = 0; - this->cargo_days_in_transit = 0; + this->cargo_periods_in_transit = 0; for (ConstIterator it(this->packets.begin()); it != this->packets.end(); it++) { static_cast(this)->AddToCache(*it); @@ -326,7 +326,7 @@ void VehicleCargoList::PopCargo(Taction action) /** * Update the cached values to reflect the removal of this packet or part of it. - * Decreases count, feeder share and days_in_transit. + * Decreases count, feeder share and periods_in_transit. * @param cp Packet to be removed from cache. * @param count Amount of cargo from the given packet to be removed. */ @@ -338,7 +338,7 @@ void VehicleCargoList::RemoveFromCache(const CargoPacket *cp, uint count) /** * Update the cache to reflect adding of this packet. - * Increases count, feeder share and days_in_transit. + * Increases count, feeder share and periods_in_transit. * @param cp New packet to be inserted. */ void VehicleCargoList::AddToCache(const CargoPacket *cp) @@ -382,10 +382,10 @@ void VehicleCargoList::AgeCargo() { for (const auto &cp : this->packets) { /* If we're at the maximum, then we can't increase no more. */ - if (cp->days_in_transit == UINT16_MAX) continue; + if (cp->periods_in_transit == UINT16_MAX) continue; - cp->days_in_transit++; - this->cargo_days_in_transit += cp->count; + cp->periods_in_transit++; + this->cargo_periods_in_transit += cp->count; } } diff --git a/src/cargopacket.h b/src/cargopacket.h index c4ba7e5cf6..b1fe8112d6 100644 --- a/src/cargopacket.h +++ b/src/cargopacket.h @@ -43,7 +43,7 @@ struct CargoPacket : CargoPacketPool::PoolItem<&_cargopacket_pool> { private: Money feeder_share; ///< Value of feeder pickup to be paid for on delivery of cargo. uint16 count; ///< The amount of cargo in this packet. - uint16 days_in_transit; ///< Amount of days this packet has been in transit. + uint16 periods_in_transit; ///< Amount of cargo aging periods this packet has been in transit. SourceType source_type; ///< Type of \c source_id. SourceID source_id; ///< Index of source, INVALID_SOURCE if unknown/invalid. StationID source; ///< The station where the cargo came from first. @@ -65,7 +65,7 @@ public: CargoPacket(); CargoPacket(StationID source, TileIndex source_xy, uint16 count, SourceType source_type, SourceID source_id); - CargoPacket(uint16 count, uint16 days_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share = 0, SourceType source_type = SourceType::Industry, SourceID source_id = INVALID_SOURCE); + CargoPacket(uint16 count, uint16 periods_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share = 0, SourceType source_type = SourceType::Industry, SourceID source_id = INVALID_SOURCE); /** Destroy the packet. */ ~CargoPacket() { } @@ -123,14 +123,15 @@ public: } /** - * Gets the number of days this cargo has been in transit. - * This number isn't really in days, but in 2.5 days (CARGO_AGING_TICKS = 185 ticks) and - * it is capped at UINT16_MAX. + * Gets the number of cargo aging periods this cargo has been in transit. + * By default a period is 2.5 days (CARGO_AGING_TICKS = 185 ticks), however + * vehicle NewGRFs can overide the length of the cargo aging period. The + * value is capped at UINT16_MAX. * @return Length this cargo has been in transit. */ - inline uint16 DaysInTransit() const + inline uint16 PeriodsInTransit() const { - return this->days_in_transit; + return this->periods_in_transit; } /** @@ -221,7 +222,7 @@ public: protected: uint count; ///< Cache for the number of cargo entities. - uint64 cargo_days_in_transit; ///< Cache for the sum of number of days in transit of each entity; comparable to man-hours. + uint64 cargo_periods_in_transit; ///< Cache for the sum of number of cargo aging periods in transit of each entity; comparable to man-hours. Tcont packets; ///< The cargo packets in this list. @@ -249,12 +250,12 @@ public: } /** - * Returns average number of days in transit for a cargo entity. + * Returns average number of cargo aging periods in transit for a cargo entity. * @return The before mentioned number. */ - inline uint DaysInTransit() const + inline uint PeriodsInTransit() const { - return this->count == 0 ? 0 : this->cargo_days_in_transit / this->count; + return this->count == 0 ? 0 : this->cargo_periods_in_transit / this->count; } void InvalidateCache(); @@ -431,11 +432,11 @@ public: */ static bool AreMergable(const CargoPacket *cp1, const CargoPacket *cp2) { - return cp1->source_xy == cp2->source_xy && - cp1->days_in_transit == cp2->days_in_transit && - cp1->source_type == cp2->source_type && - cp1->source_id == cp2->source_id && - cp1->loaded_at_xy == cp2->loaded_at_xy; + return cp1->source_xy == cp2->source_xy && + cp1->periods_in_transit == cp2->periods_in_transit && + cp1->source_type == cp2->source_type && + cp1->source_id == cp2->source_id && + cp1->loaded_at_xy == cp2->loaded_at_xy; } }; @@ -546,10 +547,10 @@ public: */ static bool AreMergable(const CargoPacket *cp1, const CargoPacket *cp2) { - return cp1->source_xy == cp2->source_xy && - cp1->days_in_transit == cp2->days_in_transit && - cp1->source_type == cp2->source_type && - cp1->source_id == cp2->source_id; + return cp1->source_xy == cp2->source_xy && + cp1->periods_in_transit == cp2->periods_in_transit && + cp1->source_type == cp2->source_type && + cp1->source_id == cp2->source_id; } }; diff --git a/src/cargotype.h b/src/cargotype.h index 76d5aa5cf2..1cd91f864b 100644 --- a/src/cargotype.h +++ b/src/cargotype.h @@ -61,7 +61,7 @@ struct CargoSpec { uint8 weight; ///< Weight of a single unit of this cargo type in 1/16 ton (62.5 kg). uint16 multiplier; ///< Capacity multiplier for vehicles. (8 fractional bits) int32 initial_payment; ///< Initial payment rate before inflation is applied. - uint8 transit_days[2]; + uint8 transit_periods[2]; bool is_freight; ///< Cargo type is considered to be freight (affects train freight multiplier). TownEffect town_effect; ///< The effect that delivering this cargo type has on towns. Also affects destination of subsidies. diff --git a/src/economy.cpp b/src/economy.cpp index 8f5dc9333f..01ffa2eade 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -975,7 +975,7 @@ Money GetPrice(Price index, uint cost_factor, const GRFFile *grf_file, int shift return cost; } -Money GetTransportedGoodsIncome(uint num_pieces, uint dist, uint16 transit_days, CargoID cargo_type) +Money GetTransportedGoodsIncome(uint num_pieces, uint dist, uint16 transit_periods, CargoID cargo_type) { const CargoSpec *cs = CargoSpec::Get(cargo_type); if (!cs->IsValid()) { @@ -985,7 +985,7 @@ Money GetTransportedGoodsIncome(uint num_pieces, uint dist, uint16 transit_days, /* Use callback to calculate cargo profit, if available */ if (HasBit(cs->callback_mask, CBM_CARGO_PROFIT_CALC)) { - uint32 var18 = ClampTo(dist) | (ClampTo(num_pieces) << 16) | (ClampTo(transit_days) << 24); + uint32 var18 = ClampTo(dist) | (ClampTo(num_pieces) << 16) | (ClampTo(transit_periods) << 24); uint16 callback = GetCargoCallback(CBID_CARGO_PROFIT_CALC, 0, var18, cs); if (callback != CALLBACK_FAILED) { int result = GB(callback, 0, 14); @@ -1005,17 +1005,20 @@ Money GetTransportedGoodsIncome(uint num_pieces, uint dist, uint16 transit_days, static const int TIME_FACTOR_FRAC_BITS = 4; static const int TIME_FACTOR_FRAC = 1 << TIME_FACTOR_FRAC_BITS; - const int days1 = cs->transit_days[0]; - const int days2 = cs->transit_days[1]; - const int days_over_days1 = std::max( transit_days - days1, 0); - const int days_over_days2 = std::max(days_over_days1 - days2, 0); - int days_over_max = MIN_TIME_FACTOR - MAX_TIME_FACTOR; - if (days2 > -days_over_max) days_over_max += transit_days - days1; - else days_over_max += 2 * (transit_days - days1) - days2; + const int periods1 = cs->transit_periods[0]; + const int periods2 = cs->transit_periods[1]; + const int periods_over_periods1 = std::max(transit_periods - periods1, 0); + const int periods_over_periods2 = std::max(periods_over_periods1 - periods2, 0); + int periods_over_max = MIN_TIME_FACTOR - MAX_TIME_FACTOR; + if (periods2 > -periods_over_max) { + periods_over_max += transit_periods - periods1; + } else { + periods_over_max += 2 * (transit_periods - periods1) - periods2; + } /* * The time factor is calculated based on the time it took - * (transit_days) compared two cargo-depending values. The + * (transit_periods) compared two cargo-depending values. The * range is divided into four parts: * * - constant for fast transits @@ -1024,11 +1027,11 @@ Money GetTransportedGoodsIncome(uint num_pieces, uint dist, uint16 transit_days, * - after hitting MIN_TIME_FACTOR, the time factor will be asymptotically decreased to a limit of 1 with a scaled 1/(x+1) function. * */ - if (days_over_max > 0) { - const int time_factor = std::max(2 * MIN_TIME_FACTOR * TIME_FACTOR_FRAC * TIME_FACTOR_FRAC / (days_over_max + 2 * TIME_FACTOR_FRAC), 1); // MIN_TIME_FACTOR / (x/(2 * TIME_FACTOR_FRAC) + 1) + 1, expressed as fixed point with TIME_FACTOR_FRAC_BITS. + if (periods_over_max > 0) { + const int time_factor = std::max(2 * MIN_TIME_FACTOR * TIME_FACTOR_FRAC * TIME_FACTOR_FRAC / (periods_over_max + 2 * TIME_FACTOR_FRAC), 1); // MIN_TIME_FACTOR / (x/(2 * TIME_FACTOR_FRAC) + 1) + 1, expressed as fixed point with TIME_FACTOR_FRAC_BITS. return BigMulS(dist * time_factor * num_pieces, cs->current_payment, 21 + TIME_FACTOR_FRAC_BITS); } else { - const int time_factor = std::max(MAX_TIME_FACTOR - days_over_days1 - days_over_days2, MIN_TIME_FACTOR); + const int time_factor = std::max(MAX_TIME_FACTOR - periods_over_periods1 - periods_over_periods2, MIN_TIME_FACTOR); return BigMulS(dist * time_factor * num_pieces, cs->current_payment, 21); } } @@ -1094,14 +1097,14 @@ static uint DeliverGoodsToIndustry(const Station *st, CargoID cargo_type, uint n * @param cargo_type the type of cargo that is delivered * @param dest Station the cargo has been unloaded * @param source_tile The origin of the cargo for distance calculation - * @param days_in_transit Travel time + * @param periods_in_transit Travel time in cargo aging periods * @param company The company delivering the cargo * @param src_type Type of source of cargo (industry, town, headquarters) * @param src Index of source of cargo * @return Revenue for delivering cargo * @note The cargo is just added to the stockpile of the industry. It is due to the caller to trigger the industry's production machinery */ -static Money DeliverGoods(int num_pieces, CargoID cargo_type, StationID dest, TileIndex source_tile, uint16 days_in_transit, Company *company, SourceType src_type, SourceID src) +static Money DeliverGoods(int num_pieces, CargoID cargo_type, StationID dest, TileIndex source_tile, uint16 periods_in_transit, Company *company, SourceType src_type, SourceID src) { assert(num_pieces > 0); @@ -1128,7 +1131,7 @@ static Money DeliverGoods(int num_pieces, CargoID cargo_type, StationID dest, Ti st->town->received[cs->town_effect].new_act += accepted_total; /* Determine profit */ - Money profit = GetTransportedGoodsIncome(accepted_total, DistanceManhattan(source_tile, st->xy), days_in_transit, cargo_type); + Money profit = GetTransportedGoodsIncome(accepted_total, DistanceManhattan(source_tile, st->xy), periods_in_transit, cargo_type); /* Update the cargo monitor. */ AddCargoDelivery(cargo_type, company->index, accepted_total - accepted_ind, src_type, src, st); @@ -1230,7 +1233,7 @@ void CargoPayment::PayFinalDelivery(const CargoPacket *cp, uint count) } /* Handle end of route payment */ - Money profit = DeliverGoods(count, this->ct, this->current_station, cp->SourceStationXY(), cp->DaysInTransit(), this->owner, cp->SourceSubsidyType(), cp->SourceSubsidyID()); + Money profit = DeliverGoods(count, this->ct, this->current_station, cp->SourceStationXY(), cp->PeriodsInTransit(), this->owner, cp->SourceSubsidyType(), cp->SourceSubsidyID()); this->route_profit += profit; /* The vehicle's profit is whatever route profit there is minus feeder shares. */ @@ -1250,7 +1253,7 @@ Money CargoPayment::PayTransfer(const CargoPacket *cp, uint count) /* pay transfer vehicle the difference between the payment for the journey from * the source to the current point, and the sum of the previous transfer payments */ DistanceManhattan(cp->SourceStationXY(), Station::Get(this->current_station)->xy), - cp->DaysInTransit(), + cp->PeriodsInTransit(), this->ct); profit = profit * _settings_game.economy.feeder_payment_share / 100; diff --git a/src/economy_func.h b/src/economy_func.h index d5bfeae0a2..5fe5d2d3cf 100644 --- a/src/economy_func.h +++ b/src/economy_func.h @@ -28,7 +28,7 @@ extern Prices _price; int UpdateCompanyRatingAndValue(Company *c, bool update); void StartupIndustryDailyChanges(bool init_counter); -Money GetTransportedGoodsIncome(uint num_pieces, uint dist, uint16 transit_days, CargoID cargo_type); +Money GetTransportedGoodsIncome(uint num_pieces, uint dist, uint16 transit_periods, CargoID cargo_type); uint MoveGoodsToStation(CargoID type, uint amount, SourceType source_type, SourceID source_id, const StationList *all_stations, Owner exclusivity = INVALID_OWNER); void PrepareUnload(Vehicle *front_v); diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 2349f02888..d2ed738c00 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -3021,11 +3021,11 @@ static ChangeInfoResult CargoChangeInfo(uint cid, int numinfo, int prop, ByteRea break; case 0x10: // Used for payment calculation - cs->transit_days[0] = buf->ReadByte(); + cs->transit_periods[0] = buf->ReadByte(); break; case 0x11: // Used for payment calculation - cs->transit_days[1] = buf->ReadByte(); + cs->transit_periods[1] = buf->ReadByte(); break; case 0x12: // Base cargo price diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index 44651eee8b..ea6512c3a7 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -824,7 +824,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, case 0x3C: return ClampTo(v->cargo.StoredCount()); case 0x3D: return GB(ClampTo(v->cargo.StoredCount()), 8, 8); case 0x3E: return v->cargo.Source(); - case 0x3F: return ClampTo(v->cargo.DaysInTransit()); + case 0x3F: return ClampTo(v->cargo.PeriodsInTransit()); case 0x40: return ClampTo(v->age); case 0x41: return GB(ClampTo(v->age), 8, 8); case 0x42: return ClampTo(v->max_age); diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index 7c1a5de1b2..cc618e8f2f 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -425,7 +425,7 @@ uint32 Station::GetNewGRFVariable(const ResolverObject &object, byte variable, b case 0x60: return std::min(ge->cargo.TotalCount(), 4095u); case 0x61: return ge->HasVehicleEverTriedLoading() ? ge->time_since_pickup : 0; case 0x62: return ge->HasRating() ? ge->rating : 0xFFFFFFFF; - case 0x63: return ge->cargo.DaysInTransit(); + case 0x63: return ge->cargo.PeriodsInTransit(); case 0x64: return ge->HasVehicleEverTriedLoading() ? ge->last_speed | (ge->last_age << 8) : 0xFF00; case 0x65: return GB(ge->status, GoodsEntry::GES_ACCEPTANCE, 1) << 3; case 0x69: { @@ -446,7 +446,7 @@ uint32 Station::GetNewGRFVariable(const ResolverObject &object, byte variable, b case 2: return g->time_since_pickup; case 3: return g->rating; case 4: return g->cargo.Source(); - case 5: return g->cargo.DaysInTransit(); + case 5: return g->cargo.PeriodsInTransit(); case 6: return g->last_speed; case 7: return g->last_age; } diff --git a/src/saveload/cargopacket_sl.cpp b/src/saveload/cargopacket_sl.cpp index 07ed94287c..069162867f 100644 --- a/src/saveload/cargopacket_sl.cpp +++ b/src/saveload/cargopacket_sl.cpp @@ -92,8 +92,9 @@ SaveLoadTable GetCargoPacketDesc() SLE_VAR(CargoPacket, source_xy, SLE_UINT32), SLE_VAR(CargoPacket, loaded_at_xy, SLE_UINT32), SLE_VAR(CargoPacket, count, SLE_UINT16), - SLE_CONDVAR(CargoPacket, days_in_transit, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_MORE_CARGO_AGE), - SLE_CONDVAR(CargoPacket, days_in_transit, SLE_UINT16, SLV_MORE_CARGO_AGE, SL_MAX_VERSION), + SLE_CONDVARNAME(CargoPacket, periods_in_transit, "days_in_transit", SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_MORE_CARGO_AGE), + SLE_CONDVARNAME(CargoPacket, periods_in_transit, "days_in_transit", SLE_UINT16, SLV_MORE_CARGO_AGE, SLV_PERIODS_IN_TRANSIT_RENAME), + SLE_CONDVAR(CargoPacket, periods_in_transit, SLE_UINT16, SLV_PERIODS_IN_TRANSIT_RENAME, SL_MAX_VERSION), SLE_VAR(CargoPacket, feeder_share, SLE_INT64), SLE_CONDVAR(CargoPacket, source_type, SLE_UINT8, SLV_125, SL_MAX_VERSION), SLE_CONDVAR(CargoPacket, source_id, SLE_UINT16, SLV_125, SL_MAX_VERSION), diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index d51cc9878e..5cc434372c 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -683,14 +683,14 @@ static bool LoadOldDepot(LoadgameState *ls, int num) static StationID _current_station_id; static uint16 _waiting_acceptance; static uint8 _cargo_source; -static uint8 _cargo_days; +static uint8 _cargo_periods; static const OldChunks goods_chunk[] = { OCL_VAR ( OC_UINT16, 1, &_waiting_acceptance ), OCL_SVAR( OC_UINT8, GoodsEntry, time_since_pickup ), OCL_SVAR( OC_UINT8, GoodsEntry, rating ), OCL_VAR ( OC_UINT8, 1, &_cargo_source ), - OCL_VAR ( OC_UINT8, 1, &_cargo_days ), + OCL_VAR ( OC_UINT8, 1, &_cargo_periods ), OCL_SVAR( OC_UINT8, GoodsEntry, last_speed ), OCL_SVAR( OC_UINT8, GoodsEntry, last_age ), @@ -710,7 +710,7 @@ static bool LoadOldGood(LoadgameState *ls, int num) SB(ge->status, GoodsEntry::GES_ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15)); SB(ge->status, GoodsEntry::GES_RATING, 1, _cargo_source != 0xFF); if (GB(_waiting_acceptance, 0, 12) != 0 && CargoPacket::CanAllocateItem()) { - ge->cargo.Append(new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days, (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source, 0, 0), + ge->cargo.Append(new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_periods, (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source, 0, 0), INVALID_STATION); } @@ -1175,7 +1175,7 @@ static const OldChunks vehicle_chunk[] = { OCL_VAR ( OC_TTD | OC_UINT16, 1, &_cargo_count ), OCL_VAR ( OC_TTO | OC_FILE_U8 | OC_VAR_U16, 1, &_cargo_count ), OCL_VAR ( OC_UINT8, 1, &_cargo_source ), - OCL_VAR ( OC_UINT8, 1, &_cargo_days ), + OCL_VAR ( OC_UINT8, 1, &_cargo_periods ), OCL_SVAR( OC_TTO | OC_UINT8, Vehicle, tick_counter ), @@ -1353,7 +1353,7 @@ bool LoadOldVehicle(LoadgameState *ls, int num) if (_cargo_count != 0 && CargoPacket::CanAllocateItem()) { StationID source = (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source; TileIndex source_xy = (source != INVALID_STATION) ? Station::Get(source)->xy : (TileIndex)0; - v->cargo.Append(new CargoPacket(_cargo_count, _cargo_days, source, source_xy, source_xy)); + v->cargo.Append(new CargoPacket(_cargo_count, _cargo_periods, source, source_xy, source_xy)); } } diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index f1f29dace2..e0e8d280dc 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -357,6 +357,7 @@ enum SaveLoadVersion : uint16 { SLV_STRING_GAMELOG, ///< 314 PR#10801 Use std::string in gamelog. SLV_INDUSTRY_CARGO_REORGANISE, ///< 315 PR#10853 Industry accepts/produced data reorganised. + SLV_PERIODS_IN_TRANSIT_RENAME, ///< 316 PR#11112 Rename days in transit to (cargo) periods in transit. SL_MAX_VERSION, ///< Highest possible saveload version }; diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 3c1de1290e..fcfcdce66f 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -162,7 +162,7 @@ static uint16 _waiting_acceptance; static uint32 _old_num_flows; static uint16 _cargo_source; static uint32 _cargo_source_xy; -static uint8 _cargo_days; +static uint8 _cargo_periods; static Money _cargo_feeder_share; std::list _packets; @@ -371,7 +371,7 @@ public: SLEG_CONDVAR("cargo_source", _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_7), SLEG_CONDVAR("cargo_source", _cargo_source, SLE_UINT16, SLV_7, SLV_68), SLEG_CONDVAR("cargo_source_xy", _cargo_source_xy, SLE_UINT32, SLV_44, SLV_68), - SLEG_CONDVAR("cargo_days", _cargo_days, SLE_UINT8, SL_MIN_VERSION, SLV_68), + SLEG_CONDVAR("cargo_days", _cargo_periods, SLE_UINT8, SL_MIN_VERSION, SLV_68), SLE_VAR(GoodsEntry, last_speed, SLE_UINT8), SLE_VAR(GoodsEntry, last_age, SLE_UINT8), SLEG_CONDVAR("cargo_feeder_share", _cargo_feeder_share, SLE_FILE_U32 | SLE_VAR_I64, SLV_14, SLV_65), @@ -449,7 +449,7 @@ public: assert(CargoPacket::CanAllocateItem()); /* Don't construct the packet with station here, because that'll fail with old savegames */ - CargoPacket *cp = new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days, source, _cargo_source_xy, _cargo_source_xy, _cargo_feeder_share); + CargoPacket *cp = new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_periods, source, _cargo_source_xy, _cargo_source_xy, _cargo_feeder_share); ge->cargo.Append(cp, INVALID_STATION); SB(ge->status, GoodsEntry::GES_RATING, 1, 1); } @@ -529,7 +529,7 @@ struct STNSChunkHandler : ChunkHandler { const std::vector slt = SlCompatTableHeader(_old_station_desc, _old_station_sl_compat); _cargo_source_xy = 0; - _cargo_days = 0; + _cargo_periods = 0; _cargo_feeder_share = 0; int index; diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index a940bc1c6d..2ab840420a 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -571,7 +571,7 @@ void FixupTrainLengths() } } -static uint8 _cargo_days; +static uint8 _cargo_periods; static uint16 _cargo_source; static uint32 _cargo_source_xy; static uint16 _cargo_count; @@ -628,7 +628,7 @@ public: SLE_VAR(Vehicle, cargo_type, SLE_UINT8), SLE_CONDVAR(Vehicle, cargo_subtype, SLE_UINT8, SLV_35, SL_MAX_VERSION), - SLEG_CONDVAR("cargo_days", _cargo_days, SLE_UINT8, SL_MIN_VERSION, SLV_68), + SLEG_CONDVAR("cargo_days", _cargo_periods, SLE_UINT8, SL_MIN_VERSION, SLV_68), SLEG_CONDVAR("cargo_source", _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_7), SLEG_CONDVAR("cargo_source", _cargo_source, SLE_UINT16, SLV_7, SLV_68), SLEG_CONDVAR("cargo_source_xy", _cargo_source_xy, SLE_UINT32, SLV_44, SLV_68), @@ -1042,7 +1042,7 @@ struct VEHSChunkHandler : ChunkHandler { if (_cargo_count != 0 && IsCompanyBuildableVehicleType(v) && CargoPacket::CanAllocateItem()) { /* Don't construct the packet with station here, because that'll fail with old savegames */ - CargoPacket *cp = new CargoPacket(_cargo_count, _cargo_days, _cargo_source, _cargo_source_xy, _cargo_loaded_at_xy, _cargo_feeder_share); + CargoPacket *cp = new CargoPacket(_cargo_count, _cargo_periods, _cargo_source, _cargo_source_xy, _cargo_loaded_at_xy, _cargo_feeder_share); v->cargo.Append(cp); } diff --git a/src/table/cargo_const.h b/src/table/cargo_const.h index 8fffc8e804..51e6818b1d 100644 --- a/src/table/cargo_const.h +++ b/src/table/cargo_const.h @@ -33,8 +33,8 @@ * @param weight Weight of a single unit of this cargo type in 1/16 ton (62.5 kg). * @param mult Capacity multiplier for vehicles. (8 fractional bits). * @param ip CargoSpec->initial_payment. - * @param td1 CargoSpec->transit_days[0]. - * @param td2 CargoSpec->transit_days[1]. + * @param td1 CargoSpec->transit_periods[0]. + * @param td2 CargoSpec->transit_periods[1]. * @param freight Cargo type is considered to be freight (affects train freight multiplier). * @param te The effect that delivering this cargo type has on towns. Also affects destination of subsidies. * @param str_plural The name suffix used to populate CargoSpec->name, CargoSpec->quantifier, From 7996752fb1a9b005ffc8fecfdba2ff8235537db0 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 12 Jul 2023 18:43:54 +0000 Subject: [PATCH 41/58] Update: Translations from eints indonesian: 71 changes by ecolortest --- src/lang/indonesian.txt | 79 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 8 deletions(-) diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index daed78f1ee..98b2d71777 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -195,6 +195,7 @@ STR_UNITS_VELOCITY_IMPERIAL :{DECIMAL}{NBSP} STR_UNITS_VELOCITY_METRIC :{DECIMAL}{NBSP}km/jam STR_UNITS_VELOCITY_SI :{DECIMAL}{NBSP}meter/detik STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}ubin/hari +STR_UNITS_VELOCITY_KNOTS :{DECIMAL}{NBSP}knots STR_UNITS_POWER_IMPERIAL :{DECIMAL}{NBSP}dk STR_UNITS_POWER_METRIC :{DECIMAL}{NBSP}dk @@ -343,8 +344,8 @@ STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Buka tam ###length 31 STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Hentikan sementara permainan STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Percepat maju waktu permainan -STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Opsi -STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Simpan, batalkan, keluar permainan +STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Opsi dan pengaturan +STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Simpan, tinggalkan, keluar OpenTTD STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Tampilkan peta, tambahan viewport atau daftar pengenal STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Tampilkan daftar kota STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Tampilkan subsidi @@ -370,7 +371,7 @@ STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Membangu STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Buka toolbar lansekap untuk menaik-turunkan tanah, menanam pohon, dsb. STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Tampilkan jendela suara/musik STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Tampilkan pesan/berita terkini, tampilkan pilihan berita -STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Informasi area daratan, konsol, AI debug, pengambilan gambar, dan tentang OpenTTD +STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Informasi area daratan, pengambilan gambar, tentang OpenTTD dan alat pengembangan STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Berpindah toolbar # Extra tooltips for the scenario editor toolbar @@ -930,12 +931,27 @@ STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Perlihat # Game options window STR_GAME_OPTIONS_CAPTION :{WHITE}Opsi permainan +STR_GAME_OPTIONS_TAB_GENERAL :Umum +STR_GAME_OPTIONS_TAB_GENERAL_TT :{BLACK}Pilih setingan umum +STR_GAME_OPTIONS_TAB_GRAPHICS :Grafik +STR_GAME_OPTIONS_TAB_GRAPHICS_TT :{BLACK}Setingan pilih grafis +STR_GAME_OPTIONS_TAB_SOUND :Suara +STR_GAME_OPTIONS_TAB_SOUND_TT :{BLACK}\Pilih suara dan setingan musik +STR_GAME_OPTIONS_VOLUME :Volume +STR_GAME_OPTIONS_SFX_VOLUME :Efek suara +STR_GAME_OPTIONS_MUSIC_VOLUME :Musik +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}Mata uang STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Pilih mata uang +STR_GAME_OPTIONS_CURRENCY_CODE :{STRING} ({STRING}) ###length 42 STR_GAME_OPTIONS_CURRENCY_GBP :Poundsterling @@ -987,6 +1003,10 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Pilih se # Autosave dropdown ###length 5 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Mati +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_10_MINUTES :Setiap 10 menit +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_30_MINUTES :Setiap 30 menit +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_60_MINUTES :Setiap 60 menit +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_120_MINUTES :Setiap 120 menit STR_GAME_OPTIONS_LANGUAGE :{BLACK}Bahasa STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Pilih antar muka bahasa yang akan dipergunakan @@ -1023,6 +1043,10 @@ STR_GAME_OPTIONS_GUI_SCALE_3X :3x STR_GAME_OPTIONS_GUI_SCALE_4X :4x STR_GAME_OPTIONS_GUI_SCALE_5X :5x +STR_GAME_OPTIONS_PARTICIPATE_SURVEY_FRAME :{BLACK}Survei Otomatis +STR_GAME_OPTIONS_PARTICIPATE_SURVEY_LINK :{BLACK}Tentang survei dan privasi +STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW :{BLACK}Tampilkan hasil survey +STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW_TOOLTIP :{BLACK}Tampilkan hasil survey pada game yang berjalan saat ini STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafik @@ -1032,12 +1056,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Kecepatan refresh yang lebih tinggi dari 60Hz dapat memengaruhi kinerja. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Set Grafik Dasar -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Pilih grafik dasar yang digunakan +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Pilih grafik dasar yang digunakan (tidak dapat diubah didalam permainan, hanya dari menu utama) STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} berkas hilang atau rusak STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Informasi tambahan tentang set grafik dasar STR_GAME_OPTIONS_BASE_SFX :{BLACK}Set suara dasar -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Pilih set suara dasar yang digunakan +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Pilih set suara dasar yang digunakan (tidak dapat diubah didalam permainan, hanya dari menu utama) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Informasi tambahan tentang set suara dasar STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Set Musik Dasar @@ -1153,6 +1177,7 @@ STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Perluas STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Persempit semua STR_CONFIG_SETTING_RESET_ALL :{BLACK}Atur ulang semua pengaturan STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(penjelasan belum tersedia) +STR_CONFIG_SETTING_VALUE :{PUSH_COLOUR}{ORANGE}{STRING}{POP_COLOUR} STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Nilai standar: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE :{LTBLUE}Tipe setting: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE_CLIENT :Setting klien (tidak disimpan di penyimpanan; mempengaruhi semua permainan) @@ -1208,6 +1233,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Kanan STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimum pinjaman awal: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Jumlah maksimum yang dapat dipinjam (tanpa menghitung inflasi) +STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} ###setting-zero-is-special STR_CONFIG_SETTING_INTEREST_RATE :Bunga pinjaman: {STRING} @@ -1916,6 +1942,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Tidak ada STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Faktor kali ukuran kota awal: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Ukuran rata-rata kota besar terhadap kota kecil saat permainan dimulai +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Pembaruan grafik distribusi setiap {STRING}{NBSP} detikP 0:2 "" } STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modus distribusi untuk penumpang: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simetris" berarti kira-kira jumlah penumpang sama akan pergi dari stasiun A ke stasiun B sebagaimana dari B ke A. "Asimetris" berarti jumlah penumpang pergi pada kedua arah bisa berbeda-beda. "Manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk penumpang. @@ -1941,13 +1968,15 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Mengaturkan ini STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Penjenuhan lintasan pendek sebelum menggunakan lintasan besar: {STRING} STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Biasanya terdapat banyak lintasan antara dua stasiun. Cargodist akan mengisi hingga penuh lintasan yang paling pendek terlebih dahulu, kemudian memenuhkan lintasan terpendek berikutnya dan seterusnya. Penuhnya suatu lintasan akan ditentukan mengikuti perkiraan kapasitas dan penggunaan terencana. Jika semua lintasan sudah penuh, sementara masih ada permintaan, Cargodist akan membebankannya kepada sebarang lintasan, terutama lintasan-lintasan berkapasitas besar. Walau demikian, sering kali algoritma tidak akan memperkirakan kapasitas dengan akurat. Setting ini memungkinkanmu untuk menentukan prosentase maksimum isian sebuah lintasan sebelum mengisi lintasan berikutnya. Aturlah nilainya di bawah 100% untuk menghindarkan stasiun dari kelebihan pengunjung manakala ada kesalahan perkiraan kapasitas. -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Satuan kecepatan: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Satuan kecepatan (darat): {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Satuan kecepatan (bahari): {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Apabila kecepatan ditampilkan di antarmuka, nyatakan di satuan yang dipilih ###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mpj) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrik (km/j) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/d) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Unit permainan (ubin/hari) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_KNOTS :Knots STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Satuan daya kendaraan: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Apabila daya kendaraan ditampilkan di antarmuka, nyatakan di satuan yang dipilih @@ -2348,6 +2377,7 @@ STR_NETWORK_CLIENT_LIST_NEW_COMPANY :(Perusahaan bar STR_NETWORK_CLIENT_LIST_NEW_COMPANY_TOOLTIP :{BLACK}Ciptakan perusahaan baru dan bergabung STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP :{BLACK}Ini adalah Anda STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP :{BLACK}Ini adalah hos permainan +STR_NETWORK_CLIENT_LIST_CLIENT_COMPANY_COUNT :{BLACK}{NUM} klien{P ""} - {NUM}/{NUM} perusahaan{P ""} # Matches ConnectionType ###length 5 @@ -2374,6 +2404,10 @@ STR_NETWORK_ASK_RELAY_NO :{BLACK}Tidak STR_NETWORK_ASK_RELAY_YES_ONCE :{BLACK}Ya, kali ini STR_NETWORK_ASK_RELAY_YES_ALWAYS :{BLACK}Iya, Jangan tanya lagi +STR_NETWORK_ASK_SURVEY_PREVIEW :Tampilkan hasil survey +STR_NETWORK_ASK_SURVEY_LINK :Tentang survei dan privasi +STR_NETWORK_ASK_SURVEY_NO :Tidak +STR_NETWORK_ASK_SURVEY_YES :Iya STR_NETWORK_SPECTATORS :Penonton @@ -2664,7 +2698,9 @@ STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}Membangu STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Pilih kelas stasiun yang akan ditampilkan STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Pilih jenis stasiun yang akan dibangun -STR_STATION_CLASS_DFLT :Stasiun standar +STR_STATION_CLASS_DFLT :Standar +STR_STATION_CLASS_DFLT_STATION :Stasiun standar +STR_STATION_CLASS_DFLT_ROADSTOP :Pemberhentian jalan standar STR_STATION_CLASS_WAYP :Waypoint # Signal window @@ -2691,6 +2727,10 @@ STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Tambah k STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Pilih Jembatan Rel STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Pilih Jembatan STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Pilihan jembatan - Klik pada jembatan yang ingin anda bangun +STR_SELECT_BRIDGE_INFO_NAME :{GOLD}{STRING} +STR_SELECT_BRIDGE_INFO_NAME_MAX_SPEED :{GOLD}{STRING},{} {VELOCITY} +STR_SELECT_BRIDGE_INFO_NAME_COST :{GOLD}{0:STRING},{} {WHITE}{2:CURRENCY_LONG} +STR_SELECT_BRIDGE_INFO_NAME_MAX_SPEED_COST :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_BRIDGE_NAME_SUSPENSION_STEEL :Suspensi, Baja STR_BRIDGE_NAME_GIRDER_STEEL :Balok, Baja STR_BRIDGE_NAME_CANTILEVER_STEEL :Beton, Baja @@ -3338,6 +3378,8 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING STR_NEWGRF_ERROR_MSG_WARNING :{RED}Peringatan: {SILVER}{STRING} STR_NEWGRF_ERROR_MSG_ERROR :{RED}Kesalahan: {SILVER}{STRING} STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatal: {SILVER}{STRING} +STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Kesalahan fatal pada NewGRF "{STRING}" telah terjadi:{}{STRING} +STR_NEWGRF_ERROR_POPUP :{WHITE}Terjadi galat pada NewGRF "{STRING}" telah terjadi:{}{STRING} STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} tidak akan bekerja dengan versi TTDPatch yang telah dilaporkan oleh OpenTTD STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} untuk TTD versi {2:STRING} STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} didesain untuk digunakan dengan {2:STRING} @@ -3794,7 +3836,10 @@ STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Atur Daf STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Kirim perintah untuk semua kendaraan dalam daftar ini. STR_VEHICLE_LIST_REPLACE_VEHICLES :Ganti kendaraan STR_VEHICLE_LIST_SEND_FOR_SERVICING :Perintahkan untuk diperbaiki +STR_VEHICLE_LIST_CREATE_GROUP :Buat kelompok STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Laba tahun ini: {CURRENCY_LONG} (tahun lalu: {CURRENCY_LONG}) +STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] +STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING} {STRING} STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Perintahkan ke bengkel STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Perintahkan ke Bengkel @@ -4514,6 +4559,8 @@ STR_TIMETABLE_EXPECTED :{BLACK}Harapan STR_TIMETABLE_SCHEDULED :{BLACK}Dijadwalkan STR_TIMETABLE_EXPECTED_TOOLTIP :{BLACK}Ubah antara perkiraan dan jadwal +STR_TIMETABLE_ARRIVAL :T: {COLOUR}{DATE_TINY} +STR_TIMETABLE_DEPARTURE :B: {COLOUR}{DATE_TINY} # Date window (for timetable) @@ -4557,6 +4604,7 @@ STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}AI yg ak STR_AI_CONFIG_HUMAN_PLAYER :Pemain Manusia STR_AI_CONFIG_RANDOM_AI :AI Acak STR_AI_CONFIG_NONE :(tidak ada) +STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM} STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Jumlah pesaing maksimal: {ORANGE}{COMMA} STR_AI_CONFIG_MOVE_UP :{BLACK}Naikkan @@ -4570,7 +4618,7 @@ STR_AI_CONFIG_AI :{SILVER}AI STR_AI_CONFIG_CHANGE_AI :{BLACK}Pilih AI STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Skrip Permainan -STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Muat skrip yang lain +STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Muat skrip yang lain. Ctrl+Click untuk menampilkan versi yang tersedia STR_AI_CONFIG_CONFIGURE :{BLACK}Konfigurasikan STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Mengkonfigurasi parameter skrip AI @@ -4598,7 +4646,9 @@ STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Tangkapa STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Tangkapan layar minimap # Script Parameters +STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter STR_AI_SETTINGS_CAPTION_AI :{WHITE}Parameter AI +STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Skrip Permainan STR_AI_SETTINGS_CLOSE :{BLACK}Tutup STR_AI_SETTINGS_RESET :{BLACK}Reset STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING} @@ -4614,6 +4664,7 @@ STR_TEXTFILE_VIEW_LICENCE :{BLACK}Lisensi STR_TEXTFILE_README_CAPTION :{WHITE}keterangan {STRING} dari {STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}Catatan perubahan {STRING} dari {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}Lisensi {STRING} dari {STRING} +STR_TEXTFILE_SURVEY_RESULT_CAPTION :{WHITE}Tanpilan hasil survei # Vehicle loading indicators @@ -5053,11 +5104,19 @@ STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... terl STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... pesawat tidak dapat menjangkau # Extra messages which go on the third line of errors, explaining why orders failed +STR_ERROR_NO_RAIL_STATION :{WHITE}Tidak ada stasiun kereta +STR_ERROR_NO_BUS_STATION :{WHITE}Tidak ada stasiun bis +STR_ERROR_NO_TRUCK_STATION :{WHITE}Tidak ada stasiun lori +STR_ERROR_NO_AIRPORT :{WHITE}Tidak ada bandara/heliport +STR_ERROR_NO_STOP_COMPATIBLE_ROAD_TYPE :{WHITE}Tidak ada pemberhentian dengan kompatibilitas tipe jalan +STR_ERROR_NO_STOP_COMPATIBLE_TRAM_TYPE :{WHITE}Tidak ada pemberhentian yang kompatibel dengan tipe tram +STR_ERROR_AIRPORT_NO_PLANES :{WHITE}Pesawat ini tidak dapat mendarat di heliport ini # Timetable related errors STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Tidak dapat membuat jadwal keberangkatan kendaraan... STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Kendaran hanya dapat menunggu di stasiun STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Kendaraan tidak berhenti pada stasiun ini +STR_ERROR_TIMETABLE_INCOMPLETE :{WHITE}... Jadway tidak kompatibel # Sign related errors STR_ERROR_TOO_MANY_SIGNS :{WHITE}... terlalu banyak tanda @@ -5537,17 +5596,21 @@ STR_VEHICLE_NAME :{VEHICLE} STR_WAYPOINT_NAME :{WAYPOINT} STR_JUST_CARGO :{CARGO_LONG} +STR_JUST_RIGHT_ARROW :{RIGHT_ARROW} STR_JUST_CHECKMARK :{CHECKMARK} STR_JUST_COMMA :{COMMA} STR_JUST_CURRENCY_SHORT :{CURRENCY_SHORT} STR_JUST_CURRENCY_LONG :{CURRENCY_LONG} STR_JUST_CARGO_LIST :{CARGO_LIST} +STR_JUST_DECIMAL :{DECIMAL} STR_JUST_INT :{NUM} STR_JUST_DATE_TINY :{DATE_TINY} STR_JUST_DATE_SHORT :{DATE_SHORT} STR_JUST_DATE_LONG :{DATE_LONG} STR_JUST_DATE_ISO :{DATE_ISO} STR_JUST_STRING :{STRING} +STR_JUST_STRING1 :{STRING} +STR_JUST_STRING2 :{STRING} STR_JUST_STRING_STRING :{STRING}{STRING} STR_JUST_RAW_STRING :{STRING} STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING} From 3ac663e61980e8cb936c5c521c908a4a7ed70133 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 12 Jul 2023 21:07:31 +0100 Subject: [PATCH 42/58] Fix: Build road/tram stop windows did not set WindowDesc::ini_key (#11126) Saved default window sizes were not persisted in the configuration file --- src/road_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/road_gui.cpp b/src/road_gui.cpp index 40c55d154a..d565b81c96 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -1681,7 +1681,7 @@ static const NWidgetPart _nested_road_station_picker_widgets[] = { }; static WindowDesc _road_station_picker_desc( - WDP_AUTO, nullptr, 0, 0, + WDP_AUTO, "build_station_road", 0, 0, WC_BUS_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_road_station_picker_widgets, lengthof(_nested_road_station_picker_widgets) @@ -1766,7 +1766,7 @@ static const NWidgetPart _nested_tram_station_picker_widgets[] = { }; static WindowDesc _tram_station_picker_desc( - WDP_AUTO, nullptr, 0, 0, + WDP_AUTO, "build_station_tram", 0, 0, WC_BUS_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_tram_station_picker_widgets, lengthof(_nested_tram_station_picker_widgets) From c3d1264a4b917b6afc61c72bf0224cfa54d7abde Mon Sep 17 00:00:00 2001 From: PeterN Date: Fri, 14 Jul 2023 11:12:22 +0100 Subject: [PATCH 43/58] Change: Don't save industry history if cargo slot isn't used. (#11133) This avoids saving history of 16 slots per industry when in many cases (NewGRF dependent) only a couple are used. --- src/saveload/industry_sl.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/saveload/industry_sl.cpp b/src/saveload/industry_sl.cpp index 1f683b2234..017ab89bec 100644 --- a/src/saveload/industry_sl.cpp +++ b/src/saveload/industry_sl.cpp @@ -67,6 +67,12 @@ public: void Save(Industry::ProducedCargo *p) const override { + if (!IsValidCargoID(p->cargo)) { + /* Don't save any history if cargo slot isn't used. */ + SlSetStructListLength(0); + return; + } + SlSetStructListLength(p->history.size()); for (auto &h : p->history) { From fc9afb2d321d90cb57a549e02a8530918982955d Mon Sep 17 00:00:00 2001 From: merni-ns <66267867+merni-ns@users.noreply.github.com> Date: Fri, 14 Jul 2023 17:27:45 +0530 Subject: [PATCH 44/58] Fix #11115: Focus the abandon game/exit game windows (#11125) --- src/intro_gui.cpp | 6 ++++-- src/misc_gui.cpp | 8 +++++--- src/textbuf_gui.h | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp index 06be8a8530..2c5acca26d 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -517,7 +517,8 @@ void AskExitGame() STR_QUIT_CAPTION, STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD, nullptr, - AskExitGameCallback + AskExitGameCallback, + true ); } @@ -536,6 +537,7 @@ void AskExitToGameMenu() STR_ABANDON_GAME_CAPTION, (_game_mode != GM_EDITOR) ? STR_ABANDON_GAME_QUERY : STR_ABANDON_SCENARIO_QUERY, nullptr, - AskExitToGameMenuCallback + AskExitToGameMenuCallback, + true ); } diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 032ee8e136..6cfc1876bb 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -1218,15 +1218,16 @@ static WindowDesc _query_desc( ); /** - * Show a modal confirmation window with standard 'yes' and 'no' buttons + * Show a confirmation window with standard 'yes' and 'no' buttons * The window is aligned to the centre of its parent. * @param caption string shown as window caption * @param message string that will be shown for the window * @param parent pointer to parent window, if this pointer is nullptr the parent becomes * the main window WC_MAIN_WINDOW * @param callback callback function pointer to set in the window descriptor + * @param focus whether the window should be focussed (by default false) */ -void ShowQuery(StringID caption, StringID message, Window *parent, QueryCallbackProc *callback) +void ShowQuery(StringID caption, StringID message, Window *parent, QueryCallbackProc *callback, bool focus) { if (parent == nullptr) parent = GetMainWindow(); @@ -1240,5 +1241,6 @@ void ShowQuery(StringID caption, StringID message, Window *parent, QueryCallback break; } - new QueryWindow(&_query_desc, caption, message, parent, callback); + QueryWindow *q = new QueryWindow(&_query_desc, caption, message, parent, callback); + if (focus) SetFocusedWindow(q); } diff --git a/src/textbuf_gui.h b/src/textbuf_gui.h index 200d62582b..0284bbd57e 100644 --- a/src/textbuf_gui.h +++ b/src/textbuf_gui.h @@ -29,7 +29,7 @@ DECLARE_ENUM_AS_BIT_SET(QueryStringFlags) typedef void QueryCallbackProc(Window*, bool); void ShowQueryString(StringID str, StringID caption, uint max_len, Window *parent, CharSetFilter afilter, QueryStringFlags flags); -void ShowQuery(StringID caption, StringID message, Window *w, QueryCallbackProc *callback); +void ShowQuery(StringID caption, StringID message, Window *w, QueryCallbackProc *callback, bool focus = false); /** The number of 'characters' on the on-screen keyboard. */ static const uint OSK_KEYBOARD_ENTRIES = 50; From 7de37e07b640292ba2d9b8c8aae673ad15de2827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20W=C3=A4rmedal?= Date: Fri, 14 Jul 2023 14:00:28 +0200 Subject: [PATCH 45/58] Change: make Exclusive Transport Rights more exclusive (#11076) Now, exclusive transport rights can only be bought if no company currently owns them. A successful bribe will void any exclusive transport rights that any *other* company currently has in the town. --- src/lang/english.txt | 4 ++-- src/town_cmd.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 56c5928149..0e654500fb 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3539,8 +3539,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW}Fund the reconstruction of the urban road network.{}Causes considerable disruption to road traffic for up to 6 months.{}{POP_COLOUR}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}Build a statue in honour of your company.{}Provides a permanent boost to station rating in this town.{}{POP_COLOUR}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}Fund the construction of new buildings in the town.{}Provides a temporary boost to town growth in this town.{}{POP_COLOUR}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations.{}{POP_COLOUR}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Bribe the local authority to increase your rating, at the risk of a severe penalty if caught.{}{POP_COLOUR}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations. A successful bribe from a competitor will cancel this contract.{}{POP_COLOUR}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Bribe the local authority to increase your rating and abort a competitor's exclusive transport rights, at the risk of a severe penalty if caught.{}{POP_COLOUR}Cost: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index ae032937ea..6891504b9c 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -3242,6 +3242,7 @@ static CommandCost TownActionBuyRights(Town *t, DoCommandFlag flags) { /* Check if it's allowed to buy the rights */ if (!_settings_game.economy.exclusive_rights) return CMD_ERROR; + if (t->exclusivity != INVALID_COMPANY) return CMD_ERROR; if (flags & DC_EXEC) { t->exclusive_counter = 12; @@ -3292,6 +3293,10 @@ static CommandCost TownActionBribe(Town *t, DoCommandFlag flags) } } else { ChangeTownRating(t, RATING_BRIBE_UP_STEP, RATING_BRIBE_MAXIMUM, DC_EXEC); + if (t->exclusivity != _current_company && t->exclusivity != INVALID_COMPANY) { + t->exclusivity = INVALID_COMPANY; + t->exclusive_counter = 0; + } } } return CommandCost(); @@ -3334,7 +3339,7 @@ TownActions GetMaskOfTownActions(CompanyID cid, const Town *t) if (cur == TACT_BRIBE && (!_settings_game.economy.bribe || t->ratings[cid] >= RATING_BRIBE_MAXIMUM)) continue; /* Is the company not able to buy exclusive rights ? */ - if (cur == TACT_BUY_RIGHTS && !_settings_game.economy.exclusive_rights) continue; + if (cur == TACT_BUY_RIGHTS && (!_settings_game.economy.exclusive_rights || t->exclusive_counter != 0)) continue; /* Is the company not able to fund buildings ? */ if (cur == TACT_FUND_BUILDINGS && !_settings_game.economy.fund_buildings) continue; From 9cdf86a4116dd28c498d402aad6e7fbccb38d72d Mon Sep 17 00:00:00 2001 From: glx22 Date: Wed, 12 Jul 2023 21:15:04 +0200 Subject: [PATCH 46/58] Add: workflow and script for checking ini_key issues in WindowDesc entries --- .github/windowdesc-ini-key.py | 50 ++++++++++++++++++++++++ .github/workflows/windowdesc-ini-key.yml | 24 ++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 .github/windowdesc-ini-key.py create mode 100644 .github/workflows/windowdesc-ini-key.yml diff --git a/.github/windowdesc-ini-key.py b/.github/windowdesc-ini-key.py new file mode 100644 index 0000000000..16fa3053d8 --- /dev/null +++ b/.github/windowdesc-ini-key.py @@ -0,0 +1,50 @@ +""" +Script to scan the OpenTTD source-tree for ini_key issues in WindowDesc entries. +""" + +import glob +import os +import re +import sys + + +def scan_source_files(path, ini_keys=None): + if ini_keys is None: + ini_keys = set() + + errors = [] + + for new_path in glob.glob(f"{path}/*.cpp"): + if os.path.isdir(new_path): + errors.append(scan_source_files(new_path, ini_keys)) + continue + + with open(new_path) as fp: + output = fp.read() + + for (name, ini_key, widgets) in re.findall(r"^static WindowDesc ([a-zA-Z0-9_]*).*?, (?:\"(.*?)\")?.*?,(?:\s+(.*?),){6}", output, re.S|re.M): + if ini_key: + if ini_key in ini_keys: + errors.append(f"{new_path}: {name} ini_key is a duplicate") + ini_keys.add(ini_key) + widget = re.findall("static const (?:struct )?NWidgetPart " + widgets + ".*?(?:WWT_(DEFSIZE|STICKY)BOX.*?)?;", output, re.S)[0] + if widget and not ini_key: + errors.append(f"{new_path}: {name} has WWT_DEFSIZEBOX/WWT_STICKYBOX without ini_key") + if ini_key and not widget: + errors.append(f"{new_path}: {name} has ini_key without WWT_DEFSIZEBOX/WWT_STICKYBOX") + + return errors + + +def main(): + errors = scan_source_files("src") + + if errors: + print("\n".join(errors)) + sys.exit(1) + + print("OK") + + +if __name__ == "__main__": + main() diff --git a/.github/workflows/windowdesc-ini-key.yml b/.github/workflows/windowdesc-ini-key.yml new file mode 100644 index 0000000000..b69172d5af --- /dev/null +++ b/.github/workflows/windowdesc-ini-key.yml @@ -0,0 +1,24 @@ +name: WindowDesc ini_key + +on: + pull_request: + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} + +jobs: + windowdesc-ini-key: + name: WindowDesc ini_key issues + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Check for ini_key issues in WindowDesc entries + shell: bash + run: | + python3 .github/windowdesc-ini-key.py From 46b504a70047c1b6370cb227b46130a25dd7644f Mon Sep 17 00:00:00 2001 From: glx22 Date: Thu, 13 Jul 2023 17:41:06 +0200 Subject: [PATCH 47/58] Fix: ini_key issues reported by the script --- src/airport_gui.cpp | 2 +- src/company_gui.cpp | 4 ++-- src/engine_gui.cpp | 2 +- src/error_gui.cpp | 4 ++-- src/league_gui.cpp | 4 ++-- src/misc_gui.cpp | 4 ++-- src/music_gui.cpp | 2 +- src/osk_gui.cpp | 2 +- src/rail_gui.cpp | 2 +- src/settings_gui.cpp | 2 +- src/signs_gui.cpp | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index 76dff44336..fe0e6f7f39 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -619,7 +619,7 @@ static const NWidgetPart _nested_build_airport_widgets[] = { }; static WindowDesc _build_airport_desc( - WDP_AUTO, "build_station_air", 0, 0, + WDP_AUTO, nullptr, 0, 0, WC_BUILD_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_build_airport_widgets, lengthof(_nested_build_airport_widgets) diff --git a/src/company_gui.cpp b/src/company_gui.cpp index f25b6654cb..37861ae337 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -1157,7 +1157,7 @@ static const NWidgetPart _nested_select_company_livery_widgets [] = { }; static WindowDesc _select_company_livery_desc( - WDP_AUTO, "company_livery", 0, 0, + WDP_AUTO, nullptr, 0, 0, WC_COMPANY_COLOUR, WC_NONE, 0, _nested_select_company_livery_widgets, lengthof(_nested_select_company_livery_widgets) @@ -1774,7 +1774,7 @@ public: /** Company manager face selection window description */ static WindowDesc _select_company_manager_face_desc( - WDP_AUTO, "company_face", 0, 0, + WDP_AUTO, nullptr, 0, 0, WC_COMPANY_MANAGER_FACE, WC_NONE, WDF_CONSTRUCTION, _nested_select_company_manager_face_widgets, lengthof(_nested_select_company_manager_face_widgets) diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index 3c995d9fa6..e15ad40828 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -144,7 +144,7 @@ struct EnginePreviewWindow : Window { }; static WindowDesc _engine_preview_desc( - WDP_CENTER, "engine_preview", 0, 0, + WDP_CENTER, nullptr, 0, 0, WC_ENGINE_PREVIEW, WC_NONE, WDF_CONSTRUCTION, _nested_engine_preview_widgets, lengthof(_nested_engine_preview_widgets) diff --git a/src/error_gui.cpp b/src/error_gui.cpp index 39809797a0..40b693bd75 100644 --- a/src/error_gui.cpp +++ b/src/error_gui.cpp @@ -43,7 +43,7 @@ static const NWidgetPart _nested_errmsg_widgets[] = { }; static WindowDesc _errmsg_desc( - WDP_MANUAL, "error", 0, 0, + WDP_MANUAL, nullptr, 0, 0, WC_ERRMSG, WC_NONE, 0, _nested_errmsg_widgets, lengthof(_nested_errmsg_widgets) @@ -63,7 +63,7 @@ static const NWidgetPart _nested_errmsg_face_widgets[] = { }; static WindowDesc _errmsg_face_desc( - WDP_MANUAL, "error_face", 0, 0, + WDP_MANUAL, nullptr, 0, 0, WC_ERRMSG, WC_NONE, 0, _nested_errmsg_face_widgets, lengthof(_nested_errmsg_face_widgets) diff --git a/src/league_gui.cpp b/src/league_gui.cpp index ec1e828178..7a0b2c9b3b 100644 --- a/src/league_gui.cpp +++ b/src/league_gui.cpp @@ -197,7 +197,7 @@ static const NWidgetPart _nested_performance_league_widgets[] = { }; static WindowDesc _performance_league_desc( - WDP_AUTO, "league", 0, 0, + WDP_AUTO, "performance_league", 0, 0, WC_COMPANY_LEAGUE, WC_NONE, 0, _nested_performance_league_widgets, lengthof(_nested_performance_league_widgets) @@ -429,7 +429,7 @@ static const NWidgetPart _nested_script_league_widgets[] = { }; static WindowDesc _script_league_desc( - WDP_AUTO, "league", 0, 0, + WDP_AUTO, "script_league", 0, 0, WC_COMPANY_LEAGUE, WC_NONE, 0, _nested_script_league_widgets, lengthof(_nested_script_league_widgets) diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 6cfc1876bb..5806efbcb5 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -59,7 +59,7 @@ static const NWidgetPart _nested_land_info_widgets[] = { }; static WindowDesc _land_info_desc( - WDP_AUTO, "land_info", 0, 0, + WDP_AUTO, nullptr, 0, 0, WC_LAND_INFO, WC_NONE, 0, _nested_land_info_widgets, lengthof(_nested_land_info_widgets) @@ -1064,7 +1064,7 @@ static const NWidgetPart _nested_query_string_widgets[] = { }; static WindowDesc _query_string_desc( - WDP_CENTER, "query_string", 0, 0, + WDP_CENTER, nullptr, 0, 0, WC_QUERY_STRING, WC_NONE, 0, _nested_query_string_widgets, lengthof(_nested_query_string_widgets) diff --git a/src/music_gui.cpp b/src/music_gui.cpp index b995776f4b..8cff204162 100644 --- a/src/music_gui.cpp +++ b/src/music_gui.cpp @@ -642,7 +642,7 @@ static const NWidgetPart _nested_music_track_selection_widgets[] = { }; static WindowDesc _music_track_selection_desc( - WDP_AUTO, "music_track", 0, 0, + WDP_AUTO, nullptr, 0, 0, WC_MUSIC_TRACK_SELECTION, WC_NONE, 0, _nested_music_track_selection_widgets, lengthof(_nested_music_track_selection_widgets) diff --git a/src/osk_gui.cpp b/src/osk_gui.cpp index 750838acd6..ebffc51c52 100644 --- a/src/osk_gui.cpp +++ b/src/osk_gui.cpp @@ -335,7 +335,7 @@ static const NWidgetPart _nested_osk_widgets[] = { }; static WindowDesc _osk_desc( - WDP_CENTER, "query_osk", 0, 0, + WDP_CENTER, nullptr, 0, 0, WC_OSK, WC_NONE, 0, _nested_osk_widgets, lengthof(_nested_osk_widgets) diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index a784cd1fe6..b1f451ef3e 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -1886,7 +1886,7 @@ static const NWidgetPart _nested_signal_builder_widgets[] = { /** Signal selection window description */ static WindowDesc _signal_builder_desc( - WDP_AUTO, "build_signal", 0, 0, + WDP_AUTO, nullptr, 0, 0, WC_BUILD_SIGNAL, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_signal_builder_widgets, lengthof(_nested_signal_builder_widgets) diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 1ece5c0be8..341926acdc 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -899,7 +899,7 @@ static const NWidgetPart _nested_game_options_widgets[] = { }; static WindowDesc _game_options_desc( - WDP_CENTER, "settings_game", 0, 0, + WDP_CENTER, nullptr, 0, 0, WC_GAME_OPTIONS, WC_NONE, 0, _nested_game_options_widgets, lengthof(_nested_game_options_widgets) diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index a2a1c0b8d8..a9d29ab3b2 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -552,7 +552,7 @@ static const NWidgetPart _nested_query_sign_edit_widgets[] = { }; static WindowDesc _query_sign_edit_desc( - WDP_CENTER, "query_sign", 0, 0, + WDP_CENTER, nullptr, 0, 0, WC_QUERY_STRING, WC_NONE, WDF_CONSTRUCTION, _nested_query_sign_edit_widgets, lengthof(_nested_query_sign_edit_widgets) From e4be7f4a456dbeb999acbe8508277fc0cea31fa9 Mon Sep 17 00:00:00 2001 From: Tyler Trahan Date: Fri, 14 Jul 2023 10:25:01 -0400 Subject: [PATCH 48/58] Change: Clean up window title and button capitalization and wording (#11134) * Change: Use consistent window title format for industry/cargo chains * Change: Don't capitalize dropdown entry for cargo flow legend * Change: Use consistent window titles for AI and GS settings * Change: Use consistent window title for company value graph * Change: Use consistent window title for industry funding * Change: Use consistent button title to display industry chain * Change: Use consistent button capitalization for local authority button on town window * Fix: Don't capitalize random words in vehicle list management dropdown * Fix: Use title case for Frame Rate window caption * Fix: Use title case for Detailed Performance Rating window caption --- src/lang/english.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 0e654500fb..7fe2510ac5 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -431,7 +431,7 @@ STR_FILE_MENU_EXIT :Exit ###length 4 STR_MAP_MENU_MAP_OF_WORLD :Map of world STR_MAP_MENU_EXTRA_VIEWPORT :Extra viewport -STR_MAP_MENU_LINGRAPH_LEGEND :Cargo Flow Legend +STR_MAP_MENU_LINGRAPH_LEGEND :Cargo flow legend STR_MAP_MENU_SIGN_LIST :Sign list # Town menu @@ -604,7 +604,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Operatin STR_GRAPH_INCOME_CAPTION :{WHITE}Income Graph STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Units of cargo delivered STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Company performance ratings (maximum rating=1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Company values +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Company Value Graph STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Cargo Payment Rates STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Days in transit @@ -636,7 +636,7 @@ STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :President STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Tycoon # Performance detail window -STR_PERFORMANCE_DETAIL :{WHITE}Detailed performance rating +STR_PERFORMANCE_DETAIL :{WHITE}Detailed Performance Rating STR_PERFORMANCE_DETAIL_KEY :{BLACK}Detail STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT}) STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA}) @@ -2921,7 +2921,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}3x3 grid STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Random # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Fund new industry +STR_FUND_INDUSTRY_CAPTION :{WHITE}Industry Funding STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Choose the appropriate industry from this list STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Create random industries STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Cover the map with randomly placed industries @@ -2937,14 +2937,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Remove a STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Are you sure you want to remove all industries? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industry chain for {STRING} industry -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Industry chain for {STRING} cargo +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industry Chain - {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cargo Chain - {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Producing industries STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Accepting industries STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Houses STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Click at the industry to see its suppliers and customers STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Click at the cargo to see its suppliers and customers -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Display chain +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Industry Chain STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Display cargo supplying and accepting industries STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Link to smallmap STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Select the displayed industries at the smallmap as well @@ -3081,7 +3081,7 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{RAW_STRING} The OpenTTD team # Framerate display window -STR_FRAMERATE_CAPTION :{WHITE}Frame rate +STR_FRAMERATE_CAPTION :{WHITE}Frame Rate STR_FRAMERATE_CAPTION_SMALL :{STRING2}{WHITE} ({DECIMAL}x) STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simulation rate: {STRING2} STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Number of game ticks simulated per second. @@ -3500,7 +3500,7 @@ STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Town gro STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Town is {RED}not{BLACK} growing STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Noise limit in town: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA} STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Centre the main view on town location. Ctrl+Click opens a new viewport on town location -STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Local authority +STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Local Authority STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Show information on local authority STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}Change town name @@ -3850,16 +3850,16 @@ STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Available Aircr STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Manage list STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Send instructions to all vehicles in this list STR_VEHICLE_LIST_REPLACE_VEHICLES :Replace vehicles -STR_VEHICLE_LIST_SEND_FOR_SERVICING :Send for Servicing +STR_VEHICLE_LIST_SEND_FOR_SERVICING :Send for servicing STR_VEHICLE_LIST_CREATE_GROUP :Create group STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Profit this year: {CURRENCY_LONG} (last year: {CURRENCY_LONG}) STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING1} {STRING1} -STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Send to Hangar +STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Send to hangar STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Click to stop all the vehicles in the list STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Click to start all the vehicles in the list @@ -4612,8 +4612,8 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}One of t STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI/Game Script Debug window is only available for the server # AI configuration window -STR_AI_CONFIG_CAPTION_AI :{WHITE}AI Configuration -STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Game Script Configuration +STR_AI_CONFIG_CAPTION_AI :{WHITE}AI Settings +STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Game Script Settings STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}The Game Script that will be loaded in the next game STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}The AIs that will be loaded in the next game STR_AI_CONFIG_HUMAN_PLAYER :Human player From a184e7f79351bdff2343400168fa6bcc1f207c89 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Fri, 14 Jul 2023 22:51:46 +0200 Subject: [PATCH 49/58] Fix #11137: assertion failure due to interpreting string as number --- src/lang/english.txt | 7 ++++--- src/table/settings/gui_settings.ini | 2 +- src/table/settings/linkgraph_settings.ini | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 7fe2510ac5..b6d6b651c0 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1234,6 +1234,8 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Left STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centre STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Right +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}{NBSP}second{P 0 "" s} + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximum initial loan: {STRING2} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximum amount a company can loan (without taking inflation into account) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1451,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimal amount STR_CONFIG_SETTING_ERRMSG_DURATION :Duration of error message: {STRING2} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duration for displaying error messages in a red window. Note that some (critical) error messages are not closed automatically after this time, but must be closed manually -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} second{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Show tooltips: {STRING2} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Delay before tooltips are displayed when hovering the mouse over some interface element. Alternatively tooltips are bound to the right mouse button when this value is set to 0. @@ -1946,9 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING2} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING2}{NBSP}second{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING2} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING2}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING2} for recalculation of distribution graph STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING2} diff --git a/src/table/settings/gui_settings.ini b/src/table/settings/gui_settings.ini index d2dc032fb6..a30c22dc00 100644 --- a/src/table/settings/gui_settings.ini +++ b/src/table/settings/gui_settings.ini @@ -169,7 +169,7 @@ min = 0 max = 20 str = STR_CONFIG_SETTING_ERRMSG_DURATION strhelp = STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT -strval = STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE +strval = STR_CONFIG_SETTING_SECONDS_VALUE [SDTC_VAR] var = gui.hover_delay_ms diff --git a/src/table/settings/linkgraph_settings.ini b/src/table/settings/linkgraph_settings.ini index efcc9871b0..e21f33fef5 100644 --- a/src/table/settings/linkgraph_settings.ini +++ b/src/table/settings/linkgraph_settings.ini @@ -42,7 +42,7 @@ min = 4 max = 90 interval = 1 str = STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL -strval = STR_JUST_COMMA +strval = STR_CONFIG_SETTING_SECONDS_VALUE strhelp = STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT extra = offsetof(LinkGraphSettings, recalc_interval) @@ -55,7 +55,7 @@ min = 1 max = 9000 interval = 1 str = STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME -strval = STR_JUST_COMMA +strval = STR_CONFIG_SETTING_SECONDS_VALUE strhelp = STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT extra = offsetof(LinkGraphSettings, recalc_time) From bfbdaf8723173212526c694817023e295dba1ed7 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Fri, 14 Jul 2023 22:54:58 +0200 Subject: [PATCH 50/58] Update: force remove outdated strings as they can still trigger #11137 for other languages --- src/lang/brazilian_portuguese.txt | 2 -- src/lang/catalan.txt | 2 -- src/lang/danish.txt | 2 -- src/lang/dutch.txt | 2 -- src/lang/english_AU.txt | 2 -- src/lang/english_US.txt | 2 -- src/lang/esperanto.txt | 2 -- src/lang/finnish.txt | 2 -- src/lang/french.txt | 2 -- src/lang/galician.txt | 2 -- src/lang/german.txt | 2 -- src/lang/hungarian.txt | 1 - src/lang/indonesian.txt | 1 - src/lang/italian.txt | 2 -- src/lang/japanese.txt | 2 -- src/lang/korean.txt | 2 -- src/lang/polish.txt | 2 -- src/lang/portuguese.txt | 2 -- src/lang/russian.txt | 2 -- src/lang/swedish.txt | 2 -- src/lang/turkish.txt | 2 -- src/lang/vietnamese.txt | 2 -- src/lang/welsh.txt | 1 - 23 files changed, 43 deletions(-) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index b96d2cb95e..8dfbaad32e 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1947,9 +1947,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador do tamanho inicial da cidade: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho médio das cidades grandes em relação às cidades no início do jogo -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Atualiza o gráfico de distribuição a cada {STRING}{NBSP}segundo{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo entre recálculos subseqüentes do gráfico de link. Cada recálculo calcula os planos para um componente do gráfico. Isso significa que um valor X para esta configuração não significa que todo o gráfico será atualizado a cada X segundos. Apenas algum componente o fará. Quanto mais curto você definir, mais tempo de CPU será necessário para calculá-lo. Quanto mais tempo você definir, mais tempo levará até que a distribuição de carga comece em novas rotas -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Usar {STRING}{NBSP}segundo{P 0:2 "" s} para recalcular o gráfico de distribuição STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo gasto para cada recálculo de um componente de gráfico de link. Quando um recálculo é iniciado, um thread é gerado e pode ser executado por esse número de segundos. Quanto mais curto você definir, mais provável será que o encadeamento não seja concluído quando deveria. Então o jogo para até que seja ("lag"). Quanto mais tempo você definir, mais tempo levará para a distribuição ser atualizada quando as rotas mudarem. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribuição para passageiros: {STRING} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 47787d1807..ea9aad6920 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1946,9 +1946,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Cap STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador de mida inicial de ciutats: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :La grandària mitjana de les ciutats en relació als pobles a l'inici de la partida. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Actualitza el graf de distribució cada {STRING}{NBSP}segon{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Temps entre actualitzacions de les arestes del graf de distribució. Cada vegada es calcularan els plans d'un dels components del graf. Això vol dir que un valor X d'aquesta opció no significa que es recalculi el graf sencer cada X segons. Només ho farà algun component. Com més curt sigui, farà falta més temps de CPU per a calcular-lo. Com més llarg sigui, més es trigarà a què la distribució de càrrega s'apliqui a les rutes noves. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Triga {STRING}{NBSP}segon{P 0:2 "" s} per a recalcular el graf de distribució STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Temps emprat per a cada actualització del component d'una aresta del graf. Quan comença el recàlcul, s'inicia un fil que pot executar-se durant aquests segons. Com més curt sigui, més probable és que el fil no acabi a temps. Llavors, la partida para fins que finalitzi, provocant una interrupció del desenvolupament de la partida. Com més llarg sigui, més es trigarà a actualitzar el graf de distribució quan es facin canvis de rutes. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Mode de distribució per passatgers: {STRING} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 4606a7b47d..52a3bf2481 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -1946,9 +1946,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ingen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Startværdi for bystørrelsesfaktor: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gennemsnitlig størrelse af storbyer i forhold til normale byer ved start af spillet -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Opdater distributionsgraf hver {STRING}{NBSP}sekund{P 0:2 "" er} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tid mellem efterfølgende genberegninger af linkgrafen. Hver genberegning beregner planerne for én komponent af grafen. Det betyder, at en værdi X for denne indstilling ikke betyder, at hele grafen vil blive opdateret hvert X sekund. Kun en komponent vil. Jo kortere du indstiller det, jo mere CPU-tid vil være nødvendigt for at beregne det. Jo længere du indstiller det, jo længere tid vil det tage, før godsfordelingen starter på nye ruter. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Tag {STRING}{NBSP}sekund{P 0:2 "" er} til genberegning af fordelingsgraf STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tid det tager for hver genberegning af en linkgrafkomponent. Når en genberegning startes, dannes en tråd, som får lov til at køre i dette antal sekunder. Jo kortere du indstiller dette, jo mere sandsynligt er det, at tråden ikke er færdig, når den skal. Så stopper spillet, indtil det er ("lag"). Jo længere du indstiller det, jo længere tid tager det for distributionen at blive opdateret, når ruter ændres. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributionsmodel for passagerer: {STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 846e933a86..881a766d05 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1946,9 +1946,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Geen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Beginfactor voor stadsgroei: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gemiddelde grootte van steden in vergelijking tot normale steden bij het begin van het spel. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Distributiegrafiek elke {STRING}{NBSP}second{P 0:2 "" en} bijwerken STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :De tijd tussen opeenvolgende herberekeningen van de koppeling-grafiek. Elke berekening berekent de plannen voor één component van de grafiek. Dat betekent dat een waarde X voor deze instelling niet betekent dat de hele grafiek elke X seconden wordt bijgewerkt. Dat geldt alleen voor één component. Hoe korter je deze waarde instelt, hoe meer CPU-tijd er nodig is voor de berekening. Hoe langer je deze waarde instelt, hoe langer het duurt voordat de vrachtdistributie start op nieuwe routes. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Besteed {STRING}{NBSP}second{P 0:2 "" en} per herberekening van de distributiegrafiek STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :De benodigde tijd voor een herbereking van een koppeling-grafiekcomponent. Wanneer een herberekening wordt gestart, start een draad die dit aantal seconden mag lopen. Hoe korter je deze waarde maakt, hoe groter de kans dat de draad is niet op tijd is afgelopen. Het spel stopt dan totdat dit alsnog gebeurt (het 'hikt'). Hoe langer je deze waarde maakt, hoe langer het duurt voor de distributie wordt bijgewerkt wanneer een route wijzigt. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributiemodus voor passagiers: {STRING} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 4f367cf9d2..98c4c26b10 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -1946,9 +1946,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING}{NBSP}second{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index c31409f9d4..738f5e438b 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1946,9 +1946,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING}{NBSP}second{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 4515f0626e..c0501b3310 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1982,8 +1982,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Neniom STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Komenca urbgrandeca multobligo: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Averaĝa grandeco de urbegoj rilate al normalaj urboj je la komenco de la ludo -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Ĝisdatigu la distribuan grafeon {P 0:2 "ĉiun" "ĉiujn"} {STRING}{NBSP}{P 0:2 "sekundon" "sekundojn"} -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Uzu {STRING}{NBSP}sekundo{P 0:2 n jn} por rekalkulado de la distribua grafeo STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribua reĝimo por pasaĝeroj: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simetria" signifas ke proksimume la sama nombro de pasaĝeroj iros de stacio A al stacio B kiel de B al A. "Malsimetria" signifas ke ajnaj nombroj de pasaĝeroj povas iri en ajnan direkton. "Permana" signifas ke ne estos aŭtomata distribuado de pasaĝeroj. diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 4a96a3412b..d5622ab02e 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1946,9 +1946,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ei yhtään STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kasvukerroin alussa: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Kaupunkien keskimääräinen koko suhteessa muihin kuntiin pelin alussa -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Päivitä yhteyskuvaaja {STRING}{NBSP}sekunnin välein STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Yhteyskuvaajan uudelleenlaskentojen välinen aika. Jokainen uudelleenlaskenta laskee suunnitelmat kuvaajan yhdelle osalle. Tämän asetuksen arvo X ei siis tarkoita, että koko kuvaaja päivittyisi X sekunnin välein, vaan ainoastaan sen yksi osa. Mitä lyhyemmäksi asetat tämän ajan, sitä enemmän suoritinaikaa kuluu laskentaan. Mitä pitemmäksi asetat ajan, sitä pitempään kestää rahdin jakautumisen alkaminen uusille reiteille. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Käytä {STRING}{NBSP}sekunti{P 0:2 "" a} yhteyskuvaajan uudelleenlaskentaan STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Yhteyskuvaajan kunkin osan uudelleenlaskentaan käytettävä aika. Uudelleenlaskennan alkaessa käynnistetään säie, jonka annetaan toimia näin monta sekuntia. Mitä lyhyemmäksi asetat tämän ajan, sitä todennäköisemmin säie ei ehdi päättymään ajoissa, jolloin peli pysähtyy (”jumii”) säikeen valmistumiseen asti. Mitä pitemmäksi asetat ajan, sitä pitempään rahdin jakautumisen päivittyminen kestää reittien muuttuessa. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Matkustajien jakautuminen: {STRING} diff --git a/src/lang/french.txt b/src/lang/french.txt index 6df23d03fa..3d6823df6c 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1947,9 +1947,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Aucune STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicateur initial pour la taille des métropoles{NBSP}: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Taille moyenne des métropoles par rapport aux villes normales au début de la partie -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Mise à jour le graphe de distribution toutes les {STRING}{NBSP}seconde{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Intervalle entre les recalculs successifs du graphe de liaison. Chaque recalcul planifie un composant du graphe. Cela signifie qu'une valeur X pour ce paramètre ne signifie pas que l'ensemble du graphe sera mis à jour toutes les X secondes. Seul un composant le sera. Plus vous définissez cet intervalle court, plus le temps de processeur nécessaire pour le calcul sera important. Plus vous définissez cet intervalle long, plus il faudra de temps pour que la distribution de marchandises commence sur de nouveaux itinéraires. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Prend {STRING}{NBSP}seconde{P 0:2 "" s} pour le recalcul du graphe de distribution STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Temps pris pour chaque recalcul d'un composant du graphe de liaison. Lorsqu'un recalcul est lancé, un fil d'exécution est créé et autorisé à fonctionner pendant ce nombre de secondes. Plus vous définissez cette durée courte, plus il est probable que le fil ne soit pas terminé lorsqu'il est censé l'être. Ensuite, le jeu s'arrête jusqu'à ce qu'il le soit ("lag"). Plus vous définissez cette durée longue, plus il faut de temps pour que la distribution soit mise à jour lorsque les itinéraires changent. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Type de distribution pour les passagers{NBSP}: {STRING} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index d2fd658d31..33d3658961 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1946,9 +1946,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ningunha STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial do tamaño da cidade: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Relación entre o tamaño medio das cidades e o dos pobos ao inicio da partida -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Actualizar o grafo de distribución cada {STRING}{NBSP}segundo{P 0:2 "" s}. STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo entre recálculos sucesivos do grafo de ligazóns. Cada recálculo calcula os plans para un compoñente do grafo. Iso significa que un valor X para esta configuración non significa que o grafo completo sexa actualizado cada X segundos. Só algúns compoñentes o serán. Canto máis curto sexa o tempo establecido, máis tempo de CPU será necesario para calculalo. Canto máis longo sexa o tempo establecido, máis tempo levará ata que a distribución de carga comece a percorrer novas rutas. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Toma {STRING}{NBSP}segundo{P 0:2 "" s} para o recálculo do grafo de distribución. STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo necesario para cada recalculación dun compoñente do grafo de ligazóns. Cando se inicia unha recalculación, abrese un fío que se pode executar durante este número de segundos. Canto máis curto o establezas, máis probable é que o fío non remate cando se supón que debe facelo. Entón, o xogo detense ata que o fío remata («lag»). Canto máis longo o estabelezas, máis tempo levará actualizar a distribución cando cambien as rutas. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribución para pasaxeiros: {STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index e3b1939e8d..c3b3810400 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1947,9 +1947,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Keine STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Größe von Großstädten bei Spielbeginn: {STRING}× STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Durchschnittliche Größe von Großstädten relativ zu normalen Städten bei Spielbeginn -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Verteilungsgraphen jede {STRING}{NBSP}Sekund{P 0:2 "" en} aktualisieren STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Zeit zwischen anfolgenden Neuberechnungen der Warenverteilung. Jede Neuberechnung berechnet die Pläne für eine Komponente des Graphen. Das bedeutet, dass ein Wert X für diese Einstellung nicht bedeutet, dass der gesamte Graph alle X Sekunden aktualisiert wird. Nur ein Teil wird es. Je kürzer du die Zeit festlegst, desto mehr CPU-Zeit wird nötig sein, um ihn zu berechnen. Je länger du die Zeit festlegst, desto länger wird es dauern, bis die Frachtverteilung auf neuen Strecken beginnt. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :{STRING}{NBSP}Sekund{P 0:2 "" en} für Neuberechnung des Verteilungsgraphen nehmen STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Zeit für jede Neuberechnung einer Warenverteilungskomponente. Wenn eine Neuberechnung gestartet wird, wird ein Thread gestartet, der für diese Anzahl von Sekunden laufen darf. Je kürzer du ihn festlegst, desto wahrscheinlicher ist es, dass der Thread nicht beendet ist, wenn er aber sein sollte. Dann wird das Spiel beendet, sobald dies der Fall ist („Lag“). Je länger du es festlegst, desto länger dauert es, bis die Verteilung aktualisiert wird, wenn sich Routen ändern. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Verteilungsschema für Passagiere: {STRING} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 3093e9430a..0d974cd3e9 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2002,7 +2002,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :nincs STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kezdeti városméret-szorzó: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Átlagos városméret a normál településekhez képest a játék kezdetén -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Kapcsolatgrafikon frissítése minden {STRING}{NBSP}másodpercben{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :A kapcsolatgrafikon következő újrakalkulálása között eltelt idő. Minden újrakalkulálás során egy komponens tervei kerülnek kiszámításra. Ez azt jelenti, hogy az X érték beállítása nem jelenti azt, hogy az egész grafikon X másodpercenként frissül. Csak néhány komponens lesz frissítve. Minél rövidebbre van állítva, annál több CPU időre van szükség a kiszámításhoz. Ha hosszabbra van állítva, akkor hosszabb időbe telik, amíg az áruelosztás elkezdődik az új útvonalakon. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Utasok szétosztása: {STRING} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 98b2d71777..1b90e6ea65 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -1942,7 +1942,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Tidak ada STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Faktor kali ukuran kota awal: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Ukuran rata-rata kota besar terhadap kota kecil saat permainan dimulai -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Pembaruan grafik distribusi setiap {STRING}{NBSP} detikP 0:2 "" } STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modus distribusi untuk penumpang: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simetris" berarti kira-kira jumlah penumpang sama akan pergi dari stasiun A ke stasiun B sebagaimana dari B ke A. "Asimetris" berarti jumlah penumpang pergi pada kedua arah bisa berbeda-beda. "Manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk penumpang. diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 7870f927d2..819cdee8d1 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1981,9 +1981,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nessuna STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Moltiplicatore iniziale dimensioni metropoli: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Dimensione media delle metropoli in rapporto alle normali città all'inizio della partita. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Aggiornare il grafico di distribuzione ogni {STRING}{NBSP}{P 0:2 "secondo" secondi} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo tra i successivi ricalcoli del grafico dei collegamenti. Ogni ricalcolo calcola i piani per un componente del grafico. Ciò significa che un valore X per questa impostazione non significa che l'intero grafico verrà aggiornato ogni X secondi. Solo alcuni componenti lo saranno. Quanto più breve è l'impostazione, tanto più tempo di CPU sarà necessario per il calcolo. Più lungo è il valore impostato, più tempo ci vorrà prima che la distribuzione del carico inizi su nuove rotte. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Prendere {STRING}{NBSP}{P 0:2 "secondo" secondi} per il ricalcolo del grafico di distribuzione STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo necessario per ogni ricalcolo di un componente del grafo dei collegamenti. Quando viene avviato un ricalcolo, viene generato un thread che può essere eseguito per questo numero di secondi. Quanto più breve è il tempo impostato, tanto più è probabile che il thread non finisca quando dovrebbe. In questo caso il gioco si ferma finché non viene terminato ("lag"). Più lungo è il valore impostato, più tempo ci vuole per aggiornare la distribuzione quando i percorsi cambiano. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modalità di distribuzione dei passeggeri: {STRING} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 2d99525068..fa4b832671 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -1937,9 +1937,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :変化なし STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :初期の都市サイズ乗数: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :ゲーム開始時に都市が普通の街に比べて平均して何倍の人口規模になるかを設定します -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :行先分配グラフを{STRING}秒毎に更新 STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :行先分配グラフの更新の間の待ち時間。各更新はグラフの一部だけのルートを再計算します。即ち、この設定を〇〇秒に指定する場合、全グラフが〇〇秒毎に更新されるのではありません。間隔が短ければ短いほどCPU時間を消費します。長ければ長いほど貨物流通の新規ルートの行先分配に時間がかかります。 -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :行先分配の更新に{STRING}秒を割り当て STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :行先分配グラフの更新に割り当てられる時間。更新が始まると、スレッドが生成されて、指定の時間に実行させられます。短ければ短いほど間に合わない可能性が高まります。その場合、ゲームは停止して計算完了を待ちます。長ければ長いほどルート変更の際に行先分配の更新に時間がかかります。 STR_CONFIG_SETTING_DISTRIBUTION_PAX :旅客の行先分配法: {STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 45a958961e..52c5bc87fc 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1947,9 +1947,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :없음 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :초기 대도시 크기 비율: 일반 도시보다 {STRING}배 크게 시작 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :게임을 시작했을 때 일반 도시에 대한 대도시의 평균 크기를 설정합니다 -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :분배 그래프를 매 {STRING}초마다 업데이트 STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :각 연결 그래프의 하위 시퀀스 재계산 사이의 시간입니다. 각 재계산은 그래프의 한 구성 요소에 대한 계획을 계산합니다. 즉, 이 설정을 X로 설정한다고 해서 전체 그래프를 X초마다 업데이트한다는 뜻은 아닙니다. 일부 구성 요소만 X초마다 업데이트됩니다. 이 값을 더 짧게 설정할 수록 계산하는데 더 많은 CPU 계산 시간이 필요합니다. 값을 더 길게 설정하면 화물 분배가 새 경로로 이뤄지기까지 더 오랜 시간이 걸리게 됩니다. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :분배 그래프의 재계산을 위해 {STRING}초 사용 STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :각 연결 그래프의 구성 요소를 재계산하는데 걸리는 시간입니다. 재계산이 시작되면, 이 시간(초) 동안 실행할 수 있는 스레드가 생성됩니다. 이 값을 더 짧게 설정할수록 스레드가 완료되어야 할 때 완료되지 못할 가능성이 높아집니다. 그러면 이를 완료하기 전까지는 게임이 멈추게 됩니다. 값을 더 길게 설정하면 경로가 변경되었을 때 분배가 업데이트되는 데 더 오래 걸립니다. STR_CONFIG_SETTING_DISTRIBUTION_PAX :승객에 대한 분배 형식: {STRING} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 4ff68338fe..2f4ad8dcd3 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2326,9 +2326,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Żadne STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Początkowy mnożnik rozmiarów metropolii: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Średni rozmiar metropolii w porównaniu do normalnych miast na początku gry -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Aktualizuj graf dystrybucji co {STRING}{NBSP}sekund{P 0:2 ę y ""} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Czas pomiędzy kolejnymi przeliczeniami grafu połączeń. Każde przeliczenie oblicza plany dla jednego komponentu grafu. Wartość X dla tego ustawienia nie oznacza, że cały graf będzie aktualizowany co X sekund. Aktualizowane będą tylko niektóre komponenty. Im mniejszą wartość ustawisz, tym więcej czasu będzie potrzebował procesor, aby wykonać obliczenia. Im większą wartość ustawisz, tym więcej czasu upłynie, zanim rozpocznie się dystrybucja ładunków po nowych trasach. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Przeznacz {STRING}{NBSP}sekund{P 0:2 ę y ""} na przeliczenie grafu dystrybucji STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Czas potrzebny na każde przeliczenie komponentu grafu połączeń. Po rozpoczęciu przeliczania, tworzony jest wątek, który może działać przez podaną liczbę sekund. Im mniejszą wartość ustawisz, tym większe prawdopodobieństwo, że wątek nie zostanie ukończony w wyznaczonym czasie. Wtedy gra zatrzymuje się do czasu jego zakończenia („lag”). Im większą wartość ustawisz, tym dłużej będzie trwała aktualizacja dystrybucji, gdy zmienią się trasy. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Tryb dystrybucji dla pasażerów: {STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index c9fb156d09..c520d44285 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1947,9 +1947,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial para a dimensão das metrópoles: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho relativo das cidades em relação ao tamanho normal das localidades aquando o início do jogo -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Atualizar o gráfico de distribuição a cada {STRING}{NBSP}segundo{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo de intervalo entre recalculos subsequentes do gráfico de ligações. Cada recalculo calcula os planos para um componente do gráfico. Isso significa que um valor X para esta configuração não significa que todo o gráfico será atualizado a cada X segundos. Apenas algum componente será. Quanto mais curto escolher, mais tempo de CPU será necessário para calcular. Quanto mais tempo for definido, mais tempo levará até que a distribuição de carga inicie nas novas rotas. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Usar {STRING}{NBSP}segundo{P 0:2 "" s} para recalcular o gráfico de distribuição STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo gasto para cada recalculo de um componente de gráfico de ligação. Quando um recalculo é iniciado, um encadeamento é gerado e pode ser executado nesse número de segundos. Quanto mais curto você definir, mais provável será que o encadeamento não seja concluído quando deveria. Então o jogo pára até que seja ("lag"). Quanto mais tempo você definir, mais tempo levará para a distribuição ser atualizada quando as rotas mudarem. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribuição para os passageiros: {STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 8f003a4ebf..b08f7dd88e 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2097,9 +2097,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :нет STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Стартовый множитель размера мегаполисов: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Средний размер мегаполисов по сравнению с остальными городами в начале игры -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Обновлять граф распределения кажд{P 0:2 ую ые ые} {STRING}{NBSP}секунд{P 0:2 у ы ""} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Интервалы между перерасчётами графов распределения грузов. Каждый перерасчёт обновляет один компонент графа. То есть, по истечении указанного здесь времени будет обновлён не весь граф, а только один из его компонентов. Чем ниже значение, тем выше нагрузка на процессор. Чем выше значение, тем дольше не будет работать распределение грузов на новых маршрутах. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Продолжительность перерасчёта графа распределения: {STRING}{NBSP}секунд{P 0:2 а ы ""} STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Время, выделяемое на каждый перерасчёт одного из компонентов графа распределения грузов. Расчёт выполняется в отдельном вычислительном потоке. Чем ниже значение, тем выше вероятность того, что расчёт не будет выполнен за указанное время; в таком случае игра будет приостановлена до завершения расчёта. Чем выше значение, тем медленнее будет обновляться граф распределения в случае изменения маршрутов. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Распределение пассажиров: {STRING} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 8254e4621f..3a047fca0d 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1941,9 +1941,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Inga STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial stadsstorleks-multiplikator: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Storstäders genomsnittliga storlek i relation till vanliga städers vid spelets början -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Uppdatera distributionsdiagram var {STRING}{NBSP}sekund{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tid mellan efterföljande omräkningar av länkgrafen. Varje omräkning beräknar planerna för en komponent i grafen. Det betyder att ett värde X för den här inställningen inte betyder att hela grafen kommer att uppdateras var X:e sekund. Bara viss komponent kommer att göra det. Ju kortare du ställer in den desto mer CPU-tid kommer att behövas för att beräkna den. Ju längre du ställer in den desto längre tid tar det tills lastdistributionen startar på nya rutter. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Ta {STRING}{NBSP}sekund{P 0:2 "" s} för omräkning av distributionsdiagrammet STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tid som det tar för varje omräkning av en länkdiagramkomponent. När en omräkning startas skapas en tråd som tillåts köra i detta antal sekunder. Ju kortare du ställer in detta desto mer sannolikt är det att tråden inte är färdig när den ska. Sedan stannar spelet tills det är ("lag"). Ju längre du ställer in den desto längre tid tar det för distributionen att uppdateras när rutter ändras. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributionssätt för passagerare: {STRING} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 2ede1a4db2..bf9ff40ca0 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1947,9 +1947,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Hiçbiri STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Birincil şehir büyüklüğü çarpanı: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Oyun başlangıcında şehirlerin normal kasabalara kıyasla ortalama büyüklüğü -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Dağıtım grafiğini her {STRING}{NBSP}saniyede{P 0:2 ""} güncelle STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Bağlantı grafiğinin sonraki yeniden hesaplamaları arasındaki süre. Her yeniden hesaplama, grafiğin bir bileşeni için planları hesaplar. Bu, bu ayar için bir X değerinin tüm grafiğin her X saniyede bir güncelleneceği anlamına gelmediği anlamına gelir. Sadece bazı bileşenler olacaktır. Ne kadar kısa ayarlarsanız, hesaplamak için o kadar fazla CPU süresi gerekir. Ne kadar uzun ayarlarsanız, kargo dağıtımının yeni rotalarda başlaması o kadar uzun sürer. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Dağıtım grafiğinin yeniden hesaplanması için {STRING}{NBSP}saniye{P 0:2 ""} bekleyin STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Bir bağlantı grafiği bileşeninin her yeniden hesaplanması için geçen süre. Bir yeniden hesaplama başlatıldığında, bu sayıda saniye boyunca çalışmasına izin verilen bir iş parçacığı oluşturulur. Bunu ne kadar kısa ayarlarsanız, iş parçacığının olması gerektiği zamanda bitmemiş olma olasılığı o kadar artar. Ardından oyun ("gecikme") olana kadar durur. Ne kadar uzun ayarlarsanız, rotalar değiştiğinde dağıtımın güncellenmesi o kadar uzun sürer. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Yolcular için dağıtım kipi: {STRING} diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index ea6ebe9615..058814fd5e 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1946,9 +1946,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Không STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Hệ số quy mô đô thị coi là thành phố: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Kích thước trung bình của thành phố tỉ lệ với đô thị lúc bắt đầu trò chơi -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Cập nhật biểu đồ phân phối mỗi {STRING}{NBSP}giây STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Thời gian giữa các lần tính toán lại tiếp theo của biểu đồ liên kết. Mỗi lần tính toán lại sẽ tính toán các kế hoạch cho một thành phần của biểu đồ. Điều đó có nghĩa là giá trị X cho cài đặt này không có nghĩa là toàn bộ biểu đồ sẽ được cập nhật X giây một lần. Chỉ một số thành phần sẽ làm như vậy. Bạn đặt nó càng ngắn thì càng cần nhiều thời gian CPU để tính toán nó. Bạn đặt càng lâu thì càng mất nhiều thời gian cho đến khi việc phân phối hàng hóa bắt đầu trên các tuyến đường mới. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Mất {STRING}{NBSP}giây để tính toán lại biểu đồ phân phối STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Thời gian tiêu tốn cho mỗi lần tính toán lại một thành phần biểu đồ liên kết. Khi bắt đầu tính toán lại, một luồng sẽ được sinh ra và chạy trong số giây được thiết lập. Bạn đặt thông số này càng ngắn thì càng có nhiều khả luồng được tạo chưa hoàn thành công việc của nó. Sau đó, trò chơi dừng lại cho đến khi nó ("lag"). Bạn đặt càng lâu thì biểu đồ phân phối càng mất nhiều thời gian để cập nhật khi các tuyến thay đổi. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Chế độ phân phối đối với hành khách: {STRING} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 1898043ed7..de6f933ac7 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -1816,7 +1816,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Dim STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Lluosydd cychwynol maint dinas: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Maint cymhedrol dinasoedd o gymharu â threfi arferol ar ddechrau'r gêm -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Cymryd {STRING}{NBSP}eiliad ar gyfer ailgyfrifo'r graff dosraniad STR_CONFIG_SETTING_DISTRIBUTION_PAX :Dull dosrannu ar gyfer teithwyr: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :Mae "cymesur" yn golygu y bydd tua'r un faint o deithwyr yn mynd o orsaf A i orsaf B ac yr aiff o B i A. Mae "anghymesur" yn golygu y gall niferoedd mympwyol fynd yn y naill cyfeiriad neu'r llall. Mae "â llaw" yn golygu ni fydd dosrannu diofyn yn digwydd ar gyfer teithwyr. From 756c469b8f900f6d1a82ba6b509d568de2967f71 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 15 Jul 2023 18:39:54 +0000 Subject: [PATCH 51/58] Update: Translations from eints english (au): 20 changes by krysclarke swedish: 2 changes by SkogisREAL japanese: 2 changes by fmang welsh: 1 change by Ansbaradigeidfran english (us): 2 changes by 2TallTyler galician: 2 changes by pvillaverde vietnamese: 2 changes by KhoiCanDev korean: 8 changes by telk5093 hungarian: 1 change by PstasDev indonesian: 1 change by ecolortest italian: 2 changes by Rivarossi german: 2 changes by Wuzzy2 russian: 9 changes by Ln-Wolf finnish: 2 changes by hpiirai catalan: 2 changes by J0anJosep turkish: 2 changes by densxd danish: 2 changes by bscargo dutch: 2 changes by Afoklala french: 2 changes by ZarTek-Creole portuguese: 28 changes by azulcosta esperanto: 2 changes by legoscia portuguese (brazilian): 2 changes by ericandradex polish: 2 changes by pAter-exe --- src/lang/afrikaans.txt | 2 +- src/lang/arabic_egypt.txt | 2 +- src/lang/basque.txt | 2 +- src/lang/belarusian.txt | 2 +- src/lang/brazilian_portuguese.txt | 4 ++- src/lang/bulgarian.txt | 2 +- src/lang/catalan.txt | 4 ++- src/lang/chuvash.txt | 1 + src/lang/croatian.txt | 2 +- src/lang/czech.txt | 2 +- src/lang/danish.txt | 4 ++- src/lang/dutch.txt | 4 ++- src/lang/english_AU.txt | 40 +++++++++++----------- src/lang/english_US.txt | 4 ++- src/lang/esperanto.txt | 5 +-- src/lang/estonian.txt | 2 +- src/lang/faroese.txt | 2 +- src/lang/finnish.txt | 4 ++- src/lang/french.txt | 4 ++- src/lang/frisian.txt | 2 +- src/lang/gaelic.txt | 2 +- src/lang/galician.txt | 4 ++- src/lang/german.txt | 4 ++- src/lang/greek.txt | 2 +- src/lang/hebrew.txt | 2 +- src/lang/hindi.txt | 1 + src/lang/hungarian.txt | 3 +- src/lang/icelandic.txt | 2 +- src/lang/ido.txt | 1 + src/lang/indonesian.txt | 3 +- src/lang/irish.txt | 2 +- src/lang/italian.txt | 4 ++- src/lang/japanese.txt | 4 ++- src/lang/korean.txt | 16 +++++---- src/lang/latin.txt | 2 +- src/lang/latvian.txt | 2 +- src/lang/lithuanian.txt | 2 +- src/lang/luxembourgish.txt | 2 +- src/lang/macedonian.txt | 1 + src/lang/malay.txt | 1 + src/lang/maltese.txt | 1 + src/lang/marathi.txt | 1 + src/lang/norwegian_bokmal.txt | 2 +- src/lang/norwegian_nynorsk.txt | 2 +- src/lang/persian.txt | 1 + src/lang/polish.txt | 4 ++- src/lang/portuguese.txt | 56 ++++++++++++++++--------------- src/lang/romanian.txt | 2 +- src/lang/russian.txt | 18 +++++----- src/lang/serbian.txt | 2 +- src/lang/simplified_chinese.txt | 2 +- src/lang/slovak.txt | 2 +- src/lang/slovenian.txt | 2 +- src/lang/spanish.txt | 2 +- src/lang/spanish_MX.txt | 2 +- src/lang/swedish.txt | 4 ++- src/lang/tamil.txt | 2 +- src/lang/thai.txt | 2 +- src/lang/traditional_chinese.txt | 2 +- src/lang/turkish.txt | 4 ++- src/lang/ukrainian.txt | 2 +- src/lang/urdu.txt | 1 + src/lang/vietnamese.txt | 4 ++- src/lang/welsh.txt | 3 +- 64 files changed, 164 insertions(+), 113 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index c75d9947ab..ef3a22060f 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -1145,6 +1145,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Links STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Senter STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Regs + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimum aanvanklike lening: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksimum bedrag wat 'n maatskappy kan leen (sonder die inagneming van inflasie) ###setting-zero-is-special @@ -1350,7 +1351,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimale bedrag STR_CONFIG_SETTING_ERRMSG_DURATION :Tyd wat fout boodskap wys: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Tydsduur vir die vertoning van foutboodskappe. Kritiese foutboodskappe word nie outomaties toegemaak nie. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekonde{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :wys sleutel-leidraad: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Tydsduur voor nutswenke vertoon words as die muis oor koppelvlakelemente gehou word. Alternatiewelik kan die nutswenke ook aan die regter-muisknoppie verbind word indien die stelling na 0 gestel word. diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 578b91f7a8..39f75aa052 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -1139,6 +1139,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :يسار STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :متوسط STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :يمين + ###setting-zero-is-special STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :سعر الفائدة على القرض يتحكم أيضًا في التضخم ، إذا تم تمكينه @@ -1279,7 +1280,6 @@ STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :عند التم STR_CONFIG_SETTING_AUTORENEW_MONEY :التجديد التلقائي عند توفر السيولة الدنيا للتجديد: {STRING} -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} ثانية ###setting-zero-is-special diff --git a/src/lang/basque.txt b/src/lang/basque.txt index f4b6c21e16..a24e8bc20f 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -1108,6 +1108,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Ezkerra STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Erdia STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Eskuina + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Gehienezko mailegua joko hasieran: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Konpainiek eskatu dezaketen gehienezko mailegua(inflazioa kontua hartu gabe) ###setting-zero-is-special @@ -1306,7 +1307,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Bankuan gutxien STR_CONFIG_SETTING_ERRMSG_DURATION :Akats mezuen iraupena: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Lehio gorrian agertzen diren akats mezuen iraupena automatikoki itxi baino lehen. Kontuan hartu zeinbait akats mezu (Kritikoak) ez direla automatikoki itxiko ezarritako denbora pasa eta gero, eskuz itxi behako dira -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundu STR_CONFIG_SETTING_HOVER_DELAY :Erakutsi argibideak: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Sagua, interfazeko elementu batzuen gainean jartzerakoan, argibideak bistaratu aurretik pasa beharko den denbora. Elementu batzuetan saguko eskuineko botoia sakatu beharko da diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index a4a0e2add4..7fdb4eb717 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -1456,6 +1456,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :леваруч STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :ў цэнтры STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :праваруч + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Максымальная сума пазыкі: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Максымальная сума пазыкі для кампаніі (без уліку інфляцыі) ###setting-zero-is-special @@ -1662,7 +1663,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Мінімал STR_CONFIG_SETTING_ERRMSG_DURATION :Працягласьць паведамленняў аб памылцы: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Працялегласьць паказваньня паведамленьняў аб памылках у чырвоным вакне. Зазначце, што некаторыя (крытычныя) паведамленьні ня будуць аўтаматычна зьнікаць пасьля гэтага часу, але мусяць быць закрытымі уручную. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} сэкунд{P а ы аў} STR_CONFIG_SETTING_HOVER_DELAY :Паказваць падказкi: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Затрымка паміж навядзеньнем паказальніка мышы на элемент інтэрфейсу і з'яўленьнем падказкі. Калі гэта значэнне роўна 0, падказкі з'яўляюцца па пстрычцы правай кнопкі мышы. diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 8dfbaad32e..b385200844 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Esquerda STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Direita + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Empréstimo Inicial Máximo: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Quantia máxima a ser emprestada para uma companhia (sem levar em conta a inflação) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1450,7 +1451,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantia mínima STR_CONFIG_SETTING_ERRMSG_DURATION :Duração da mensagem de erro: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Define quanto tempo as janelas de erro (vermelhas) ficam abertas antes de fecharem automaticamente. Erros críticos devem ser fechados manualmente. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundo{P "" s} STR_CONFIG_SETTING_HOVER_DELAY :Exibir dicas: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Intervalo antes das dicas de ferramentas aparecerem ao deixar o mouse sobre algum botão na interface. Em contrapartida, as dicas são mostradas ao se clicar com o botão direito se esse valor for definido para 0. @@ -1947,7 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador do tamanho inicial da cidade: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho médio das cidades grandes em relação às cidades no início do jogo +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Atualiza o gráfico de distribuição a cada {STRING}{NBSP}segundo{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo entre recálculos subseqüentes do gráfico de link. Cada recálculo calcula os planos para um componente do gráfico. Isso significa que um valor X para esta configuração não significa que todo o gráfico será atualizado a cada X segundos. Apenas algum componente o fará. Quanto mais curto você definir, mais tempo de CPU será necessário para calculá-lo. Quanto mais tempo você definir, mais tempo levará até que a distribuição de carga comece em novas rotas +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Usar {STRING}{NBSP}segundo{P 0:2 "" s} para recalcular o gráfico de distribuição STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo gasto para cada recálculo de um componente de gráfico de link. Quando um recálculo é iniciado, um thread é gerado e pode ser executado por esse número de segundos. Quanto mais curto você definir, mais provável será que o encadeamento não seja concluído quando deveria. Então o jogo para até que seja ("lag"). Quanto mais tempo você definir, mais tempo levará para a distribuição ser atualizada quando as rotas mudarem. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribuição para passageiros: {STRING} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index b8e77b4bd8..bf6a1b23a9 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -1128,6 +1128,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :ляво STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :център STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :дясно + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Максимален начален заем: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Максимално количество заем за компания (без отчитане на инфлацията) ###setting-zero-is-special @@ -1329,7 +1330,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Минимал STR_CONFIG_SETTING_ERRMSG_DURATION :Продължителност на съобщението за грешка: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Време през което съобщенията за грешки се показват в червен прозорец. Някой (критичните) съобщения за грешки не се затварят автоматично след това време, а трябва да бъдат затворени ръчно. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} секунд{P 0 а и} STR_CONFIG_SETTING_HOVER_DELAY :Покажи съвети: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Изкачване преди съветът да се покаже, когато мишката е върху елемент от интерфейса. Алтернативно съветите могат да бъдат активирани с десния бутон на мишката ако стойността е 0 diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index ea9aad6920..2d6fd5add4 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Esquerra STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centre STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Dreta + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Préstec inicial màxim: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Quantitat màxima del préstec que pot demanar una companyia (sense tenir en compte la inflació) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1450,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Estableix la qu STR_CONFIG_SETTING_ERRMSG_DURATION :Duració del missatge d'error: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duració dels missatges d'error mostrats en finestres vermelles. Alguns missatges d'error (crítics) no es tanquen automàticament i s'han de tancar manualment -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segon{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Mostra descripcions emergents: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Retard abans que les descripcions emergents siguin mostrades quan el ratolí sigui sobre algun element de la interfície. Alternativament, les descripcions emergents poden ser vinculades al botó dret del ratolí si aquest paràmetre s'estableix en 0. @@ -1946,7 +1946,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Cap STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador de mida inicial de ciutats: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :La grandària mitjana de les ciutats en relació als pobles a l'inici de la partida. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Actualitza el graf de distribució cada {STRING}{NBSP}segon{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Temps entre actualitzacions de les arestes del graf de distribució. Cada vegada es calcularan els plans d'un dels components del graf. Això vol dir que un valor X d'aquesta opció no significa que es recalculi el graf sencer cada X segons. Només ho farà algun component. Com més curt sigui, farà falta més temps de CPU per a calcular-lo. Com més llarg sigui, més es trigarà a què la distribució de càrrega s'apliqui a les rutes noves. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Triga {STRING}{NBSP}segon{P 0:2 "" s} per a recalcular el graf de distribució STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Temps emprat per a cada actualització del component d'una aresta del graf. Quan comença el recàlcul, s'inicia un fil que pot executar-se durant aquests segons. Com més curt sigui, més probable és que el fil no acabi a temps. Llavors, la partida para fins que finalitzi, provocant una interrupció del desenvolupament de la partida. Com més llarg sigui, més es trigarà a actualitzar el graf de distribució quan es facin canvis de rutes. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Mode de distribució per passatgers: {STRING} diff --git a/src/lang/chuvash.txt b/src/lang/chuvash.txt index af60124b6b..e906b357d7 100644 --- a/src/lang/chuvash.txt +++ b/src/lang/chuvash.txt @@ -584,6 +584,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Сулахай STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Варринче STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Сылтӑмра + ###setting-zero-is-special diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 8097fb7f56..a17caa3e7c 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1248,6 +1248,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Lijevo STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Sredina STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Desno + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Najveći početni zajam: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Najveći iznos koji tvrtka može pozajmiti (ne uzimajući inflaciju u obzir) ###setting-zero-is-special @@ -1454,7 +1455,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Najmanji iznos STR_CONFIG_SETTING_ERRMSG_DURATION :Trajanje poruke s greškom: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Trajanje prikaza poruke s greškom u crvenom prozoru. Uzmite u obzir da se neke (kritične) poruke s greškom ne zatvaraju automatski nakon isteka ovog vremena, nego ih je potrebno zatvoriti ručno -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekundi STR_CONFIG_SETTING_HOVER_DELAY :Prikaži pojašnjenja alata: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Odgoda prije prikaza objašnjenja alata kada se miš postavi iznad nekog elementa sučelja. Alternativno, objašnjena alata se mogu vezati uz desnu tipku na mišu kada je ova vrijednost postavljena na 0. diff --git a/src/lang/czech.txt b/src/lang/czech.txt index b1bb768ccb..11f10f646d 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1293,6 +1293,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :vlevo STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :uprostřed STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :vpravo + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximální půjčka: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Jak moc si může společnost půjčit (bez ohledu na inflaci) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1508,7 +1509,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimální č STR_CONFIG_SETTING_ERRMSG_DURATION :Doba zobrazení chybové zprávy: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Doba zobrazení chybových zpráv v červeném okně. Některé zprávy o (kritických) chybách však nejsou zavírány automaticky a musí být zavřeny ručně. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund STR_CONFIG_SETTING_HOVER_DELAY :Zobrazení kontextové nápovědy: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Prodleva před zobrazením nápovědy, pokud kurzor leží nad nějakým ovládacím prvkem. Nápověda může být rovněž vyvolána pravým tlačítkem myši. diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 52a3bf2481..9c4ddd7291 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Venstre STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Center STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Højre + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimum startlån: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksimumbeløb et selskab kan låne (uden at tage inflation i betragtning) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1450,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimal mængde STR_CONFIG_SETTING_ERRMSG_DURATION :Varighed af fejlmeddelelse: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Varighed for visning fejlmeddelelser i en rød vindue. Bemærk, at nogle (kritisk) fejlmeddelelser ikke lukkes automatisk efter dette tidspunkt, men skal lukkes manuelt -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P 0 "" er} STR_CONFIG_SETTING_HOVER_DELAY :Vis værktøjstip: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Forsinkelse inden tooltips vises, når musen føres over nogle den grænseflade . Alternativt tooltips er bundet til den højre museknap, når denne værdi er sat til 0. @@ -1946,7 +1946,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ingen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Startværdi for bystørrelsesfaktor: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gennemsnitlig størrelse af storbyer i forhold til normale byer ved start af spillet +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Opdater distributionsgraf hver {STRING}{NBSP}sekund{P 0:2 "" er} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tid mellem efterfølgende genberegninger af linkgrafen. Hver genberegning beregner planerne for én komponent af grafen. Det betyder, at en værdi X for denne indstilling ikke betyder, at hele grafen vil blive opdateret hvert X sekund. Kun en komponent vil. Jo kortere du indstiller det, jo mere CPU-tid vil være nødvendigt for at beregne det. Jo længere du indstiller det, jo længere tid vil det tage, før godsfordelingen starter på nye ruter. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Tag {STRING}{NBSP}sekund{P 0:2 "" er} til genberegning af fordelingsgraf STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tid det tager for hver genberegning af en linkgrafkomponent. Når en genberegning startes, dannes en tråd, som får lov til at køre i dette antal sekunder. Jo kortere du indstiller dette, jo mere sandsynligt er det, at tråden ikke er færdig, når den skal. Så stopper spillet, indtil det er ("lag"). Jo længere du indstiller det, jo længere tid tager det for distributionen at blive opdateret, når ruter ændres. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributionsmodel for passagerer: {STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 881a766d05..67a22fef53 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Links STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Midden STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Rechts + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximale beginlening: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximaal bedrag dat een bedrijf kan lenen (zonder rekening te houden met de inflatie) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1450,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimumbedrag d STR_CONFIG_SETTING_ERRMSG_DURATION :Duur van foutbericht: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duur voor het weergeven van foutberichten in een rood venster. Merk op dat sommige (kritische) foutmeldingen niet automatisch worden gesloten na deze tijd, deze moeten handmatig worden gesloten -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} seconde{P 0 "" n} STR_CONFIG_SETTING_HOVER_DELAY :Knopinfo weergeven: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Vertraging voordat knopinfo worden weergegeven wanneer je de muis boven een besturingselement houdt. Wanneer de waarde 0 is, wordt knopinfo aan de rechtermuisknop gebonden. @@ -1946,7 +1946,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Geen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Beginfactor voor stadsgroei: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gemiddelde grootte van steden in vergelijking tot normale steden bij het begin van het spel. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Distributiegrafiek elke {STRING}{NBSP}second{P 0:2 "" en} bijwerken STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :De tijd tussen opeenvolgende herberekeningen van de koppeling-grafiek. Elke berekening berekent de plannen voor één component van de grafiek. Dat betekent dat een waarde X voor deze instelling niet betekent dat de hele grafiek elke X seconden wordt bijgewerkt. Dat geldt alleen voor één component. Hoe korter je deze waarde instelt, hoe meer CPU-tijd er nodig is voor de berekening. Hoe langer je deze waarde instelt, hoe langer het duurt voordat de vrachtdistributie start op nieuwe routes. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Besteed {STRING}{NBSP}second{P 0:2 "" en} per herberekening van de distributiegrafiek STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :De benodigde tijd voor een herbereking van een koppeling-grafiekcomponent. Wanneer een herberekening wordt gestart, start een draad die dit aantal seconden mag lopen. Hoe korter je deze waarde maakt, hoe groter de kans dat de draad is niet op tijd is afgelopen. Het spel stopt dan totdat dit alsnog gebeurt (het 'hikt'). Hoe langer je deze waarde maakt, hoe langer het duurt voor de distributie wordt bijgewerkt wanneer een route wijzigt. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributiemodus voor passagiers: {STRING} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 98c4c26b10..6a2cbfe99e 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -431,7 +431,7 @@ STR_FILE_MENU_EXIT :Exit ###length 4 STR_MAP_MENU_MAP_OF_WORLD :Map of world STR_MAP_MENU_EXTRA_VIEWPORT :Extra viewport -STR_MAP_MENU_LINGRAPH_LEGEND :Cargo Flow Legend +STR_MAP_MENU_LINGRAPH_LEGEND :Cargo flow legend STR_MAP_MENU_SIGN_LIST :Sign list # Town menu @@ -604,7 +604,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Operatin STR_GRAPH_INCOME_CAPTION :{WHITE}Income Graph STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Units of cargo delivered STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Company performance ratings (maximum rating=1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Company values +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Company Value Graph STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Cargo Payment Rates STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Days in transit @@ -636,7 +636,7 @@ STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :President STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Tycoon # Performance detail window -STR_PERFORMANCE_DETAIL :{WHITE}Detailed performance rating +STR_PERFORMANCE_DETAIL :{WHITE}Detailed Performance Rating STR_PERFORMANCE_DETAIL_KEY :{BLACK}Detail STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT}) STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA}) @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Left STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centre STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Right + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximum initial loan: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximum amount a company can loan (without taking inflation into account) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1450,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimum amount STR_CONFIG_SETTING_ERRMSG_DURATION :Duration of error message: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duration for displaying error messages in a red window. Note that some (critical) error messages are not closed automatically after this time, but must be closed manually -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} second{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Show tooltips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Delay before tooltips are displayed when hovering the mouse over some interface element. Alternatively tooltips can be bound to the right mouse button @@ -1946,7 +1946,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING}{NBSP}second{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING} @@ -2919,7 +2921,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}3x3 grid STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Random # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Fund new industry +STR_FUND_INDUSTRY_CAPTION :{WHITE}Industry Funding STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Choose the appropriate industry from this list STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Create random industries STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Cover the map with randomly placed industries @@ -2935,14 +2937,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Remove a STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Are you sure you want to remove all industries? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industry chain for {STRING} industry -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Industry chain for {STRING} cargo +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industry Chain - {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cargo Chain - {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Producing industries STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Accepting industries STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Houses STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Click at the industry to see its suppliers and customers STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Click at the cargo to see its suppliers and customers -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Display chain +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Industry Chain STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Display cargo supplying and accepting industries STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Link to smallmap STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Select the displayed industries at the smallmap as well @@ -3079,7 +3081,7 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} The OpenTTD team # Framerate display window -STR_FRAMERATE_CAPTION :{WHITE}Frame rate +STR_FRAMERATE_CAPTION :{WHITE}Frame Rate STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simulation rate: {STRING} STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Number of game ticks simulated per second. @@ -3498,7 +3500,7 @@ STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Town gro STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Town is {RED}not{BLACK} growing STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Noise limit in town: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA} STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Centre the main view on town location. Ctrl+Click opens a new viewport on town location -STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Local authority +STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Local Authority STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Show information on local authority STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}Change town name @@ -3537,8 +3539,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW}Fund the reconstruction of the urban road network.{}Causes considerable disruption to road traffic for up to 6 months.{}{POP_COLOUR}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}Build a statue in honour of your company.{}Provides a permanent boost to station rating in this town.{}{POP_COLOUR}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}Fund the construction of new buildings in the town.{}Provides a temporary boost to town growth in this town.{}{POP_COLOUR}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations.{}{POP_COLOUR}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Bribe the local authority to increase your rating, at the risk of a severe penalty if caught.{}{POP_COLOUR}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations. A successful bribe from a competitor will cancel this contract.{}{POP_COLOUR}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Bribe the local authority to increase your rating and abort a competitor's exclusive transport rights, at the risk of a severe penalty if caught.{}{POP_COLOUR}Cost: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals @@ -3848,16 +3850,16 @@ STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Available Aircr STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Manage list STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Send instructions to all vehicles in this list STR_VEHICLE_LIST_REPLACE_VEHICLES :Replace vehicles -STR_VEHICLE_LIST_SEND_FOR_SERVICING :Send for Servicing +STR_VEHICLE_LIST_SEND_FOR_SERVICING :Send for servicing STR_VEHICLE_LIST_CREATE_GROUP :Create group STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Profit this year: {CURRENCY_LONG} (last year: {CURRENCY_LONG}) STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING} {STRING} -STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Send to Hangar +STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Send to hangar STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Click to stop all the vehicles in the list STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Click to start all the vehicles in the list @@ -4610,8 +4612,8 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}One of t STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI / GameScript Debug window is only available for the server # AI configuration window -STR_AI_CONFIG_CAPTION_AI :{WHITE}AI Configuration -STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Game Script Configuration +STR_AI_CONFIG_CAPTION_AI :{WHITE}AI Settings +STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Game Script Settings STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}The Game Script that will be loaded in the next game STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}The AIs that will be loaded in the next game STR_AI_CONFIG_HUMAN_PLAYER :Human player diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 738f5e438b..a879cfbf71 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Left STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Center STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Right + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximum initial loan: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximum amount a company can loan (without taking inflation into account) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1450,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimal amount STR_CONFIG_SETTING_ERRMSG_DURATION :Duration of error message: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duration for displaying error messages in a red window. Note that some (critical) error messages are not closed automatically after this time, but must be closed manually -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} second{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Show tooltips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Delay before tooltips are displayed when hovering the mouse over some interface element. Alternatively tooltips are bound to the right mouse button when this value is set to 0. @@ -1946,7 +1946,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING}{NBSP}second{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index c0501b3310..2e0a434086 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1304,6 +1304,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Maldekstre STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centre STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Dekstre + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimuma komenca prunto: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksimuma monsumo kiun kompanio povas prunti (sen enkalkulado de inflacio) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1512,8 +1513,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY :Minimuma mono p STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimuma monkvanto kiu devas resti en la banko antaŭ eventuala aŭtomata renovigo de veturiloj STR_CONFIG_SETTING_ERRMSG_DURATION :Daŭro de erarmesaĝo: {STRING} -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekundo{P 0 "" j} -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE.n :{COMMA} sekundo{P 0 "" j}n STR_CONFIG_SETTING_HOVER_DELAY :Montri ŝpruchelpilojn: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Ŝvebu dum {COMMA} milisekundo{P 0 "" j} @@ -1982,6 +1981,8 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Neniom STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Komenca urbgrandeca multobligo: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Averaĝa grandeco de urbegoj rilate al normalaj urboj je la komenco de la ludo +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Ĝisdatigu la distribuan grafeon {P 0:2 "ĉiun" "ĉiujn"} {STRING}{NBSP}{P 0:2 "sekundon" "sekundojn"} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Uzu {STRING}{NBSP}sekundo{P 0:2 n jn} por rekalkulado de la distribua grafeo STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribua reĝimo por pasaĝeroj: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simetria" signifas ke proksimume la sama nombro de pasaĝeroj iros de stacio A al stacio B kiel de B al A. "Malsimetria" signifas ke ajnaj nombroj de pasaĝeroj povas iri en ajnan direkton. "Permana" signifas ke ne estos aŭtomata distribuado de pasaĝeroj. diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index f834ee760a..06c665c948 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1262,6 +1262,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Vasakul STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Keskel STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Paremal + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Stardilaenu ülempiirang: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Suurim summa, mida ettevõte saab laenata (arvestamata inflatsiooni) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1477,7 +1478,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Väikseim panga STR_CONFIG_SETTING_ERRMSG_DURATION :Veateadete kestvus: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Punases aknas olevate veateadete näitamise kestvus. On ka mõned (tähtsad) veateated, mis ise ei sulgu, vaid mis tuleb käsitsi sulgeda -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P 0 "" it} STR_CONFIG_SETTING_HOVER_DELAY :Vihjeid näidatakse pärast: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Viivitus, kui kaua peab hiirega liidese osale osutama, enne kui selle kohta vihjet näidatakse. On ka võimalik vihjeid parema hiireklõpsuga näidata diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index c00b29d8b7..b67cfccc58 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -1087,6 +1087,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Vinstra STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Miðja STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Høgra + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Hægst loyvda byrjunar lán: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Mest loyvda upphæddin ein fyritøka kann lána (uttan at taka virðisminkan til eftirtektar) ###setting-zero-is-special @@ -1285,7 +1286,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minsta nøgd av STR_CONFIG_SETTING_ERRMSG_DURATION :Tíðarlongd av villuboðum: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Tíðarbili ið villu boð verða víst í einum reyðum vindeyga. Legg til merkis at nøkur (umráðandi) villu boð ikki verða sjálvvirkandi afturlatin eftir hetta tíðarbil, men mugu latast aftur manuelt -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P 0 "" ir} STR_CONFIG_SETTING_HOVER_DELAY :Vís góð ráð: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Seinking áðrenn góð ráð vera víst tá músin sveimar yvur ein lut á takførisflatuni. Í øðrum lagi kunnu góðu ráðini bindast at høgra músa knøtti diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index d5622ab02e..dc509e7a97 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :vasemmalla STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :keskellä STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :oikealla + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Suurin mahdollinen laina alussa: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Suurin mahdollinen yhtiön ottama laina (ottamatta huomioon inflaatiota) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1450,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Vähimmäisraha STR_CONFIG_SETTING_ERRMSG_DURATION :Virheilmoitusten näyttöaika: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Aika virheilmoitusten näyttämiseen punaisessa ikkunassa. Huomaa, että jotkut (kriittiset) virheilmoitukset eivät sulkeudu automaattisesti tämän ajan jälkeen, vaan ne on suljettava käsin -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekunti{P 0 "" a} STR_CONFIG_SETTING_HOVER_DELAY :Näytä työkaluvihjeet: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Viive ennen työkaluvihjeen näyttämistä, kun hiiren kursoria pidetään käyttöliittymäelementin päällä. Vaihtoehtoisesti työkaluvihjeen saa myös näkymiin painamalla hiiren oikeata painiketta, kun arvoksi on määritetty 0. @@ -1946,7 +1946,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ei yhtään STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kasvukerroin alussa: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Kaupunkien keskimääräinen koko suhteessa muihin kuntiin pelin alussa +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Päivitä yhteyskuvaaja {STRING}{NBSP}sekunnin välein STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Yhteyskuvaajan uudelleenlaskentojen välinen aika. Jokainen uudelleenlaskenta laskee suunnitelmat kuvaajan yhdelle osalle. Tämän asetuksen arvo X ei siis tarkoita, että koko kuvaaja päivittyisi X sekunnin välein, vaan ainoastaan sen yksi osa. Mitä lyhyemmäksi asetat tämän ajan, sitä enemmän suoritinaikaa kuluu laskentaan. Mitä pitemmäksi asetat ajan, sitä pitempään kestää rahdin jakautumisen alkaminen uusille reiteille. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Käytä {STRING}{NBSP}sekunti{P 0:2 "" a} yhteyskuvaajan uudelleenlaskentaan STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Yhteyskuvaajan kunkin osan uudelleenlaskentaan käytettävä aika. Uudelleenlaskennan alkaessa käynnistetään säie, jonka annetaan toimia näin monta sekuntia. Mitä lyhyemmäksi asetat tämän ajan, sitä todennäköisemmin säie ei ehdi päättymään ajoissa, jolloin peli pysähtyy (”jumii”) säikeen valmistumiseen asti. Mitä pitemmäksi asetat ajan, sitä pitempään rahdin jakautumisen päivittyminen kestää reittien muuttuessa. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Matkustajien jakautuminen: {STRING} diff --git a/src/lang/french.txt b/src/lang/french.txt index 3d6823df6c..88d06233da 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :À gauche STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centrée STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :À droite + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Emprunt initial maximum{NBSP}: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Montant maximum qu'une compagnie peut emprunter (sans tenir compte de l'inflation) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1450,7 +1451,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantité minim STR_CONFIG_SETTING_ERRMSG_DURATION :Temps d'affichage des messages d'erreur{NBSP}: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Durée pour l'affichage des messages d'erreur dans une fenêtre rouge. Noter que certains messages d'erreur (critique) ne sont pas fermés automatiquement après ce délai, mais doivent être fermés manuellement -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} seconde{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Affichage des infobulles{NBSP}: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Délai avant que les infobulles soient affichées lorsque la souris survole certains éléments de l'interface. Les infobulles peuvent également être affectées au bouton droit de la souris en réglant cette valeur à 0. @@ -1947,7 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Aucune STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicateur initial pour la taille des métropoles{NBSP}: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Taille moyenne des métropoles par rapport aux villes normales au début de la partie +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Mise à jour le graphe de distribution toutes les {STRING}{NBSP}seconde{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Intervalle entre les recalculs successifs du graphe de liaison. Chaque recalcul planifie un composant du graphe. Cela signifie qu'une valeur X pour ce paramètre ne signifie pas que l'ensemble du graphe sera mis à jour toutes les X secondes. Seul un composant le sera. Plus vous définissez cet intervalle court, plus le temps de processeur nécessaire pour le calcul sera important. Plus vous définissez cet intervalle long, plus il faudra de temps pour que la distribution de marchandises commence sur de nouveaux itinéraires. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Prend {STRING}{NBSP}seconde{P 0:2 "" s} pour le recalcul du graphe de distribution STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Temps pris pour chaque recalcul d'un composant du graphe de liaison. Lorsqu'un recalcul est lancé, un fil d'exécution est créé et autorisé à fonctionner pendant ce nombre de secondes. Plus vous définissez cette durée courte, plus il est probable que le fil ne soit pas terminé lorsqu'il est censé l'être. Ensuite, le jeu s'arrête jusqu'à ce qu'il le soit ("lag"). Plus vous définissez cette durée longue, plus il faut de temps pour que la distribution soit mise à jour lorsque les itinéraires changent. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Type de distribution pour les passagers{NBSP}: {STRING} diff --git a/src/lang/frisian.txt b/src/lang/frisian.txt index f1164007b3..d23f10e6e7 100644 --- a/src/lang/frisian.txt +++ b/src/lang/frisian.txt @@ -1145,6 +1145,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Lofts STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Midden STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Rjochts + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimale startersliening: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksimale bedrach hokker troch in bedriuw lient wurde kin (sûnder acht te slaan op de ynflaasje) ###setting-zero-is-special @@ -1347,7 +1348,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Bedrach wat oer STR_CONFIG_SETTING_ERRMSG_DURATION :Doer flatermeldings: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Doer fan reade flatermeldings. Guon krityske flater wurde net automatysk ôfsluten -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} seconde{P "" s} STR_CONFIG_SETTING_HOVER_DELAY :Arktips sjen litte: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Tiid wernei arktips sjen litten wurde at jo de mûs de boppe hâlde. Arktips kinne ek oan de rjochtermûsknop bûn wurde asto dizze wearde op 0 set diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index bd159a301c..94a01c9e0e 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1329,6 +1329,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Ris an taobh ch STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Sa mheadhan STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Ris an taobh deas + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Iasad tòiseachaidh as motha: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :An t-airgead as motha as urrainn dha chompanaidh fhaighinn mar iasad (a' fàgail an atmhorachd dhan darna taobh) ###setting-zero-is-special @@ -1532,7 +1533,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Feumaidh an uir STR_CONFIG_SETTING_ERRMSG_DURATION :An ùine a mhaireas brath mearachd: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :An ùine a mhaireas brath mearachd ann an uinneag dearg. Thoir an aire nach dùin cuid dhe na brathan as cudromaiche leotha fhèin is gum feum thu an toirt air falbh a làimh. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} {P 0 diog dhiog diogan diog} STR_CONFIG_SETTING_HOVER_DELAY :Seall gliocasan-sgrìn: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Dèan dàil mus tèid gliocasan-sgrìn a shealltainn nuair a chumas mi an luchag os cionn eileamaid na h-eadar-aghaidh. Mar roghainn eile, thèid gliocasan-sgrìn nasgadh ri putan deas na luchaige ma chuireas tu an luach air 0. diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 33d3658961..f515b145f2 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Esquerda STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Dereita + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Crédito máximo inicial: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Cantidade máxima de cartos que unha compañía pode pedir (sen ter en conta a inflación) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1450,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Cantidade míni STR_CONFIG_SETTING_ERRMSG_DURATION :Duración das mesaxes de erro: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duración das mesaxes de erro que aparecen nunha ventá vermella. Ten en conta que algunhas mesaxes de errores (críticos) non se pechan automáticamente despois deste tempo, senón que deben ser pechadas manualmente -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundo{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Amosar consellos sobre as ferramentas: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Retardo antes de que os consellos aparezan ao despraza-lo rato sobre algúns elementos da interface. Alternativamente, os consellos poden ser asignados ao botón dereito do rato @@ -1946,7 +1946,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ningunha STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial do tamaño da cidade: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Relación entre o tamaño medio das cidades e o dos pobos ao inicio da partida +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Actualizar o grafo de distribución cada {STRING}{NBSP}segundo{P 0:2 "" s}. STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo entre recálculos sucesivos do grafo de ligazóns. Cada recálculo calcula os plans para un compoñente do grafo. Iso significa que un valor X para esta configuración non significa que o grafo completo sexa actualizado cada X segundos. Só algúns compoñentes o serán. Canto máis curto sexa o tempo establecido, máis tempo de CPU será necesario para calculalo. Canto máis longo sexa o tempo establecido, máis tempo levará ata que a distribución de carga comece a percorrer novas rutas. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Toma {STRING}{NBSP}segundo{P 0:2 "" s} para o recálculo do grafo de distribución. STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo necesario para cada recalculación dun compoñente do grafo de ligazóns. Cando se inicia unha recalculación, abrese un fío que se pode executar durante este número de segundos. Canto máis curto o establezas, máis probable é que o fío non remate cando se supón que debe facelo. Entón, o xogo detense ata que o fío remata («lag»). Canto máis longo o estabelezas, máis tempo levará actualizar a distribución cando cambien as rutas. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribución para pasaxeiros: {STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index c3b3810400..ea9ce61fbb 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Links STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Mitte STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Rechts + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Kreditlimit bei Spielbeginn: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximaler Kredit für eine Firma (ohne Berücksichtigung der Inflation) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1450,7 +1451,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Geldbetrag, der STR_CONFIG_SETTING_ERRMSG_DURATION :Anzeigedauer für Fehlermeldungen: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Anzeigedauer für Fehlermeldungen in einem roten Fenster. Bedenken Sie, dass einige (kritische) Fehlermeldungen nicht automatisch nach dieser Dauer geschlossen werden, sondern manuell geschlossen werden müssen -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} Sekunde{P 0 "" n} STR_CONFIG_SETTING_HOVER_DELAY :Zeige kurzen Hilfetext: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Einstellen, wie lange man zum Aufruf von Hilfetexten zur Erklärung der Funktionen im Spiel mit dem Mauszeiger über der gewünschten Stelle stehenbleiben muss. Alternativ werden die Hilfetexte bei einem Rechtsklick sofort angezeigt, wenn dieser Wert auf 0 gesetzt wird. @@ -1947,7 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Keine STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Größe von Großstädten bei Spielbeginn: {STRING}× STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Durchschnittliche Größe von Großstädten relativ zu normalen Städten bei Spielbeginn +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Verteilungsgraphen jede {STRING}{NBSP}Sekund{P 0:2 "" en} aktualisieren STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Zeit zwischen anfolgenden Neuberechnungen der Warenverteilung. Jede Neuberechnung berechnet die Pläne für eine Komponente des Graphen. Das bedeutet, dass ein Wert X für diese Einstellung nicht bedeutet, dass der gesamte Graph alle X Sekunden aktualisiert wird. Nur ein Teil wird es. Je kürzer du die Zeit festlegst, desto mehr CPU-Zeit wird nötig sein, um ihn zu berechnen. Je länger du die Zeit festlegst, desto länger wird es dauern, bis die Frachtverteilung auf neuen Strecken beginnt. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :{STRING}{NBSP}Sekund{P 0:2 "" en} für Neuberechnung des Verteilungsgraphen nehmen STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Zeit für jede Neuberechnung einer Warenverteilungskomponente. Wenn eine Neuberechnung gestartet wird, wird ein Thread gestartet, der für diese Anzahl von Sekunden laufen darf. Je kürzer du ihn festlegst, desto wahrscheinlicher ist es, dass der Thread nicht beendet ist, wenn er aber sein sollte. Dann wird das Spiel beendet, sobald dies der Fall ist („Lag“). Je länger du es festlegst, desto länger dauert es, bis die Verteilung aktualisiert wird, wenn sich Routen ändern. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Verteilungsschema für Passagiere: {STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 2fb3380e09..8e929fcf17 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1312,6 +1312,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Αριστερ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Κέντρο STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Δεξιά + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Μέγιστο αρχικό δάνειο: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Μέγιστο ποσό που μπορεί να δανειστεί μία εταιρία (χωρίς να λαμβάνεται υπόψη ο πληθωρισμός) ###setting-zero-is-special @@ -1525,7 +1526,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Ελάχιστ STR_CONFIG_SETTING_ERRMSG_DURATION :Διάρκεια μηνύματος σφάλματος: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Διάρκεια εμφάνισης μηνύματων σφάλματος σε κόκκινο παράθυρο. Σημειώστε ότι μερικά (κρίσιμα) μηνύματα σφάλματος δεν κλείνουν αυτόματα μετά από αυτόν τον χρόνο, αλλά πρέπει να κλείσουν χειροκίνητα -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} δευτερόλεπτ{P 0 ο α} STR_CONFIG_SETTING_HOVER_DELAY :Εμφάνιση αναδυόμενων μηνυμάτων: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Καθυστέρηση πριν την εμφάνιση των επεξηγήσεων όταν ο δείκτης του ποντικιού βρίσκεται πάνω από κάποιο στοιχείο της διεπαφής. Εναλλακτικά, οι επεξηγήσεις συνδέονται με το δεξί κουμπί του ποντικιού όταν η τιμή αυτού του πεδίου είναι 0. diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index a347cd66ef..6b5b8667df 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1158,6 +1158,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :שמאל STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :מרכז STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :ימין + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :סכום הלוואה ראשוני: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :סכום מירבי שחברה יכולה ללוות (מבלי לקחת בחשבון אינפלציה) ###setting-zero-is-special @@ -1364,7 +1365,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :סכום כסף STR_CONFIG_SETTING_ERRMSG_DURATION :משך הצגת הודעת שגיאה: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :פרק הזמן להצגת הודעות שגיאה בחלון אדום. יש לשים לב כי כמה הודעות שגיאה (קריטיות) אינן נסגרות אוטומטית אחרי פרק זמן זה, אלא יש לסגור אותן ידנית -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{P 0 "שנייה " ""}{COMMA}{P "" " שניות"} STR_CONFIG_SETTING_HOVER_DELAY :הצג רמזים צצים: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :השהייה טרם הצגת רמזים צצים כאשר העכבר מרחף מעל חלק ממשק. לחלופין, ניתן לקשר רמזים צצים לכפתור העכבר הימני כאשר מוגדר 0. diff --git a/src/lang/hindi.txt b/src/lang/hindi.txt index d980ee5e79..7c309bee87 100644 --- a/src/lang/hindi.txt +++ b/src/lang/hindi.txt @@ -345,6 +345,7 @@ STR_CONFIG_SETTING_COMPANIES_OFF :बन्द ###length 3 + ###setting-zero-is-special diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 0d974cd3e9..b91d78a6d9 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1290,6 +1290,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Balra STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Középen STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Jobbra + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximális kezdeti hitelkeret: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximálisan kölcsönözhető összeg (az inflációtól eltekintve) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1505,7 +1506,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :A bankban marad STR_CONFIG_SETTING_ERRMSG_DURATION :Hibaüzenetek időtartama: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :A piros ablakban megjelenő hibaüzenetek kijelzésének időtartama. Bizonyos (kritikus) hibaüzenetek nem záródnak be automatikusan egy idő után, hanem kézzel kell őket bezárni -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} másodperc STR_CONFIG_SETTING_HOVER_DELAY :Leírás megjelenítése: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Késleltetés, mielőtt megjelenne az eszközleírás az egér ráhúzása után egy felületi elemen. A leírás elérhető még az egér jobb gombjával is, ha ennek értéke 0-ra van állítva. @@ -2002,6 +2002,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :nincs STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kezdeti városméret-szorzó: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Átlagos városméret a normál településekhez képest a játék kezdetén +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Kapcsolatgrafikon frissítése minden {STRING}{NBSP}másodpercben{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :A kapcsolatgrafikon következő újrakalkulálása között eltelt idő. Minden újrakalkulálás során egy komponens tervei kerülnek kiszámításra. Ez azt jelenti, hogy az X érték beállítása nem jelenti azt, hogy az egész grafikon X másodpercenként frissül. Csak néhány komponens lesz frissítve. Minél rövidebbre van állítva, annál több CPU időre van szükség a kiszámításhoz. Ha hosszabbra van állítva, akkor hosszabb időbe telik, amíg az áruelosztás elkezdődik az új útvonalakon. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Utasok szétosztása: {STRING} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 7051c0fc09..5ba9778fc2 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -1086,6 +1086,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Vinstri STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Miðja STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Hægri + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Hámarkslán: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Hámarks upphæð sem fyrirtæki getur fengið lánað (ekki er gert ráð fyrir verðbólgu) ###setting-zero-is-special @@ -1284,7 +1285,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Lágmarksupphæ STR_CONFIG_SETTING_ERRMSG_DURATION :Tími sem villuskilaboð eru sýnileg: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Tími sem villuboð í rauðu gluggunum eru sýnd. Athugið að sumum (alvarlegum) villuboðum er ekki lokað sjálfvirkt eftir þennan tíma, þeim verður að loka handvirkt -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekúnd{P 0 a ur} STR_CONFIG_SETTING_HOVER_DELAY :Sýna vísbendingar: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Töf áður en vísbendingar eru birtar þegar músinni er haldið yfir einhverju af viðmóts atriðunum. Eins er stundum að finna vísbendingar með því að hægri smella diff --git a/src/lang/ido.txt b/src/lang/ido.txt index 16e7b7bfdb..855918c7b9 100644 --- a/src/lang/ido.txt +++ b/src/lang/ido.txt @@ -558,6 +558,7 @@ STR_CONFIG_SETTING_NONE :Nulo ###length 3 + ###setting-zero-is-special diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 1b90e6ea65..9e0f32ba0c 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -1231,6 +1231,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Kiri STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Tengah STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Kanan + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimum pinjaman awal: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Jumlah maksimum yang dapat dipinjam (tanpa menghitung inflasi) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1445,7 +1446,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Jumlah uang min STR_CONFIG_SETTING_ERRMSG_DURATION :Durasi pesan kesalahan: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Durasi penampilan pesan kesalahan di jendela merah. Beberapa pesan kesalahan tidak ditutup secara otomatis setelah ini, tapi harus ditutup secara manual -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} detik STR_CONFIG_SETTING_HOVER_DELAY :Tampilkan tooltips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Delay sebelum bantuan peralatan ditampilkan saat mouse diatas sebuah ikon. Selain itu bantuan peralatan juga dapat ditampilkan dengan klik kanan @@ -1942,6 +1942,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Tidak ada STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Faktor kali ukuran kota awal: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Ukuran rata-rata kota besar terhadap kota kecil saat permainan dimulai +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Pembaruan grafik distribusi setiap {STRING}{NBSP} detikP 0:2 "" } STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modus distribusi untuk penumpang: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simetris" berarti kira-kira jumlah penumpang sama akan pergi dari stasiun A ke stasiun B sebagaimana dari B ke A. "Asimetris" berarti jumlah penumpang pergi pada kedua arah bisa berbeda-beda. "Manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk penumpang. diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 3aa4732ed7..0b35b17af8 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -1182,6 +1182,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Ar chlé STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Sa lár STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Ar dheis + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Iasacht tosaigh uasta: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Uasmhéid is féidir le cuideachta a chur ar iasacht (gan boilsciú a chur san áireamh) ###setting-zero-is-special @@ -1395,7 +1396,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :An t-íosmhéid STR_CONFIG_SETTING_ERRMSG_DURATION :Fad ama na teachtaireachta earráide: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :An fad a thaispeánfar teachtaireachtaí earráide i bhfuinneog dhearg. Tabhair faoi deara nach ndúnfar teachtaireachtaí (criticiúla) áirithe go huathoibríoch tar éis an fad ama se, agus nach mór iad a dhúnadh de láimh -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} {P sh sh sh s s}oicind STR_CONFIG_SETTING_HOVER_DELAY :Taispeáin leideanna uirlise: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :An mhoill sula dtaispeántar leideanna uirlise agus an luchóg os cionn eilimint den chomhéadan. Mar mhalairt, ceanglaítear leideanna uirlise don deaschlic luchóige má shocraítear an luach seo ag 0. diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 819cdee8d1..84121ff438 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1269,6 +1269,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Sinistra STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Destra + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Prestito massimo iniziale: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Ammontare massimo di denaro che una compagnia può chiedere in prestito (senza tenere conto dell'inflazione). STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1484,7 +1485,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Ammontare minim STR_CONFIG_SETTING_ERRMSG_DURATION :Durata dei messaggi d'errore: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Durata di visualizzazione dei messaggi d'errore nelle finestre rosse. Nota: alcuni messaggi d'errore (critici) non sono chiusi automaticamente anche allo scadere del tempo, ma devono essere chiusi manualmente -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} second{P 0 o i} STR_CONFIG_SETTING_HOVER_DELAY :Mostra suggerimenti: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Ritardo con cui i suggerimenti sono mostrati al passaggio del mouse su un elemento dell'interfaccia. In alternativa, i messaggi possono essere attivati col pulsante destro del mouse impostando questo valore a 0. @@ -1981,7 +1981,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nessuna STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Moltiplicatore iniziale dimensioni metropoli: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Dimensione media delle metropoli in rapporto alle normali città all'inizio della partita. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Aggiornare il grafico di distribuzione ogni {STRING}{NBSP}{P 0:2 "secondo" secondi} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo tra i successivi ricalcoli del grafico dei collegamenti. Ogni ricalcolo calcola i piani per un componente del grafico. Ciò significa che un valore X per questa impostazione non significa che l'intero grafico verrà aggiornato ogni X secondi. Solo alcuni componenti lo saranno. Quanto più breve è l'impostazione, tanto più tempo di CPU sarà necessario per il calcolo. Più lungo è il valore impostato, più tempo ci vorrà prima che la distribuzione del carico inizi su nuove rotte. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Prendere {STRING}{NBSP}{P 0:2 "secondo" secondi} per il ricalcolo del grafico di distribuzione STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo necessario per ogni ricalcolo di un componente del grafo dei collegamenti. Quando viene avviato un ricalcolo, viene generato un thread che può essere eseguito per questo numero di secondi. Quanto più breve è il tempo impostato, tanto più è probabile che il thread non finisca quando dovrebbe. In questo caso il gioco si ferma finché non viene terminato ("lag"). Più lungo è il valore impostato, più tempo ci vuole per aggiornare la distribuzione quando i percorsi cambiano. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modalità di distribuzione dei passeggeri: {STRING} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index fa4b832671..0c65a308e3 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -1225,6 +1225,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :左 STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :中央 STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :右 + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :初期の借入最大額: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :初期の借入限度額を設定します (インフレは考慮されません) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1440,7 +1441,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :輸送機器の STR_CONFIG_SETTING_ERRMSG_DURATION :エラーメッセージの表示時間: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :赤地のエラーメッセージが表示されている時間を設定します。注: 致命的なエラーの場合はこの時間を経過しても自動では閉じません。 -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA}秒 STR_CONFIG_SETTING_HOVER_DELAY :ツールチップ表示: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :カーソルをインターフェイス要素に乗せた場合にツールチップが表示されるまでの時間を決定します。"0"に設定するとツールチップは右クリックで表示されるようになります @@ -1937,7 +1937,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :変化なし STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :初期の都市サイズ乗数: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :ゲーム開始時に都市が普通の街に比べて平均して何倍の人口規模になるかを設定します +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :行先分配グラフを{STRING}秒毎に更新 STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :行先分配グラフの更新の間の待ち時間。各更新はグラフの一部だけのルートを再計算します。即ち、この設定を〇〇秒に指定する場合、全グラフが〇〇秒毎に更新されるのではありません。間隔が短ければ短いほどCPU時間を消費します。長ければ長いほど貨物流通の新規ルートの行先分配に時間がかかります。 +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :行先分配の更新に{STRING}秒を割り当て STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :行先分配グラフの更新に割り当てられる時間。更新が始まると、スレッドが生成されて、指定の時間に実行させられます。短ければ短いほど間に合わない可能性が高まります。その場合、ゲームは停止して計算完了を待ちます。長ければ長いほどルート変更の際に行先分配の更新に時間がかかります。 STR_CONFIG_SETTING_DISTRIBUTION_PAX :旅客の行先分配法: {STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 52c5bc87fc..8153acfba0 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -605,7 +605,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}경영 STR_GRAPH_INCOME_CAPTION :{WHITE}수익 그래프 STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}수송 화물량 STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}회사 성취도 (최고 1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}회사 가치 +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}회사가치 그래프 STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}화물 운송단가 비율 STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}통과시간 @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :왼쪽 STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :가운데 STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :오른쪽 + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :최대 초기 대출금: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :한 회사가 최대한 빌릴 수 있는 대출금의 양을 조절할 수 있습니다. (여기서 설정한 값은 인플레이션에 의한 효과를 적용하지 않은 값입니다.) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1450,7 +1451,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :차량을 자 STR_CONFIG_SETTING_ERRMSG_DURATION :오류 메시지 표시: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :오류 메시지를 표시할 시간을 설정합니다. 일부 (중요한) 오류 메시지는 이 시간이 지나도 자동으로 사라지지 않고 수동으로 꺼야할 수도 있음을 알아두십시오. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA}초 동안 STR_CONFIG_SETTING_HOVER_DELAY :도움말 보이기: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :마우스를 올려놓았을 때 도움말이 뜨는데 걸리는 시간을 설정합니다. 마우스 오른쪽 클릭으로 바로 뜨도록 할 수도 있습니다. @@ -1947,7 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :없음 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :초기 대도시 크기 비율: 일반 도시보다 {STRING}배 크게 시작 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :게임을 시작했을 때 일반 도시에 대한 대도시의 평균 크기를 설정합니다 +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :분배 그래프를 매 {STRING}초마다 업데이트 STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :각 연결 그래프의 하위 시퀀스 재계산 사이의 시간입니다. 각 재계산은 그래프의 한 구성 요소에 대한 계획을 계산합니다. 즉, 이 설정을 X로 설정한다고 해서 전체 그래프를 X초마다 업데이트한다는 뜻은 아닙니다. 일부 구성 요소만 X초마다 업데이트됩니다. 이 값을 더 짧게 설정할 수록 계산하는데 더 많은 CPU 계산 시간이 필요합니다. 값을 더 길게 설정하면 화물 분배가 새 경로로 이뤄지기까지 더 오랜 시간이 걸리게 됩니다. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :분배 그래프의 재계산을 위해 {STRING}초 사용 STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :각 연결 그래프의 구성 요소를 재계산하는데 걸리는 시간입니다. 재계산이 시작되면, 이 시간(초) 동안 실행할 수 있는 스레드가 생성됩니다. 이 값을 더 짧게 설정할수록 스레드가 완료되어야 할 때 완료되지 못할 가능성이 높아집니다. 그러면 이를 완료하기 전까지는 게임이 멈추게 됩니다. 값을 더 길게 설정하면 경로가 변경되었을 때 분배가 업데이트되는 데 더 오래 걸립니다. STR_CONFIG_SETTING_DISTRIBUTION_PAX :승객에 대한 분배 형식: {STRING} @@ -2936,14 +2938,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}모든 STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}정말 모든 산업시설을 제거하시겠습니까? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}{STRING}{G 0 "과" "와"} 관련된 산업시설 연계도 -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}{STRING}{G 0 "과" "와"} 관련된 산업시설 연계망 +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}화물 연계도 - {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}화물 연계망 - {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}생산 산업시설 STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}소비 산업시설 STR_INDUSTRY_CARGOES_HOUSES :{WHITE}도시 가구 STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}이 산업시설의 공급자와 고객을 보려면 클릭하세요 STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}이 화물의 공급자와 고객을 보려면 클릭하세요 -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}산업시설 연계도 보기 +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}산업시설 연계도 STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}이 산업시설에서 생산/소비하는 화물을 보여줍니다 STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}지도에 표시 STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}위 산업망에 표시된 산업을 소형 지도에서 볼 수 있게 합니다 @@ -3538,8 +3540,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW}도시 도로망 보수공사를 시행합니다.{}앞으로 6개월간 극심한 도로 혼잡을 일으킵니다.{}{POP_COLOUR}가격: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}당신의 회사를 대표하는 '명예의 동상'을 건설합니다.{}이 도시에 있는 역 등급을 영구적으로 올려줍니다.{}{POP_COLOUR}가격: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}도시 상업 건물의 건설에 투자합니다.{}도시의 성장을 일시적으로 빠르게 만들어줍니다.{}{POP_COLOUR}가격: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}1년 간 수송 권한 독점권을 구입합니다.{}도시 당국은 오직 당신 회사의 역에만 승객과 화물을 실을 것입니다.{}{POP_COLOUR}가격: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}성취도를 올리기 위해 처벌을 감수하고 지역 당국에 뇌물을 줍니다.{}{POP_COLOUR}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}1년 간 수송 권한 독점권을 구입합니다.{}도시 당국은 오직 당신 회사의 역에만 승객과 화물을 실을 것입니다.{}경쟁사의 뇌물 수수가 성공하면 이 독점권 계약은 취소됩니다.{}{POP_COLOUR}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}성취도를 올리고 경쟁사의 독점권을 무효화하기 위해 처벌을 감수하고 지역 당국에 뇌물을 줍니다.{}{POP_COLOUR}가격: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} 목표 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 7573c0a942..a8af1b3b6f 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1321,6 +1321,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Laevo STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Medio STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Dextro + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Creditum maximum in initio: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Copia crediti maxima (sine inflatione) ###setting-zero-is-special @@ -1525,7 +1526,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Copia pecuniae STR_CONFIG_SETTING_ERRMSG_DURATION :Duratio nuntiorum errorum: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duratio nuntia errorum in fenestra rubra ostendendi. Cave, aliquae (severa) nuntia errorum non automatice clauditur, et necesse est lusori claudere -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} secund{P um a} STR_CONFIG_SETTING_HOVER_DELAY :Ostendere nuntia adiuvantia: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Mora antequam nuntia adiuvantia ostenduntur cum mus elemento interfaciei superponitur. Etiam adiuvantia nuntia possunt ostendi globulo muris dextro cum hic valor 0 est diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 23136c86b7..a8d6e6747d 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -1208,6 +1208,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :pa kreisi STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :centrā STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :pa labi + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimālais sākotnējais aizdevums: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksimālais aizdevuma daudzums, ko uzņēmums var izsniegt (neskaitot inflāciju) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1423,7 +1424,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimālais nau STR_CONFIG_SETTING_ERRMSG_DURATION :Kļūdas ziņojuma ilgums: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Kļūdas ziņojuma sarkanā logā rādīšanas ilgums. Jāņem vērā ka daži (kritiskie) kļūdu ziņojumi pēc šī laika netiek slēgti automātiski, bet tos ir jāaizver manuāli -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekun{P 0 di des žu} STR_CONFIG_SETTING_HOVER_DELAY :Rādīt rīku padomus: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Aizkaves ilgums, pirms tiek rādīti rīku padomi, kad peles kursors atrodas virs kāda saskarnes elementa. Rīku padomu rādīšanu pārmaiņus var saistīt ar peles labās pogas klikšķi diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 91c2c9c7ee..8853d4687e 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -1399,6 +1399,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Kairėje STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centruoti STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Dešinėje + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Didžiausia pradinė paskola: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Didžiausia paskola, kokią kompanija gali gauti iš banko (neatsižvelgiant į infliaciją) ###setting-zero-is-special @@ -1612,7 +1613,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Mažiausias bū STR_CONFIG_SETTING_ERRMSG_DURATION :Klaidos pranešimo rodymo trukmė: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Klaidos pranešimų rodymo trukmė, po kurios pranešimas langas bus automatiškai užvertas. Atkreipkite dėmesį, kai kai kurie kritiniai pranešimai automatiškai nėra užveriami -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P ė ės žių} STR_CONFIG_SETTING_HOVER_DELAY :Rodyti paaiškinimus: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Delsos laikas prieš parodant paaiškinimą, kai pelės žymeklis yra užvedamas virš kurio nors vartotojo sąsajos elemento. Paaiškinimas taip pat gali būti susietas ir su dešiniuoju pelės klavišu, jei delsos laikas nustatomas į 0 milisekundžių diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index f34f485b96..2dc1bb849e 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1206,6 +1206,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Lénks STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Zentréiert STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Riets + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximalen Ufanksloun: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximalwäert den eng Firma kann léinen (ouni Inflatioun matzerechnen) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1421,7 +1422,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimalt Geld w STR_CONFIG_SETTING_ERRMSG_DURATION :Dauer vun der Feelermeldung: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Zäit déi eng Feelermeldung an enger rouder Fënster ugewisen gëtt. E puer kritesch Meldungen ginn net zougemeet -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} Sekonn{P 0 "" en} STR_CONFIG_SETTING_HOVER_DELAY :Weis Tooltips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Verzögerung bis d'Tooltips ugewisen ginn, wann een mat der Maus iwwert en Element geet. Alternativ kënnen d'Tooltips och op d'riets Maustast geluet ginn wann dësen Wäert op 0 gesat gouf. diff --git a/src/lang/macedonian.txt b/src/lang/macedonian.txt index 61c71515a5..525f412aa0 100644 --- a/src/lang/macedonian.txt +++ b/src/lang/macedonian.txt @@ -864,6 +864,7 @@ STR_CONFIG_SETTING_REALISTIC :Реален ###length 3 + ###setting-zero-is-special diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 3483b39d2a..f9bc4f6fdf 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1088,6 +1088,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Kiri STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Tengah STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Kanan + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimum pinjaman permulaan: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Rantaian industri ###setting-zero-is-special diff --git a/src/lang/maltese.txt b/src/lang/maltese.txt index 92762595df..2f6beff5f2 100644 --- a/src/lang/maltese.txt +++ b/src/lang/maltese.txt @@ -472,6 +472,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :oħrajn ###length 3 + ###setting-zero-is-special diff --git a/src/lang/marathi.txt b/src/lang/marathi.txt index cee23e4047..6571bc1fcf 100644 --- a/src/lang/marathi.txt +++ b/src/lang/marathi.txt @@ -798,6 +798,7 @@ STR_CONFIG_SETTING_REALISTIC :खरेखु ###length 3 + ###setting-zero-is-special diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index c2d1f323c2..1523eae1d0 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1188,6 +1188,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Venstre STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Midtstilt STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Høyre + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimalt innledende lån: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Det maksimale beløp et selskap kan låne (uten å ta inflasjon i betraktning) ###setting-zero-is-special @@ -1402,7 +1403,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minste pengemen STR_CONFIG_SETTING_ERRMSG_DURATION :Varighet av feilmelding: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Varighet for visning av feilmeldinger i et rødt vindu. Vær oppmerksom på at noen (kritiske) feilmeldinger ikke lukkes automatisk etter dette tidspunktet, men må lukkes manuelt -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P 0 "" er} STR_CONFIG_SETTING_HOVER_DELAY :Vis verktøytips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Forsinkelse før verktøytips vises når musen svever over elementer i grensesnittet. Alternativt kan verktøytips bindes til den høyre museknappen diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index abeb981543..21619f60e0 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -1126,6 +1126,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Venstre STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Midtstilt STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Høgre + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimalt startlån: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksimalt lån eit firma kan ta opp (utan å reikne med inflasjon) ###setting-zero-is-special @@ -1306,7 +1307,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} månad{ STR_CONFIG_SETTING_AUTORENEW_MONEY :Minimum formue for autofornying av køyretøy: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION :Varighet for feilmelding: {STRING} -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Syn verktøytips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Hold over i {COMMA} sekund{P 0 "" s} diff --git a/src/lang/persian.txt b/src/lang/persian.txt index 483cca54ed..223875ec1f 100644 --- a/src/lang/persian.txt +++ b/src/lang/persian.txt @@ -1106,6 +1106,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :چپ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :مرکز STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :راست + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :حداکثر اعتبار اولیه: {STRING} ###setting-zero-is-special diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 2f4ad8dcd3..8787a6ca5a 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -1614,6 +1614,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :z lewej strony STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :wyśrodkowany STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :z prawej strony + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksymalna wysokość początkowej pożyczki: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksymalna wysokość pożyczki, jaką firma może zaciągnąć (bez uwzględnienia inflacji) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1829,7 +1830,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimalna iloś STR_CONFIG_SETTING_ERRMSG_DURATION :Czas wyświetlania komunikatów o błędach: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Czas wyświetlania komunikatów o błędach w czerwonym oknie. Niektóre (krytyczne) komunikaty o błędach nie zamykają się automatycznie po tym czasie, tylko muszą zostać zamknięte ręcznie -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P a y ""} STR_CONFIG_SETTING_HOVER_DELAY :Pokaż podpowiedzi: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Opóźnienie wyświetlania podpowiedzi po najechaniu myszą na element interfejsu. Ewentualnie podpowiedzi mogą być przypisane do prawego przycisku myszy, jeśli wartość ta będzie ustawiona na 0. @@ -2326,7 +2326,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Żadne STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Początkowy mnożnik rozmiarów metropolii: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Średni rozmiar metropolii w porównaniu do normalnych miast na początku gry +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Aktualizuj graf dystrybucji co {STRING}{NBSP}sekund{P 0:2 ę y ""} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Czas pomiędzy kolejnymi przeliczeniami grafu połączeń. Każde przeliczenie oblicza plany dla jednego komponentu grafu. Wartość X dla tego ustawienia nie oznacza, że cały graf będzie aktualizowany co X sekund. Aktualizowane będą tylko niektóre komponenty. Im mniejszą wartość ustawisz, tym więcej czasu będzie potrzebował procesor, aby wykonać obliczenia. Im większą wartość ustawisz, tym więcej czasu upłynie, zanim rozpocznie się dystrybucja ładunków po nowych trasach. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Przeznacz {STRING}{NBSP}sekund{P 0:2 ę y ""} na przeliczenie grafu dystrybucji STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Czas potrzebny na każde przeliczenie komponentu grafu połączeń. Po rozpoczęciu przeliczania, tworzony jest wątek, który może działać przez podaną liczbę sekund. Im mniejszą wartość ustawisz, tym większe prawdopodobieństwo, że wątek nie zostanie ukończony w wyznaczonym czasie. Wtedy gra zatrzymuje się do czasu jego zakończenia („lag”). Im większą wartość ustawisz, tym dłużej będzie trwała aktualizacja dystrybucji, gdy zmienią się trasy. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Tryb dystrybucji dla pasażerów: {STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index c520d44285..9b8bc77c23 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -432,7 +432,7 @@ STR_FILE_MENU_EXIT :Sair ###length 4 STR_MAP_MENU_MAP_OF_WORLD :Mapa do mundo STR_MAP_MENU_EXTRA_VIEWPORT :Visualizador extra -STR_MAP_MENU_LINGRAPH_LEGEND :Legenda de fluxo de carga +STR_MAP_MENU_LINGRAPH_LEGEND :Legenda do fluxo de carga STR_MAP_MENU_SIGN_LIST :Lista de sinais # Town menu @@ -456,7 +456,7 @@ STR_GRAPH_MENU_CARGO_PAYMENT_RATES :Tarifas por car # Company league menu ###length 3 STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :Classificação de empresas -STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING :Avaliação detalhada +STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING :Classificação detalhada de desempenho STR_GRAPH_MENU_HIGHSCORE :Tabela de classificações # Industry menu @@ -604,8 +604,8 @@ STR_GRAPH_Y_LABEL_NUMBER :{TINY_FONT}{COM STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Gráfico do Lucro Operacional STR_GRAPH_INCOME_CAPTION :{WHITE}Gráfico de Rendimentos STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Unidades de carga entregues -STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Avaliações da empresa (máximo=1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Valor da empresa +STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Classificações do desempenho da empresa (máximo=1000) +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Gráfico de Valor da Empresa STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Tarifas por carga STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Dias em trânsito @@ -617,7 +617,7 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Não mos STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Mostrar/ocultar gráfico para o tipo de carga STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING} -STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Exibir detalhes de rendimentos +STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Exibir classificações detalhadas de desempenho # Graph key window STR_GRAPH_KEY_CAPTION :{WHITE}Chave dos gráficos da empresa @@ -637,7 +637,7 @@ STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :Presidente STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Magnata # Performance detail window -STR_PERFORMANCE_DETAIL :{WHITE}Detalhes de rendimentos +STR_PERFORMANCE_DETAIL :{WHITE}Classificação Detalhada de Desempenho STR_PERFORMANCE_DETAIL_KEY :{BLACK}Detalhes STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT}) STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA}) @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Esquerda STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Direita + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Valor máximo do empréstimo inicial: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Quantia máxima que uma companhia pode pedir (sem ter em conta a inflação) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1276,7 +1277,7 @@ STR_CONFIG_SETTING_DISASTERS :Desastres: {STR STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ativa desastres que podem ocasionalmente bloquear ou destruir veículos ou infraestruturas STR_CONFIG_SETTING_CITY_APPROVAL :Atitude da autoridade local: {STRING} -STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escolha de que forma o ruído e dano ambiental causado pelas empresas afeta o rating da povoação e futuras ações de construção nessa povoação +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escolha o quanto o ruído e os danos ambientais causados pelas empresas afetam a classificação da povoação e outras ações de construção na cidade STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Limite de altura do mapa: {STRING} STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Define a altura máxima do terreno do mapa. Com "(auto)" um bom valor será escolhido após a geração do terreno @@ -1450,7 +1451,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantidade mín STR_CONFIG_SETTING_ERRMSG_DURATION :Duração da mensagem de erro: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duração da visualização de mensagens de erro em janela vermelha. Note que algumas mensagens de erro (críticas) não são fechadas após este tempo e têm que ser fechadas manualmente -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundo{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Mostrar textos de ajuda: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Atraso após o qual os textos de ajuda são mostrados após parar o cursor sobre algum elemento da interface. Alternativamente, os textos de ajuda podem ser mostrados com o botão direito do rato quando este valor está definido como 0 @@ -1947,7 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial para a dimensão das metrópoles: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho relativo das cidades em relação ao tamanho normal das localidades aquando o início do jogo +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Atualizar o gráfico de distribuição a cada {STRING}{NBSP}segundo{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo de intervalo entre recalculos subsequentes do gráfico de ligações. Cada recalculo calcula os planos para um componente do gráfico. Isso significa que um valor X para esta configuração não significa que todo o gráfico será atualizado a cada X segundos. Apenas algum componente será. Quanto mais curto escolher, mais tempo de CPU será necessário para calcular. Quanto mais tempo for definido, mais tempo levará até que a distribuição de carga inicie nas novas rotas. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Usar {STRING}{NBSP}segundo{P 0:2 "" s} para recalcular o gráfico de distribuição STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo gasto para cada recalculo de um componente de gráfico de ligação. Quando um recalculo é iniciado, um encadeamento é gerado e pode ser executado nesse número de segundos. Quanto mais curto você definir, mais provável será que o encadeamento não seja concluído quando deveria. Então o jogo pára até que seja ("lag"). Quanto mais tempo você definir, mais tempo levará para a distribuição ser atualizada quando as rotas mudarem. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribuição para os passageiros: {STRING} @@ -2920,7 +2922,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}grelha 3 STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Aleatório # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Financiar nova indústria +STR_FUND_INDUSTRY_CAPTION :{WHITE}Financiar Indústria STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Escolha a indústria apropriada desta lista STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Criar indústrias aleatórias STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Cobrir o mapa com indústrias colocadas aleatoriamente @@ -2936,14 +2938,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Remover STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Tem a certeza que deseja remover todas as indústrias? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadeia de indústrias para a indústria {STRING} -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cadeia de indústrias para a mercadoria {STRING} +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadeia da Indústria - {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cadeia de Carga - {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Indústrias produtoras STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Indústrias que aceitam STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Casas STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Clique na indústria para ver os seus fornecedores e clientes STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Clique na mercadoria para ver os seus fornecedores e clientes -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Mostrar cadeia +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Cadeia da Indústria STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Mostrar indústrias a fornecer e aceitar mercadorias STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Ligar ao mapa pequeno STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Também seleccionar as indústrias mostradas no mapa pequeno @@ -3080,7 +3082,7 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} A equipa do OpenTTD # Framerate display window -STR_FRAMERATE_CAPTION :{WHITE}Taxa de fotograma +STR_FRAMERATE_CAPTION :{WHITE}Taxa de fotogramas STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Taxa de simulação: {STRING} STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Numero de quantidades de atraso no percurso simulados por segundo. @@ -3499,7 +3501,7 @@ STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Localida STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Localidade {RED}não{BLACK} está a crescer STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Limite de ruído na localidade: {ORANGE}{COMMA}{BLACK} máx: {ORANGE}{COMMA} STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Centrar visualização na localidade. Ctrl+Clique abre um novo visualizador na localização da localidade -STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Autoridade local +STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Autoridade Local STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Ver informações sobre a autoridade local STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}Alterar o nome da localidade @@ -3514,7 +3516,7 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Renomear Locali STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} autoridade local STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zona STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Mostrar a zona dentro dos limites da autoridade local -STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Avaliações da empresa de transporte: +STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Classificações de empresas de transporte: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Acções disponíveis: STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Lista de acções disponíveis nesta localidade - fazer clique no item para mais detalhes @@ -3538,8 +3540,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW}Financiar a reconstrução da rede rodoviária urbana.{}Causa engarrafamentos consideráveis ao tráfego rodoviário até 6 meses.{}{POP_COLOUR}Custo: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}Construir uma estátua em honra da sua empresa.{}Providencia um incremento permanente na avaliação das estações nesta localidade.{}{POP_COLOUR}Custo: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}Financiar a construção de novos edifícios na localidade.{}Providencia um incremento temporário no crescimento desta localidade.{}{POP_COLOUR}Custo: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Comprar 1 ano de direitos exclusivos de transportes nesta localidade.{}A autoridade local não permitirá que os passageiros e a carga usem as estações dos seus concorrentes.{}{POP_COLOUR}Custo: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Subornar a autoridade local para aumentar a sua avaliação, correndo o risco de uma penalidade severa se for apanhado.{}{POP_COLOUR}Custo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Comprar 1 ano de direitos exclusivos de transportes nesta localidade.{}A autoridade local não permitirá que os passageiros e a carga usem as estações dos seus concorrentes. Um suborno bem-sucedido de um concorrente irá cancelar este contrato.{}{POP_COLOUR}Custo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Subornar a autoridade local para aumentar a sua avaliação e anular o direito de transporte exclusivo da concorrência, correndo o risco de uma penalidade severa se for apanhado.{}{POP_COLOUR}Custo: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Objectivos @@ -3627,9 +3629,9 @@ STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Aceita: STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estação tem direitos de transporte exclusivos nesta localidade. STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} comprou direitos exclusivos de transporte nesta localidade. -STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Avaliações -STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Mostrar avaliações da estação -STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Abastecimento mensal e classificação local: +STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Classificações +STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Exibir classificações da estação +STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Fornecimento mensal e classificação local: STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%) STR_STATION_VIEW_GROUP :{BLACK}Agrupar por @@ -3849,16 +3851,16 @@ STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Aeronaves Dispo STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Gerir lista STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Enviar instruções a todos os veículos desta lista STR_VEHICLE_LIST_REPLACE_VEHICLES :Substituir Veículos -STR_VEHICLE_LIST_SEND_FOR_SERVICING :Enviar para Serviço +STR_VEHICLE_LIST_SEND_FOR_SERVICING :Enviar para manutenção STR_VEHICLE_LIST_CREATE_GROUP :Criar grupo STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Lucro deste ano: {CURRENCY_LONG} (último ano: {CURRENCY_LONG}) STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING} {STRING} -STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Enviar para Depósito -STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Enviar para Depósito -STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Enviar para Depósito -STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Enviar para Hangar +STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Enviar para depósito +STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Enviar para depósito +STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Enviar para depósito +STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Enviar para hangar STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Pressione botão esquerdo do rato para imobilizar todos os veículos na lista STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Pressione botão esquerdo do rato para iniciar todos os veículos na lista @@ -4611,8 +4613,8 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Houve um STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}A janela de Depuração de IA/Scripts de jogo está disponível apenas para o servidor # AI configuration window -STR_AI_CONFIG_CAPTION_AI :{WHITE}Configuração de IA -STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Configuração de Script de Jogo +STR_AI_CONFIG_CAPTION_AI :{WHITE}Definições de IA +STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Definições de Script de Jogo STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}O Script de jogo que será carregado no próximo jogo STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}As IAs que serão carregadas no próximo jogo STR_AI_CONFIG_HUMAN_PLAYER :Jogador humano diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index a91e0822c4..4512d26314 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1233,6 +1233,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :stânga STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :centru STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :dreapta + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Valoarea maximă a împrumutului inițial: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Valoarea maximă pe care o companie o poate împrumuta (fără a ține cont de inflație) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1448,7 +1449,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Suma minimă ca STR_CONFIG_SETTING_ERRMSG_DURATION :Durata de afișare a mesajelor de eroare: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Durata afișării mesajelor de eroare în fereastra roșie. Unele mesaje de eroare (cele critice) nu sunt închise automat după trecerea acestei perioade, și trebuie închise manual. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} {P 0 secundă secunde "de secunde"} STR_CONFIG_SETTING_HOVER_DELAY :Afișează texte informative: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Durata dinaintea afișării sfaturilor când se ține mausul pe un element al interfeței. Alternativ, afișarea sfaturilor poate fi setată pentru clic-dreapta diff --git a/src/lang/russian.txt b/src/lang/russian.txt index b08f7dd88e..dca02c50b7 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -742,7 +742,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Граф STR_GRAPH_INCOME_CAPTION :{WHITE}График дохода STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Количество доставленного груза STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Рейтинг компании (макс=1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Стоимость компании +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}График изменения стоимости компании STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Оплата за перевозку грузов STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Дней в пути @@ -1385,6 +1385,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :слева STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :посередине STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :справа + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Максимальная сумма кредита: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Максимальная сумма кредита для компании (без учета инфляции) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1600,7 +1601,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Минимал STR_CONFIG_SETTING_ERRMSG_DURATION :Длительность сообщения об ошибке: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Длительность показа красных окон с сообщениями об ошибках. Эта настройка не действует на некоторые сообщения (о критических ошибках) - они не закрываются автоматически, только вручную. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} секунд{P а ы ""} STR_CONFIG_SETTING_HOVER_DELAY :Показывать подсказки: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Задержка между наведением указателя мыши на элемент интерфейса и появлением подсказки. Если это значение равно 0, подсказки появляются по щелчку правой кнопки мыши. @@ -2097,7 +2097,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :нет STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Стартовый множитель размера мегаполисов: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Средний размер мегаполисов по сравнению с остальными городами в начале игры +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Обновлять граф распределения кажд{P 0:2 ую ые ые} {STRING}{NBSP}секунд{P 0:2 у ы ""} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Интервалы между перерасчётами графов распределения грузов. Каждый перерасчёт обновляет один компонент графа. То есть, по истечении указанного здесь времени будет обновлён не весь граф, а только один из его компонентов. Чем ниже значение, тем выше нагрузка на процессор. Чем выше значение, тем дольше не будет работать распределение грузов на новых маршрутах. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Продолжительность перерасчёта графа распределения: {STRING}{NBSP}секунд{P 0:2 а ы ""} STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Время, выделяемое на каждый перерасчёт одного из компонентов графа распределения грузов. Расчёт выполняется в отдельном вычислительном потоке. Чем ниже значение, тем выше вероятность того, что расчёт не будет выполнен за указанное время; в таком случае игра будет приостановлена до завершения расчёта. Чем выше значение, тем медленнее будет обновляться граф распределения в случае изменения маршрутов. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Распределение пассажиров: {STRING} @@ -3094,7 +3096,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}Решё STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Случайная # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Создать новое предприятие +STR_FUND_INDUSTRY_CAPTION :{WHITE}Создание предприятий STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Выберите тип предприятия из списка STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Множество различных предприятий STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Разместить на карте различные предприятия случайным образом @@ -3110,14 +3112,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Убра STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Убрать все предприятия с карты? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Цепочка грузоперевозок для {STRING.gen} -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Цепочка грузоперевозок для {STRING.gen} +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Цепочка грузоперевозок - {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Цепочка грузоперевозок - {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Производители STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Потребители STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Городские здания STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Щелчок по предприятию покажет его поставщиков и потребителей STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Щелчок по типу груза покажет его производителей и потребителей -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Показать цепочку +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Показать связи STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Показать производителей сырья и потребителей продукции этого предприятия STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Показать на карте STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Показать на карте выбранные предприятия @@ -3712,8 +3714,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW}Профинансировать реконструкцию городских дорог.{}Вызывает большие нарушения движения на срок до 6 месяцев.{}{POP_COLOUR}Стоимость: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}Установить статую в честь вашей компании.{}Она добавит рейтинг вашим станциям.{}{POP_COLOUR}Стоимость: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}Профинансировать строительство новых зданий.{}Это временно ускорит рост города.{}{POP_COLOUR}Стоимость: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Приобрести годовые эксклюзивные права на транспортные перевозки в городе.{}Городская администрация разрешит пользоваться ТОЛЬКО вашими станциями.{}{POP_COLOUR}Стоимость: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Дать взятку городской администрации для повышения рейтинга. Существует риск санкций, если факт подкупа раскроется.{}{POP_COLOUR}Цена: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Приобрести годовые эксклюзивные права на транспортные перевозки в городе.{}Городская администрация разрешит пользоваться только вашими станциями. Однако контракт может быть аннулирован, если конкурирующей компании удастся подкупить администрацию.{}{POP_COLOUR}Стоимость: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Дать взятку городской администрации для повышения рейтинга и отмены эксклюзивных транспортных прав конкурирующей компании. Существует риск санкций, если факт подкупа раскроется.{}{POP_COLOUR}Цена: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}Задачи компании «{COMPANY}» diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 303d02eb45..4d20247dac 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -1401,6 +1401,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Levo STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Sredina STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Desno + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Najveći zajam na početku: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Najveći iznos koji preduzeće može da pozajmi (ne uzimajući u obzir inflaciju) ###setting-zero-is-special @@ -1614,7 +1615,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Najmanji iznos STR_CONFIG_SETTING_ERRMSG_DURATION :Trajanje poruke o greški: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Trajanje prikazivanja poruka o greškama u crvenom prozoru. Neke (kritične) poruke o greškama se ne zatvaraju automatski posle ovog vremena nego moraju da se zatvore ručno -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P a e i} STR_CONFIG_SETTING_HOVER_DELAY :Prikaži poruke u ispod strelice miša: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Kašnjenje pre prikaza objašnjenja alata kada se miš postavi iznad nekog elementa interfejsa. Alternativno, objašnjenja alata se mogu vezati uz desnu dugmetom na mišu kada je ova vrednost postavljena na 0. diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 532b4b79ba..ea8e45b801 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -1206,6 +1206,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :左侧 STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :中央 STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :右侧 + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :最大初始贷款: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :公司最大贷款额(不考虑通货膨胀的影响) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1421,7 +1422,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :启动自动更 STR_CONFIG_SETTING_ERRMSG_DURATION :错误信息持续时间{STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :红色窗口显示错误信息的持续时间,在这个时间内一些紧急的错误信息不会自动关闭,必须手动关闭 -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} 秒 STR_CONFIG_SETTING_HOVER_DELAY :显示提示信息:{STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :此设置决定鼠标停留在图标、按键或功能时显示提示信息的时间。如果此设置被赋值为 0,您必须揿住鼠标右键来显示图标、按键或功能的提示信息。 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 62fff2c04b..2e13dc635a 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -1275,6 +1275,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :vľavo STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :v strede STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :vpravo + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximálny počiatočný úver: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximálna množstvo peňazí ktoré si môže spoločnosť požičať (bez inflácie) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1490,7 +1491,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimálna suma STR_CONFIG_SETTING_ERRMSG_DURATION :Trvanie zobrazenia chybovej hlášky: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Trvanie zobrazenia chybovej hlášky v červenom okne. Uvedomte si že niektoré "kritické" správy nezmiznú po uplynutí času, ale musia byť zatvorené ručne. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sek{P unda undy únd} STR_CONFIG_SETTING_HOVER_DELAY :Ukázať nápovedu: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Oneskorenie pred zobrazením nápovedy po prejdení prvku rozhrania myšou. Nápoveda môže byť eventuálne nastavené aj na kliknutie pravým tlačidlom myši pri hodnote 0. diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 2acfc3ee44..98cc5dffbc 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -1281,6 +1281,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Levo STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Sredina STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Desno + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Najvišje začetno posojilo: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Najvišji znesek, ki si ga podjetje lahko izposodi (ni vključen izračun inflacije) ###setting-zero-is-special @@ -1482,7 +1483,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimalna vsota STR_CONFIG_SETTING_ERRMSG_DURATION :Trajanje poročila o napaki: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Trajanje sporočil o napakah v rdečem kvadratu. Kritična opozorila se ne zaprejo sama po tem času, ampak ročno. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P 0 o i e ""} STR_CONFIG_SETTING_HOVER_DELAY :Prikaz nasvetov orodij: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Čas do prikaza nasvetov orodij, ko je miška na orodju. Lahko se nasvete vidi tudi z desno tipko miške. diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1b8083c64e..09797e3ee5 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1207,6 +1207,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Izquierda STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Derecha + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Préstamo máximo inicial: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Cantidad máxima que una empresa puede recibir como préstamo (sin tener en cuenta la inflación) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1422,7 +1423,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Mínima cantida STR_CONFIG_SETTING_ERRMSG_DURATION :Duración de mensajes de error: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duración de los mensajes de error mostrados en ventanas rojas. Algunos mensajes de error (críticos) no se cierran automáticamente, y deben de ser cerrados manualmente -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundo{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Mostrar mensajes de ayuda: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Tiempo necesario del ratón sobre un elemento de la interfaz para que ésta muestre su mensaje de ayuda. De forma alternativa, se puede escoger mostrar estos mensajes al pulsar el botón derecho si el valor de esta opción ha sido establecido a 0. diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index c72ba492f6..17d1681a1e 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1207,6 +1207,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Izquierda STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Derecha + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Máximo préstamo inicial: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Máxima cantidad que una empresa puede pedir prestada (sin tener en cuenta la inflación) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1422,7 +1423,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Mínima cantida STR_CONFIG_SETTING_ERRMSG_DURATION :Duración de mensajes de error: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duración de los mensajes de error mostrados en los avisos en rojo. Algunos mensajes de error (críticos) no se cierran automáticamente, solo de forma manual -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundo{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Mostrar información de herramientas: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Tiempo de retraso para mostrar información de ayuda al posar el ratón en un elemento de la interfaz. Si el valor es 0 los mensajes se muestran con el botón derecho del ratón. diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 3a047fca0d..1da980e986 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1229,6 +1229,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Vänster STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centrerad STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Höger + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximalt startlån: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximalt belopp ett företag kan låna (där inflationen inte tas med i beräkningen) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1444,7 +1445,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minsta belopp s STR_CONFIG_SETTING_ERRMSG_DURATION :Visningstid för felmeddelanden: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Tid som felmeddelanden i ett rött fönster ska visas. Notera att vissa (kritiska) felmeddelanden inte stängs automatiskt efter denna tid, utan måste stängas manuellt -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P 0 "" er} STR_CONFIG_SETTING_HOVER_DELAY :Visa tooltips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Fördröjning innan tooltips visas när muspekaren hålls över ett gränssnittselement. Alternativt kan tooltips bindas till den högra musknappen när detta värde är satt till 0. @@ -1941,7 +1941,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Inga STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial stadsstorleks-multiplikator: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Storstäders genomsnittliga storlek i relation till vanliga städers vid spelets början +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Uppdatera distributionsdiagram var {STRING}{NBSP}sekund{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tid mellan efterföljande omräkningar av länkgrafen. Varje omräkning beräknar planerna för en komponent i grafen. Det betyder att ett värde X för den här inställningen inte betyder att hela grafen kommer att uppdateras var X:e sekund. Bara viss komponent kommer att göra det. Ju kortare du ställer in den desto mer CPU-tid kommer att behövas för att beräkna den. Ju längre du ställer in den desto längre tid tar det tills lastdistributionen startar på nya rutter. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Ta {STRING}{NBSP}sekund{P 0:2 "" s} för omräkning av distributionsdiagrammet STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tid som det tar för varje omräkning av en länkdiagramkomponent. När en omräkning startas skapas en tråd som tillåts köra i detta antal sekunder. Ju kortare du ställer in detta desto mer sannolikt är det att tråden inte är färdig när den ska. Sedan stannar spelet tills det är ("lag"). Ju längre du ställer in den desto längre tid tar det för distributionen att uppdateras när rutter ändras. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributionssätt för passagerare: {STRING} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 3c8c9255d7..75ae17cc29 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -1145,6 +1145,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :இடது STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :நடு STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :வலது + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :அதிகபட்ச ஆரம்ப கடன்: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :ஒரு நிறுவனத்தால் பெறமுடியும் கடன் (பணவீக்கத்தினைக் கணக்கில் எடுத்துக் கொள்ளாமல்) ###setting-zero-is-special @@ -1322,7 +1323,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY :காலாவ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :தானாக புதுப்பிக்கும் வாகனங்களைக் கருத்தில் கொள்வதற்கு முன் வங்கியில் இருக்க வேண்டிய குறைந்தபட்ச பணம் STR_CONFIG_SETTING_ERRMSG_DURATION :பிழை செய்திக்கான கால அளவு: {STRING} -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} விநாடி{P 0 "" கள்} STR_CONFIG_SETTING_HOVER_DELAY :tooltips இனை காட்டு: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_VALUE :{COMMA} விநாடி{P 0 "" கள்} காட்டவும் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 721b9311a4..1f42beda71 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -1141,6 +1141,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :ซ้าย STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :กลาง STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :ขวา + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :เงินกู้เริ่มต้นสูงสุด: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :บริษัท สามารถกู้ยืมเงินจำนวนสูงสุด (โดยไม่คำนึงถึงอัตราเงินเฟ้อเข้าบัญชี) ###setting-zero-is-special @@ -1342,7 +1343,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :จำนวน STR_CONFIG_SETTING_ERRMSG_DURATION :ระยะเวลาแสดงของข้อความแจ้งความผิดพลาด: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :เป็นระยะเวลาที่จะคงแสดงข้อความแจ้งความผิดพลาดของเกม จะคงอยู่ตามระยะเวลาที่ตั้งค่าไว้ข้างต้น -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} วินาที STR_CONFIG_SETTING_HOVER_DELAY :แสดงบอลลูนข้อความช่วยเหลือ: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :หน่วงระยะเวลาเป็นวินาทีเมื่อนำเมาส์วางไว้เหนือปุ่มต่างๆเพื่อแสดงข้อความช่วยเหลือ diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index becf2bd820..4865c83be3 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -1206,6 +1206,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :靠左 STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :置中 STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :靠右 + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :最大貸款額:{STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :公司最多可借多少錢(此設定的值排除了通貨膨脹因素)。 STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1421,7 +1422,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :如果公司銀 STR_CONFIG_SETTING_ERRMSG_DURATION :錯誤訊息持續時間:{STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :設定所有以紅色對話窗顯示的錯誤訊息之持續時間。請注意有些較嚴重的錯誤訊息必須手動關閉。 -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} 秒 STR_CONFIG_SETTING_HOVER_DELAY :顯示工具提示:{STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :設定游標需在工具按鈕之上停留多久才會顯示工具使用提示。如此選項的值為 0,您需在工具按鈕上右撳鼠键以顯示工具使用提示。 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index bf9ff40ca0..60b907aa49 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Sol STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Orta STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Sağ + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :En yüsek açılış borcu: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Bir şirketin alabileceği en fazla borç (enflasyon hesaba katılmadan) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1450,7 +1451,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Araçları otom STR_CONFIG_SETTING_ERRMSG_DURATION :Hata mesajının süresi: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Kırmızı penceredeki hata mesajlarının görüntüleneceği süre. Fakat bazı (kritik) hata mesajları bu süre dolduğunda otomatik kapanmaz, el ile kapatılması gerekir. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} saniye STR_CONFIG_SETTING_HOVER_DELAY :Araçlara dair bilgileri göster: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Fare bir arayüz elemanının üzerine getirildiğinde o araca dair bilgilerin gösterilmesi için geçmesi gereken süre. Alternatif olarak bu işlem için sağ fare tuşu da kullanılabilir. @@ -1947,7 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Hiçbiri STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Birincil şehir büyüklüğü çarpanı: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Oyun başlangıcında şehirlerin normal kasabalara kıyasla ortalama büyüklüğü +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Dağıtım grafiğini her {STRING}{NBSP}saniyede{P 0:2 ""} güncelle STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Bağlantı grafiğinin sonraki yeniden hesaplamaları arasındaki süre. Her yeniden hesaplama, grafiğin bir bileşeni için planları hesaplar. Bu, bu ayar için bir X değerinin tüm grafiğin her X saniyede bir güncelleneceği anlamına gelmediği anlamına gelir. Sadece bazı bileşenler olacaktır. Ne kadar kısa ayarlarsanız, hesaplamak için o kadar fazla CPU süresi gerekir. Ne kadar uzun ayarlarsanız, kargo dağıtımının yeni rotalarda başlaması o kadar uzun sürer. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Dağıtım grafiğinin yeniden hesaplanması için {STRING}{NBSP}saniye{P 0:2 ""} bekleyin STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Bir bağlantı grafiği bileşeninin her yeniden hesaplanması için geçen süre. Bir yeniden hesaplama başlatıldığında, bu sayıda saniye boyunca çalışmasına izin verilen bir iş parçacığı oluşturulur. Bunu ne kadar kısa ayarlarsanız, iş parçacığının olması gerektiği zamanda bitmemiş olma olasılığı o kadar artar. Ardından oyun ("gecikme") olana kadar durur. Ne kadar uzun ayarlarsanız, rotalar değiştiğinde dağıtımın güncellenmesi o kadar uzun sürer. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Yolcular için dağıtım kipi: {STRING} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 796062c2fb..6d2c5705d8 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1355,6 +1355,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :ліворуч STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :по центру STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :праворуч + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Максимальна сума позики: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Максимальна сума позики для компанії (без урахування інфляції) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1569,7 +1570,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Мінімал STR_CONFIG_SETTING_ERRMSG_DURATION :Тривалість повідомлення про помилку: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Тривалість відображення повідомлень про помилки (червоне вікно повідомлень). Деякі (критичні) повідомлення необхідно закривати власноруч. -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} секунд{P а и ""} STR_CONFIG_SETTING_HOVER_DELAY :Відображати підказки: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Затримка перед відображенням підказок при наведенні курсором на елементи інтерфейса. Окрім того, відображення підказок можна призначити на праву кнопку миші, якщо це значення поставити на 0. diff --git a/src/lang/urdu.txt b/src/lang/urdu.txt index e8e5b78098..2d8e4cb976 100644 --- a/src/lang/urdu.txt +++ b/src/lang/urdu.txt @@ -1059,6 +1059,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :بائیں STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :درمیان STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :دائیں + ###setting-zero-is-special diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 058814fd5e..0cbd96a0c3 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Trái STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Giữa STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Phải + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Khoảng vay khởi nghiệp tối đa: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Hạn mức tối đa một công ty có thể vay (không tính lạm phát) STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE :{CURRENCY_LONG} @@ -1449,7 +1450,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Số dư tiền STR_CONFIG_SETTING_ERRMSG_DURATION :Khoảng thời gian thông báo lỗi xuất hiện trên màn hình: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Khoảng thời gian hiện thị thông báo trong cửa sổ màu đỏ. Lưu ý rằng cửa sổ thông báo sẽ tự đóng khi sau khoảng thời gian này, hoặc là được đóng bằng tay -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} giây STR_CONFIG_SETTING_HOVER_DELAY :Hiện chú thích: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Khoảng thời gian trễ mà hướng dẫn hiện lên khi di chuột tới đối tượng, có thể hiện hướng dẫn bằng bấm nút phải chuột khi giá trị này bằng 0. @@ -1946,7 +1946,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Không STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Hệ số quy mô đô thị coi là thành phố: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Kích thước trung bình của thành phố tỉ lệ với đô thị lúc bắt đầu trò chơi +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Cập nhật biểu đồ phân phối mỗi {STRING}{NBSP}giây STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Thời gian giữa các lần tính toán lại tiếp theo của biểu đồ liên kết. Mỗi lần tính toán lại sẽ tính toán các kế hoạch cho một thành phần của biểu đồ. Điều đó có nghĩa là giá trị X cho cài đặt này không có nghĩa là toàn bộ biểu đồ sẽ được cập nhật X giây một lần. Chỉ một số thành phần sẽ làm như vậy. Bạn đặt nó càng ngắn thì càng cần nhiều thời gian CPU để tính toán nó. Bạn đặt càng lâu thì càng mất nhiều thời gian cho đến khi việc phân phối hàng hóa bắt đầu trên các tuyến đường mới. +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Mất {STRING}{NBSP}giây để tính toán lại biểu đồ phân phối STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Thời gian tiêu tốn cho mỗi lần tính toán lại một thành phần biểu đồ liên kết. Khi bắt đầu tính toán lại, một luồng sẽ được sinh ra và chạy trong số giây được thiết lập. Bạn đặt thông số này càng ngắn thì càng có nhiều khả luồng được tạo chưa hoàn thành công việc của nó. Sau đó, trò chơi dừng lại cho đến khi nó ("lag"). Bạn đặt càng lâu thì biểu đồ phân phối càng mất nhiều thời gian để cập nhật khi các tuyến thay đổi. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Chế độ phân phối đối với hành khách: {STRING} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index de6f933ac7..4b72bb8de1 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -1160,6 +1160,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Chwith STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Canol STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :De + STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Benthyciad agoriadol uchafsymol: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Y swm uchaf y gall cwmni fenthyca (heb ustyried chwyddiant) ###setting-zero-is-special @@ -1369,7 +1370,6 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Lleiafswm arian STR_CONFIG_SETTING_ERRMSG_DURATION :Ystod neges gwall: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Amser i ddangos negeseuon gwall mewn ffenestr coch. Sylwer ni gaiff rhai negeseuon gwall (difrifol) eu cau'n ddiofyn -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} eiliad STR_CONFIG_SETTING_HOVER_DELAY :Dangos cynghorion: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Oediad cyn y dangosir cynghorion wrth ddal y cyrchydd dros rhyw elfen rhyngwyneb. Fel arall rhwymir cynghorion at botwm dde'r llygoden pan fo'r gwerth yma'n 0. @@ -1816,6 +1816,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Dim STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Lluosydd cychwynol maint dinas: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Maint cymhedrol dinasoedd o gymharu â threfi arferol ar ddechrau'r gêm +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Cymryd {STRING}{NBSP}eiliad ar gyfer ailgyfrifo'r graff dosraniad STR_CONFIG_SETTING_DISTRIBUTION_PAX :Dull dosrannu ar gyfer teithwyr: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :Mae "cymesur" yn golygu y bydd tua'r un faint o deithwyr yn mynd o orsaf A i orsaf B ac yr aiff o B i A. Mae "anghymesur" yn golygu y gall niferoedd mympwyol fynd yn y naill cyfeiriad neu'r llall. Mae "â llaw" yn golygu ni fydd dosrannu diofyn yn digwydd ar gyfer teithwyr. From 864d2352c29e3f5e9e10eacd8222f2feb94610a8 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 15 Jul 2023 19:25:45 +0100 Subject: [PATCH 52/58] Fix: Integer overflow in LinkGraphOverlay::ShowTooltip for long links In particular when fully zoomed in This could result in tooltips not being shown at all, or being shown when not appropriate --- src/linkgraph/linkgraph_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index fd1b3eaee9..2742c51370 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -369,8 +369,8 @@ bool LinkGraphOverlay::ShowTooltip(Point pt, TooltipCloseCondition close_cond) /* Check the distance from the cursor to the line defined by the two stations. */ Point ptb = this->GetStationMiddle(Station::Get(j->first)); - float dist = std::abs((ptb.x - pta.x) * (pta.y - pt.y) - (pta.x - pt.x) * (ptb.y - pta.y)) / - std::sqrt((ptb.x - pta.x) * (ptb.x - pta.x) + (ptb.y - pta.y) * (ptb.y - pta.y)); + float dist = std::abs((int64)(ptb.x - pta.x) * (int64)(pta.y - pt.y) - (int64)(pta.x - pt.x) * (int64)(ptb.y - pta.y)) / + std::sqrt((int64)(ptb.x - pta.x) * (int64)(ptb.x - pta.x) + (int64)(ptb.y - pta.y) * (int64)(ptb.y - pta.y)); const auto &link = j->second; if (dist <= 4 && link.Usage() > 0 && pt.x + 2 >= std::min(pta.x, ptb.x) && From 9c262b0d928d0cdb6fa8af60f1a085f37016d57b Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 16 Jul 2023 18:39:47 +0000 Subject: [PATCH 53/58] Update: Translations from eints english (au): 3 changes by krysclarke russian: 3 changes by Ln-Wolf portuguese: 3 changes by azulcosta --- src/lang/english_AU.txt | 5 +++-- src/lang/portuguese.txt | 5 +++-- src/lang/russian.txt | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 6a2cbfe99e..4744f08263 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Left STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centre STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Right +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}{NBSP}second{P 0 "" s} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximum initial loan: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximum amount a company can loan (without taking inflation into account) @@ -1946,9 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING}{NBSP}second{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING} for recalculation of distribution graph STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 9b8bc77c23..7dedb169da 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Esquerda STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Direita +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}{NBSP}segundo{P 0 "" s} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Valor máximo do empréstimo inicial: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Quantia máxima que uma companhia pode pedir (sem ter em conta a inflação) @@ -1947,9 +1948,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial para a dimensão das metrópoles: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho relativo das cidades em relação ao tamanho normal das localidades aquando o início do jogo -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Atualizar o gráfico de distribuição a cada {STRING}{NBSP}segundo{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Atualizar o gráfico de distribuição a cada {STRING} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo de intervalo entre recalculos subsequentes do gráfico de ligações. Cada recalculo calcula os planos para um componente do gráfico. Isso significa que um valor X para esta configuração não significa que todo o gráfico será atualizado a cada X segundos. Apenas algum componente será. Quanto mais curto escolher, mais tempo de CPU será necessário para calcular. Quanto mais tempo for definido, mais tempo levará até que a distribuição de carga inicie nas novas rotas. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Usar {STRING}{NBSP}segundo{P 0:2 "" s} para recalcular o gráfico de distribuição +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Usar {STRING} para recalcular o gráfico de distribuição STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo gasto para cada recalculo de um componente de gráfico de ligação. Quando um recalculo é iniciado, um encadeamento é gerado e pode ser executado nesse número de segundos. Quanto mais curto você definir, mais provável será que o encadeamento não seja concluído quando deveria. Então o jogo pára até que seja ("lag"). Quanto mais tempo você definir, mais tempo levará para a distribuição ser atualizada quando as rotas mudarem. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribuição para os passageiros: {STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index dca02c50b7..8e0edd4b7b 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1385,6 +1385,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :слева STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :посередине STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :справа +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}{NBSP}секунд{P 0 а ы ""} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Максимальная сумма кредита: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Максимальная сумма кредита для компании (без учета инфляции) @@ -2097,9 +2098,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :нет STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Стартовый множитель размера мегаполисов: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Средний размер мегаполисов по сравнению с остальными городами в начале игры -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Обновлять граф распределения кажд{P 0:2 ую ые ые} {STRING}{NBSP}секунд{P 0:2 у ы ""} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Интервал обновления графа распределения: {STRING} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Интервалы между перерасчётами графов распределения грузов. Каждый перерасчёт обновляет один компонент графа. То есть, по истечении указанного здесь времени будет обновлён не весь граф, а только один из его компонентов. Чем ниже значение, тем выше нагрузка на процессор. Чем выше значение, тем дольше не будет работать распределение грузов на новых маршрутах. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Продолжительность перерасчёта графа распределения: {STRING}{NBSP}секунд{P 0:2 а ы ""} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Продолжительность перерасчёта графа распределения: {STRING} STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Время, выделяемое на каждый перерасчёт одного из компонентов графа распределения грузов. Расчёт выполняется в отдельном вычислительном потоке. Чем ниже значение, тем выше вероятность того, что расчёт не будет выполнен за указанное время; в таком случае игра будет приостановлена до завершения расчёта. Чем выше значение, тем медленнее будет обновляться граф распределения в случае изменения маршрутов. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Распределение пассажиров: {STRING} From 61b0143c87d52b14c6d09a30075bf3f7f58efb58 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 17 Jul 2023 18:40:04 +0000 Subject: [PATCH 54/58] Update: Translations from eints english (us): 21 changes by 2TallTyler korean: 3 changes by telk5093 catalan: 27 changes by J0anJosep turkish: 12 changes by densxd french: 13 changes by Lishouuu --- src/lang/catalan.txt | 43 ++++++++++++++++++++++++++--------------- src/lang/english_US.txt | 41 ++++++++++++++++++++------------------- src/lang/french.txt | 25 ++++++++++++------------ src/lang/korean.txt | 5 +++-- src/lang/turkish.txt | 23 +++++++++++----------- 5 files changed, 76 insertions(+), 61 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 2d6fd5add4..4629cc2be0 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -605,7 +605,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Gràfic STR_GRAPH_INCOME_CAPTION :{WHITE}Gràfic d'ingressos STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Unitats de càrrega entregada STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Ratis de rendiment de la companyia (rati màxim: 1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Valors de la companyia +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Gràfic del valor de les companyies STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Tarifes de pagament de càrregues STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Dies en trànsit @@ -847,7 +847,7 @@ STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLAC STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} ha estat tancada pels creditors i s'han venut tots els seus actius STR_NEWS_COMPANY_LAUNCH_TITLE :{BIG_FONT}{BLACK}Creada una nova companyia de transports STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} comença a treballar prop de {TOWN} -STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} ha estat absorbida per {STRING} +STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} ha estat absorbida per {STRING} per una quantitat de diners desconeguda! STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(President) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} ha patrocinat la construcció d'una nova població, anomenada {TOWN} @@ -952,6 +952,7 @@ STR_GAME_OPTIONS_VOLUME_100 :100{NBSP}% STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Moneda STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Selecció de la unitat monetària +STR_GAME_OPTIONS_CURRENCY_CODE :{STRING} ({STRING}) ###length 42 STR_GAME_OPTIONS_CURRENCY_GBP :Lliura esterlina @@ -1059,12 +1060,12 @@ STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}{NBSP}Hz STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Ratis de refresc major a 60{NBSP}Hz poden causar problemes de rendiment. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunt de gràfics base -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunt de gràfics base a utilitzar +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunt de gràfics base a utilitzar (no es pot canviar des de dins de la partida; s'ha de canviar des del menú principal). STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arxiu{P "" s} absent{P "" s} o corromput{P "" s}. STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Informació addicional sobre el conjunt de gràfics base STR_GAME_OPTIONS_BASE_SFX :{BLACK}Conjunt de sons base -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Selecciona un conjunt de sons base a utilitzar +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Selecciona un conjunt de sons base a utilitzar (no es pot canviar des de dins de la partida; s'ha de canviar des del menú principal). STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Informació addicional sobre el joc de sons base STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Conjunt de peces de música base @@ -1234,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Esquerra STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centre STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Dreta +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}{NBSP}segon{P 0 "" s} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Préstec inicial màxim: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Quantitat màxima del préstec que pot demanar una companyia (sense tenir en compte la inflació) @@ -1560,7 +1562,7 @@ STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREY_TO_RED :De gris a verme STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREYSCALE :Escala de grisos STR_CONFIG_SETTING_SCROLLMODE :Desplaçament del mapa: {STRING} -STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Comportament quan es desplaça el mapa. +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Comportament quan es desplaça el mapa. Les opcions "amb la posició del ratolí fixada" no funcionen en tots els sistemes, com ara versions web, pantalles tàctils, Linux amb Wayland i altres. ###length 4 STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Mou la vista amb el botó dret del ratolí amb la posició del ratolí fixada STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Mou el mapa amb el botó dret del ratolí amb la posició del ratolí fixada @@ -1946,9 +1948,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Cap STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador de mida inicial de ciutats: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :La grandària mitjana de les ciutats en relació als pobles a l'inici de la partida. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Actualitza el graf de distribució cada {STRING}{NBSP}segon{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Actualitza el graf de distribució cada {STRING} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Temps entre actualitzacions de les arestes del graf de distribució. Cada vegada es calcularan els plans d'un dels components del graf. Això vol dir que un valor X d'aquesta opció no significa que es recalculi el graf sencer cada X segons. Només ho farà algun component. Com més curt sigui, farà falta més temps de CPU per a calcular-lo. Com més llarg sigui, més es trigarà a què la distribució de càrrega s'apliqui a les rutes noves. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Triga {STRING}{NBSP}segon{P 0:2 "" s} per a recalcular el graf de distribució +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Deixa passar {STRING} per a recalcular el graf de distribució STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Temps emprat per a cada actualització del component d'una aresta del graf. Quan comença el recàlcul, s'inicia un fil que pot executar-se durant aquests segons. Com més curt sigui, més probable és que el fil no acabi a temps. Llavors, la partida para fins que finalitzi, provocant una interrupció del desenvolupament de la partida. Com més llarg sigui, més es trigarà a actualitzar el graf de distribució quan es facin canvis de rutes. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Mode de distribució per passatgers: {STRING} @@ -2082,6 +2084,7 @@ STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'assign # Video initalization errors STR_VIDEO_DRIVER_ERROR :{WHITE}S'ha produït un error en la configuració de vídeo... STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no s'ha trobat cap GPU compatible. Es desactiva l'acceleració per programari. +STR_VIDEO_DRIVER_ERROR_HARDWARE_ACCELERATION_CRASH :{WHITE}... el controlador de la GPU ha fallat durant la partida. Es desactiva l'acceleració per maquinari. # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2920,7 +2923,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}Graella STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Aleatòria # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Finança una nova indústria +STR_FUND_INDUSTRY_CAPTION :{WHITE}Finançament d'indústries STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Escolleix el tipus d'indústria adequada d'aquesta llista STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Crea indústries aleatòries STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Omple el mapa amb indústries situades aleatòriament @@ -2936,14 +2939,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Treu tot STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Esteu segur que voleu treure totes les indústries? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadena industrial per la indústria {STRING} -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cadena industrial per la càrrega {STRING} +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadena industrial ‒ {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cadena de càrrega ‒ {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Indústries productores STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Indústries acceptades STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Cases STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Clica a la indústria per veure els seus proveïdors i clients STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Clica a la càrrega per veure els proveïdors i clients -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Mostra cadena +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Cadena d'indústries STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Mostra les càrregues proveïdes i les indústries acceptades STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Enllaç al mapa petit STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Selecciona les indústries mostrades també al mapa petit @@ -3538,8 +3541,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW}Finança la reconstrucció de la xarxa local de carrers. Dificulta notablement el trànsit durant 6 mesos.{}Causa molèsties considerables al trànsit de vehicles de carretera durant 6 mesos.{}{POP_COLOUR}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}Construeix una estàtua en honor a la teva companyia.{}Proporciona una millora permanent dels ratis d'estació de la població.{}{POP_COLOUR}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}Finança la construcció de nous edificis comercials a la població.{}Proporciona una millora temporal del creixement d'aquesta població.{}{POP_COLOUR}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Compra per 1 any els drets exclusius de transport en la població. L'autoritat local només permetrà utilitzar les instal·lacions de la teva companyia de transports als passatgers i les mercaderies.{}L'autoritat local no permetrà que els passatgers i càrregues locals usin les estacions dels oponents.{}{POP_COLOUR}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Suborna les autoritats locals per incrementar el teu rati, a risc de greus penalitzacions si et pesquen.{}{POP_COLOUR}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Compra per 1 any els drets exclusius de transport en la població.{}L'autoritat local no permetrà que els passatgers i càrregues locals facin servir les estacions dels oponents. Si un competidor suborna amb èxit les autoritats, el contracte quedarà cancel·lat.{}{POP_COLOUR}Cost:{NBSP}{CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Suborna les autoritats locals per a incrementar el vostre rati i cancel·lar els drets exclusius de transport del competidor, amb el risc de sancions greus si us pesquen.{}{POP_COLOUR}Cost:{NBSP}{CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Objectius @@ -3761,6 +3764,8 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Detalls STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Veure els detalls de la infraestructura de la companyia. STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Dóna diners STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Doneu diners a aquesta companyia. +STR_COMPANY_VIEW_HOSTILE_TAKEOVER_BUTTON :{BLACK}Absorció hostil +STR_COMPANY_VIEW_HOSTILE_TAKEOVER_TOOLTIP :{BLACK}Absorbeix aquesta companyia de manera hostil STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Modifica la cara STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Modifica la cara del president de la companyia. @@ -3776,6 +3781,7 @@ STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nom del preside STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Escriviu la quantitat de diners que voleu donar STR_BUY_COMPANY_MESSAGE :{WHITE}Estem venent la nostra companyia de transports.{}{}Vols comprar {COMPANY} per {CURRENCY_LONG}? +STR_BUY_COMPANY_HOSTILE_TAKEOVER :{WHITE}En una absorció hostil de {COMPANY} en comprareu totes les propietats, en pagareu tots els préstecs i beneficis per valors de dos anys.{}{}El total estimat és de {CURRENCY_LONG}.{}{}Voleu continuar amb l'absorció hostil? # Company infrastructure window STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infraestructura de {COMPANY} @@ -3846,7 +3852,8 @@ STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Avions disponib STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Administra la llista STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Envia instruccions a tots els vehicles de la llista STR_VEHICLE_LIST_REPLACE_VEHICLES :Substitueix vehicles -STR_VEHICLE_LIST_SEND_FOR_SERVICING :Envia a fer revisió +STR_VEHICLE_LIST_SEND_FOR_SERVICING :Envia a fer una revisió +STR_VEHICLE_LIST_CREATE_GROUP :Crea un grup STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Benefici enguany: {CURRENCY_LONG} (darrer any: {CURRENCY_LONG}) STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING} {STRING} @@ -4569,6 +4576,8 @@ STR_TIMETABLE_EXPECTED :{BLACK}Esperat STR_TIMETABLE_SCHEDULED :{BLACK}Planificat STR_TIMETABLE_EXPECTED_TOOLTIP :{BLACK}Canvia entre esperat i planificat +STR_TIMETABLE_ARRIVAL :A: {COLOUR}{DATE_TINY} +STR_TIMETABLE_DEPARTURE :S: {COLOUR}{DATE_TINY} # Date window (for timetable) @@ -4605,8 +4614,8 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Un dels STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La finestra de depuració dels scripts d'IA/partida només està disponible al servidor. # AI configuration window -STR_AI_CONFIG_CAPTION_AI :{WHITE}Configuració de la IA -STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Configuració de l'script de partida +STR_AI_CONFIG_CAPTION_AI :{WHITE}Opcions de la IA +STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Opcions de l'script de partida STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Aquest és l'script que s'usarà a la propera partida. STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Aquesta llista conté les IA que es carregaran a la propera partida. STR_AI_CONFIG_HUMAN_PLAYER :Jugador humà @@ -5623,6 +5632,8 @@ STR_JUST_DATE_SHORT :{DATE_SHORT} STR_JUST_DATE_LONG :{DATE_LONG} STR_JUST_DATE_ISO :{DATE_ISO} STR_JUST_STRING :{STRING} +STR_JUST_STRING1 :{STRING} +STR_JUST_STRING2 :{STRING} STR_JUST_STRING_STRING :{STRING}{STRING} STR_JUST_RAW_STRING :{STRING} STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index a879cfbf71..436ae9e6b5 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -431,7 +431,7 @@ STR_FILE_MENU_EXIT :Quit ###length 4 STR_MAP_MENU_MAP_OF_WORLD :Map of world STR_MAP_MENU_EXTRA_VIEWPORT :Extra viewport -STR_MAP_MENU_LINGRAPH_LEGEND :Cargo Flow Legend +STR_MAP_MENU_LINGRAPH_LEGEND :Cargo flow legend STR_MAP_MENU_SIGN_LIST :Sign list # Town menu @@ -604,7 +604,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Operatin STR_GRAPH_INCOME_CAPTION :{WHITE}Income Graph STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Units of cargo delivered STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Company performance ratings (maximum rating=1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Company values +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Company Value Graph STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Cargo Payment Rates STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Days in transit @@ -636,7 +636,7 @@ STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :President STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Tycoon # Performance detail window -STR_PERFORMANCE_DETAIL :{WHITE}Detailed performance rating +STR_PERFORMANCE_DETAIL :{WHITE}Detailed Performance Rating STR_PERFORMANCE_DETAIL_KEY :{BLACK}Detail STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT}) STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA}) @@ -1234,6 +1234,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Left STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Center STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Right +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}{NBSP}second{P 0 "" s} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maximum initial loan: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maximum amount a company can loan (without taking inflation into account) @@ -1946,9 +1947,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING}{NBSP}second{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING} for recalculation of distribution graph STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING} @@ -2921,7 +2922,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}3x3 grid STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Random # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Fund new industry +STR_FUND_INDUSTRY_CAPTION :{WHITE}Industry Funding STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Choose the appropriate industry from this list STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Create random industries STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Cover the map with randomly placed industries @@ -2937,14 +2938,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Remove a STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Are you sure you want to remove all industries? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industry chain for {STRING} industry -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Industry chain for {STRING} cargo +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industry Chain - {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cargo Chain - {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Producing industries STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Accepting industries STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Houses STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Click at the industry to see its suppliers and customers STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Click at the cargo to see its suppliers and customers -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Display chain +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Industry Chain STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Display cargo supplying and accepting industries STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Link to minimap STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Select the displayed industries at the minimap as well @@ -3081,7 +3082,7 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} The OpenTTD team # Framerate display window -STR_FRAMERATE_CAPTION :{WHITE}Frame rate +STR_FRAMERATE_CAPTION :{WHITE}Frame Rate STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simulation rate: {STRING} STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Number of game ticks simulated per second. @@ -3500,7 +3501,7 @@ STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Town gro STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Town is {RED}not{BLACK} growing STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Noise limit in town: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA} STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Center the main view on town location. Ctrl+Click opens a new viewport on town location -STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Local authority +STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Local Authority STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Show information on local authority STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}Change town name @@ -3539,8 +3540,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW}Fund the reconstruction of the urban road network.{}Causes considerable disruption to road traffic for up to 6 months.{}{POP_COLOUR}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}Build a statue in honor of your company.{}Provides a permanent boost to station rating in this town.{}{POP_COLOUR}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}Fund the construction of new buildings in the town.{}Provides a temporary boost to town growth in this town.{}{POP_COLOUR}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations.{}{POP_COLOUR}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Bribe the local authority to increase your rating, at the risk of a severe penalty if caught.{}{POP_COLOUR}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations. A successful bribe from a competitor will cancel this contract.{}{POP_COLOUR}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Bribe the local authority to increase your rating and abort a competitor's exclusive transport rights, at the risk of a severe penalty if caught.{}{POP_COLOUR}Cost: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals @@ -3850,16 +3851,16 @@ STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Available Aircr STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Manage list STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Send instructions to all vehicles in this list STR_VEHICLE_LIST_REPLACE_VEHICLES :Replace vehicles -STR_VEHICLE_LIST_SEND_FOR_SERVICING :Send for Maintenance +STR_VEHICLE_LIST_SEND_FOR_SERVICING :Send for maintenance STR_VEHICLE_LIST_CREATE_GROUP :Create group STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Profit this year: {CURRENCY_LONG} (last year: {CURRENCY_LONG}) STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING} {STRING} -STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Send to Depot -STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Send to Hangar +STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Send to depot +STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Send to hangar STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Click to stop all vehicles in the list STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Click to start all the vehicles in the list @@ -4612,8 +4613,8 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}One of t STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI/Game Script Debug window is only available for the server # AI configuration window -STR_AI_CONFIG_CAPTION_AI :{WHITE}AI Configuration -STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Game Script Configuration +STR_AI_CONFIG_CAPTION_AI :{WHITE}AI Settings +STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Game Script Settings STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}The Game Script that will be loaded in the next game STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}The AIs that will be loaded in the next game STR_AI_CONFIG_HUMAN_PLAYER :Human player diff --git a/src/lang/french.txt b/src/lang/french.txt index 88d06233da..7fafe02715 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -605,7 +605,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Graphiqu STR_GRAPH_INCOME_CAPTION :{WHITE}Graphique du revenu STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Cargaison livrée STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Historique de performance (performance max. = 1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Valeur de la compagnie +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Graphique de la valeur de la compagnie STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Valeur des marchandises STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Jours de transit @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :À gauche STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centrée STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :À droite +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}{NBSP}seconde{P 0 "" s} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Emprunt initial maximum{NBSP}: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Montant maximum qu'une compagnie peut emprunter (sans tenir compte de l'inflation) @@ -1947,9 +1948,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Aucune STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicateur initial pour la taille des métropoles{NBSP}: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Taille moyenne des métropoles par rapport aux villes normales au début de la partie -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Mise à jour le graphe de distribution toutes les {STRING}{NBSP}seconde{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Mise à jour le graphe de distribution toutes les {STRING} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Intervalle entre les recalculs successifs du graphe de liaison. Chaque recalcul planifie un composant du graphe. Cela signifie qu'une valeur X pour ce paramètre ne signifie pas que l'ensemble du graphe sera mis à jour toutes les X secondes. Seul un composant le sera. Plus vous définissez cet intervalle court, plus le temps de processeur nécessaire pour le calcul sera important. Plus vous définissez cet intervalle long, plus il faudra de temps pour que la distribution de marchandises commence sur de nouveaux itinéraires. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Prend {STRING}{NBSP}seconde{P 0:2 "" s} pour le recalcul du graphe de distribution +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Prend {STRING} pour le recalcul du graphe de distribution STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Temps pris pour chaque recalcul d'un composant du graphe de liaison. Lorsqu'un recalcul est lancé, un fil d'exécution est créé et autorisé à fonctionner pendant ce nombre de secondes. Plus vous définissez cette durée courte, plus il est probable que le fil ne soit pas terminé lorsqu'il est censé l'être. Ensuite, le jeu s'arrête jusqu'à ce qu'il le soit ("lag"). Plus vous définissez cette durée longue, plus il faut de temps pour que la distribution soit mise à jour lorsque les itinéraires changent. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Type de distribution pour les passagers{NBSP}: {STRING} @@ -2387,7 +2388,7 @@ STR_NETWORK_CLIENT_LIST_NEW_COMPANY_TOOLTIP :{BLACK}Créer u STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP :{BLACK}C'est vous STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP :{BLACK}C'est l'hôte du jeu STR_NETWORK_CLIENT_LIST_CLIENT_COMPANY_COUNT :{BLACK}{NUM} client{P "" s} - {NUM}/{NUM} companie{P "" s} -STR_NETWORK_CLIENT_LIST_CLIENT_COMPANY_COUNT_TOOLTIP :{BLACK}Actuellement, le nombre de clients connectés, le nombre d'entreprises et le nombre d'entreprises maximum autorisées par l'administrateur du serveur est atteint. +STR_NETWORK_CLIENT_LIST_CLIENT_COMPANY_COUNT_TOOLTIP :{BLACK}Actuellement, le nombre de clients connectés, le nombre de compagnies et le nombre de compagnies maximum autorisées par l'administrateur du serveur est atteint. # Matches ConnectionType ###length 5 @@ -2922,7 +2923,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}Grille 3 STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Aléatoire # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Financer une nouvelle industrie +STR_FUND_INDUSTRY_CAPTION :{WHITE}Financement d'industrie STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Choisir l'industrie appropriée dans cette liste STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Créer des industries au hasard STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Couvrir la carte d'industries placées au hasard @@ -2938,14 +2939,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Enlever STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Êtes-vous sûr de vouloir enlever toutes les industries{NBSP}? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Chaîne industrielle pour l'industrie «{NBSP}{STRING}{NBSP}» -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Chaîne industrielle pour le type de marchandise «{NBSP}{STRING}{NBSP}» +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Chaîne industrielle - «{NBSP}{STRING}{NBSP}» +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Chaîne de chargement - «{NBSP}{STRING}{NBSP}» STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Industries fournisseuses STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Industries clientes STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Maisons STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Cliquer sur l'industrie pour voir ses fournisseurs et ses clients STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Cliquer sur le type de marchandise pour voir ses fournisseurs et ses clients -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Afficher la chaîne +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Chaîne d'industries STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Afficher la chaîne des industries fournisseuses et clientes de ce type de marchandise STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Lier à la mini-carte STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Afficher les industries correspondantes sur la mini-carte @@ -3540,8 +3541,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW}Financer la reconstruction du réseau routier.{}Provoque une perturbation considérable du trafic pendant 6 mois au maximum.{}{POP_COLOUR}Coût : {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}Construire une statue en l'honneur de votre compagnie.{}Augmente en permanence le classement de vos stations dans cette ville.{}{POP_COLOUR}Coût{NBSP}:{CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}Financer la construction de nouveaux immeubles commerciaux.{}Stimule temporairement la croissance dans cette ville.{}{POP_COLOUR}Coût{NBSP}:{CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Achetez les droits de transport exclusifs d'un an pour la ville.{} La municipalité n'autorisera pas les passagers et les marchandises à utiliser les gares de vos concurrents.{}{POP_COLOUR}Coût{NBSP}: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Corrompre la municipalité pour améliorer votre réputation. Risque de pénalisation si le pot-de-vin est dévoilé.{}{POP_COLOUR}Coût{NBSP}: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW}Achetez les droits de transport exclusifs d'un an pour la ville.{} La municipalité n'autorisera pas les passagers et les marchandises à utiliser les gares de vos concurrents. Un pot-de-vin réussi d'un concurrent annulera ce contrat.{}{POP_COLOUR}Coût{NBSP}: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Corrompre la municipalité pour améliorer votre réputation et annuler les droits de transports exclusifs d'un concurrent, au risque de pénalisation si le pot-de-vin est dévoilé.{}{POP_COLOUR}Coût{NBSP}: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}Objectifs de {COMPANY} @@ -4613,8 +4614,8 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}L'un des STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La fenêtre de débogage de scripts n'est disponible que pour le serveur # AI configuration window -STR_AI_CONFIG_CAPTION_AI :{WHITE}Configuration d'IA -STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Configuration du script de jeu +STR_AI_CONFIG_CAPTION_AI :{WHITE}Paramètres d'IA +STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Paramètres du scripts de jeu STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Le script de jeu qui sera chargé dans la prochaine partie STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Les IAs qui seront chargées dans la prochaine partie STR_AI_CONFIG_HUMAN_PLAYER :Joueur humain diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 8153acfba0..bcbc865c96 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :왼쪽 STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :가운데 STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :오른쪽 +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}초 STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :최대 초기 대출금: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :한 회사가 최대한 빌릴 수 있는 대출금의 양을 조절할 수 있습니다. (여기서 설정한 값은 인플레이션에 의한 효과를 적용하지 않은 값입니다.) @@ -1947,9 +1948,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :없음 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :초기 대도시 크기 비율: 일반 도시보다 {STRING}배 크게 시작 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :게임을 시작했을 때 일반 도시에 대한 대도시의 평균 크기를 설정합니다 -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :분배 그래프를 매 {STRING}초마다 업데이트 +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :분배 그래프를 매 {STRING}마다 업데이트 STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :각 연결 그래프의 하위 시퀀스 재계산 사이의 시간입니다. 각 재계산은 그래프의 한 구성 요소에 대한 계획을 계산합니다. 즉, 이 설정을 X로 설정한다고 해서 전체 그래프를 X초마다 업데이트한다는 뜻은 아닙니다. 일부 구성 요소만 X초마다 업데이트됩니다. 이 값을 더 짧게 설정할 수록 계산하는데 더 많은 CPU 계산 시간이 필요합니다. 값을 더 길게 설정하면 화물 분배가 새 경로로 이뤄지기까지 더 오랜 시간이 걸리게 됩니다. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :분배 그래프의 재계산을 위해 {STRING}초 사용 +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :분배 그래프의 재계산을 위해 {STRING} 사용 STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :각 연결 그래프의 구성 요소를 재계산하는데 걸리는 시간입니다. 재계산이 시작되면, 이 시간(초) 동안 실행할 수 있는 스레드가 생성됩니다. 이 값을 더 짧게 설정할수록 스레드가 완료되어야 할 때 완료되지 못할 가능성이 높아집니다. 그러면 이를 완료하기 전까지는 게임이 멈추게 됩니다. 값을 더 길게 설정하면 경로가 변경되었을 때 분배가 업데이트되는 데 더 오래 걸립니다. STR_CONFIG_SETTING_DISTRIBUTION_PAX :승객에 대한 분배 형식: {STRING} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 60b907aa49..3591d8c887 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -605,7 +605,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Faaliyet STR_GRAPH_INCOME_CAPTION :{WHITE}Gelir Grafiği STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Taşınan kargo STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Şirket performans değerlendirmeleri (azami=1000) -STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Şirket Değerleri +STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Şirket Değerleri Grafiği STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Kargo Ödeme Seviyeleri STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Taşınma süresi @@ -637,7 +637,7 @@ STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :Genel Müdür STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Kodaman # Performance detail window -STR_PERFORMANCE_DETAIL :{WHITE}Ayrıntılı performans değerlendirmesi +STR_PERFORMANCE_DETAIL :{WHITE}Ayrıntılı Performans Reğerlendirmesi STR_PERFORMANCE_DETAIL_KEY :{BLACK}Detay STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT}) STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA}) @@ -1065,7 +1065,7 @@ STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} kay STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Temel grafik setiyle ilgili ilave bilgiler STR_GAME_OPTIONS_BASE_SFX :{BLACK}Temel ses kümesi -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Kullanılacak temel ses kümesini seçin +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Kullanılacak temel ses kümesini seçin (oyun içinde değiştirlemez sadece ana menüde değiştirebilinir) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Temel ses kümesiyle ilgili ilave bilgiler STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Temel müzik kümesi @@ -1235,6 +1235,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Sol STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Orta STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Sağ +STR_CONFIG_SETTING_SECONDS_VALUE :{COMMA}{NBSP}saniye{P 0 "ler"} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :En yüsek açılış borcu: {STRING} STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Bir şirketin alabileceği en fazla borç (enflasyon hesaba katılmadan) @@ -1947,9 +1948,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Hiçbiri STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Birincil şehir büyüklüğü çarpanı: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Oyun başlangıcında şehirlerin normal kasabalara kıyasla ortalama büyüklüğü -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Dağıtım grafiğini her {STRING}{NBSP}saniyede{P 0:2 ""} güncelle +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Dağıtım grafiğini her {STRING} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Bağlantı grafiğinin sonraki yeniden hesaplamaları arasındaki süre. Her yeniden hesaplama, grafiğin bir bileşeni için planları hesaplar. Bu, bu ayar için bir X değerinin tüm grafiğin her X saniyede bir güncelleneceği anlamına gelmediği anlamına gelir. Sadece bazı bileşenler olacaktır. Ne kadar kısa ayarlarsanız, hesaplamak için o kadar fazla CPU süresi gerekir. Ne kadar uzun ayarlarsanız, kargo dağıtımının yeni rotalarda başlaması o kadar uzun sürer. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Dağıtım grafiğinin yeniden hesaplanması için {STRING}{NBSP}saniye{P 0:2 ""} bekleyin +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Dağılım grafiğinin yeniden hesaplanması için {STRING} bekleyin STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Bir bağlantı grafiği bileşeninin her yeniden hesaplanması için geçen süre. Bir yeniden hesaplama başlatıldığında, bu sayıda saniye boyunca çalışmasına izin verilen bir iş parçacığı oluşturulur. Bunu ne kadar kısa ayarlarsanız, iş parçacığının olması gerektiği zamanda bitmemiş olma olasılığı o kadar artar. Ardından oyun ("gecikme") olana kadar durur. Ne kadar uzun ayarlarsanız, rotalar değiştiğinde dağıtımın güncellenmesi o kadar uzun sürer. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Yolcular için dağıtım kipi: {STRING} @@ -2922,7 +2923,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}3x3 şeb STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Rastgele # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Yeni fabrika aç +STR_FUND_INDUSTRY_CAPTION :{WHITE}Sanayi Fonla STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Bu listeden uygun fabrikayı seçin STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Rastgele endüstriler oluştur STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Haritayı rastgele fabrikalarla doldur @@ -2938,14 +2939,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Bütün STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Bütün endüstrileri kaldırmak istediğinize emin misiniz? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}{STRING} fabrikası için sanayi zinciri -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}{STRING} kargo türü için sanayi zinciri +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Sanayi Zinciri - {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cargo Zinciri - {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Üreten fabrikalar STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Kabul eden fabrikalar STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Evler STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Sağlayanlarını ve müşterilerini görmek için fabrikayı tıklayın STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Sağlayanlarını ve müşterilerini görmek için kargoyu tıklayın -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Zinciri göster +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Sanayi Zinciri STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Kargo sağlayan ve kabul eden fabrikaları göster STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Küçük haritaya bağla STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Gösterilen fabrikaları küçük haritada da seç @@ -3540,7 +3541,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{PUSH_COLOUR}{Y STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{PUSH_COLOUR}{YELLOW} Yol tamirleri için belediyeye bağış yap.{}6 ay boyunca şehrin yollarında önemli aksamalara sebep olur.{}{POP_COLOUR}Fiyat: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{PUSH_COLOUR}{YELLOW}Şirket sahibinin heykelini dik.{}Şehirdeki istasyon derecelendirmesinde kalıcı bir yükseltme sağlar.{}{POP_COLOUR}Fiyatı: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{PUSH_COLOUR}{YELLOW}Şehirde ticari binaların yapımı için bağış yap.{}Bu kasabanın büyümesine geçici bir yükseltme sağlar.{}{POP_COLOUR}Fiyatı: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW} Bir yıllık ayrıcalıklı nakliyat haklarını satın al.{} Belediye, rakip istasyonların yolcu ve kargo taşımasına izin vermez.{}{POP_COLOUR} Fiyat: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{PUSH_COLOUR}{YELLOW} Bir yıllık ayrıcalıklı nakliyat haklarını satın al.{} Belediye, rakip istasyonların yolcu ve kargo taşımasına izin vermez. Bir rakipten alınan başarılı bir rüşvet, bu sözleşmeyi iptal edecektir.{}{POP_COLOUR} Fiyat: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{PUSH_COLOUR}{YELLOW}Yakalanırsan şiddetli bir ceza alma riskini göze alarak yerel yönetime bölge derecelendirmesini arttırmak için rüşvet ver.{}{POP_COLOUR}Fiyat: {CURRENCY_LONG} # Goal window @@ -4613,7 +4614,7 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Çalış STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}YZ Hata Ayıklama penceresi sadece sunucu içindir # AI configuration window -STR_AI_CONFIG_CAPTION_AI :{WHITE}YZ Yapılandırması +STR_AI_CONFIG_CAPTION_AI :{WHITE}YZ Ayarları STR_AI_CONFIG_CAPTION_GAMESCRIPT :{WHITE}Oyun Betiği Yapılandırması STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Bir sonraki oyunda yüklenecek Oyun Betiği STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Bir sonraki oyunda yüklenecek YZ'ler From 335c7ddac7bfb868b55348f0c7b7c26f802f3435 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 18 Jul 2023 18:40:57 +0000 Subject: [PATCH 55/58] Update: Translations from eints swedish: 22 changes by Brickblock1 --- src/lang/swedish.txt | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 1da980e986..608d1b341d 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -345,8 +345,8 @@ STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Öppna o STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pausa spelet STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Snabbspola spelet STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Inställningar -STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Spara spelet, avsluta spelet, avsluta -STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Visa karta, extra vyfönster eller skyltlista +STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Spara spelet, öppna spel, avsluta spelet eller avsluta programmet +STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Visa karta, extra vyfönster, godsflöden eller skyltlista STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Visa lista över städer STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Visa subventioner STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Visa lista över företagets stationer @@ -370,8 +370,8 @@ STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Bygg ham STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Bygg flygplatser STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Öppna landskapsarkitektursverktygen för att höja/sänka land, plantera träd, etc. STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Visa ljud-/musikfönster -STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Visa senaste meddelandet/nyheten, visa meddelandeinställningar -STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Markinformation, konsol, felsökning av skript, skärmdumpar, om OpenTTD +STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Visa senaste meddelandet/nyheten, meddelandehistorik eller ta bort alla meddelanden +STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Markinformation, skärmdump, om OpenTTD och utvecklingsverktyg STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Byt verktygsrad # Extra tooltips for the scenario editor toolbar @@ -846,7 +846,7 @@ STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLAC STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} har avvecklats av investerarna och alla tillgångar har sålts ut! STR_NEWS_COMPANY_LAUNCH_TITLE :{BIG_FONT}{BLACK}Nytt transportföretag startat! STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} börjar bygga nära {TOWN}! -STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} har tagits över av {STRING}! +STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} har tagits över av {STRING} för en hemlig summa! STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(VD) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} har sponsrat byggnationen av den nya staden {TOWN}! @@ -932,7 +932,9 @@ STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Kopiera STR_GAME_OPTIONS_CAPTION :{WHITE}Spelinställningar STR_GAME_OPTIONS_TAB_GENERAL :Allmänt +STR_GAME_OPTIONS_TAB_GENERAL_TT :{BLACK}Välj generella inställningar STR_GAME_OPTIONS_TAB_GRAPHICS :Grafik +STR_GAME_OPTIONS_TAB_GRAPHICS_TT :{BLACK}Välj grafik inställningar STR_GAME_OPTIONS_TAB_SOUND :Ljud STR_GAME_OPTIONS_TAB_SOUND_TT :{BLACK}Väljd ljud- och musikinställningar @@ -949,6 +951,7 @@ STR_GAME_OPTIONS_VOLUME_100 :100% STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Valutaenheter STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Välj valutaenhet +STR_GAME_OPTIONS_CURRENCY_CODE :{STRING} ({STRING}) ###length 42 STR_GAME_OPTIONS_CURRENCY_GBP :Brittiskt pund @@ -1060,7 +1063,7 @@ STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} sakn STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Ytterligare information om basgrafik-settet STR_GAME_OPTIONS_BASE_SFX :{BLACK}Grundljudspaket -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Välj vilket grundljudspaket som ska användas +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Välj vilket grundljudspaket som ska användas (kan inte ändras under spel, utom endast från huvudmenyn) STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Ytterligare information om grundljudpaketet STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Musikpaket valt @@ -1176,6 +1179,7 @@ STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Utöka a STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Stäng alla STR_CONFIG_SETTING_RESET_ALL :{BLACK}Återställ alla värden STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(ingen förklaring tillgänglig) +STR_CONFIG_SETTING_VALUE :{PUSH_COLOUR}{ORANGE}{STRING}{POP_COLOUR} STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Standardvärde: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE :{LTBLUE}Typ av inställning: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE_CLIENT :Klientinställning (sparas ej i spel-filer och påverkar alla spel) @@ -1555,7 +1559,7 @@ STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREY_TO_RED :Grå till röd STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREYSCALE :Gråskala STR_CONFIG_SETTING_SCROLLMODE :Vyfönsters skrollningsbeteende: {STRING} -STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Beteende vid scrollning av kartan +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Beteende vid scrollning av kartan. Muspositionen låst valet funkar inte på alla system, som tillexempel webbaserade versioner, pekskärmar, Linux med Wayland, med mera ###length 4 STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Rör vyn med höger musknapp, musens position låst STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Rör kartan med höger musknapp, musens position låst @@ -1941,9 +1945,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Inga STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial stadsstorleks-multiplikator: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Storstäders genomsnittliga storlek i relation till vanliga städers vid spelets början -STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Uppdatera distributionsdiagram var {STRING}{NBSP}sekund{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Uppdatera distributionsdiagram var {STRING}sekund{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tid mellan efterföljande omräkningar av länkgrafen. Varje omräkning beräknar planerna för en komponent i grafen. Det betyder att ett värde X för den här inställningen inte betyder att hela grafen kommer att uppdateras var X:e sekund. Bara viss komponent kommer att göra det. Ju kortare du ställer in den desto mer CPU-tid kommer att behövas för att beräkna den. Ju längre du ställer in den desto längre tid tar det tills lastdistributionen startar på nya rutter. -STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Ta {STRING}{NBSP}sekund{P 0:2 "" s} för omräkning av distributionsdiagrammet +STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Ta {STRING} för omräkning av distributionsdiagrammet STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tid som det tar för varje omräkning av en länkdiagramkomponent. När en omräkning startas skapas en tråd som tillåts köra i detta antal sekunder. Ju kortare du ställer in detta desto mer sannolikt är det att tråden inte är färdig när den ska. Sedan stannar spelet tills det är ("lag"). Ju längre du ställer in den desto längre tid tar det för distributionen att uppdateras när rutter ändras. STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributionssätt för passagerare: {STRING} @@ -1970,7 +1974,7 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Genom att sätt STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Belastning av korta rutter innan rutter med hög kapacitet används: {STRING} STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Ofta finns det flera rutter mellan två givna stationer. Godsdistributionen kommer att fylla upp den första rutten först och därefter den näst kortaste tills den är mättad osv. Mättnadsgraden bestäms utifrån en uppskattning av kapaciteten och planerad användning. När godsdristributionen har belastat samtliga rutter, och om det finns kvarvarande behov, då kommer samtliga rutter att överbelastas med preferens för rutterna med högst kapacitet. Uppskattningen av kapaciteten kommer oftast inte ske med hög noggrannhet. Denna inställning tillåter dig att ställa in hur många procent som en kort rutt ska belastas innan algoritmen ska välja nästa längre rutt. Sätt värdet till under 100 % om du vill undvika överfulla stationer i händelse av överskattad kapacitet. -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Hastighetsenhet: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Hastighetsenhet (land)t: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Hastighetsenheter (nautical): {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Närhelst en hastighet visas i användargränssnittet, visa den i den valda enheten ###length 5 @@ -2704,7 +2708,7 @@ STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}Bygg en STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Välj vilken stationsklass som ska visas STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Välj stationstyp att bygga -STR_STATION_CLASS_DFLT :Grundinställd station +STR_STATION_CLASS_DFLT :Original STR_STATION_CLASS_DFLT_STATION :Standardstation STR_STATION_CLASS_DFLT_ROADSTOP :Standardvägstopp STR_STATION_CLASS_WAYP :Riktmärken @@ -2932,14 +2936,14 @@ STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Ta bort STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Är du säker på att du vill ta bort alla industrier? # Industry cargoes window -STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industrikedja för industrin {STRING} -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Industrikedja för godset {STRING} +STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industrikedja - {STRING} +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Godskedja - {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Producerande industrier STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Mottagande industrier STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Hus STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Klicka på industrin för att se dess leverantörer och kunder STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Klicka på godset för att se dess leverantörer och kunder -STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Visa kedja +STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Industrikedja STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Visa industrier som levererar och tar emot gods STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Koppla till minikartan STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Markera visade industrier även på minikartan @@ -3846,7 +3850,9 @@ STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Hantera STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Skicka instruktioner till alla fordon på denna lista STR_VEHICLE_LIST_REPLACE_VEHICLES :Byt ut fordon STR_VEHICLE_LIST_SEND_FOR_SERVICING :Skicka på service +STR_VEHICLE_LIST_CREATE_GROUP :Skapa grupp STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Vinst detta år: {CURRENCY_LONG} (förra året: {CURRENCY_LONG}) +STR_VEHICLE_LIST_CARGO :[{CARGO_LIST}] STR_VEHICLE_LIST_NAME_AND_CARGO :{STRING} {STRING} STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Skicka till depå @@ -4567,6 +4573,7 @@ STR_TIMETABLE_EXPECTED :{BLACK}Förvän STR_TIMETABLE_SCHEDULED :{BLACK}Schemalagt STR_TIMETABLE_EXPECTED_TOOLTIP :{BLACK}Ändra mellan förväntat och schemalagt +STR_TIMETABLE_DEPARTURE :D: {COLOUR}{DATE_TINY} # Date window (for timetable) @@ -4625,7 +4632,7 @@ STR_AI_CONFIG_AI :{SILVER}Datorsp STR_AI_CONFIG_CHANGE_AI :{BLACK}Välj datorspelare STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Välj spelskript -STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Läs in ett annat skript +STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Läs in ett annat skript. Ctrl+klick visar alla tillgängliga versioner STR_AI_CONFIG_CONFIGURE :{BLACK}Konfigurera STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Konfigurera datorspelarens parametrar From 06b2d9b1cc022a9aaabbb48b6f12ab14f55279c5 Mon Sep 17 00:00:00 2001 From: Andy <1780327+andythenorth@users.noreply.github.com> Date: Wed, 19 Jul 2023 10:43:24 +0100 Subject: [PATCH 56/58] Doc: 'game_changelog.hpp' not 'gs_changelog.hpp' in GitHub PR template (#11147) --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index aec09828f7..a492089f0b 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -42,7 +42,7 @@ Some things are not automated, and forgotten often. This list is a reminder for * This PR touches english.txt or translations? Check the [guidelines](https://github.com/OpenTTD/OpenTTD/blob/master/docs/eints.md) * This PR affects the save game format? (label 'savegame upgrade') * This PR affects the GS/AI API? (label 'needs review: Script API') - * ai_changelog.hpp, gs_changelog.hpp need updating. + * ai_changelog.hpp, game_changelog.hpp need updating. * The compatibility wrappers (compat_*.nut) need updating. * This PR affects the NewGRF API? (label 'needs review: NewGRF') * newgrf_debug_data.h may need updating. From ece50d5a1d38f85a4f352a8b8e565e060f9c0ba6 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 19 Jul 2023 11:15:29 +0200 Subject: [PATCH 57/58] Codechange: use BoolSettingDesc to parse settings in conversion code --- src/settings.cpp | 23 +++++++++++++++++++---- src/settings_internal.h | 2 ++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index 69819ab57d..b15f2426cf 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -187,6 +187,20 @@ size_t OneOfManySettingDesc::ParseSingleValue(const char *str, size_t len, const return (size_t)-1; } +/** + * Find whether a string was a boolean true or a boolean false. + * + * @param str the current value of the setting for which a value needs found. + * @return Either true/false, or nullopt if no boolean value found. + */ +std::optional BoolSettingDesc::ParseSingleValue(const char *str) +{ + if (strcmp(str, "true") == 0 || strcmp(str, "on") == 0 || strcmp(str, "1") == 0) return true; + if (strcmp(str, "false") == 0 || strcmp(str, "off") == 0 || strcmp(str, "0") == 0) return false; + + return std::nullopt; +} + /** * Find the set-integer value MANYofMANY type in a string * @param many full domain of values the MANYofMANY setting can have @@ -422,8 +436,8 @@ size_t ManyOfManySettingDesc::ParseValue(const char *str) const size_t BoolSettingDesc::ParseValue(const char *str) const { - if (strcmp(str, "true") == 0 || strcmp(str, "on") == 0 || strcmp(str, "1") == 0) return true; - if (strcmp(str, "false") == 0 || strcmp(str, "off") == 0 || strcmp(str, "0") == 0) return false; + auto r = BoolSettingDesc::ParseSingleValue(str); + if (r.has_value()) return *r; ErrorMessageData msg(STR_CONFIG_ERROR, STR_CONFIG_ERROR_INVALID_VALUE); msg.SetDParamStr(0, str); @@ -1225,8 +1239,9 @@ void LoadFromConfig(bool startup) IniGroup *network = generic_ini.GetGroup("network", false); if (network != nullptr) { IniItem *server_advertise = network->GetItem("server_advertise"); - if (server_advertise != nullptr && server_advertise->value == "true") { - _settings_client.network.server_game_type = SERVER_GAME_TYPE_PUBLIC; + if (server_advertise != nullptr) { + auto old_value = BoolSettingDesc::ParseSingleValue(server_advertise->value->c_str()); + _settings_client.network.server_game_type = old_value.value_or(false) ? SERVER_GAME_TYPE_PUBLIC : SERVER_GAME_TYPE_LOCAL; } } } diff --git a/src/settings_internal.h b/src/settings_internal.h index d614b57ae6..d88a585076 100644 --- a/src/settings_internal.h +++ b/src/settings_internal.h @@ -196,6 +196,8 @@ struct BoolSettingDesc : IntSettingDesc { IntSettingDesc(save, flags, startup, def, 0, 1, 0, str, str_help, str_val, cat, pre_check, post_callback) {} + static std::optional ParseSingleValue(const char *str); + bool IsBoolSetting() const override { return true; } size_t ParseValue(const char *str) const override; std::string FormatValue(const void *object) const override; From 790c1b1b027bd08b466d36c338e9b4dd298ae3e9 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 19 Jul 2023 11:20:21 +0200 Subject: [PATCH 58/58] Codechange: refactor setting conversions and make sure it only happens once By forcing it only happens once, the first time you upgrade to a newer client, means you are free to jump between older and newer versions after that. As they will not resync, the newer setting can take on any of the (newer) values, without breaking the old client. And when going to an old client and back, it doesn't change it back to the converted value anymore. --- src/settings.cpp | 77 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 56 insertions(+), 21 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index b15f2426cf..ebae3eac4a 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1210,6 +1210,53 @@ static void RemoveEntriesFromIni(IniFile &ini, const SettingTable &table) } } +/** + * Check whether a conversion should be done, and based on what old setting information. + * + * To prevent errors when switching back and forth between older and newer + * version of OpenTTD, the type of a setting is never changed. Instead, the + * setting is renamed, and this function is used to check whether a conversion + * between the old and new setting is required. + * + * This checks if the new setting doesn't exist, and if the old does. + * + * Doing it this way means that if you switch to an older client, the old + * setting is used, and only on the first time starting a new client, the + * old setting is converted to the new. After that, they are independent + * of each other. And you can safely, without errors on either, switch + * between old and new client. + * + * @param ini The ini-file to use. + * @param group The group the setting is in. + * @param old_var The old name of the setting. + * @param new_var The new name of the setting. + * @param[out] old_item The old item to base upgrading on. + * @return Whether upgrading should happen; if false, old_item is a nullptr. + */ +bool IsConversionNeeded(ConfigIniFile &ini, std::string group, std::string old_var, std::string new_var, IniItem **old_item) +{ + *old_item = nullptr; + + IniGroup *igroup = ini.GetGroup(group, false); + /* If the group doesn't exist, there is nothing to convert. */ + if (igroup == nullptr) return false; + + IniItem *tmp_old_item = igroup->GetItem(old_var); + IniItem *new_item = igroup->GetItem(new_var); + + /* If the old item doesn't exist, there is nothing to convert. */ + if (tmp_old_item == nullptr) return false; + + /* If the new item exists, it means conversion was already done. We only + * do the conversion the first time, and after that these settings are + * independent. This allows users to freely change between older and + * newer clients without breaking anything. */ + if (new_item != nullptr) return false; + + *old_item = tmp_old_item; + return true; +} + /** * Load the values from the configuration files * @param startup Load the minimal amount of the configuration to "bootstrap" the blitter and such. @@ -1233,25 +1280,12 @@ void LoadFromConfig(bool startup) /* Load basic settings only during bootstrap, load other settings not during bootstrap */ if (!startup) { - /* Convert network.server_advertise to network.server_game_type, but only if network.server_game_type is set to default value. */ - if (generic_version < IFV_GAME_TYPE) { - if (_settings_client.network.server_game_type == SERVER_GAME_TYPE_LOCAL) { - IniGroup *network = generic_ini.GetGroup("network", false); - if (network != nullptr) { - IniItem *server_advertise = network->GetItem("server_advertise"); - if (server_advertise != nullptr) { - auto old_value = BoolSettingDesc::ParseSingleValue(server_advertise->value->c_str()); - _settings_client.network.server_game_type = old_value.value_or(false) ? SERVER_GAME_TYPE_PUBLIC : SERVER_GAME_TYPE_LOCAL; - } - } - } - } - if (generic_version < IFV_LINKGRAPH_SECONDS) { _settings_newgame.linkgraph.recalc_interval *= SECONDS_PER_DAY; _settings_newgame.linkgraph.recalc_time *= SECONDS_PER_DAY; } + /* Move no_http_content_downloads and use_relay_service from generic_ini to private_ini. */ if (generic_version < IFV_NETWORK_PRIVATE_SETTINGS) { IniGroup *network = generic_ini.GetGroup("network", false); if (network != nullptr) { @@ -1277,6 +1311,13 @@ void LoadFromConfig(bool startup) } } + IniItem *old_item; + + if (generic_version < IFV_GAME_TYPE && IsConversionNeeded(generic_ini, "network", "server_advertise", "server_game_type", &old_item)) { + auto old_value = BoolSettingDesc::ParseSingleValue(old_item->value->c_str()); + _settings_client.network.server_game_type = old_value.value_or(false) ? SERVER_GAME_TYPE_PUBLIC : SERVER_GAME_TYPE_LOCAL; + } + _grfconfig_newgame = GRFLoadConfig(generic_ini, "newgrf", false); _grfconfig_static = GRFLoadConfig(generic_ini, "newgrf-static", true); AILoadConfig(generic_ini, "ai_players"); @@ -1331,13 +1372,7 @@ void SaveToConfig() } } - /* Remove network.server_advertise. */ - if (generic_version < IFV_GAME_TYPE) { - IniGroup *network = generic_ini.GetGroup("network", false); - if (network != nullptr) { - network->RemoveItem("server_advertise"); - } - } + /* These variables are migrated from generic ini to private ini now. */ if (generic_version < IFV_NETWORK_PRIVATE_SETTINGS) { IniGroup *network = generic_ini.GetGroup("network", false); if (network != nullptr) {