Browse code

Merge branch 'update_mods' of emorrp1/ocd3 into master

Phil Morrell authored on 2018-09-08 09:18:03
Showing 11 changed files
... ...
@@ -1,7 +1,5 @@
1 1
 Craftguide
2 2
 =====================================================================
3 3
 Main: killbith
4
-Lisc: GPL v3
5
-Text: WTFPL
6
-	By Gambit
4
+Lisc: MIT
7 5
 Link: https://github.com/minetest-mods/craftguide
... ...
@@ -1,9 +1,9 @@
1
-1,14c1,7
1
+1,14c1,5
2 2
 < ## ![Preview1](http://i.imgur.com/fIPNYkb.png) Crafting Guide ##
3 3
 < 
4 4
 < #### A Crafting Guide for Minetest that doesn't suck. ####
5 5
 < 
6
-< #### `craftguide` is simply the most comprehensive mod of his category, with the cleanest code. ####
6
+< #### `craftguide` is the most comprehensive mod of its category. ####
7 7
 < #### Consult the [Minetest Wiki](http://wiki.minetest.net/Crafting_guide) for more details and comparisons. ####
8 8
 < 
9 9
 < #### This crafting guide is usable with a blue book named *"Crafting Guide"*. ####
... ...
@@ -17,7 +17,5 @@
17 17
 > Craftguide
18 18
 > =====================================================================
19 19
 > Main: killbith
20
-> Lisc: GPL v3
21
-> Text: WTFPL
22
-> 	By Gambit
20
+> Lisc: MIT
23 21
 > Link: https://github.com/minetest-mods/craftguide
... ...
@@ -1,7 +1,5 @@
1 1
 Craftguide
2 2
 =====================================================================
3 3
 Main: killbith
4
-Lisc: GPL v3
5
-Text: WTFPL
6
-	By Gambit
4
+Lisc: MIT
7 5
 Link: https://github.com/minetest-mods/craftguide
... ...
@@ -1,9 +1,9 @@
1
-1,14c1,7
1
+1,14c1,5
2 2
 < ## ![Preview1](http://i.imgur.com/fIPNYkb.png) Crafting Guide ##
3 3
 < 
4 4
 < #### A Crafting Guide for Minetest that doesn't suck. ####
5 5
 < 
6
-< #### `craftguide` is simply the most comprehensive mod of his category, with the cleanest code. ####
6
+< #### `craftguide` is the most comprehensive mod of its category. ####
7 7
 < #### Consult the [Minetest Wiki](http://wiki.minetest.net/Crafting_guide) for more details and comparisons. ####
8 8
 < 
9 9
 < #### This crafting guide is usable with a blue book named *"Crafting Guide"*. ####
... ...
@@ -17,7 +17,5 @@
17 17
 > Craftguide
18 18
 > =====================================================================
19 19
 > Main: killbith
20
-> Lisc: GPL v3
21
-> Text: WTFPL
22
-> 	By Gambit
20
+> Lisc: MIT
23 21
 > Link: https://github.com/minetest-mods/craftguide
... ...
@@ -1 +1,2 @@
1 1
 sfinv_buttons?
2
+intllib?
... ...
@@ -4,12 +4,22 @@ local get_recipe, get_recipes = mt.get_craft_recipe, mt.get_all_craft_recipes
4 4
 local get_result, show_formspec = mt.get_craft_result, mt.show_formspec
5 5
 local reg_items = mt.registered_items
6 6
 
7
+craftguide.path = minetest.get_modpath("craftguide")
8
+
9
+-- Intllib
10
+local S = dofile(craftguide.path .. "/intllib.lua")
11
+craftguide.intllib = S
12
+
7 13
 -- Lua 5.3 removed `table.maxn`, use this alternative in case of breakage:
8 14
 -- https://github.com/kilbith/xdecor/blob/master/handlers/helpers.lua#L1
9 15
 local remove, maxn, sort = table.remove, table.maxn, table.sort
10 16
 local min, max, floor, ceil = math.min, math.max, math.floor, math.ceil
11 17
 
12
-local DEFAULT_SIZE, MIN_LIMIT, MAX_LIMIT = 10, 9, 12
18
+local DEFAULT_SIZE = 10
19
+local MIN_LIMIT, MAX_LIMIT = 9, 12
20
+DEFAULT_SIZE = min(MAX_LIMIT, max(MIN_LIMIT, DEFAULT_SIZE))
21
+
22
+local GRID_LIMIT = 5
13 23
 
