diff --git a/diff/craftguide.diff/README.md b/diff/craftguide.diff/README.md index 27b5bed..861adfe 100644 --- a/diff/craftguide.diff/README.md +++ b/diff/craftguide.diff/README.md @@ -1,7 +1,5 @@ Craftguide ===================================================================== Main: killbith -Lisc: GPL v3 -Text: WTFPL - By Gambit +Lisc: MIT Link: https://github.com/minetest-mods/craftguide diff --git a/diff/craftguide.diff/README.md.diff b/diff/craftguide.diff/README.md.diff index ae7bd08..2367e1e 100644 --- a/diff/craftguide.diff/README.md.diff +++ b/diff/craftguide.diff/README.md.diff @@ -1,9 +1,9 @@ -1,14c1,7 +1,14c1,5 < ## ![Preview1](http://i.imgur.com/fIPNYkb.png) Crafting Guide ## < < #### A Crafting Guide for Minetest that doesn't suck. #### < -< #### `craftguide` is simply the most comprehensive mod of his category, with the cleanest code. #### +< #### `craftguide` is the most comprehensive mod of its category. #### < #### Consult the [Minetest Wiki](http://wiki.minetest.net/Crafting_guide) for more details and comparisons. #### < < #### This crafting guide is usable with a blue book named *"Crafting Guide"*. #### @@ -17,7 +17,5 @@ > Craftguide > ===================================================================== > Main: killbith -> Lisc: GPL v3 -> Text: WTFPL -> By Gambit +> Lisc: MIT > Link: https://github.com/minetest-mods/craftguide diff --git a/mods/craftguide/README.md b/mods/craftguide/README.md index 27b5bed..861adfe 100644 --- a/mods/craftguide/README.md +++ b/mods/craftguide/README.md @@ -1,7 +1,5 @@ Craftguide ===================================================================== Main: killbith -Lisc: GPL v3 -Text: WTFPL - By Gambit +Lisc: MIT Link: https://github.com/minetest-mods/craftguide diff --git a/mods/craftguide/README.md.diff b/mods/craftguide/README.md.diff index ae7bd08..2367e1e 100644 --- a/mods/craftguide/README.md.diff +++ b/mods/craftguide/README.md.diff @@ -1,9 +1,9 @@ -1,14c1,7 +1,14c1,5 < ## ![Preview1](http://i.imgur.com/fIPNYkb.png) Crafting Guide ## < < #### A Crafting Guide for Minetest that doesn't suck. #### < -< #### `craftguide` is simply the most comprehensive mod of his category, with the cleanest code. #### +< #### `craftguide` is the most comprehensive mod of its category. #### < #### Consult the [Minetest Wiki](http://wiki.minetest.net/Crafting_guide) for more details and comparisons. #### < < #### This crafting guide is usable with a blue book named *"Crafting Guide"*. #### @@ -17,7 +17,5 @@ > Craftguide > ===================================================================== > Main: killbith -> Lisc: GPL v3 -> Text: WTFPL -> By Gambit +> Lisc: MIT > Link: https://github.com/minetest-mods/craftguide diff --git a/mods/craftguide/depends.txt b/mods/craftguide/depends.txt index 84ff3c0..368ca56 100644 --- a/mods/craftguide/depends.txt +++ b/mods/craftguide/depends.txt @@ -1 +1,2 @@ sfinv_buttons? +intllib? diff --git a/mods/craftguide/init.lua b/mods/craftguide/init.lua index d1d5c18..78cb227 100644 --- a/mods/craftguide/init.lua +++ b/mods/craftguide/init.lua @@ -4,12 +4,22 @@ local get_recipe, get_recipes = mt.get_craft_recipe, mt.get_all_craft_recipes local get_result, show_formspec = mt.get_craft_result, mt.show_formspec local reg_items = mt.registered_items +craftguide.path = minetest.get_modpath("craftguide") + +-- Intllib +local S = dofile(craftguide.path .. "/intllib.lua") +craftguide.intllib = S + -- Lua 5.3 removed `table.maxn`, use this alternative in case of breakage: -- https://github.com/kilbith/xdecor/blob/master/handlers/helpers.lua#L1 local remove, maxn, sort = table.remove, table.maxn, table.sort local min, max, floor, ceil = math.min, math.max, math.floor, math.ceil -local DEFAULT_SIZE, MIN_LIMIT, MAX_LIMIT = 10, 9, 12 +local DEFAULT_SIZE = 10 +local MIN_LIMIT, MAX_LIMIT = 9, 12 +DEFAULT_SIZE = min(MAX_LIMIT, max(MIN_LIMIT, DEFAULT_SIZE)) + +local GRID_LIMIT = 5 local group_stereotypes = { wool = "wool:white", @@ -64,36 +74,40 @@ function craftguide:get_tooltip(item, recipe_type, cooktime, groups) item_desc = reg_items[item].description end else - return tooltip .. "Unknown Item (" .. item .. ")]" + return tooltip .. S("Unknown Item (@1)", item) .. "]" end if groups then - local groupstr = "Any item belonging to the " + local groupstr = "" for i = 1, #groups do - groupstr = groupstr .. colorize(groups[i]) .. - (groups[i + 1] and " and " or "") + groupstr = groupstr .. + colorize(groups[i]) .. (groups[i + 1] and ", " or "") end - tooltip = tooltip .. groupstr .. " group(s)" + + tooltip = tooltip .. S("Any item belonging to the group(s)") .. ": " .. groupstr end if recipe_type == "cooking" then - tooltip = tooltip .. item_desc .. "\nCooking time: " .. colorize(cooktime) + tooltip = tooltip .. item_desc .. "\n" + .. S("Cooking time") .. ": " .. colorize(cooktime) end if fueltime > 0 then - tooltip = tooltip .. item_desc .. "\nBurning time: " .. colorize(fueltime) + tooltip = tooltip .. item_desc .. "\n" + .. S("Burning time") .. ": " .. colorize(fueltime) end return has_extras and tooltip .. "]" or "" end -function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes) +function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes, show_usage) local formspec, recipes_total = "", #recipes if recipes_total > 1 then formspec = formspec .. - "button[0," .. (iY + 3.3) .. ";2,1;alternate;Alternate]" .. - "label[0," .. (iY + 2.8) .. ";Recipe " .. - recipe_num .. " of " .. recipes_total .. "]" + "button[0," .. (iY + 3.3) .. ";2,1;alternate;" .. S("Alternate") .. "]" .. + "label[0," .. (iY + 2.8) .. ";" .. + (show_usage and S("Usage") or S("Recipe")) .. " " .. + S("@1 of @2", recipe_num, recipes_total) .. "]" end local recipe_type = recipes[recipe_num].type @@ -104,7 +118,7 @@ function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes) local icon = recipe_type == "cooking" and "furnace" or "shapeless" formspec = formspec .. "image[" .. (xoffset - 0.8) .. "," .. (iY + 1.7) .. - ".5;0.5,0.5;craftguide_" .. icon .. ".png]" + ";0.5,0.5;craftguide_" .. icon .. ".png]" end if width == 0 then @@ -112,20 +126,18 @@ function craftguide:get_recipe(iY, xoffset, tooltip, item, recipe_num, recipes) end local rows = ceil(maxn(items) / width) - local btn_size, craftgrid_limit = 1, 5 - if recipe_type == "normal" and - width > craftgrid_limit or rows > craftgrid_limit then + if recipe_type == "normal" and (width > GRID_LIMIT or rows > GRID_LIMIT) then formspec = formspec .. - "label[" .. xoffset .. "," .. (iY + 2) .. - ";Recipe is too big to\nbe displayed (" .. - width .. "x" .. rows .. ")]" + "label[" .. xoffset .. "," .. (iY + 2) .. ";" .. + S("Recipe is too big to\nbe displayed (@1x@2)", width, rows) .. "]" else + local btn_size = 1 for i, v in pairs(items) do local X = (i - 1) % width + xoffset local Y = ceil(i / width + (iY + 2) - min(2, rows)) - if recipe_type == "normal" and width > 3 or rows > 3 then + if recipe_type == "normal" and (width > 3 or rows > 3) then btn_size = width > 3 and 3 / width or 3 / rows X = btn_size * (i % width) + xoffset 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) local output = recipes[recipe_num].output return formspec .. "image[" .. (xoffset - 1) .. "," .. (iY + 2.35) .. - ".12;0.9,0.7;craftguide_arrow.png]" .. + ";0.9,0.7;craftguide_arrow.png]" .. "item_image_button[" .. (xoffset - 2) .. "," .. (iY + 2.2) .. ";1,1;" .. output .. ";" .. item .. ";]" .. tooltip end @@ -166,18 +178,21 @@ function craftguide:get_formspec(player_name, is_fuel) background[1,1;1,1;craftguide_bg.png;true] button[2.4,0.23;0.8,0.5;search;?] button[3.05,0.23;0.8,0.5;clear;X] - tooltip[search;Search] - tooltip[clear;Reset] - tooltip[size_inc;Increase window size] - tooltip[size_dec;Decrease window size] - field_close_on_enter[filter;false] ]] .. + field_close_on_enter[filter;false] + ]] .. + "tooltip[search;" .. S("Search") .. "]" .. + "tooltip[clear;" .. S("Reset") .. "]" .. + "tooltip[size_inc;" .. S("Increase window size") .. "]" .. + "tooltip[size_dec;" .. S("Decrease window size") .. "]" .. + "tooltip[prev;" .. S("Previous page") .. "]" .. + "tooltip[next;" .. S("Next page") .. "]" .. "button[" .. (data.iX * 0.48) .. ",-0.02;0.7,1;size_inc;+]" .. "button[" .. ((data.iX * 0.48) + 0.5) .. ",-0.02;0.7,1;size_dec;-]" .. - "button[" .. (data.iX - 3.1) .. ".4,0;0.8,0.95;prev;<]" .. - "label[" .. (data.iX - 2.2) .. ".1,0.18;" .. + "button[" .. (data.iX - 3.1) .. ",0;0.8,0.95;prev;<]" .. + "label[" .. (data.iX - 2.2) .. ",0.18;" .. colorize(data.pagenum) .. " / " .. data.pagemax .. "]" .. - "button[" .. (data.iX - 1.2) .. ".2,0;0.8,0.95;next;>]" .. + "button[" .. (data.iX - 1.2) .. ",0;0.8,0.95;next;>]" .. "field[0.3,0.32;2.5,1;filter;;" .. mt.formspec_escape(data.filter) .. "]" @@ -186,7 +201,8 @@ function craftguide:get_formspec(player_name, is_fuel) if not next(data.items) then formspec = formspec .. - "label[" .. (xoffset - (even_num and 1.5 or 1)) .. ",2;No item to show]" + "label[" .. (xoffset - (even_num and 1.5 or 1)) .. ",2;" .. + S("No item to show") .. "]" end local first_item = (data.pagenum - 1) * ipp @@ -206,16 +222,20 @@ function craftguide:get_formspec(player_name, is_fuel) if not data.recipes_item or (is_fuel and not get_recipe(data.item).items) then formspec = formspec .. "image[" .. (xoffset - 1) .. "," .. (iY + 2.35) .. - ".12;0.9,0.7;craftguide_arrow.png]" .. + ";0.9,0.7;craftguide_arrow.png]" .. "item_image_button[" .. xoffset .. "," .. (iY + 2.2) .. ";1,1;" .. data.item .. ";" .. data.item .. ";]" .. tooltip .. "image[" .. (xoffset - 2) .. "," .. (iY + 2.18) .. ";1,1;craftguide_fire.png]" else + local show_usage = data.show_usage formspec = formspec .. - self:get_recipe(iY, xoffset, tooltip, data.item, - data.recipe_num, data.recipes_item) + self:get_recipe(iY, xoffset, tooltip, + data.item, + data.rnum, + (show_usage and data.usages or data.recipes_item), + show_usage) end end @@ -282,7 +302,7 @@ function craftguide:get_init_items() local items_list, counter = {}, 0 for name, def in pairs(reg_items) do local is_fuel = get_fueltime(name) > 0 - if not (def.groups.not_in_creative_inventory == 1) and + if (not (def.groups.not_in_craft_guide == 1 or def.groups.not_in_creative_inventory == 1)) and (get_recipe(name).items or is_fuel) and def.description and def.description ~= "" then @@ -328,26 +348,70 @@ function craftguide:get_filter_items(data, player) if not data.items then data.init_filter_items = filtered_list end - elseif filter ~= "" and not datas.searches[filter] then - datas.searches[filter] = filtered_list + elseif filter ~= "" then + -- Cache the results only if searched 2 times + if datas.searches[filter] == nil then + datas.searches[filter] = false + else + datas.searches[filter] = filtered_list + end end data.items = filtered_list end +function craftguide:get_item_usages(item) + local usages = {} + for name, def in pairs(reg_items) do + if not (def.groups.not_in_creative_inventory == 1) and + (get_recipe(name).items) and def.description and def.description ~= "" then + local recipes = get_recipes(name) + for i = 1, #recipes do + local recipe = recipes[i] + local items = recipe.items + + for j = 1, #items do + if items[j] == item then + usages[#usages + 1] = { + type = recipe.type, + items = items, + width = recipe.width, + output = recipe.output, + } + break + end + end + end + end + end + + return usages +end + mt.register_on_player_receive_fields(function(player, formname, fields) if formname ~= "craftguide" then return end local player_name = player:get_player_name() local data = datas[player_name] if fields.clear then - data.filter, data.item, data.pagenum, data.recipe_num = "", nil, 1, 1 + data.show_usage = nil + data.filter = "" + data.item = nil + data.pagenum = 1 + data.rnum = 1 + data.items = progressive_mode and data.init_filter_items or datas.init_items craftguide:get_formspec(player_name) elseif fields.alternate then - local recipe = data.recipes_item[data.recipe_num + 1] - data.recipe_num = recipe and data.recipe_num + 1 or 1 + local num + if data.show_usage then + num = data.usages[data.rnum + 1] + else + num = data.recipes_item[data.rnum + 1] + end + + data.rnum = num and data.rnum + 1 or 1 craftguide:get_formspec(player_name) elseif (fields.key_enter_field == "filter" or fields.search) and @@ -359,11 +423,13 @@ mt.register_on_player_receive_fields(function(player, formname, fields) elseif fields.prev or fields.next then data.pagenum = data.pagenum - (fields.prev and 1 or -1) + if data.pagenum > data.pagemax then data.pagenum = 1 elseif data.pagenum == 0 then data.pagenum = data.pagemax end + craftguide:get_formspec(player_name) elseif (fields.size_inc and data.iX < MAX_LIMIT) or @@ -382,12 +448,14 @@ mt.register_on_player_receive_fields(function(player, formname, fields) local recipes = get_recipes(item) if not recipes and not is_fuel then return end - if item == data.item then - if data.recipes_item and #data.recipes_item >= 2 then - local recipe = data.recipes_item[data.recipe_num + 1] - data.recipe_num = recipe and data.recipe_num + 1 or 1 - craftguide:get_formspec(player_name) + if not data.show_usage and item == data.item and not progressive_mode then + data.usages = craftguide:get_item_usages(item) + if next(data.usages) then + data.show_usage = true + data.rnum = 1 end + + craftguide:get_formspec(player_name) else if progressive_mode then local inv = player:get_inventory() @@ -397,9 +465,11 @@ mt.register_on_player_receive_fields(function(player, formname, fields) recipes = craftguide:recipe_in_inv(inv, item, recipes) end - data.item = item - data.recipe_num = 1 + data.item = item data.recipes_item = recipes + data.rnum = 1 + data.show_usage = nil + craftguide:get_formspec(player_name, is_fuel) end end @@ -409,7 +479,7 @@ end) function craftguide:on_use(itemstack, user) if not datas.init_items then - craftguide:get_init_items() + self:get_init_items() end local player_name = user:get_player_name() @@ -418,16 +488,17 @@ function craftguide:on_use(itemstack, user) if progressive_mode or not data then datas[player_name] = {filter = "", pagenum = 1, iX = DEFAULT_SIZE} if progressive_mode then - craftguide:get_filter_items(datas[player_name], user) + self:get_filter_items(datas[player_name], user) end - craftguide:get_formspec(player_name) + + self:get_formspec(player_name) else show_formspec(player_name, "craftguide", data.formspec) end end mt.register_craftitem("craftguide:book", { - description = "Crafting Guide", + description = S("Crafting Guide"), inventory_image = "craftguide_book.png", wield_image = "craftguide_book.png", stack_max = 1, @@ -438,7 +509,7 @@ mt.register_craftitem("craftguide:book", { }) mt.register_node("craftguide:sign", { - description = "Crafting Guide Sign", + description = S("Crafting Guide Sign"), drawtype = "nodebox", tiles = {"craftguide_sign.png"}, inventory_image = "craftguide_sign_inv.png", @@ -455,7 +526,7 @@ mt.register_node("craftguide:sign", { }, on_construct = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("infotext", "Crafting Guide Sign") + meta:set_string("infotext", S("Crafting Guide Sign")) end, on_rightclick = function(pos, node, user, itemstack) craftguide:on_use(itemstack, user) @@ -488,8 +559,8 @@ mt.register_craft({ if rawget(_G, "sfinv_buttons") then sfinv_buttons.register_button("craftguide", { - title = "Crafting guide", - tooltip = "Shows a list of available crafting recipes, cooking recipes and fuels", + title = S("Crafting Guide"), + tooltip = S("Shows a list of available crafting recipes, cooking recipes and fuels"), action = function(player) craftguide:on_use(nil, player) end, @@ -498,3 +569,26 @@ if rawget(_G, "sfinv_buttons") then end mt.register_alias("xdecor:crafting_guide", "craftguide:book") + +--[[ Custom recipes (>3x3) test code + +mt.register_craftitem("craftguide:custom_recipe_test", { + description = "Custom Recipe Test", +}) + +local cr = {} +for x = 1, 6 do + cr[x] = {} + for i = 1, 10 - x do + cr[x][i] = {} + for j = 1, 10 - x do + cr[x][i][j] = "group:wood" + end + end + + mt.register_craft({ + output = "craftguide:custom_recipe_test", + recipe = cr[x] + }) +end +]] diff --git a/mods/craftguide/intllib.lua b/mods/craftguide/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/mods/craftguide/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/mods/craftguide/locale/de.po b/mods/craftguide/locale/de.po new file mode 100644 index 0000000..8e5a8de --- /dev/null +++ b/mods/craftguide/locale/de.po @@ -0,0 +1,90 @@ +# German translation for craftguide mod. +# Copyright (C) 2018 +# This file is distributed under the same license as the craftguide package. +# codexp , 2018. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: 1.27\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-23 00:17+0100\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: German\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua +msgid "Unknown Item (@1)" +msgstr "Unbekannter Gegenstand (@1)" + +#: init.lua +msgid "Any item belonging to the group(s)" +msgstr "Beliebiger Gegenstand aus der Gruppe" + +#: init.lua +msgid "Cooking time" +msgstr "Kochzeit" + +#: init.lua +msgid "Burning time" +msgstr "Brennzeit" + +#: init.lua +msgid "Alternate" +msgstr "Andere" + +#: init.lua +msgid "Recipe @1 of @2" +msgstr "Rezept @1 von @2" + +#: init.lua +msgid "" +"Recipe is too big to\n" +"be displayed (@1x@2)" +msgstr "" +"Rezept ist zu groß\n" +"für die Anzeige (@1x@2)" + +#: init.lua +msgid "Search" +msgstr "Suche" + +#: init.lua +msgid "Reset" +msgstr "Zurücksetzen" + +#: init.lua +msgid "Increase window size" +msgstr "Fenster vergrößern" + +#: init.lua +msgid "Decrease window size" +msgstr "Fenster verkleinern" + +#: init.lua +msgid "Previous page" +msgstr "Vorherige Seite" + +#: init.lua +msgid "Next page" +msgstr "Nächste Seite" + +#: init.lua +msgid "No item to show" +msgstr "Nichts anzuzeigen" + +#: init.lua +msgid "Crafting Guide" +msgstr "Rezeptbuch" + +#: init.lua +msgid "Crafting Guide Sign" +msgstr "Rezepttafel" + +#: init.lua +msgid "Shows a list of available crafting recipes, cooking recipes and fuels" +msgstr "Zeigt eine Liste von verfügbaren Rezepten, Kochrezepten und Brennmaterialien" diff --git a/mods/craftguide/locale/ms.po b/mods/craftguide/locale/ms.po new file mode 100644 index 0000000..56a1c20 --- /dev/null +++ b/mods/craftguide/locale/ms.po @@ -0,0 +1,91 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: craftguide\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-23 18:35+0100\n" +"PO-Revision-Date: 2018-04-18 02:02+0800\n" +"Language-Team: muhdnurhidayat \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: MuhdNurHidayat (MNH48) \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: ms\n" + +#: init.lua +msgid "Unknown Item (@1)" +msgstr "Item Tidak Diketahui (@1)" + +#: init.lua +msgid "Any item belonging to the group(s)" +msgstr "Sebarang item dari kumpulan" + +#: init.lua +msgid "Cooking time" +msgstr "Tempoh memasak" + +#: init.lua +msgid "Burning time" +msgstr "Tempoh pembakaran" + +#: init.lua +msgid "Alternate" +msgstr "Resipi lain" + +#: init.lua +msgid "Recipe @1 of @2" +msgstr "Resipi @1 dari @2" + +#: init.lua +msgid "" +"Recipe is too big to\n" +"be displayed (@1x@2)" +msgstr "" +"Resipi terlalu besar\n" +"untuk paparan (@1x@2)" + +#: init.lua +msgid "Search" +msgstr "Cari" + +#: init.lua +msgid "Reset" +msgstr "Set semula" + +#: init.lua +msgid "Increase window size" +msgstr "Besarkan saiz tetingkap" + +#: init.lua +msgid "Decrease window size" +msgstr "Kecilkan saiz tetingkap" + +#: init.lua +msgid "Previous page" +msgstr "Halaman sebelumnya" + +#: init.lua +msgid "Next page" +msgstr "Halaman seterusnya" + +#: init.lua +msgid "No item to show" +msgstr "Tiada item untuk dipaparkan" + +#: init.lua +msgid "Crafting Guide" +msgstr "Panduan Pertukangan" + +#: init.lua +msgid "Crafting Guide Sign" +msgstr "Papan Tanda Panduan Pertukangan" + +#: init.lua +msgid "Shows a list of available crafting recipes, cooking recipes and fuels" +msgstr "Menunjukkan senarai resipi pertukangan, resipi memasak dan bahan api yang ada" diff --git a/mods/craftguide/locale/ru.po b/mods/craftguide/locale/ru.po new file mode 100644 index 0000000..e99d0c6 --- /dev/null +++ b/mods/craftguide/locale/ru.po @@ -0,0 +1,90 @@ +# Russian translation for craftguide mod. +# Copyright (C) 2018 +# This file is distributed under the same license as the craftguide package. +# codexp , 2018. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: 1.27\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-23 00:17+0100\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: Russian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua +msgid "Unknown Item (@1)" +msgstr "Неизвестный элемент (@1)" + +#: init.lua +msgid "Any item belonging to the group(s)" +msgstr "Любой элемент из группы" + +#: init.lua +msgid "Cooking time" +msgstr "Время преготовления" + +#: init.lua +msgid "Burning time" +msgstr "Время горения" + +#: init.lua +msgid "Alternate" +msgstr "Другой" + +#: init.lua +msgid "Recipe @1 of @2" +msgstr "Рецепт @1 из @2" + +#: init.lua +msgid "" +"Recipe is too big to\n" +"be displayed (@1x@2)" +msgstr "" +"Рецепт слишком большой\n" +"для показа (@1x@2)" + +#: init.lua +msgid "Search" +msgstr "Поиск" + +#: init.lua +msgid "Reset" +msgstr "Сброс" + +#: init.lua +msgid "Increase window size" +msgstr "Увеличить окно" + +#: init.lua +msgid "Decrease window size" +msgstr "Уменьшить окно" + +#: init.lua +msgid "Previous page" +msgstr "Предыдущая страница" + +#: init.lua +msgid "Next page" +msgstr "Следущая страница" + +#: init.lua +msgid "No item to show" +msgstr "Нет элемента для показа" + +#: init.lua +msgid "Crafting Guide" +msgstr "книга рецептов крафта" + +#: init.lua +msgid "Crafting Guide Sign" +msgstr "табличка рецептов крафта" + +#: init.lua +msgid "Shows a list of available crafting recipes, cooking recipes and fuels" +msgstr "Показывает список рецептов крафта, преготовления и топливо" diff --git a/mods/craftguide/locale/template.pot b/mods/craftguide/locale/template.pot new file mode 100644 index 0000000..8f8470d --- /dev/null +++ b/mods/craftguide/locale/template.pot @@ -0,0 +1,88 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-23 18:35+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua +msgid "Unknown Item (@1)" +msgstr "" + +#: init.lua +msgid "Any item belonging to the group(s)" +msgstr "" + +#: init.lua +msgid "Cooking time" +msgstr "" + +#: init.lua +msgid "Burning time" +msgstr "" + +#: init.lua +msgid "Alternate" +msgstr "" + +#: init.lua +msgid "Recipe @1 of @2" +msgstr "" + +#: init.lua +msgid "" +"Recipe is too big to\n" +"be displayed (@1x@2)" +msgstr "" + +#: init.lua +msgid "Search" +msgstr "" + +#: init.lua +msgid "Reset" +msgstr "" + +#: init.lua +msgid "Increase window size" +msgstr "" + +#: init.lua +msgid "Decrease window size" +msgstr "" + +#: init.lua +msgid "Previous page" +msgstr "" + +#: init.lua +msgid "Next page" +msgstr "" + +#: init.lua +msgid "No item to show" +msgstr "" + +#: init.lua +msgid "Crafting Guide" +msgstr "" + +#: init.lua +msgid "Crafting Guide Sign" +msgstr "" + +#: init.lua +msgid "Shows a list of available crafting recipes, cooking recipes and fuels" +msgstr ""