← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~gunchleoc/widelands/i18n-20140307 into lp:widelands

 

GunChleoc has proposed merging lp:~gunchleoc/widelands/i18n-20140307 into lp:widelands.

Requested reviews:
  Widelands Developers (widelands-dev)

For more details, see:
https://code.launchpad.net/~gunchleoc/widelands/i18n-20140307/+merge/210046

Some more i18n fixes.

Catalogs and translations will need rebuilding.
-- 
https://code.launchpad.net/~gunchleoc/widelands/i18n-20140307/+merge/210046
Your team Widelands Developers is requested to review the proposed merge of lp:~gunchleoc/widelands/i18n-20140307 into lp:widelands.
=== modified file 'maps/MP Scenarios/Island Hopping.wmf/scripting/multiplayer_init.lua'
--- maps/MP Scenarios/Island Hopping.wmf/scripting/multiplayer_init.lua	2014-03-05 18:47:03 +0000
+++ maps/MP Scenarios/Island Hopping.wmf/scripting/multiplayer_init.lua	2014-03-08 06:20:00 +0000
@@ -129,6 +129,7 @@
    elseif  resource == "goldore" then
       return ngettext("%s Gold Ore","%s Gold Ore",count):bformat(count)
    else
+      -- TRANSLATORS: number + resource name, e.g. '1 stone'
       return (_"%1$i %2$s"):bformat(count, resource)
    end
 end

=== modified file 'maps/MP Scenarios/Smugglers.wmf/scripting/texts.lua'
--- maps/MP Scenarios/Smugglers.wmf/scripting/texts.lua	2014-03-03 20:50:30 +0000
+++ maps/MP Scenarios/Smugglers.wmf/scripting/texts.lua	2014-03-08 06:20:00 +0000
@@ -11,7 +11,7 @@
 [[To establish a smuggling route, you need to build a warehouse on a sending/receiving spot ]] ..
 [[while your team mate has to build one on the corresponding receiving/sending spot. ]] ..
 [[A ware is then transported every 10 seconds. ]]) ..
--- TRANSLATORS: %s = "<number> points"
+-- TRANSLATORS: %s = '<number> points'
 _([[For harder to defend smuggling routes, you get 2 or 3 points per ware smuggled. The first team to collect %s wins.]]
 )) ..
    rt("image=map:send_spot.png", p(_"A sending spot")) ..
@@ -25,30 +25,30 @@
 [[You can see the number of wares traded at any time in the general statistics menu. Good luck!]]
 )))
 
--- TRANSLATORS: the first 2 parameters are player names, the last parameter is "<number> points"
+-- TRANSLATORS: the first 2 parameters are player names, the last parameter is '<number> points'
 smuggling_route_established_other_team = rt(p(_(
 [[A new smuggling route from %1$s to %2$s has been established! ]] ..
 [[Every ware they smuggle there is worth %3$s.]]
 )))
--- TRANSLATORS: %s = "<number> points"
+-- TRANSLATORS: %s = '<number> points'
 smuggling_route_established_sender = rt(p(_(
 [[Your team has established a new smuggling route. You have the sending warehouse. ]] ..
 [[Every ware smuggled here is worth %s.]]
 )))
--- TRANSLATORS: %s = "<number> points"
+-- TRANSLATORS: %s = '<number> points'
 smuggling_route_established_receiver = rt(p(_(
 [[Your team has established a new smuggling route. You have the receiving warehouse. ]] ..
 [[Every ware smuggled here is worth %s.]]
 )))
 