14 24
 local group_stereotypes = {
15 25
 	wool	     = "wool:white",
... ...
@@ -64,36 +74,40 @@ function craftguide:get_tooltip(item, recipe_type, cooktime, groups)
64 74
 			item_desc = reg_items[item].description
65 75
 		end
66 76
 	else
67
-		return tooltip .. "Unknown Item (" .. item .. ")]"
77
+		return tooltip .. S("Unknown Item (@1)", item) .. "]"
68 78
 	end
69 79
 
70 80
 	if groups then
71
-		local groupstr = "Any item belonging to the "
81
+		local groupstr = ""
72 82
 		for i = 1, #groups do
73
-			groupstr = groupstr .. colorize(groups[i]) ..
74
-				  (groups[i + 1] and " and " or "")
83
+			groupstr = groupstr ..
84
+				colorize(groups[i]) .. (groups[i + 1] and ", " or "")
75 85
 		end
76
-		tooltip = tooltip .. groupstr .. " group(s)"
86
+
87
+		tooltip = tooltip .. S("Any item belonging to the group(s)") .. ": " .. groupstr
77 88
 	end
78 89
 
79 90
 	if recipe_type == "cooking" then
80
-		tooltip = tooltip .. item_desc .. "\nCooking time: " .. colorize(cooktime)
91
+		tooltip = tooltip .. item_desc .. "\n"
92
+				.. S("Cooking time") .. ": " .. colorize(cooktime)
81 93
 	end
82 94
 
83 95
 	if fueltime > 0 then
84
-		tooltip = tooltip .. item_desc .. "\nBurning time: " .. colorize(fueltime)
96
+		tooltip = tooltip .. item_desc .. "\n"
97
+				.. S("Burning time") .. ": " .. colorize(fueltime)
85 98
 	end
86 99
 
87 100
 	return has_extras and tooltip .. "]" or ""
88 101
 end
89 102
 
90
-function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes)
103
+function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes, show_usage)
91 104
 	local formspec, recipes_total = "", #recipes
92 105
 	if recipes_total > 1 then
93 106
 		formspec = formspec ..
94
-			"button[0," .. (iY + 3.3) .. ";2,1;alternate;Alternate]" ..
95
-			"label[0," .. (iY + 2.8) .. ";Recipe " ..
96
-				recipe_num .. " of " .. recipes_total .. "]"
107
+			"button[0," .. (iY + 3.3) .. ";2,1;alternate;" .. S("Alternate") .. "]" ..
108
+			"label[0," .. (iY + 2.8) .. ";" ..
109
+				(show_usage and S("Usage") or S("Recipe")) .. " " ..
110
+				 S("@1 of @2", recipe_num, recipes_total) .. "]"
97 111
 	end
98 112
 
99 113
 	local recipe_type = recipes[recipe_num].type
... ...
@@ -104,7 +118,7 @@ function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes)
104 118
 		local icon = recipe_type == "cooking" and "furnace" or "shapeless"
105 119
 		formspec = formspec ..
106 120
 			"image[" .. (xoffset - 0.8) .. "," .. (iY + 1.7)  ..
107
-				".5;0.5,0.5;craftguide_" .. icon .. ".png]"
121
+				";0.5,0.5;craftguide_" .. icon .. ".png]"
108 122
 	end
109 123
 
110 124
 	if width == 0 then
... ...
@@ -112,20 +126,18 @@ function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes)
112 126
 	end
113 127
 
114 128
 	local rows = ceil(maxn(items) / width)
115
-	local btn_size, craftgrid_limit = 1, 5
116 129
 
117
-	if recipe_type == "normal" and
118
-			width > craftgrid_limit or rows > craftgrid_limit then
130
+	if recipe_type == "normal" and (width > GRID_LIMIT or rows > GRID_LIMIT) then
119 131
 		formspec = formspec ..
120
-			"label[" .. xoffset .. "," .. (iY + 2) ..
121
-				";Recipe is too big to\nbe displayed (" ..
122
-				width .. "x" .. rows .. ")]"
132
+			"label[" .. xoffset .. "," .. (iY + 2) .. ";" ..
133
+				S("Recipe is too big to\nbe displayed (@1x@2)", width, rows) .. "]"
123 134
 	else
135
+		local btn_size = 1
124 136
 		for i, v in pairs(items) do
125 137
 			local X = (i - 1) % width + xoffset
126 138
 			local Y = ceil(i / width + (iY + 2) - min(2, rows))
127 139
 
128
-			if recipe_type == "normal" and width > 3 or rows > 3 then
140
+			if recipe_type == "normal" and (width > 3 or rows > 3) then
129 141
 				btn_size = width > 3 and 3 / width or 3 / rows
130 142
 				X = btn_size * (i % width) + xoffset
131 143
 				Y = btn_size * floor((i - 1) / width) + (iY + 3) - min(2, rows)
... ...
@@ -146,7 +158,7 @@ function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes)
146 158
 	local output = recipes[recipe_num].output
147 159
 	return formspec ..
148 160
 		"image[" .. (xoffset - 1) .. "," .. (iY + 2.35) ..
149
-			".12;0.9,0.7;craftguide_arrow.png]" ..
161
+			";0.9,0.7;craftguide_arrow.png]" ..
150 162
 		"item_image_button[" .. (xoffset - 2) .. "," .. (iY + 2.2) .. ";1,1;" ..
151 163
 			output .. ";" .. item .. ";]" .. tooltip
152 164
 end
... ...
@@ -166,18 +178,21 @@ function craftguide:get_formspec(player_name, is_fuel)
166 178
 			background[1,1;1,1;craftguide_bg.png;true]
167 179
 			button[2.4,0.23;0.8,0.5;search;?]
168 180
 			button[3.05,0.23;0.8,0.5;clear;X]
169
-			tooltip[search;Search]
170
-			tooltip[clear;Reset]
171
-			tooltip[size_inc;Increase window size]
172
-			tooltip[size_dec;Decrease window size]
173
-			field_close_on_enter[filter;false] ]] ..
181
+			field_close_on_enter[filter;false]
182
+		]] ..
183
+			"tooltip[search;" .. S("Search") .. "]" ..
184
+			"tooltip[clear;" .. S("Reset") .. "]" ..
185
+			"tooltip[size_inc;" .. S("Increase window size") .. "]" ..
186
+			"tooltip[size_dec;" .. S("Decrease window size") .. "]" ..
187
+			"tooltip[prev;" .. S("Previous page") .. "]" ..
188
+			"tooltip[next;" .. S("Next page") .. "]" ..
174 189
 			"button[" .. (data.iX * 0.48) .. ",-0.02;0.7,1;size_inc;+]" ..
175 190
 			"button[" .. ((data.iX * 0.48) + 0.5) ..
176 191
 				",-0.02;0.7,1;size_dec;-]" ..
177
-			"button[" .. (data.iX - 3.1) .. ".4,0;0.8,0.95;prev;<]" ..
178
-			"label[" .. (data.iX - 2.2) .. ".1,0.18;" ..
192
+			"button[" .. (data.iX - 3.1) .. ",0;0.8,0.95;prev;<]" ..
193
+			"label[" .. (data.iX - 2.2) .. ",0.18;" ..
179 194
 				colorize(data.pagenum) .. " / " .. data.pagemax .. "]" ..
180
-			"button[" .. (data.iX - 1.2) .. ".2,0;0.8,0.95;next;>]" ..
195
+			"button[" .. (data.iX - 1.2) .. ",0;0.8,0.95;next;>]" ..
181 196
 			"field[0.3,0.32;2.5,1;filter;;" ..
182 197
 				mt.formspec_escape(data.filter) .. "]"
183 198
 
... ...
@@ -186,7 +201,8 @@ function craftguide:get_formspec(player_name, is_fuel)
186 201
 
187 202
 	if not next(data.items) then
188 203
 		formspec = formspec ..
189
-			"label[" .. (xoffset - (even_num and 1.5 or 1)) .. ",2;No item to show]"
204
+			"label[" .. (xoffset - (even_num and 1.5 or 1)) .. ",2;" ..
205
+				S("No item to show") .. "]"
190 206
 	end
191 207
 
192 208
 	local first_item = (data.pagenum - 1) * ipp
... ...
@@ -206,16 +222,20 @@ function craftguide:get_formspec(player_name, is_fuel)
206 222
 		if not data.recipes_item or (is_fuel and not get_recipe(data.item).items) then
207 223
 			formspec = formspec ..
208 224
 				"image[" .. (xoffset - 1) .. "," .. (iY + 2.35) ..
209
-					".12;0.9,0.7;craftguide_arrow.png]" ..
225
+					";0.9,0.7;craftguide_arrow.png]" ..
210 226
 				"item_image_button[" .. xoffset .. "," .. (iY + 2.2) ..
211 227
 					";1,1;" .. data.item .. ";" .. data.item .. ";]" ..
212 228
 				tooltip ..
213 229
 				"image[" .. (xoffset - 2) .. "," ..
214 230
 					(iY + 2.18) .. ";1,1;craftguide_fire.png]"
215 231
 		else
232
+			local show_usage = data.show_usage
216 233
 			formspec = formspec ..
217
-				self:get_recipe(iY, xoffset, tooltip, data.item,
218
-						data.recipe_num, data.recipes_item)
234
+				self:get_recipe(iY, xoffset, tooltip,
235
+						data.item,
236
+						data.rnum,
237
+						(show_usage and data.usages or data.recipes_item),
238
+						show_usage)
219 239
 		end
