diff --git a/src/lang/extra/czech.txt b/src/lang/extra/czech.txt index 2c892f1f10..5f15d546f6 100644 --- a/src/lang/extra/czech.txt +++ b/src/lang/extra/czech.txt @@ -1919,7 +1919,7 @@ STR_TMPL_CONFIG_USEDEPOT :užij depo STR_TMPL_CONFIG_KEEPREMAINDERS :nech zbyt STR_TMPL_CONFIG_OLD_ONLY :jen staré -STR_TMPL_NUM_TRAINS_NEED_RPL :# vlaků k nahrazení: +STR_TMPL_NUM_TRAINS_NEED_RPL :vlaků k nahrazení: {SET_COLOUR}{COMMA} STR_TMPL_CARGO_SUMMARY :{CARGO_LONG} STR_TMPL_CARGO_SUMMARY_MULTI :{CARGO_LONG} (x{NUM}) diff --git a/src/lang/extra/english.txt b/src/lang/extra/english.txt index 5ce4e34b7b..2007a0fabe 100644 --- a/src/lang/extra/english.txt +++ b/src/lang/extra/english.txt @@ -1990,7 +1990,7 @@ STR_TMPL_SECTION_REFIT :{BLACK}Refit STR_TMPL_SECTION_DEPOT_VEHICLES :{BLACK}Depot vehicles STR_TMPL_SECTION_WHEN :{BLACK}When -STR_TMPL_NUM_TRAINS_NEED_RPL :# trains to replace: +STR_TMPL_NUM_TRAINS_NEED_RPL :Trains to replace: {SET_COLOUR}{COMMA} STR_TMPL_CARGO_SUMMARY :{CARGO_LONG} STR_TMPL_CARGO_SUMMARY_MULTI :{CARGO_LONG} (x{NUM}) diff --git a/src/lang/extra/galician.txt b/src/lang/extra/galician.txt index dd86180665..0e0189a058 100644 --- a/src/lang/extra/galician.txt +++ b/src/lang/extra/galician.txt @@ -1925,7 +1925,7 @@ STR_TMPL_CONFIG_USEDEPOT :usar depósito STR_TMPL_CONFIG_KEEPREMAINDERS :conservar restos STR_TMPL_CONFIG_OLD_ONLY :só o vello -STR_TMPL_NUM_TRAINS_NEED_RPL :# trenes a reemplazar: +STR_TMPL_NUM_TRAINS_NEED_RPL :trenes a reemplazar: {SET_COLOUR}{COMMA} STR_TMPL_CARGO_SUMMARY :{CARGO_LONG} STR_TMPL_CARGO_SUMMARY_MULTI :{CARGO_LONG} (x{NUM}) diff --git a/src/lang/extra/german.txt b/src/lang/extra/german.txt index 9286cb29d4..5b3effb742 100644 --- a/src/lang/extra/german.txt +++ b/src/lang/extra/german.txt @@ -1680,7 +1680,7 @@ STR_TMPL_CONFIG_USEDEPOT :Depotnutzung STR_TMPL_CONFIG_KEEPREMAINDERS :Bereithaltung STR_TMPL_CONFIG_OLD_ONLY :Nur alte -STR_TMPL_NUM_TRAINS_NEED_RPL :# Züge zu ersetzen: +STR_TMPL_NUM_TRAINS_NEED_RPL :Züge zu ersetzen: {SET_COLOUR}{COMMA} STR_TMPL_CARGO_SUMMARY :{CARGO_LONG} STR_TMPL_CARGO_SUMMARY_MULTI :{CARGO_LONG} (x{NUM}) diff --git a/src/lang/extra/korean.txt b/src/lang/extra/korean.txt index 61a8e86b43..e4446c0891 100644 --- a/src/lang/extra/korean.txt +++ b/src/lang/extra/korean.txt @@ -1926,7 +1926,7 @@ STR_TMPL_CONFIG_USEDEPOT :기지 사용 STR_TMPL_CONFIG_KEEPREMAINDERS :놔두기 STR_TMPL_CONFIG_OLD_ONLY :낡은 차량만 -STR_TMPL_NUM_TRAINS_NEED_RPL :교체할 열차 수: +STR_TMPL_NUM_TRAINS_NEED_RPL :교체할 열차 수: {SET_COLOUR}{COMMA} STR_TMPL_CARGO_SUMMARY :{CARGO_LONG} STR_TMPL_CARGO_SUMMARY_MULTI :{CARGO_LONG} (x{NUM}) diff --git a/src/lang/extra/simplified_chinese.txt b/src/lang/extra/simplified_chinese.txt index 212074d09b..b26a19b1d5 100644 --- a/src/lang/extra/simplified_chinese.txt +++ b/src/lang/extra/simplified_chinese.txt @@ -1815,7 +1815,7 @@ STR_TMPL_CONFIG_USEDEPOT :使用闲置 STR_TMPL_CONFIG_KEEPREMAINDERS :保持原样 STR_TMPL_CONFIG_OLD_ONLY :只换老的 -STR_TMPL_NUM_TRAINS_NEED_RPL :# 要被替换的火车: +STR_TMPL_NUM_TRAINS_NEED_RPL :要被替换的火车: {SET_COLOUR}{COMMA} STR_TMPL_CARGO_SUMMARY :{CARGO_LONG} STR_TMPL_CARGO_SUMMARY_MULTI :{CARGO_LONG}(x{NUM}) diff --git a/src/tbtr_template_gui_main.cpp b/src/tbtr_template_gui_main.cpp index 33a5481038..00c4855fc7 100644 --- a/src/tbtr_template_gui_main.cpp +++ b/src/tbtr_template_gui_main.cpp @@ -639,6 +639,8 @@ public: int y = r.top; int max = std::min(this->vscroll[0]->GetPosition() + this->vscroll[0]->GetCapacity(), (int)this->groups.size()); + bool rtl = _current_text_dir == TD_RTL; + /* Then treat all groups defined by/for the current company */ for (int i = this->vscroll[0]->GetPosition(); i < max; ++i) { const Group *g = (this->groups)[i]; @@ -651,12 +653,20 @@ public: int text_y = y + WidgetDimensions::scaled.matrix.top; + auto draw_text = [&](int left, int right, StringID str, TextColour colour, StringAlignment align) { + if (rtl) { + DrawString(r.left + (r.right - right), r.right - (left - r.left), text_y, str, colour, align); + } else { + DrawString(left, right, text_y, str, colour, align); + } + }; + int col1 = left + (2 * left + right) / 3; int col2 = left + (left + 2 * right) / 3; SetDParam(0, g_id); StringID str = STR_GROUP_NAME; - DrawString(left + ScaleGUITrad(4 + this->indents[i] * 10), col1 - ScaleGUITrad(4), text_y, str, TC_BLACK); + draw_text(left + ScaleGUITrad(4 + this->indents[i] * 10), col1 - ScaleGUITrad(4), str, TC_BLACK, SA_LEFT); const TemplateID tid = GetTemplateIDByGroupIDRecursive(g_id); const TemplateID tid_self = GetTemplateIDByGroupID(g_id); @@ -664,7 +674,7 @@ public: /* Draw the template in use for this group, if there is one */ int template_in_use = FindTemplateIndex(tid); if (tid != INVALID_TEMPLATE && tid_self == INVALID_TEMPLATE) { - DrawString (col1 + ScaleGUITrad(4), col2 - ScaleGUITrad(4), text_y, STR_TMP_TEMPLATE_FROM_PARENT_GROUP, TC_SILVER, SA_HOR_CENTER); + draw_text(col1 + ScaleGUITrad(4), col2 - ScaleGUITrad(4), STR_TMP_TEMPLATE_FROM_PARENT_GROUP, TC_SILVER, SA_HOR_CENTER); } else if (template_in_use >= 0) { const TemplateVehicle *tv = TemplateVehicle::Get(tid); SetDParam(1, template_in_use); @@ -674,20 +684,18 @@ public: SetDParam(0, STR_TMPL_NAME); SetDParamStr(2, tv->name); } - DrawString (col1 + ScaleGUITrad(4), col2 - ScaleGUITrad(4), text_y, STR_TMPL_GROUP_USES_TEMPLATE, TC_BLACK, SA_HOR_CENTER); + draw_text(col1 + ScaleGUITrad(4), col2 - ScaleGUITrad(4), STR_TMPL_GROUP_USES_TEMPLATE, TC_BLACK, SA_HOR_CENTER); } else if (tid != INVALID_TEMPLATE) { /* If there isn't a template applied from the current group, check if there is one for another rail type */ - DrawString (col1 + ScaleGUITrad(4), col2 - ScaleGUITrad(4), text_y, STR_TMPL_TMPLRPL_EX_DIFF_RAILTYPE, TC_SILVER, SA_HOR_CENTER); + draw_text(col1 + ScaleGUITrad(4), col2 - ScaleGUITrad(4), STR_TMPL_TMPLRPL_EX_DIFF_RAILTYPE, TC_SILVER, SA_HOR_CENTER); } /* Draw the number of trains that still need to be treated by the currently selected template replacement */ if (tid != INVALID_TEMPLATE) { const TemplateVehicle *tv = TemplateVehicle::Get(tid); const uint num_trains = CountsTrainsNeedingTemplateReplacement(g_id, tv); - // Draw number - SetDParam(0, num_trains); - int inner_right = DrawString(col2 + ScaleGUITrad(4), right - ScaleGUITrad(4), text_y, STR_JUST_INT, num_trains ? TC_ORANGE : TC_GREY, SA_RIGHT); - // Draw text - DrawString(col2 + ScaleGUITrad(4), inner_right - ScaleGUITrad(4), text_y, STR_TMPL_NUM_TRAINS_NEED_RPL, num_trains ? TC_BLACK : TC_GREY, SA_RIGHT); + SetDParam(0, num_trains > 0 ? TC_ORANGE : TC_GREY); + SetDParam(1, num_trains); + draw_text(col2 + ScaleGUITrad(4), right - ScaleGUITrad(4), STR_TMPL_NUM_TRAINS_NEED_RPL, num_trains > 0 ? TC_BLACK : TC_GREY, SA_RIGHT); } y += FONT_HEIGHT_NORMAL + WidgetDimensions::scaled.matrix.Vertical();