--- TRANSLATORS: the first parameter is "<number> points", the last 2 parameters are player names
+-- TRANSLATORS: the first parameter is '<number> points', the last 2 parameters are player names
 smuggling_route_broken = rt(p(_
 [[The smuggling route worth %1$s from %2$s to %3$s has been broken!]]
 ))
 
 game_over = rt(
    h1("Game over!") ..
--- TRANSLATORS: the first 4 parameters are player names, the last parameter is "<number> points"
+-- TRANSLATORS: the first 4 parameters are player names, the last parameter is '<number> points'
    p(_
 [[Game over! %1$s and %2$s have won the game! %3$s and %4$s only managed to collect %5$s.]]
 )

=== modified file 'maps/Plateau.wmf/scripting/texts.lua'
--- maps/Plateau.wmf/scripting/texts.lua	2014-02-26 16:52:26 +0000
+++ maps/Plateau.wmf/scripting/texts.lua	2014-03-08 06:20:00 +0000
@@ -53,7 +53,7 @@
    "<rt><p line-spacing=3 font-size=12>" .. reflow(text)
    objs = {...}
    if #objs > 0 then
-      s = s .. "<br><br></p></rt>" .. rt(h2(_"New Objectives")) .. "<rt><p line-spacing=3 font-size=12>"
+      s = s .. "<br><br></p></rt>" .. rt(h2(_"New Objective")) .. "<rt><p line-spacing=3 font-size=12>"
       local i = 1
       while i < #objs do
          s = s .. reflow(objs[i].body) .. "<br>"

=== modified file 'scripting/win_conditions/04_wood_gnome.lua'
--- scripting/win_conditions/04_wood_gnome.lua	2014-03-03 20:50:30 +0000
+++ scripting/win_conditions/04_wood_gnome.lua	2014-03-08 06:20:00 +0000
@@ -12,10 +12,10 @@
 
 local wc_name = _ "Wood Gnome"
 local wc_version = 2
-local wc_desc = _
-[[As wood gnome you like big forests, so your task is to have more trees on
-your territory than any other player. The game will end after 4 hours of
-playing. The one with the most trees at that point will win the game.]]
+local wc_desc = _(
+[[As wood gnome you like big forests, so your task is to have more trees on ]] ..
+[[your territory than any other player. The game will end after 4 hours of ]] ..
+[[playing. The one with the most trees at that point will win the game.]])
 local wc_trees_owned = _"Trees owned"
 return {
 	name = wc_name,

=== modified file 'src/editor/ui_menus/editor_main_menu_load_map.cc'
--- src/editor/ui_menus/editor_main_menu_load_map.cc	2014-03-05 11:59:09 +0000
+++ src/editor/ui_menus/editor_main_menu_load_map.cc	2014-03-08 06:20:00 +0000
@@ -221,6 +221,7 @@
 		m_parentdir = m_curdir.substr(0, m_curdir.rfind('\\'));
 #endif
 		std::string parent_string =
+				/** TRANSLATORS: Parent directory */
 				(boost::format("\\<%s\\>") % _("parent")).str();
 		m_ls->add
 			(parent_string.c_str(),

=== modified file 'src/editor/ui_menus/editor_main_menu_save_map.cc'
--- src/editor/ui_menus/editor_main_menu_save_map.cc	2014-03-05 11:59:09 +0000
+++ src/editor/ui_menus/editor_main_menu_save_map.cc	2014-03-08 06:20:00 +0000
@@ -294,6 +294,7 @@
 		m_parentdir = m_curdir.substr(0, m_curdir.rfind('\\'));
 #endif
 		std::string parent_string =
+				/** TRANSLATORS: Parent directory */
 				(boost::format("\\<%s\\>") % _("parent")).str();
 		m_ls->add
 			(parent_string.c_str(),

=== modified file 'src/logic/production_program.cc'
--- src/logic/production_program.cc	2014-03-04 13:24:58 +0000
+++ src/logic/production_program.cc	2014-03-08 06:20:00 +0000
@@ -151,7 +151,7 @@
 std::string ProductionProgram::ActReturn::Negation::description
 	(const Tribe_Descr & tribe) const
 {
-	/** TRANSLATORS: %s = e.g. "economy needs ..." Context: "and/or not %s" */
+	/** TRANSLATORS: %s = e.g. 'economy needs ...' Context: 'and/or not %s' */
 	return (boost::format(_("not %s")) % operand->description(tribe)).str();
 }
 
@@ -174,7 +174,7 @@
 std::string ProductionProgram::ActReturn::Economy_Needs_Ware::description
 	(const Tribe_Descr & tribe) const
 {
-	/** TRANSLATORS: e.g. "economy needs water" Context: "and/or (not) economy needs %s" */
+	/** TRANSLATORS: e.g. 'economy needs water' Context: 'and/or (not) economy needs %s' */
 	return (boost::format(_("economy needs %s")) % tribe.get_ware_descr(ware_type)->descname()).str();
 }
 
@@ -196,7 +196,7 @@
 std::string ProductionProgram::ActReturn::Economy_Needs_Worker::description
 	(const Tribe_Descr & tribe) const
 {
-	/** TRANSLATORS: e.g. "economy needs worker" Context: "and/or (not) economy needs %s" */
+	/** TRANSLATORS: e.g. 'economy needs worker' Context: 'and/or (not) economy needs %s' */
 	return (boost::format(_("economy needs %s")) % tribe.get_ware_descr(worker_type)->descname()).str();
 }
 
@@ -229,10 +229,10 @@
 	std::string condition = "";
 	container_iterate_const(std::set<Ware_Index>, group.first, i) {
 		condition =
-		/** TRANSLATORS: Adds a ware to list of wares in "Failed/Skipped ..." messages. */
+		/** TRANSLATORS: Adds a ware to list of wares in 'Failed/Skipped ...' messages. */
 			(boost::format(_("%1$s %2$s")) % condition % tribe.get_ware_descr(*i.current)->descname())
 			 .str();
-		/** TRANSLATORS: Separator for list of wares in "Failed/Skipped ..." messages. */
+		/** TRANSLATORS: Separator for list of wares in 'Failed/Skipped ...' messages. */
 		condition = (boost::format(_("%s,")) % condition).str();
 	}
 	if (1 < group.second) {
@@ -257,6 +257,7 @@
 std::string ProductionProgram::ActReturn::Workers_Need_Experience::description
 	(const Tribe_Descr &) const
 {
+	/** TRANSLATORS: 'Failed/Skipped ... because: workers need experience'. */
 	return _("workers need experience");
 }
 
@@ -423,16 +424,16 @@
 	(Game & game, ProductionSite & ps) const
 {
 	std::string statistics_string =
-		/** TRANSLATORS: "Failed %s because (not): %s {and/or %s}" */
+		/** TRANSLATORS: 'Failed %s because (not): %s {and/or %s}' */
 		m_result == Failed    ? (boost::format(_("Failed %s")) % ps.top_state().program->descname()).str() :
-		/** TRANSLATORS: "Completed %s because (not): %s {and/or %s}" */
+		/** TRANSLATORS: 'Completed %s because (not): %s {and/or %s}' */
 		m_result == Completed ? (boost::format(_("Completed %s")) % ps.top_state().program->descname()).str() :
-		/** TRANSLATORS: "Skipped %s because (not): %s {and/or %s}" */
+		/** TRANSLATORS: 'Skipped %s because (not): %s {and/or %s}' */
 					(boost::format(_("Skipped %s")) % ps.top_state().program->descname()).str();
 
 	if (!m_conditions.empty()) {
 		std::string result_string = statistics_string;
-		if (m_is_when) { //  "when a and b and ..." (all conditions must be true)
+		if (m_is_when) { //  'when a and b and ...' (all conditions must be true)
 			std::string condition_string = "";
 			for (wl_const_range<Conditions> i(m_conditions); i;)
 			{
@@ -443,11 +444,11 @@
 				if (i.advance().empty())
 					break;
 				// TODO  Would prefer "%1$s and %2$s" but getting segfaults, so leaving this for now
-				/** TRANSLATORS: "Failed/Completed/Skipped %s because: %s {and %s}" */
+				/** TRANSLATORS: 'Failed/Completed/Skipped %s because: %s {and %s}' */
 				condition_string = (boost::format(_("%s and ")) % condition_string).str();
 			}
 			result_string =
-				/** TRANSLATORS: "Failed/Completed/Skipped %s because: %s {and %s}" */
+				/** TRANSLATORS: 'Failed/Completed/Skipped %s because: %s {and %s}' */
 				(boost::format(_("%1$s because: %2$s")) % statistics_string % condition_string).str();
 		} else { //  "unless a or b or ..." (all conditions must be false)
 			std::string condition_string = "";
@@ -459,12 +460,12 @@
 				condition_string += i.front()->description(ps.owner().tribe());
 				if (i.advance().empty())
 					break;
-				// TODO  Would prefer "%1$s or %2$s" but getting segfaults, so leaving this for now
-				/** TRANSLATORS: "Failed/Completed/Skipped %s because not: %s {or %s}" */
+				// TODO  Would prefer '%1$s or %2$s' but getting segfaults, so leaving this for now
+				/** TRANSLATORS: 'Failed/Completed/Skipped %s because not: %s {or %s}' */
 				condition_string = (boost::format(_("%s or ")) % condition_string).str();
 			}
 			result_string =
-				/** TRANSLATORS: "Failed/Completed/Skipped %s because not: %s {or %s}" */
+				/** TRANSLATORS: 'Failed/Completed/Skipped %s because not: %s {or %s}' */
 				(boost::format(_("%1$s because not: %2$s")) % statistics_string % condition_string).str();
 		}
 		snprintf
@@ -828,7 +829,7 @@
 	if (uint8_t const nr_missing_groups = l_groups.size()) {
 		const Tribe_Descr & tribe = ps.owner().tribe();
 		std::string result_string =
-			/** TRANSLATORS: e.g. "Failed work because: water, wheat (2) are missing" */
+			/** TRANSLATORS: e.g. 'Failed work because: water, wheat (2) are missing' */
 			(boost::format(_("Failed %s because:")) % ps.top_state().program->descname()).str();
 
 		for (wl_const_range<Groups> i(l_groups); i;)
@@ -837,13 +838,13 @@
 			for (wl_const_range<std::set<Ware_Index> > j(i.current->first); j;)
 			{
 				result_string =
-					/** TRANSLATORS: Adds a ware to list of wares in "Failed/Skipped ..." messages. */
+					/** TRANSLATORS: Adds a ware to list of wares in 'Failed/Skipped ...' messages. */
 					(boost::format(_("%1$s %2$s")) % result_string
 					 % tribe.get_ware_descr(j.front())->descname())
 					 .str();
 				if (j.advance().empty())
 					break;
-				/** TRANSLATORS: Separator for list of wares in "Failed/Skipped ..." messages. */
+				/** TRANSLATORS: Separator for list of wares in 'Failed/Skipped ...' messages. */
 				result_string = (boost::format(_("%s,")) % result_string).str();
 			}
 			{
@@ -851,7 +852,7 @@
 				if (1 < count) {
 					// TODO this should be done with ngettext
 					result_string =
-						/** TRANSLATORS: e.g. "Failed work because: water, wheat (2) are missing" */
+						/** TRANSLATORS: e.g. 'Failed work because: water, wheat (2) are missing' */
 						(boost::format(_("%1$s (%2$i)")) % result_string
 						 % static_cast<unsigned int>(count))
 						 .str();
@@ -862,8 +863,9 @@
 			result_string = (boost::format(_("%s and")) % result_string).str();
 		}
 		result_string =
-			/** TRANSLATORS: e.g. "Failed work because: water, wheat (2) are missing" */
+			/** TRANSLATORS: e.g. %1$s = 'Failed work because: water, wheat (2)' %2$s = 'are missing' */
 			(boost::format(_("%1$s %2$s")) % result_string
+			/** TRANSLATORS: e.g. 'Failed work because: water, wheat (2) are missing' */
 			 % ngettext(" is missing", " are missing", nr_missing_groups))
 			 .str();
 
@@ -958,6 +960,7 @@
 			uint8_t const count = i.current->second;
 			if (1 < count) {
 				char buffer[5];
+				/** TRANSLATORS: Number used in list of wares */
 				sprintf(buffer, _("%u "), count);
 				result_string += buffer;
 			}
@@ -965,9 +968,11 @@
 		result_string += tribe.get_ware_descr(i.current->first)->descname();
 		if (i.advance().empty())
 			break;
+		/** TRANSLATORS: Separator for list of wares */
 		result_string += _(", ");
 	}
 	// Keep translateability in mind!
+	/** TRANSLATORS: %s is a list of wares */
 	result_string = str(format(_("Produced %s")) % result_string);
 	snprintf
 		(ps.m_result_buffer, sizeof(ps.m_result_buffer),
@@ -1054,6 +1059,7 @@
 			uint8_t const count = i.current->second;
 			if (1 < count) {
 				char buffer[5];
+				/** TRANSLATORS: Number used in list of workers */
 				sprintf(buffer, _("%u "), count);
 				unit_string += buffer;
 			}
@@ -1061,9 +1067,11 @@
 		unit_string += tribe.get_worker_descr(i.current->first)->descname();
 		if (i.advance().empty())
 			break;
+		/** TRANSLATORS: Separator for list of workers */
 		unit_string += _(", ");
 	}
-	std::string result_string = (boost::format(_("Recruited %s?")) % unit_string).str();
+	/** TRANSLATORS: %s is a lost of workers */
+	std::string result_string = (boost::format(_("Recruited %s")) % unit_string).str();
 	snprintf
 		(ps.m_result_buffer, sizeof(ps.m_result_buffer),
 		 "%s", result_string.c_str());
@@ -1119,7 +1127,7 @@
 					 "percentage", parameters);
 		}
 		std::string description =
-			/** TRANSLATORS: %1$s = name, %2$s = production program, %3$s = resource*/
+			/** TRANSLATORS: %1$s = production site name, %2$s = production program name, %3$s = resource */
 			(boost::format(_("%1$s %2$s mine %3$s")) % descr.descname() % production_program_name
 				% world.get_resource(m_resource)->descname())
 				.str();

=== modified file 'src/logic/soldier.cc'
--- src/logic/soldier.cc	2014-03-05 11:59:09 +0000
+++ src/logic/soldier.cc	2014-03-08 06:20:00 +0000
@@ -1557,14 +1557,12 @@
 						 descname().c_str(), serial(), owner().player_number(),
 						 get_position().x, get_position().y,
 						 immovable_position ?
-						/** TRANSLATORS this is followed by "immovable" in the source string */
-						 immovable_position->descr().descname().c_str() : _("no"),
+						 immovable_position->descr().descname().c_str() : ("no"),
 						 opponent.descname().c_str(), opponent.serial(),
 						 opponent.owner().player_number(),
 						 dest.x, dest.y,
 						 immovable_dest ?
-						/** TRANSLATORS this is followed by "immovable" in the source string */
-						 immovable_dest->descr().descname().c_str() : _("no"),
+						 immovable_dest->descr().descname().c_str() : ("no"),
 						 descname().c_str());
 					owner().add_message
 						(game,

=== modified file 'src/network/nethost.cc'
--- src/network/nethost.cc	2014-03-06 12:52:12 +0000
+++ src/network/nethost.cc	2014-03-08 06:20:00 +0000
@@ -212,7 +212,7 @@
 		h->setPlayerState(number, newstate, true);
 	}
 
-	virtual void setPlayerTribe
+	virtual void setPlayerTribe
 		(uint8_t const number, const std::string & tribe, bool const random_tribe) override
 	{
 		if (number >= h->settings().players.size())
@@ -444,8 +444,8 @@
 						c.msg = (format(_("The client %s could not be found.")) % arg1).str();
 					else {
 						kickClient = num;
-						c.msg  = (format(_("Are you sure you want to kick %s?<br>")) % arg1).str();
-						c.msg += (format(_("The stated reason was: %s<br>")) % kickReason).str();
+						c.msg  = (format(_("Are you sure you want to kick %s?")) % arg1).str() + "<br>";
+						c.msg += (format(_("The stated reason was: %s")) % kickReason).str() + "<br>";
 						c.msg += (format(_("If yes, type: /ack_kick %s")) % arg1).str();
 					}
 				}

=== modified file 'src/ui_fsmenu/editor_mapselect.cc'
--- src/ui_fsmenu/editor_mapselect.cc	2014-02-22 18:04:02 +0000
+++ src/ui_fsmenu/editor_mapselect.cc	2014-03-08 06:20:00 +0000
@@ -227,6 +227,7 @@
 		m_parentdir = m_curdir.substr(0, m_curdir.rfind('\\'));
 #endif
 		std::string parent_string =
+				/** TRANSLATORS: Parent directory */
 				(boost::format("\\<%s\\>") % _("parent")).str();
 		m_list.add
 			(parent_string.c_str(),

=== modified file 'src/wui/encyclopedia_window.cc'
--- src/wui/encyclopedia_window.cc	2014-03-05 11:59:09 +0000
+++ src/wui/encyclopedia_window.cc	2014-03-08 06:20:00 +0000
@@ -191,7 +191,7 @@
 							tribe.get_ware_descr(*k)->descname();
 						if (k.advance().empty())
 							break;
-						/** TRANSLATORS: List or wares, e.g. "Fish or Meat" */
+						/** TRANSLATORS: List of wares, e.g. "Fish or Meat" */
 						ware_type_names += _(" or ");
 					}
 

=== modified file 'src/wui/playerdescrgroup.cc'
--- src/wui/playerdescrgroup.cc	2014-03-05 11:59:09 +0000
+++ src/wui/playerdescrgroup.cc	2014-03-08 06:20:00 +0000
@@ -174,7 +174,7 @@
 					if (player.random_ai) {
 						title += _("AI: Random");
 					} else {
-						/** TRANSLATORS %s = AI type, e.g. "Agressive" */
+						/** TRANSLATORS %s = AI type, e.g. 'Agressive' */
 						title += (boost::format(_("AI: %s")) % _(player.ai)).str();
 					}
 				}

=== modified file 'tribes/atlanteans/scripting/sc01_castle_village.lua'
--- tribes/atlanteans/scripting/sc01_castle_village.lua	2014-02-25 14:45:19 +0000
+++ tribes/atlanteans/scripting/sc01_castle_village.lua	2014-03-08 06:20:00 +0000
@@ -98,10 +98,10 @@
          wares = { trunk = 1 }
       })
    end) then
-      plr:send_message(_"Not enough space", _
-[[Some of your starting buildings didn’t have enough room and
-weren’t built. You are at a disadvantage with this; consider restarting
-this map with a fair starting condition.]], {popup=true}
+      plr:send_message(_"Not enough space", _(
+[[Some of your starting buildings didn’t have enough room and ]] ..
+[[weren’t built. You are at a disadvantage with this; consider restarting ]] ..
+[[this map with a fair starting condition.]]), {popup=true}
       )
    end
 

=== modified file 'tribes/barbarians/coalmine/help.lua'
--- tribes/barbarians/coalmine/help.lua	2014-03-05 18:47:03 +0000
+++ tribes/barbarians/coalmine/help.lua	2014-03-08 06:20:00 +0000
@@ -9,8 +9,9 @@
 	--Lore Section
 		rt(h2(_"Lore")) ..
 		rt("image=tribes/barbarians/coalmine/coalmine_i_00.png", p(
-			_[[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces. <br>
-			Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]]
+			_([[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces.<br>
+]] ..
+			[[Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]])
 		)) ..
 	--General Section
 		rt(h2(_"General")) ..

=== modified file 'tribes/barbarians/deep_coalmine/help.lua'
--- tribes/barbarians/deep_coalmine/help.lua	2014-03-05 18:47:03 +0000
+++ tribes/barbarians/deep_coalmine/help.lua	2014-03-08 06:20:00 +0000
@@ -9,8 +9,9 @@
 	--Lore Section
 		rt(h2(_"Lore")) ..
 		rt("image=tribes/barbarians/deep_coalmine/deep_coalmine_i_00.png", p(--text identical to coalmine
-			_[[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces. <br>
-			Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]]
+			_([[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces.<br>
+]] ..
+			[[Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]])
 		)) ..
 	--General Section
 		rt(h2(_"General")) ..

=== modified file 'tribes/barbarians/deeper_coalmine/help.lua'
--- tribes/barbarians/deeper_coalmine/help.lua	2014-03-05 18:47:03 +0000
+++ tribes/barbarians/deeper_coalmine/help.lua	2014-03-08 06:20:00 +0000
@@ -9,8 +9,9 @@
 	--Lore Section
 		rt(h2(_"Lore")) ..
 		rt("image=tribes/barbarians/deeper_coalmine/deeper_coalmine_i_00.png", p(--text identical to coalmine
-			_[[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces. <br>
-			Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]]
+			_([[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces.<br>
+]] ..
+			[[Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]])
 		)) ..
 	--General Section
 		rt(h2(_"General")) ..

=== modified file 'tribes/barbarians/scripting/sc01_citadel_village.lua'
--- tribes/barbarians/scripting/sc01_citadel_village.lua	2014-02-25 14:45:19 +0000
+++ tribes/barbarians/scripting/sc01_citadel_village.lua	2014-03-08 06:20:00 +0000
@@ -91,10 +91,10 @@
          wares = { raw_stone = 6, coal = 3 },
       })
    end) then
-      plr:send_message(_"Not enough space", _ 
-[[Some of your starting buildings didn’t have enough room and 
-weren’t built. You are at a disadvantage with this; consider restarting 
-this map with a fair starting condition.]], {popup=true}
+      plr:send_message(_"Not enough space", _( 
+[[Some of your starting buildings didn’t have enough room and ]] ..
+[[weren’t built. You are at a disadvantage with this; consider restarting ]] ..
+[[this map with a fair starting condition.]]), {popup=true}
       )
    end
 end,

=== modified file 'tribes/empire/scripting/sc01_castle_village.lua'
--- tribes/empire/scripting/sc01_castle_village.lua	2014-02-25 14:45:19 +0000
+++ tribes/empire/scripting/sc01_castle_village.lua	2014-03-08 06:20:00 +0000
@@ -116,10 +116,10 @@
 
       place_building_in_region(plr, "stonemasons_house", sf:region(11))
    end) then
-      plr:send_message(_"Not enough space", _ 
-[[Some of your starting buildings didn’t have enough room and 
-weren’t built. You are at a disadvantage with this; consider restarting 
-this map with a fair starting condition.]], {popup=true}
+      plr:send_message(_"Not enough space", _( 
+[[Some of your starting buildings didn’t have enough room and ]] ..
+[[weren’t built. You are at a disadvantage with this; consider restarting ]] ..
+[[this map with a fair starting condition.]]), {popup=true}
       )
    end
 end

=== modified file 'txts/README.lua'
--- txts/README.lua	2014-03-03 20:50:30 +0000
+++ txts/README.lua	2014-03-08 06:20:00 +0000
@@ -58,8 +58,8 @@
    ) .. h2(_
 [[Keyboard shortcuts (in-game)]]
    ) .. p(
-_"PAGEUP: increases games peed" .. "<br>"
-.. _"PAGEDOWN: decreases games peed" .. "<br>"
+_"PAGEUP: increases game speed" .. "<br>"
+.. _"PAGEDOWN: decreases game speed" .. "<br>"
 .. _"PAUSE: pauses the game" .. "<br>"
 .. _"SPACE: toggles if building spaces are shown" .. "<br>"
 .. _"M: toggles minimap" .. "<br>"