220 240
 	end
221 241
 
... ...
@@ -282,7 +302,7 @@ function craftguide:get_init_items()
282 302
 	local items_list, counter = {}, 0
283 303
 	for name, def in pairs(reg_items) do
284 304
 		local is_fuel = get_fueltime(name) > 0
285
-		if not (def.groups.not_in_creative_inventory == 1) and
305
+		if (not (def.groups.not_in_craft_guide == 1 or def.groups.not_in_creative_inventory == 1)) and
286 306
 		       (get_recipe(name).items or is_fuel) and
287 307
 			def.description and def.description ~= "" then
288 308
 
... ...
@@ -328,26 +348,70 @@ function craftguide:get_filter_items(data, player)
328 348
 		if not data.items then
329 349
 			data.init_filter_items = filtered_list
330 350
 		end
331
-	elseif filter ~= "" and not datas.searches[filter] then
332
-		datas.searches[filter] = filtered_list
351
+	elseif filter ~= "" then
352
+		-- Cache the results only if searched 2 times
353
+		if datas.searches[filter] == nil then
354
+			datas.searches[filter] = false
355
+		else
356
+			datas.searches[filter] = filtered_list
357
+		end
333 358
 	end
334 359
 
335 360
 	data.items = filtered_list
336 361
 end
337 362
 
363
+function craftguide:get_item_usages(item)
364
+	local usages = {}
365
+	for name, def in pairs(reg_items) do
366
+		if not (def.groups.not_in_creative_inventory == 1) and
367
+		  (get_recipe(name).items) and def.description and def.description ~= "" then
368
+			local recipes = get_recipes(name)
369
+			for i = 1, #recipes do
370
+				local recipe = recipes[i]
371
+				local items = recipe.items
372
+
373
+				for j = 1, #items do
374
+					if items[j] == item then
375
+						usages[#usages + 1] = {
376
+							type = recipe.type,
377
+							items = items,
378
+							width = recipe.width,
379
+							output = recipe.output,
380
+						}
381
+						break
382
+					end
383
+				end
384
+			end
385
+		end
386
+	end
387
+
388
+	return usages
389
+end
390
+
338 391
 mt.register_on_player_receive_fields(function(player, formname, fields)
339 392
 	if formname ~= "craftguide" then return end
340 393
 	local player_name = player:get_player_name()
341 394
 	local data = datas[player_name]
342 395
 
343 396
 	if fields.clear then
344
-		data.filter, data.item, data.pagenum, data.recipe_num = "", nil, 1, 1
397
+		data.show_usage = nil
398
+		data.filter     = ""
399
+		data.item       = nil
400
+		data.pagenum    = 1
401
+		data.rnum       = 1
402
+
345 403
 		data.items = progressive_mode and data.init_filter_items or datas.init_items
346 404
 		craftguide:get_formspec(player_name)
347 405
 
348 406
 	elseif fields.alternate then
349
-		local recipe = data.recipes_item[data.recipe_num + 1]
350
-		data.recipe_num = recipe and data.recipe_num + 1 or 1
407
+		local num
408
+		if data.show_usage then
409
+			num = data.usages[data.rnum + 1]
410
+		else
411
+			num = data.recipes_item[data.rnum + 1]
412
+		end
413
+
414
+		data.rnum = num and data.rnum + 1 or 1
351 415
 		craftguide:get_formspec(player_name)
352 416
 
353 417
 	elseif (fields.key_enter_field == "filter" or fields.search) and
... ...
@@ -359,11 +423,13 @@ mt.register_on_player_receive_fields(function(player, formname, fields)
359 423
 
360 424
 	elseif fields.prev or fields.next then
361 425
 		data.pagenum = data.pagenum - (fields.prev and 1 or -1)
426
+
362 427
 		if data.pagenum > data.pagemax then
363 428
 			data.pagenum = 1
364 429
 		elseif data.pagenum == 0 then
365 430
 			data.pagenum = data.pagemax
366 431
 		end
432
+
367 433
 		craftguide:get_formspec(player_name)
368 434
 
369 435
 	elseif (fields.size_inc and data.iX < MAX_LIMIT) or
... ...
@@ -382,12 +448,14 @@ mt.register_on_player_receive_fields(function(player, formname, fields)
382 448
 			local recipes = get_recipes(item)
383 449
 			if not recipes and not is_fuel then return end
384 450
 
385
-			if item == data.item then
386
-				if data.recipes_item and #data.recipes_item >= 2 then
387
-					local recipe = data.recipes_item[data.recipe_num + 1]
388
-					data.recipe_num = recipe and data.recipe_num + 1 or 1
389
-					craftguide:get_formspec(player_name)
451
+			if not data.show_usage and item == data.item and not progressive_mode then
452
+				data.usages = craftguide:get_item_usages(item)
453
+				if next(data.usages) then
454
+					data.show_usage = true
455
+					data.rnum = 1
390 456
 				end
457
+
458
+				craftguide:get_formspec(player_name)
391 459
 			else
392 460
 				if progressive_mode then
393 461
 					local inv = player:get_inventory()
... ...
@@ -397,9 +465,11 @@ mt.register_on_player_receive_fields(function(player, formname, fields)
397 465
 					recipes = craftguide:recipe_in_inv(inv, item, recipes)
398 466
 				end
399 467
 
400
-				data.item = item
401
-				data.recipe_num = 1
468
+				data.item         = item
402 469
 				data.recipes_item = recipes
470
+				data.rnum         = 1
471
+				data.show_usage   = nil
472
+
403 473
 				craftguide:get_formspec(player_name, is_fuel)
404 474
 			end
405 475
 		end
... ...
@@ -409,7 +479,7 @@ end)
409 479
 
410 480
 function craftguide:on_use(itemstack, user)
411 481
 	if not datas.init_items then
412
-		craftguide:get_init_items()
482
+		self:get_init_items()
413 483
 	end
414 484
 
415 485
 	local player_name = user:get_player_name()
... ...
@@ -418,16 +488,17 @@ function craftguide:on_use(itemstack, user)
418 488
 	if progressive_mode or not data then
419 489
 		datas[player_name] = {filter = "", pagenum = 1, iX = DEFAULT_SIZE}
420 490
 		if progressive_mode then
421
-			craftguide:get_filter_items(datas[player_name], user)
491
+			self:get_filter_items(datas[player_name], user)
422 492
 		end
423
-		craftguide:get_formspec(player_name)
493
+
494
+		self:get_formspec(player_name)
424 495
 	else
425 496
 		show_formspec(player_name, "craftguide", data.formspec)
426 497
 	end
427 498
 end
428 499
 
429 500
 mt.register_craftitem("craftguide:book", {
430
-	description = "Crafting Guide",
501
+	description = S("Crafting Guide"),
431 502
 	inventory_image = "craftguide_book.png",
432 503
 	wield_image = "craftguide_book.png",
433 504
 	stack_max = 1,
... ...
@@ -438,7 +509,7 @@ mt.register_craftitem("craftguide:book", {
438 509
 })
439 510
 
440 511
 mt.register_node("craftguide:sign", {
441
-	description = "Crafting Guide Sign",
512
+	description = S("Crafting Guide Sign"),
442 513
 	drawtype = "nodebox",
443 514
 	tiles = {"craftguide_sign.png"},
444 515
 	inventory_image = "craftguide_sign_inv.png",
... ...
@@ -455,7 +526,7 @@ mt.register_node("craftguide:sign", {
455 526
 	},
456 527
 	on_construct = function(pos)
457 528
 		local meta = minetest.get_meta(pos)
458
-		meta:set_string("infotext", "Crafting Guide Sign")
529
+		meta:set_string("infotext", S("Crafting Guide Sign"))
459 530
 	end,
460 531
 	on_rightclick = function(pos, node, user, itemstack)
461 532
 		craftguide:on_use(itemstack, user)
... ...
@@ -488,8 +559,8 @@ mt.register_craft({
488 559
 
489 560
 if rawget(_G, "sfinv_buttons") then
490 561
 	sfinv_buttons.register_button("craftguide", {
491
-		title = "Crafting guide",
492
-		tooltip = "Shows a list of available crafting recipes, cooking recipes and fuels",
562
+		title = S("Crafting Guide"),
563
+		tooltip = S("Shows a list of available crafting recipes, cooking recipes and fuels"),
493 564
 		action = function(player)
494 565
 			craftguide:on_use(nil, player)
495 566
 		end,
... ...
@@ -498,3 +569,26 @@ if rawget(_G, "sfinv_buttons") then
498 569
 end
499 570
 
500 571
 mt.register_alias("xdecor:crafting_guide", "craftguide:book")
572
+
573
+--[[ Custom recipes (>3x3) test code
574
+
575
+mt.register_craftitem("craftguide:custom_recipe_test", {
576
+	description = "Custom Recipe Test",
577
+})
578
+
579
+local cr = {}
580
+for x = 1, 6 do
581
+	cr[x] = {}
582
+	for i = 1, 10 - x do
583
+		cr[x][i] = {}
584
+		for j = 1, 10 - x do
585
+			cr[x][i][j] = "group:wood"
586
+		end
587
+	end
588
+
589
+	mt.register_craft({
590
+		output = "craftguide:custom_recipe_test",
591
+		recipe = cr[x]
592
+	})
593
+end
594
+]]
501 595
new file mode 100644
... ...
@@ -0,0 +1,45 @@
1
+
2
+-- Fallback functions for when `intllib` is not installed.
3
+-- Code released under Unlicense <http://unlicense.org>.
4
+
5
+-- Get the latest version of this file at:
6
+--   https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
7
+
8
+local function format(str, ...)
9
+	local args = { ... }
10
+	local function repl(escape, open, num, close)
11
+		if escape == "" then
12
+			local replacement = tostring(args[tonumber(num)])
13
+			if open == "" then
14
+				replacement = replacement..close
15
+			end
16
+			return replacement
17
+		else
18
+			return "@"..open..num..close
19
+		end
20
+	end
21
+	return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
22
+end
23
+
24
+local gettext, ngettext
25
+if minetest.get_modpath("intllib") then
26
+	if intllib.make_gettext_pair then
27
+		-- New method using gettext.
28
+		gettext, ngettext = intllib.make_gettext_pair()
29
+	else
30
+		-- Old method using text files.
31
+		gettext = intllib.Getter()
32
+	end
33
+end
34
+
35
+-- Fill in missing functions.
36
+
37
+gettext = gettext or function(msgid, ...)
38
+	return format(msgid, ...)
39
+end
40
+
41
+ngettext = ngettext or function(msgid, msgid_plural, n, ...)
42
+	return format(n==1 and msgid or msgid_plural, ...)
43
+end
44
+
45
+return gettext, ngettext
0 46
new file mode 100644
... ...
@@ -0,0 +1,90 @@
1
+# German translation for craftguide mod.
2
+# Copyright (C) 2018
3
+# This file is distributed under the same license as the craftguide package.
4
+# codexp <codexp@gmx.net>, 2018.
5
+#
6
+#, fuzzy
7
+msgid ""
8
+msgstr ""
9
+"Project-Id-Version: 1.27\n"
10
+"Report-Msgid-Bugs-To: \n"
11
+"POT-Creation-Date: 2018-03-23 00:17+0100\n"
12
+"PO-Revision-Date: \n"
13
+"Last-Translator: \n"
14
+"Language-Team: \n"
15
+"Language: German\n"
16
+"MIME-Version: 1.0\n"
17
+"Content-Type: text/plain; charset=UTF-8\n"
18
+"Content-Transfer-Encoding: 8bit\n"
19
+
20
+#: init.lua
21
+msgid "Unknown Item (@1)"
22
+msgstr "Unbekannter Gegenstand (@1)"
23
+
24
+#: init.lua
25
+msgid "Any item belonging to the group(s)"
26
+msgstr "Beliebiger Gegenstand aus der Gruppe"
27
+
28
+#: init.lua
29
+msgid "Cooking time"
30
+msgstr "Kochzeit"
31
+
32
+#: init.lua
33
+msgid "Burning time"
34
+msgstr "Brennzeit"
35
+
36
+#: init.lua
37
+msgid "Alternate"
38
+msgstr "Andere"
39
+
40
+#: init.lua
41
+msgid "Recipe @1 of @2"
42
+msgstr "Rezept @1 von @2"
43
+
44
+#: init.lua
45
+msgid ""
46
+"Recipe is too big to\n"
47
+"be displayed (@1x@2)"
48
+msgstr ""
49
+"Rezept ist zu groß\n"
50
+"für die Anzeige (@1x@2)"
51
+
52
+#: init.lua
53
+msgid "Search"
54
+msgstr "Suche"
55
+
56
+#: init.lua
57
+msgid "Reset"
58
+msgstr "Zurücksetzen"
59
+
60
+#: init.lua
61
+msgid "Increase window size"
62
+msgstr "Fenster vergrößern"
63
+
64
+#: init.lua
65
+msgid "Decrease window size"
66
+msgstr "Fenster verkleinern"
67
+
68
+#: init.lua
69
+msgid "Previous page"
70
+msgstr "Vorherige Seite"
71
+
72
+#: init.lua
73
+msgid "Next page"
74
+msgstr "Nächste Seite"
75
+
76
+#: init.lua
77
+msgid "No item to show"
78
+msgstr "Nichts anzuzeigen"
79
+
80
+#: init.lua
81
+msgid "Crafting Guide"
82
+msgstr "Rezeptbuch"
83
+
84
+#: init.lua
85
+msgid "Crafting Guide Sign"
86
+msgstr "Rezepttafel"
87
+
88
+#: init.lua
89
+msgid "Shows a list of available crafting recipes, cooking recipes and fuels"
90
+msgstr "Zeigt eine Liste von verfügbaren Rezepten, Kochrezepten und Brennmaterialien"
0 91
new file mode 100644
... ...
@@ -0,0 +1,91 @@
1
+# SOME DESCRIPTIVE TITLE.
2
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+# This file is distributed under the same license as the PACKAGE package.
4
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+#
6
+msgid ""
7
+msgstr ""
8
+"Project-Id-Version: craftguide\n"
9
+"Report-Msgid-Bugs-To: \n"
10
+"POT-Creation-Date: 2018-03-23 18:35+0100\n"
11
+"PO-Revision-Date: 2018-04-18 02:02+0800\n"
12
+"Language-Team: muhdnurhidayat <mnh48mail@gmail.com>\n"
13
+"MIME-Version: 1.0\n"
14
+"Content-Type: text/plain; charset=UTF-8\n"
15
+"Content-Transfer-Encoding: 8bit\n"
16
+"X-Generator: Poedit 2.0.6\n"
17
+"Last-Translator: MuhdNurHidayat (MNH48) <mnh48mail@gmail.com>\n"
18
+"Plural-Forms: nplurals=1; plural=0;\n"
19
+"Language: ms\n"
20
+
21
+#: init.lua
22
+msgid "Unknown Item (@1)"
23
+msgstr "Item Tidak Diketahui (@1)"
24
+
25
+#: init.lua
26
+msgid "Any item belonging to the group(s)"
27
+msgstr "Sebarang item dari kumpulan"
28
+
29
+#: init.lua
30
+msgid "Cooking time"
31
+msgstr "Tempoh memasak"
32
+
33
+#: init.lua
34
+msgid "Burning time"
35
+msgstr "Tempoh pembakaran"
36
+
37
+#: init.lua
38
+msgid "Alternate"
39
+msgstr "Resipi lain"
40
+
41
+#: init.lua
42
+msgid "Recipe @1 of @2"
43
+msgstr "Resipi @1 dari @2"
44
+
45
+#: init.lua
46
+msgid ""
47
+"Recipe is too big to\n"
48
+"be displayed (@1x@2)"
49
+msgstr ""
50
+"Resipi terlalu besar\n"
51
+"untuk paparan (@1x@2)"
52
+
53
+#: init.lua
54
+msgid "Search"
55
+msgstr "Cari"
56
+
57
+#: init.lua
58
+msgid "Reset"
59
+msgstr "Set semula"
60
+
61
+#: init.lua
62
+msgid "Increase window size"
63
+msgstr "Besarkan saiz tetingkap"
64
+
65
+#: init.lua
66
+msgid "Decrease window size"
67
+msgstr "Kecilkan saiz tetingkap"
68
+
69
+#: init.lua
70
+msgid "Previous page"
71
+msgstr "Halaman sebelumnya"
72
+
73
+#: init.lua
74
+msgid "Next page"
75
+msgstr "Halaman seterusnya"
76
+
77
+#: init.lua
78
+msgid "No item to show"
79
+msgstr "Tiada item untuk dipaparkan"
80
+
81
+#: init.lua
82
+msgid "Crafting Guide"
83
+msgstr "Panduan Pertukangan"
84
+
85
+#: init.lua
86
+msgid "Crafting Guide Sign"
87
+msgstr "Papan Tanda Panduan Pertukangan"
88
+
89
+#: init.lua
90
+msgid "Shows a list of available crafting recipes, cooking recipes and fuels"
91
+msgstr "Menunjukkan senarai resipi pertukangan, resipi memasak dan bahan api yang ada"
0 92
new file mode 100644
... ...
@@ -0,0 +1,90 @@
1
+# Russian translation for craftguide mod.
2
+# Copyright (C) 2018
3
+# This file is distributed under the same license as the craftguide package.
4
+# codexp <codexp@gmx.net>, 2018.
5
+#
6
+#, fuzzy
7
+msgid ""
8
+msgstr ""
9
+"Project-Id-Version: 1.27\n"
10
+"Report-Msgid-Bugs-To: \n"
11
+"POT-Creation-Date: 2018-03-23 00:17+0100\n"
12
+"PO-Revision-Date: \n"
13
+"Last-Translator: \n"
14
+"Language-Team: \n"
15
+"Language: Russian\n"
16
+"MIME-Version: 1.0\n"
17
+"Content-Type: text/plain; charset=UTF-8\n"
18
+"Content-Transfer-Encoding: 8bit\n"
19
+
20
+#: init.lua
21
+msgid "Unknown Item (@1)"
22
+msgstr "Неизвестный элемент (@1)"
23
+
24
+#: init.lua
25
+msgid "Any item belonging to the group(s)"
26
+msgstr "Любой элемент из группы"
27
+
28
+#: init.lua
29
+msgid "Cooking time"
30
+msgstr "Время преготовления"
31
+
32
+#: init.lua
33
+msgid "Burning time"
34
+msgstr "Время горения"
35
+
36
+#: init.lua
37
+msgid "Alternate"
38
+msgstr "Другой"
39
+
40
+#: init.lua
41
+msgid "Recipe @1 of @2"
42
+msgstr "Рецепт @1 из @2"
43
+
44
+#: init.lua
45
+msgid ""
46
+"Recipe is too big to\n"
47
+"be displayed (@1x@2)"
48
+msgstr ""
49
+"Рецепт слишком большой\n"
50
+"для показа (@1x@2)"
51
+
52
+#: init.lua
53
+msgid "Search"
54
+msgstr "Поиск"
55
+
56
+#: init.lua
57
+msgid "Reset"
58
+msgstr "Сброс"
59
+
60
+#: init.lua
61
+msgid "Increase window size"
62
+msgstr "Увеличить окно"
63
+
64
+#: init.lua
65
+msgid "Decrease window size"
66
+msgstr "Уменьшить окно"
67
+
68
+#: init.lua
69
+msgid "Previous page"
70
+msgstr "Предыдущая страница"
71
+
72
+#: init.lua
73
+msgid "Next page"
74
+msgstr "Следущая страница"
75
+
76
+#: init.lua
77
+msgid "No item to show"
78
+msgstr "Нет элемента для показа"
79
+
80
+#: init.lua
81
+msgid "Crafting Guide"
82
+msgstr "книга рецептов крафта"
83
+
84
+#: init.lua
85
+msgid "Crafting Guide Sign"
86
+msgstr "табличка рецептов крафта"
87
+
88
+#: init.lua
89
+msgid "Shows a list of available crafting recipes, cooking recipes and fuels"
90
+msgstr "Показывает список рецептов крафта, преготовления и топливо"
0 91
new file mode 100644
... ...
@@ -0,0 +1,88 @@
1
+# SOME DESCRIPTIVE TITLE.
2
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+# This file is distributed under the same license as the PACKAGE package.
4
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+#
6
+#, fuzzy
7
+msgid ""
8
+msgstr ""
9
+"Project-Id-Version: PACKAGE VERSION\n"
10
+"Report-Msgid-Bugs-To: \n"
11
+"POT-Creation-Date: 2018-03-23 18:35+0100\n"
12
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+"Language-Team: LANGUAGE <LL@li.org>\n"
15
+"Language: \n"
16
+"MIME-Version: 1.0\n"
17
+"Content-Type: text/plain; charset=CHARSET\n"
18
+"Content-Transfer-Encoding: 8bit\n"
19
+
20
+#: init.lua
21
+msgid "Unknown Item (@1)"
22
+msgstr ""
23
+
24
+#: init.lua
25
+msgid "Any item belonging to the group(s)"
26
+msgstr ""
27
+
28
+#: init.lua
29
+msgid "Cooking time"
30
+msgstr ""
31
+
32
+#: init.lua
33
+msgid "Burning time"
34
+msgstr ""
35
+
36
+#: init.lua
37
+msgid "Alternate"
38
+msgstr ""
39
+
40
+#: init.lua
41
+msgid "Recipe @1 of @2"
42
+msgstr ""
43
+
44
+#: init.lua
45
+msgid ""
46
+"Recipe is too big to\n"
47
+"be displayed (@1x@2)"
48
+msgstr ""
49
+
50
+#: init.lua
51
+msgid "Search"
52
+msgstr ""
53
+
54
+#: init.lua
55
+msgid "Reset"
56
+msgstr ""
57
+
58
+#: init.lua
59
+msgid "Increase window size"
60
+msgstr ""
61
+
62
+#: init.lua
63
+msgid "Decrease window size"
64
+msgstr ""
65
+
66
+#: init.lua
67
+msgid "Previous page"
68
+msgstr ""
69
+
70
+#: init.lua
71
+msgid "Next page"
72
+msgstr ""
73
+
74
+#: init.lua
75
+msgid "No item to show"
76
+msgstr ""
77
+
78
+#: init.lua
79
+msgid "Crafting Guide"
80
+msgstr ""
81
+
82
+#: init.lua
83
+msgid "Crafting Guide Sign"
84
+msgstr ""
85
+
86
+#: init.lua
87
+msgid "Shows a list of available crafting recipes, cooking recipes and fuels"
88
+msgstr ""