Merge lp:~widelands-dev/widelands/bug-1767919-trainingsite-messages into lp:widelands

Proposed by GunChleoc
Status: Merged
Merged at revision: 8692
Proposed branch: lp:~widelands-dev/widelands/bug-1767919-trainingsite-messages
Merge into: lp:widelands
Diff against target: 84 lines (+14/-4)
4 files modified
src/logic/map_objects/tribes/productionsite.cc (+9/-2)
src/logic/map_objects/tribes/trainingsite.cc (+2/-1)
src/logic/map_objects/tribes/trainingsite.h (+1/-0)
src/logic/map_objects/tribes/tribes.cc (+2/-1)
To merge this branch: bzr merge lp:~widelands-dev/widelands/bug-1767919-trainingsite-messages
Reviewer Review Type Date Requested Status
Notabilis Approve
Review via email: mp+344813@code.launchpad.net

Commit message

Fixed translation of trainingsite program names

To post a comment you must log in.
Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 3426. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/373538215.
Appveyor build 3231. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_bug_1767919_trainingsite_messages-3231.

Revision history for this message
Notabilis (notabilis27) wrote :

Diff looks good and text from the bug report is translated ingame.

Unrelated bug: When selecting a RTL language in the language drop down menu, the "The translation into ... is X % complete" text seems to be pretty messed up. Shall I open a bug report for this or is it part of "RTL support isn't that great yet"?

review: Approve
Revision history for this message
GunChleoc (gunchleoc) wrote :

It's part of "RTL support isn't that great yet". The font handler can't handle if the font size changes within the same line and the hotspot_y gets messed up.

Thanks for the review - I'll fix the point that you mentioned.

Revision history for this message
GunChleoc (gunchleoc) wrote :

@bunnybot merge

Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 3465. State: failed. Details: https://travis-ci.org/widelands/widelands/builds/375320088.
Appveyor build 3270. State: failed. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_bug_1767919_trainingsite_messages-3270.

Revision history for this message
bunnybot (widelandsofficial) wrote :

Refusing to merge, since Travis is not green. Use @bunnybot merge force for merging anyways.

Travis build 3465. State: failed. Details: https://travis-ci.org/widelands/widelands/builds/375320088.

Revision history for this message
GunChleoc (gunchleoc) wrote :

@bunnybot merge

Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 3468. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/375457879.
Appveyor build 3273. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_bug_1767919_trainingsite_messages-3273.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/logic/map_objects/tribes/productionsite.cc'
2--- src/logic/map_objects/tribes/productionsite.cc 2018-04-07 16:59:00 +0000
3+++ src/logic/map_objects/tribes/productionsite.cc 2018-05-06 05:39:48 +0000
4@@ -35,6 +35,7 @@
5 #include "graphic/text_constants.h"
6 #include "logic/editor_game_base.h"
7 #include "logic/game.h"
8+#include "logic/game_data_error.h"
9 #include "logic/map.h"
10 #include "logic/map_objects/tribes/carrier.h"
11 #include "logic/map_objects/tribes/soldier.h"
12@@ -93,6 +94,12 @@
13 const EditorGameBase& egbase)
14 : BuildingDescr(init_descname, init_type, table, egbase),
15 out_of_resource_productivity_threshold_(100) {
16+ if (msgctxt.empty()) {
17+ throw Widelands::GameDataError("Productionsite '%s' has empty Gettext msgctxt", name().c_str());
18+ }
19+ // Let's convert this only once, it's cheaper
20+ const char* msgctxt_char = msgctxt.c_str();
21+
22 i18n::Textdomain td("tribes");
23 std::unique_ptr<LuaTable> items_table;
24
25@@ -101,7 +108,7 @@
26 out_of_resource_title_ = _(items_table->get_string("title"));
27 out_of_resource_heading_ = _(items_table->get_string("heading"));
28 out_of_resource_message_ =
29- pgettext_expr(msgctxt.c_str(), items_table->get_string("message").c_str());
30+ pgettext_expr(msgctxt_char, items_table->get_string("message").c_str());
31 if (items_table->has_key("productivity_threshold")) {
32 out_of_resource_productivity_threshold_ = items_table->get_int("productivity_threshold");
33 }
34@@ -190,7 +197,7 @@
35 const std::string program_descname_unlocalized = program_table->get_string("descname");
36 std::string program_descname = _(program_descname_unlocalized);
37 if (program_descname == program_descname_unlocalized) {
38- program_descname = pgettext_expr(msgctxt.c_str(), program_descname_unlocalized.c_str());
39+ program_descname = pgettext_expr(msgctxt_char, program_descname_unlocalized.c_str());
40 }
41 programs_[program_name] = std::unique_ptr<ProductionProgram>(new ProductionProgram(
42 program_name, program_descname, program_table->get_table("actions"), egbase, this));
43
44=== modified file 'src/logic/map_objects/tribes/trainingsite.cc'
45--- src/logic/map_objects/tribes/trainingsite.cc 2018-04-07 16:59:00 +0000
46+++ src/logic/map_objects/tribes/trainingsite.cc 2018-05-06 05:39:48 +0000
47@@ -46,9 +46,10 @@
48 * /data/tribes/buildings/trainingsites/atlanteans/dungeon/init.lua
49 */
50 TrainingSiteDescr::TrainingSiteDescr(const std::string& init_descname,
51+ const std::string& msgctxt,
52 const LuaTable& table,
53 const EditorGameBase& egbase)
54- : ProductionSiteDescr(init_descname, "", MapObjectType::TRAININGSITE, table, egbase),
55+ : ProductionSiteDescr(init_descname, msgctxt, MapObjectType::TRAININGSITE, table, egbase),
56 num_soldiers_(table.get_int("soldier_capacity")),
57 max_stall_(table.get_int("trainer_patience")),
58
59
60=== modified file 'src/logic/map_objects/tribes/trainingsite.h'
61--- src/logic/map_objects/tribes/trainingsite.h 2018-04-07 16:59:00 +0000
62+++ src/logic/map_objects/tribes/trainingsite.h 2018-05-06 05:39:48 +0000
63@@ -34,6 +34,7 @@
64 class TrainingSiteDescr : public ProductionSiteDescr {
65 public:
66 TrainingSiteDescr(const std::string& init_descname,
67+ const std::string& msgctxt,
68 const LuaTable& table,
69 const EditorGameBase& egbase);
70 ~TrainingSiteDescr() override {
71
72=== modified file 'src/logic/map_objects/tribes/tribes.cc'
73--- src/logic/map_objects/tribes/tribes.cc 2018-05-03 04:44:39 +0000
74+++ src/logic/map_objects/tribes/tribes.cc 2018-05-06 05:39:48 +0000
75@@ -68,8 +68,9 @@
76
77 void Tribes::add_trainingsite_type(const LuaTable& table, const EditorGameBase& egbase) {
78 i18n::Textdomain td("tribes");
79+ const std::string msgctxt = table.get_string("msgctxt");
80 buildings_->add(new TrainingSiteDescr(
81- pgettext_expr(table.get_string("msgctxt").c_str(), table.get_string("descname").c_str()),
82+ pgettext_expr(msgctxt.c_str(), table.get_string("descname").c_str()), msgctxt,
83 table, egbase));
84 }
85

Subscribers

People subscribed via source and target branches

to status/vote changes: