code:
-- xpanes/init.lua

-- Load support for MT game translation.
local S = minetest.get_translator("xpanes")

local function is_pane(pos)
	return minetest.get_item_group(minetest.get_node(pos).name, "pane") > 0
end

local function connects_dir(pos, name, dir)
	local aside = vector.add(pos, minetest.facedir_to_dir(dir))
	if is_pane(aside) then
		return true
	end

	local connects_to = minetest.registered_nodes[name].connects_to
	if not connects_to then
		return false
	end
	local list = minetest.find_nodes_in_area(aside, aside, connects_to)

	if #list > 0 then
		return true
	end

	return false
end

local function swap(pos, node, name, param2)
	if node.name == name and node.param2 == param2 then
		return
	end

	minetest.swap_node(pos, {name = name, param2 = param2})
end

local function update_pane(pos)
	if not is_pane(pos) then
		return
	end
	local node = minetest.get_node(pos)
	local name = node.name
	if name:sub(-5) == "_flat" then
		name = name:sub(1, -6)
	end

	local any = node.param2
	local c = {}
	local count = 0
	for dir = 0, 3 do
		c[dir] = connects_dir(pos, name, dir)
		if c[dir] then
			any = dir
			count = count + 1
		end
	end

	if count == 0 then
		swap(pos, node, name .. "_flat", any)
	elseif count == 1 then
		swap(pos, node, name .. "_flat", (any + 1) % 4)
	elseif count == 2 then
		if (c[0] and c[2]) or (c[1] and c[3]) then
			swap(pos, node, name .. "_flat", (any + 1) % 4)
		else
			swap(pos, node, name, 0)
		end
	else
		swap(pos, node, name, 0)
	end
end

minetest.register_on_placenode(function(pos, node)
	if minetest.get_item_group(node, "pane") then
		update_pane(pos)
	end
	for i = 0, 3 do
		local dir = minetest.facedir_to_dir(i)
		update_pane(vector.add(pos, dir))
	end
end)

minetest.register_on_dignode(function(pos)
	for i = 0, 3 do
		local dir = minetest.facedir_to_dir(i)
		update_pane(vector.add(pos, dir))
	end
end)

xpanes = {}
function xpanes.register_pane(name, def)
	for i = 1, 15 do
		minetest.register_alias("xpanes:" .. name .. "_" .. i, "xpanes:" .. name .. "_flat")
	end

	local flatgroups = table.copy(def.groups)
	flatgroups.pane = 1
	minetest.register_node(":xpanes:" .. name .. "_flat", {
		description = def.description,
		drawtype = "nodebox",
		paramtype = "light",
		is_ground_content = false,
		sunlight_propagates = true,
		inventory_image = def.inventory_image,
		wield_image = def.wield_image,
		paramtype2 = "facedir",
		tiles = {
			def.textures[3],
			def.textures[3],
			def.textures[3],
			def.textures[3],
			def.textures[1],
			def.textures[1]
		},
		groups = flatgroups,
		drop = "xpanes:" .. name .. "_flat",
		sounds = def.sounds,
		use_texture_alpha = def.use_texture_alpha and "blend" or "clip",
		node_box = {
			type = "fixed",
			fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}},
		},
		selection_box = {
			type = "fixed",
			fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}},
		},
		connect_sides = { "left", "right" },
	})

	local groups = table.copy(def.groups)
	groups.pane = 1
	groups.not_in_creative_inventory = 1
	minetest.register_node(":xpanes:" .. name, {
		drawtype = "nodebox",
		paramtype = "light",
		is_ground_content = false,
		sunlight_propagates = true,
		description = def.description,
		tiles = {
			def.textures[3],
			def.textures[3],
			def.textures[1]
		},
		groups = groups,
		drop = "xpanes:" .. name .. "_flat",
		sounds = def.sounds,
		use_texture_alpha = def.use_texture_alpha and "blend" or "clip",
		node_box = {
			type = "connected",
			fixed = {{-1/32, -1/2, -1/32, 1/32, 1/2, 1/32}},
			connect_front = {{-1/32, -1/2, -1/2, 1/32, 1/2, -1/32}},
			connect_left = {{-1/2, -1/2, -1/32, -1/32, 1/2, 1/32}},
			connect_back = {{-1/32, -1/2, 1/32, 1/32, 1/2, 1/2}},
			connect_right = {{1/32, -1/2, -1/32, 1/2, 1/2, 1/32}},
		},
		connects_to = {"group:pane", "group:stone", "group:glass", "group:wood", "group:tree"},
	})

	minetest.register_craft({
		output = "xpanes:" .. name .. "_flat 16",
		recipe = def.recipe
	})
end

xpanes.register_pane("pane", {
	description = S("Glass Pane"),
	textures = {"default_glass.png", "", "xpanes_edge.png"},
	inventory_image = "default_glass.png",
	wield_image = "default_glass.png",
	sounds = default.node_sound_glass_defaults(),
	groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3},
	recipe = {
		{"default:glass", "default:glass", "default:glass"},
		{"default:glass", "default:glass", "default:glass"}
	}
})

xpanes.register_pane("obsidian_pane", {
	description = S("Obsidian Glass Pane"),
	textures = {"default_obsidian_glass.png", "", "xpanes_edge_obsidian.png"},
	inventory_image = "default_obsidian_glass.png",
	wield_image = "default_obsidian_glass.png",
	sounds = default.node_sound_glass_defaults(),
	groups = {snappy=2, cracky=3},
	recipe = {
		{"default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass"},
		{"default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass"}
	}
})

xpanes.register_pane("bar", {
	description = S("Steel Bars"),
	textures = {"xpanes_bar.png", "", "xpanes_bar_top.png"},
	inventory_image = "xpanes_bar.png",
	wield_image = "xpanes_bar.png",
	groups = {cracky=2},
	sounds = default.node_sound_metal_defaults(),
	recipe = {
		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}
	}
})

minetest.register_lbm({
	name = "xpanes:gen2",
	nodenames = {"group:pane"},
	action = function(pos, node)
		update_pane(pos)
		for i = 0, 3 do
			local dir = minetest.facedir_to_dir(i)
			update_pane(vector.add(pos, dir))
		end
	end
})

-- Register steel bar doors and trapdoors

if minetest.get_modpath("doors") then

	doors.register("xpanes:door_steel_bar", {
		tiles = {{name = "xpanes_door_steel_bar.png", backface_culling = true}},
		description = S("Steel Bar Door"),
		inventory_image = "xpanes_item_steel_bar.png",
		protected = true,
		groups = {node = 1, cracky = 1, level = 2},
		sounds = default.node_sound_metal_defaults(),
		sound_open = "xpanes_steel_bar_door_open",
		sound_close = "xpanes_steel_bar_door_close",
		gain_open = 0.15,
		gain_close = 0.13,
		recipe = {
			{"xpanes:bar_flat", "xpanes:bar_flat"},
			{"xpanes:bar_flat", "xpanes:bar_flat"},
			{"xpanes:bar_flat", "xpanes:bar_flat"},
		},
	})

	doors.register_trapdoor("xpanes:trapdoor_steel_bar", {
		description = S("Steel Bar Trapdoor"),
		inventory_image = "xpanes_trapdoor_steel_bar.png",
		wield_image = "xpanes_trapdoor_steel_bar.png",
		tile_front = "xpanes_trapdoor_steel_bar.png",
		tile_side = "xpanes_trapdoor_steel_bar_side.png",
		protected = true,
		groups = {node = 1, cracky = 1, level = 2, door = 1},
		sounds = default.node_sound_metal_defaults(),
		sound_open = "xpanes_steel_bar_door_open",
		sound_close = "xpanes_steel_bar_door_close",
		gain_open = 0.15,
		gain_close = 0.13,
	})

	minetest.register_craft({
		output = "xpanes:trapdoor_steel_bar",
		recipe = {
			{"xpanes:bar_flat", "xpanes:bar_flat"},
			{"xpanes:bar_flat", "xpanes:bar_flat"},
		}
	})
end


code:
# textdomain: xpanes
Glass Pane=
Obsidian Glass Pane=
Steel Bars=
Steel Bar Door=
Steel Bar Trapdoor=

repo_name: korkut/MeseCraft

license: mit


code:
# textdomain: xpanes
Glass Pane=Glasscheibe
Obsidian Glass Pane=Obsidianglasscheibe
Steel Bars=Stahlgitter
Steel Bar Door=Stahlgittertür
Steel Bar Trapdoor=Stahlgitterfalltür


code:
# textdomain: xpanes
Glass Pane=Vitra Vitraĵo
Obsidian Glass Pane=Obsidiana Vitra Vitraĵo
Steel Bars=Ŝtalaj Baraĵoj
Steel Bar Door=Ŝtala Baraĵa Pordo
Steel Bar Trapdoor=Ŝtala Baraĵa Plankpordo


code:
# textdomain: xpanes
Glass Pane=Panel de vidrio
Obsidian Glass Pane=Panel de vidrio de obsidiana
Steel Bars=Barras de acero
Steel Bar Door=Puerta de barras de acero
Steel Bar Trapdoor=Trampilla de barras de acero


code:
# textdomain: xpanes
Glass Pane=Panneau de verre
Obsidian Glass Pane=Panneau de verre d'obsidienne
Steel Bars=Barreaux d'acier
Steel Bar Door=Porte en barreaux d'acier
Steel Bar Trapdoor=Trappe en barreaux d'acier


code:
# textdomain: xpanes
Glass Pane=Panel Kaca
Obsidian Glass Pane=Panel Kaca Obsidian
Steel Bars=Batang Baja
Steel Bar Door=Pintu Batang Baja
Steel Bar Trapdoor=Pintu Kolong Batang Baja


code:
# textdomain: xpanes
Glass Pane=Pannello di vetro
Obsidian Glass Pane=Pannello di vetro d'ossidiana
Steel Bars=Sbarre d'acciaio
Steel Bar Door=Porta con sbarre d'acciaio
Steel Bar Trapdoor=Botola con sbarre d'acciaio


code:
# textdomain: xpanes
Glass Pane=板ガラス
Obsidian Glass Pane=黒曜石の板ガラス
Steel Bars=鉄棒の柵
Steel Bar Door=鉄棒のドア
Steel Bar Trapdoor=鉄棒のトラップドア


code:
# textdomain: xpanes
Glass Pane=lo blaci plita
Obsidian Glass Pane=lo je'erma'ablaci blaci plita
Steel Bars=lo gasta garna
Steel Bar Door=lo gasta garna vrogai
Steel Bar Trapdoor=lo gasta garna lolvrogai


code:
# textdomain: xpanes
Glass Pane=Kaca Tingkap
Obsidian Glass Pane=Kaca Tingkap Obsidia
Steel Bars=Jeriji Keluli
Steel Bar Door=Pintu Jeriji Keluli
Steel Bar Trapdoor=Pintu Kolong Jeriji Keluli


code:
# textdomain: xpanes
Glass Pane=Szyba
Obsidian Glass Pane=Obsydianowa szyba
Steel Bars=Stalowe kraty
Steel Bar Door=Drzwi ze stalowych krat
Steel Bar Trapdoor=Właz ze stalowych krat


code:
# textdomain: xpanes
Glass Pane=Painel de Vidro
Obsidian Glass Pane=Painel de Vidro de Obsidiana
Steel Bars=Barras de Aço
Steel Bar Door=Porta de Barras de Aço
Steel Bar Trapdoor=Alçapão de Barras de Aço


code:
# textdomain: xpanes
Glass Pane=Стеклянная Панель
Obsidian Glass Pane=Стеклянная Панель Из Обсидиана
Steel Bars=Стальная Решётка
Steel Bar Door=Стальная Решётчатая Дверь
Steel Bar Trapdoor=Стальной Решётчатый Люк


code:
# textdomain: xpanes
Glass Pane=Tabuľa skla
Obsidian Glass Pane=Tabuľa obsidiánového skla
Steel Bars=Oceľové mreže
Steel Bar Door=Dvere z oceľových mreží
Steel Bar Trapdoor=Padajúce dvere z oceľových mreží


code:
# textdomain: xpanes
Glass Pane=Glasruta
Obsidian Glass Pane=Obsidianglasruta
Steel Bars=Stålgaller
Steel Bar Door=Stålgallerdörr
Steel Bar Trapdoor=Stålgallerfallucka


code:
# textdomain: xpanes
Glass Pane=Скляна Панель
Obsidian Glass Pane=Скляна Панель З Обсидіану
Steel Bars=Сталева Решітка
Steel Bar Door=Сталеві Двері З Решіткою
Steel Bar Trapdoor=Сталевий Люк З Решіткою


code:
# textdomain: xpanes
Glass Pane=玻璃窗
Obsidian Glass Pane=黑曜石玻璃窗
Steel Bars=钢筋
Steel Bar Door=钢筋门
Steel Bar Trapdoor=钢筋活板门


code:
# textdomain: xpanes
Glass Pane=玻璃窗
Obsidian Glass Pane=黑曜石玻璃窗
Steel Bars=鋼筋
Steel Bar Door=鋼筋門
Steel Bar Trapdoor=鋼筋活板門


code:
name = xpanes
description = Minetest Game mod: xpanes
depends = default
optional_depends = doors


code:
afk = {}
-- Interval between movement checks (in seconds).
local INTERVAL = 5

-- Minimum distance to move to register as not AFK (in blocks).
local MINDIST = 1

-- If player does not move within this time, 'sit' player (in seconds) and label them as afk.
local TIMEOUT = 300

local time_afk = {} -- a table indexed by plname that indicates the approximate time since last moved
local last_pos = {} -- a table of position vectors that are indexed by plname
local chat_afk = {} -- a table of booleans indexed by plname that indicate if players are afk, used to indicate if we have placed a chat message that indicates them as afk
local chat_noafk = {} -- a table of booleans indexed by plname that indicate if players are not afk
afk.afk_count = 0
local beds_path = minetest.get_modpath("beds")
local attached_before_afk = {}
-- Function to check if the player is afk.

local function check_moved()
   for _, p in ipairs(minetest.get_connected_players()) do
      local plname = p:get_player_name()
      local in_bed = false
      if beds_path then
         if beds.player[plname] then
            in_bed = true
         end
      end
      local pos = p:get_pos()
      local sit = false -- for now, assume that they are not afk. Well change that if we need to later on in this function
      -- (below) if the player is not registered on the afk and no afk list, add them with them not being afk
      if chat_noafk[plname] == nil then
         attached_before_afk[plname] = default.player_attached[plname]
         chat_afk[plname] = false
         chat_noafk[plname] = true
      end
      -- if the plname index can be found  on the last_pos table then: (the plname index would not be found if they joined since the last interval afk check... we'll get them next time around bc of setting thire name o the table)
      if last_pos[plname] then
         --get the distance between their current position and their last postion, d is distance
         local d = vector.distance(last_pos[plname], pos)
         -- print("Player: "..plname..", Dist: "..d)
         if d < MINDIST then -- if d is less than minimum distance then
            time_afk[plname] = (time_afk[plname] or 0) + INTERVAL -- add the checking interval to the player's time afk (eg not moved) number
            --(below)and if the time not moved (time_afk at index plname) is more than the timeout time then sit them and post afk message to chat if we haven't already
            if time_afk[plname] >= TIMEOUT then --if we've reached timeout on the afk time table or are beyond that timeout then
               default.player_set_animation(p, "sit") -- make sure that the player is sitting
               sit = true --indicate that the player is sitting and that we have caused the sitting, for this iteration (used to keep player's animation as lay if they are dead)
               chat_noafk[plname] = false --take them off the list of players that are not afk
               if chat_afk[plname] == false then  -- so they ARE afk after the timeout, but if they are not on the list of players that we have given an afk chat message about, then give the chat message now, and then indicate that we have given an afk message about them, so that we don't do it again.
                  minetest.chat_send_all("*** "..plname.." is AFK.") -- changed the number of stars to differentiate it from user-generated messages
                  chat_afk[plname] = true
                  attached_before_afk[plname] = default.player_attached[plname] -- for first time afk, the attached state has not been messed with yet by this mod. Save its state now to know whether to unattach the player when they come back
                  afk.afk_count = afk.afk_count + 1
               end
               default.player_attached[plname] = true --I switched this in its order to be after the test for first time afk, so we could determine the original attached state
            end
         else -- oh, wait, if they have moved more than the minumum distance, then reset their afk time
            time_afk[plname] = 0
         end
      end
      if not sit then --if we have not made them sit this iteration then
         last_pos[plname] = pos --set their last postion indicator to their current position for next iteration so we can detect movement
         chat_afk[plname] = false --make sure we know that they are not afk for future reference
         -- If a player returns and the status changes, we print a message to chat.
         if chat_noafk[plname] == false then --if we didn't make them sit this iteration, its bc they are active. If their index on the not_afk list says that they ARE afk, then we haven't updated that info. SO,
            minetest.chat_send_all("*** "..plname.." came back from AFK.") --let everyone know
            afk.afk_count = afk.afk_count - 1
            chat_noafk[plname] = true --and update their status
            if not(attached_before_afk[plname]) then -- only change animation and attached state to false IF they were not attached before they went afk. Let other mods handle setting them to not attached if they caused it
               default.player_attached[plname] = false -- let the server know that they are not attached anymore - the server will stand them up.
               default.player_set_animation(p, "stand") -- and make them stand up. I moved this from where it was setting the stand animation every check, to where it sets it only when coming back from afk
            end
         end
      end
   -- If players are dead and AFK or if they are in bed, keep their model in the lay position, not sit. Spawn particles
      if (p:get_hp() == 0 or in_bed) and sit then --if they are dead or are lying in bed and would otherwise be sitting bc of afk, revoke the sit anim command, instead set it to lay
         default.player_set_animation(p, "lay")
         if p:get_hp() == 0 then
            --spawn fly and stink particles here if they are afk and dead
            minetest.add_particlespawner({
               amount = 15,
               time = INTERVAL,
               minpos = {x=pos.x -.8 , y=pos.y + .1, z=pos.z -.8},
               maxpos = {x=pos.x +.8 , y=pos.y + 1, z=pos.z +.8},
               minvel = {x=0, y=0, z=0},
               maxvel = {x=-.1, y=-.1, z=-0.1},
               minacc = {x=0, y=0, z=0},
               maxacc = {x=0, y=0, z=0},
               minexptime = INTERVAL- .5*INTERVAL,
               maxexptime = INTERVAL,
               minsize = 4,
               maxsize = 4,
               collisiondetection = true,
               vertical = false,
               texture = "afk_fly_anim.png",
               animation = {
                  type = "vertical_frames",
                  aspect_w = 16,
                  -- ^ specify width of a frame in pixels
                  aspect_h = 16,
                  -- ^ specify height of a frame in pixels
                  length = .2,
                  -- ^ specify full loop length
                  },
            })
         end
      end
      if (sit and not(p:get_hp() == 0)) or (in_bed and (not(p:get_hp() == 0))) then-- if they are afk and not dead  then
         -- spawn zzz particles here
          local bed_offset = 0
         if in_bed then
            bed_offset = -1
         end
         minetest.add_particlespawner({
            amount = 5,
            time = INTERVAL,
            minpos = {x=pos.x -.4 , y=pos.y + 1.2 + bed_offset, z=pos.z -.4},
            maxpos = {x=pos.x +.4 , y=pos.y + 1.5 + bed_offset, z=pos.z +.4},
            minvel = {x=0, y=.1, z=0},
            maxvel = {x=0.1, y=.3, z=0.1},
            minacc = {x=0, y=.1, z=0},
            maxacc = {x=0.01, y=.3, z=0.01},
            minexptime = INTERVAL- .5*INTERVAL,
            maxexptime = INTERVAL,
            minsize = 1,
            maxsize = 5,
            collisiondetection = true,
            vertical = false,
            texture = "afk_z_anim.png",
            animation = {

             type = "vertical_frames",
             aspect_w = 16,
             -- ^ specify width of a frame in pixels
             aspect_h = 16,
             -- ^ specify height of a frame in pixels
             length = INTERVAL,
             -- ^ specify full loop length
               },
         })
      end
   end

   minetest.after(INTERVAL, check_moved)
end

minetest.after(INTERVAL, check_moved)

minetest.register_on_leaveplayer(function(player) -- clean things up
   --If player is AFK the count should be lowered!!!!!!!!!!!!!!!!!
   local plname = player:get_player_name()
   if chat_afk[plname] then
      afk.afk_count = afk.afk_count - 1
   end
   time_afk[plname] = nil
   last_pos[plname] = nil
   chat_afk[plname] = nil
   chat_noafk[plname] = nil
   attached_before_afk[plname] = nil
end)


code:
name = afk
description = This mod detects when players are idle, announces it in chat, and sometimes adds particles to show idleness. Designed for multiplayer servers, but can be used in singleplayer too.
optional_depends = beds


code:
edited by MisterE

afk_fly_anim, afk_z, and afk_z_anim by MisterE (CC by 4.0)
https://creativecommons.org/licenses/by/4.0/


code:
# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp
*.sln    merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc	 diff=astextplain
*.DOC	 diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot  diff=astextplain
*.DOT  diff=astextplain
*.pdf  diff=astextplain
*.PDF	 diff=astextplain
*.rtf	 diff=astextplain
*.RTF	 diff=astextplain


code:
#################
## Eclipse
#################

*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath

#################
## Visual Studio
#################

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results

[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
*.ncrunch*
.*crunch*.local.xml

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.Publish.xml
*.pubxml

# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/

# Windows Azure Build Output
csx
*.build.csdef

# Windows Store app package directory
AppPackages/

# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
App_Data/*.mdf
App_Data/*.ldf

#############
## Windows detritus
#############

# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Mac crap
.DS_Store

#############
## Python
#############

*.py[co]

# Packages
*.egg
*.egg-info
dist/
build/
eggs/
parts/
var/
sdist/
develop-eggs/
.installed.cfg

# Installer logs
pip-log.txt

# Unit test / coverage reports
.coverage
.tox

#Translations
*.mo

#Mr Developer
.mr.developer.cfg


code:
unused_args = false
allow_defined_top = true

globals = {
	"minetest", "awards",
}

read_globals = {
	string = {fields = {"split"}},
	table = {fields = {"copy", "getn"}},
	"vector", "default", "ItemStack",
	"dump", "sfinv", "intllib",
	"unified_inventory",
}


code:
language: generic
sudo: false
addons:
  apt:
    packages:
    - luarocks
before_install:
  - luarocks install --local luacheck
script:
- $HOME/.luarocks/bin/luacheck --no-color .
notifications:
  email: false


code:
# Awards

Adds awards/achievements to Minetest (plus a very good API).

by [rubenwardy](https://rubenwardy.com), licensed under MIT.
With thanks to Wuzzy, kaeza, and MrIbby.

Majority of awards are back ported from Calinou's old fork in Carbone, under same license.

# Introduction

## Awards and Triggers

An award is a single unlockable unit, registered like so:

```lua
awards.register_award("mymod:award", {
	description = "My Example Award",
})
```

Awards are unlocked either using `awards.unlock()` or by a trigger being
fullfilled. A trigger is a condition which unlocks an award. Triggers are
registered at the same time as an award is registered:

```lua
awards.register_award("mymod:award", {
	description = "My Example Award",
	trigger = {
		type   = "dig",
		node   = "default:stone",
		target = 10,
	},
})
```

The above trigger type is an example of a counted_key trigger:
rather than a single counter there's a counter per key - in this
case the key is the value of the `node` field.

If you leave out the key in a `counted_key` trigger, then the total will be used
instead. For example, here is an award which unlocks after you've placed 10
nodes of any type:

```lua
awards.register_award("mymod:award", {
	description = "Place 10 nodes!",
	trigger = {
		type   = "place",
		target = 10,
	},
})
```

You can also register an *Unlock Function*, which can return the name of an
award to unlock it:

```lua
awards.register_award("mymod:award", {
	title = "Lava Miner",
	description = "Mine any block while being very close to lava.",
})

awards.register_on_dig(function(player, data)
	local pos = player:get_pos()
	if pos and (minetest.find_node_near(pos, 1, "default:lava_source") or
			minetest.find_node_near(pos, 1, "default:lava_flowing")) then
		return "mymod:award"
	end
	return nil
end)
```

The above is a bad example as you don't actually need the stats data given.
It would be better to register a `dignode` callback and call `awards.unlock()`
if the condition is met.

## Trigger Types

The trigger type is used to determine which event will cause the trigger will be
fulfilled. The awards mod comes with a number of predefined types, documented
in [Builtin Trigger Types](#builtin-trigger-types).

Trigger types are registered like so:

```lua
awards.register_trigger("chat", {
	type = "counted",
	progress = "@1/@2 chat messages",
	auto_description = { "Send a chat message", "Chat @1 times" },
})

minetest.register_on_chat_message(function(name, message)
	local player = minetest.get_player_by_name(name)
	if not player or string.find(message, "/")  then
		return
	end
	awards.notify_chat(player)
end)
```

A trigger type has a type as well, which determines how the data is stored and
also how the trigger is fulfilled.

**Trigger Type Types:**

* **custom** requires you handle the calling of awards.unlock() yourself. You also
  need to implement on_register() yourself. You'll also probably want to implement
  `on_register()` to catch awards registered with your trigger type.
* **counted** stores a single counter for each player which is incremented by calling
  `trigger:notify(player)`. Good for homogenous actions like number of chat messages,
  joins, and the like.
* **counted_key** stores a table of counters each indexed by a key. There is also
  a total field (`__total`) which stores the sum of all counters. A counter is
  incremented by calling `trigger:notify(player, key)`. This is good for things like
  placing nodes or crafting items, where the key will be the item or node name.
  If `key` is an item, then you should also add `key_is_item = true` to the
  trigger type definition.

As said, you could use a custom trigger if none of the other ones match your needs.
Here's an example.

```lua
awards.register_trigger("foo", {
	type             = "custom",
	progress         = "@1/@2 foos",
	auto_description = { "Do a foo", "Foo @1 times" },

	on_register = function(self, award)
		print(award.name .. " was registered with foo trigger type")
	end,
})

minetest.register_on_foo(function()
	for _, trigger in pairs(awards.on.foo) do
		-- trigger is either a trigger tables or
		--   or an unlock function.

		-- some complex logic
		if condition then
			awards.unlock(trigger)
		end
	end
end)

```

## Award Difficulty

Difficulty is used to determine how awards are sorted in awards lists.

If the award trigger is counted, ie: the trigger requires a `target` property,
then the difficulty multipler is timesd by `target` to get the overall difficulty.
If the award isn't a counted type then the difficulty multiplier is used as the
overal difficulty. Award difficulty affects how awards are sorted in a list -
more difficult awards are further down the list.

In real terms, `difficulty` is a relative difficulty to do one unit of the trigger
if its counted, otherwise it's the relative difficulty of completely doing the
award (if not-counted). For the `dig` trigger type, 1 unit would be 1 node dug.

Actual code used to calculate award difficulty:

```lua
local difficulty = def.difficulty or 1
if def.trigger and def.trigger.target then
	difficulty = difficulty * def.trigger.target
end
```

# API

## Awards

* `awards.register_award(name, def)`, the def table has the following fields:
	* `title` - title of the award (defaults to name)
	* `description` - longer description of the award, displayed in Awards tab
	* `difficulty` - see [Award Difficulty](#award-difficulty).
	* `requires` - list of awards that need to be unlocked before this one
		is visible.
	* `prizes` - list of items to give when you earn the award
	* `secret` - boolean if this award is secret (i.e. showed on awards list)
	* `sound` - `SimpleSoundSpec` table to play on unlock.
		`false` to disable unlock sound.
	* `icon` - the icon image. Defaults to `awards_unknown.png`.
	* `hud_background` - the background image used in the HUD to contain the text and icon.
	                 Defaults to `awards_bg_default.png`.
	* `trigger` - trigger definition, see [Builtin Trigger Types](#builtin-trigger-types).
	* `on_unlock(name, def)` - callback on unlock.
* `awards.registered_awards` - table of award name to definition.
* `awards.register_on_unlock(func(name, def))`
	* `name` is the player name
	* `def` is the award def.
	* return true to cancel HUD from appearing.
* `awards.unlock(player_name, award_name)`
	* gives an award to a player
* `awards.get_award_states(player_name)`
	* Returns list of tables, sorted by `score`, each having the fields:

		```lua
		{
			name     = "mymod:awardname",
			def      = {}, -- Award definition
			unlocked = true, -- Whether award has been unlocked
			started  = true, -- Whether any progress has been made
			score    = 0, -- Score used in sorting

			-- Either a table or nil
			-- Will be nil if progress is indeterminable or
			-- if the award is unlocked
			progress = {
				current = 5,
				target  = 10,
				label   = "label", -- Label to show over progress bar
			}
		}
		```

## Triggers

* `awards.register_trigger(name, def)`, the def table has the following fields:
	* `type` - see trigger type types in [Trigger Types](#trigger-types).
	* `progress` - used to format progress, defaults to "%1/%2".
	* `auto_description` - a table of two elements. Each element is a format string. Element 1 is singular, element 2 is plural. Used for the award description (not title) if none is given.
	* `on_register(self, award_def)` - called when an award registers with this type.
	* "counted_key" only:
		* `auto_description_total` - Used if the trigger is for the total.
		* `get_key(self, def)` - get key for particular award, return nil for a total.
		* `key_is_item` - true if the key is an item name. On notify(),
			any watched groups will also be notified as `group:groupname` keys.
* `awards.registered_triggers` - table of trigger name to definition.

## Builtin Trigger Types

Callbacks (register a function to be run)

* dig type: Dig a node.
	* node: the dug node type. If nil, all dug nodes are counted
* place type: Place a node.
	* node: the placed node type. If nil, all placed nodes are counted
* craft type: Craft something.
	* item: the crafted item type. If nil, all crafted items are counted
* death type: Die.
	* reason: the death reason, one of the types in PlayerHPChangeReason (see lua_api.txt)
				or nil for total deaths.
* chat type: Write a chat message.
* join type: Join the server.
* eat type: Eat an item.
	* item: the eaten item type. If nil, all eaten items are counted

(for all types) target - how many times to dig/place/craft/etc.

Each type has a register function like so:

* awards.register_on_TRIGGERTYPE(func(player, data))
	* data is the player stats data
	* return award name or null

### dig

```lua
trigger = {
	type   = "dig",
	node   = "default:dirt", -- item, alias, or group
	target = 50,
}
```

### place

```lua
trigger = {
	type   = "place",
	node   = "default:dirt", -- item, alias, or group
	target = 50,
}
```

### craft

```lua
trigger = {
	type   = "craft",
	item   = "default:dirt", -- item, alias, or group
	target = 50,
}
```

### death

```lua
trigger = {
	type   = "death",
	reason = "fall",
	target = 5,
}
```

### chat

```lua
trigger = {
	type   = "chat",
	target = 100,
}
```

### join

```lua
trigger = {
	type   = "join",
	target = 100,
}
```

### eat

```lua
trigger = {
	type   = "eat",
	item   = "default:apple",
	target = 100,
}
```


code:
intllib?
sfinv?
unified_inventory?
default?
stairs?
farming?
dye?
beds?
wool?
vessels?
moreblocks?
fire?
flowers?
nyancat?


code:
-- Copyright (c) 2013-18 rubenwardy. MIT.

-- The global award namespace
awards = {
	show_mode = "hud",
	registered_awards = {},
	registered_triggers = {},
	on_unlock = {},
}

-- Internationalization support.
awards.gettext, awards.ngettext = dofile(minetest.get_modpath("awards").."/src/intllib.lua")

-- Load files
dofile(minetest.get_modpath("awards").."/src/data.lua")
dofile(minetest.get_modpath("awards").."/src/api_awards.lua")
dofile(minetest.get_modpath("awards").."/src/api_triggers.lua")
dofile(minetest.get_modpath("awards").."/src/chat_commands.lua")
dofile(minetest.get_modpath("awards").."/src/gui.lua")
dofile(minetest.get_modpath("awards").."/src/triggers.lua")

-- Optionally add default awards.
if minetest.settings:get_bool("awards.add_defaults", true) then
	dofile(minetest.get_modpath("awards").."/src/awards.lua")
end

awards.load()
minetest.register_on_shutdown(awards.save)

-- Backwards compatibility
awards.give_achievement     = awards.unlock
awards.getFormspec          = awards.get_formspec
awards.showto               = awards.show_to
awards.register_onDig       = awards.register_on_dig
awards.register_onPlace     = awards.register_on_place
awards.register_onDeath     = awards.register_on_death
awards.register_onChat      = awards.register_on_chat
awards.register_onJoin      = awards.register_on_join
awards.register_onCraft     = awards.register_on_craft
awards.def                  = awards.registered_awards
awards.register_achievement = awards.register_award


code:
# German translations for PACKAGE package.
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Wuzzy2, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-21 05:35-0300\n"
"PO-Revision-Date: 2017-02-21 04:19-0300\n"
"Last-Translator: Wuzzy2\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: api.lua
msgid "Secret Achievement Unlocked:"
msgstr "Geheime Auszeichnung erhalten:"

#: api.lua
msgid "Achievement Unlocked:"
msgstr "Auszeichnung erhalten:"

#: api.lua
#, lua-format
msgid "Secret Achievement Unlocked: %s"
msgstr "Geheime Auszeichnung erhalten: %s"

#: api.lua
#, lua-format
msgid "Achievement Unlocked: %s"
msgstr "Auszeichnung erhalten: %s"

#: api.lua
msgid "Secret Achievement Unlocked!"
msgstr "Geheime Auszeichnung erhalten!"

#: api.lua
msgid "Achievement Unlocked!"
msgstr "Auszeichnung erhalten:"

#: api.lua
msgid "Error: No awards available."
msgstr "Fehler: Keine Auszeichnungen vorhanden."

#: api.lua
msgid "OK"
msgstr "OK"

#: api.lua
msgid "(Secret Award)"
msgstr "(Geheime Auszeichnung)"

#: api.lua
msgid "Unlock this award to find out what it is."
msgstr "Verdienen Sie sich diese Auszeichnung, um herauszufinden, was sie ist."

#: api.lua
#, lua-format
msgid "%s (got)"
msgstr "%s (erhalten)"

#: api.lua
msgid "You've disabled awards. Type /awards enable to reenable."
msgstr ""
"Sie haben die Auszeichnungen deaktiviert. Geben Sie »/awards enable« ein, um "
"sie wieder zu aktivieren."

#: api.lua
msgid "You have not unlocked any awards."
msgstr "Sie haben noch keine Auszeichnungen."

#: api.lua
#, lua-format
msgid "%s’s awards:"
msgstr "%ss Auszeichnungen:"

#: api.lua chat_commands.lua
#, lua-format
msgid "%s: %s"
msgstr "%s: %s"

#: sfinv.lua unified_inventory.lua
msgid "Awards"
msgstr "Auszeichnungen"

#: triggers.lua
msgid "@1/@2 dug"
msgstr "@1/@2 abgebaut"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Mine: @2"
msgid_plural "Mine: @1×@2"
msgstr[0] "Bauen Sie einen Block ab: @2"
msgstr[1] "Bauen Sie Blöcke ab: @1×@2"

#: triggers.lua
msgid "Mine @1 block."
msgid_plural "Mine @1 blocks."
msgstr[0] "Bauen Sie einen @1 Block ab."
msgstr[1] "Bauen Sie @1 Blöcke ab."

#: triggers.lua
msgid "@1/@2 placed"
msgstr "@1/@2 platziert"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Place: @2"
msgid_plural "Place: @1×@2"
msgstr[0] "Platzieren Sie einen Block: @2"
msgstr[1] "Platzieren Sie Blöcke: @1×@2"

#: triggers.lua
msgid "Place a block."
msgid_plural "Place @1 blocks."
msgstr[0] "Platzieren Sie einen Block."
msgstr[1] "Platzieren Sie @1 Blöcke."

#: triggers.lua
msgid "@1/@2 eaten"
msgstr "@1/@2 gegessen"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Eat: @2"
msgid_plural "Eat: @1×@2"
msgstr[0] "Essen Sie: @2"
msgstr[1] "Essen Sie: @1×@2"

#: triggers.lua
msgid "Eat an item."
msgid_plural "Eat @1 items."
msgstr[0] ""
msgstr[1] ""

#: triggers.lua
msgid "@1/@2 deaths"
msgstr "@1/@2 Tode"

#: triggers.lua
msgid "Die."
msgid_plural "Die @1 times."
msgstr[0] "Sterben Sie."
msgstr[1] "Sterben Sie @1 mal."

#: triggers.lua
msgid "@1/@2 chat messages"
msgstr "@1/@2 Chatnachrichten"

#: triggers.lua
msgid "Write something in chat."
msgid_plural "Write @1 chat messages."
msgstr[0] "Schreiben Sie etwas im Chat."
msgstr[1] "Schreiben Sie @1 Chatnachrichten."

#: triggers.lua
msgid "@1/@2 game joins"
msgstr "@1/@2 Spielen beigetreten"

#: triggers.lua
msgid "Join the game."
msgid_plural "Join the game @1 times."
msgstr[0] "Treten Sie dem Spiel bei."
msgstr[1] "Treten Sie dem Spiel @1 mal bei."

#: triggers.lua
msgid "@1/@2 crafted"
msgstr "@1/@2 gefertigt"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Craft: @2"
msgid_plural "Craft: @1×@2"
msgstr[0] "Fertigen Sie an: @2"
msgstr[1] "Fertigen Sie an: @1×@2"

#: triggers.lua
msgid "Craft an item."
msgid_plural "Craft @1 items."
msgstr[0] ""
msgstr[1] ""

#: init.lua
msgid "Saint-Maclou"
msgstr "Saint-Maclou"

#: init.lua
msgid "Place 20 coal checkers."
msgstr "Platzieren Sie 20 Kohlenschachbrettmuster."

#: init.lua
msgid "Castorama"
msgstr "Gießmeister"

#: init.lua
msgid "Place 20 iron checkers."
msgstr "Platzieren Sie 20 Eisenschachbrettmuster."

#: init.lua
msgid "Sam the Trapper"
msgstr "Sam der Fallensteller"

#: init.lua
msgid "Place 2 trap stones."
msgstr "Platzieren Sie 2 Fallensteine."

#: init.lua
msgid "Backpacker"
msgstr "Rucksacktourist"

#: init.lua
msgid "Craft 4 large bags."
msgstr "Fertigen Sie 4 große Taschen."

#: init.lua
msgid "Pyromaniac"
msgstr "Pyromane"

#: init.lua
msgid "Craft 8 times flint and steel."
msgstr "Fertigen Sie 8 mal einen Feuerstein und Stahl an."

#: init.lua
msgid "Firefighter"
msgstr "Feuerwehr"

#: init.lua
msgid "Put out 1000 fires."
msgstr "Löschen Sie 1000 Flammen."

#: init.lua
msgid "Light It Up"
msgstr "Licht an!"

#: init.lua
msgid "Place 100 torches."
msgstr "Platzieren Sie 100 Fackeln."

#: init.lua
msgid "Well Lit"
msgstr "Gut ausgeleuchtet"

#: init.lua
msgid "Place 1,000 torches."
msgstr "Platzieren Sie 1000 Fackeln."

#: init.lua
msgid "Really Well Lit"
msgstr "Sehr gute Beleuchtung"

#: init.lua
msgid "Craft 10 mese lamps."
msgstr "Fertigen Sie 10 Meselampen."

#: init.lua
msgid "Outpost"
msgstr "Außenposten"

#: init.lua
msgid "Craft 200 stone bricks."
msgstr "Fertigen Sie 200 Steinziegel."

#: init.lua
msgid "Watchtower"
msgstr "Wachturm"

#: init.lua
msgid "Craft 800 stone bricks."
msgstr "Fertigen Sie 800 Steinziegel an."

#: init.lua
msgid "Fortress"
msgstr "Burg"

#: init.lua
msgid "Craft 3,200 stone bricks."
msgstr "Fertigen Sie 3200 Steinziegel."

#: init.lua
msgid "Desert Dweller"
msgstr "Wüstenbewohner"

#: init.lua
msgid "Craft 400 desert stone bricks."
msgstr "Fertigen Sie 400 Wüstensteinziegel."

#: init.lua
msgid "Pharaoh"
msgstr "Pharao"

#: init.lua
msgid "Craft 100 sandstone bricks."
msgstr "Fertigen Sie 100 Sandsteinziegel."

#: init.lua
msgid "Little Library"
msgstr "Kleine Bücherei"

#: init.lua
msgid "Craft 7 bookshelves."
msgstr "Fertigen Sie 7 Bücherregale."

#: init.lua
msgid "Lava and Water"
msgstr "Lava und Wasser"

#: init.lua
msgid "Mine your first obsidian."
msgstr "Bauen Sie Ihr erstes Obsidian ab."

#: init.lua
msgid "Obsessed with Obsidian"
msgstr "Von Obsidian besessen"

#: init.lua
msgid "Mine 50 obsidian."
msgstr "Bauen Sie 50 Obsidian ab."

#: init.lua
msgid "Lava Miner"
msgstr "Lavagräber"

#: init.lua
msgid "Mine any block while being very close to lava."
msgstr ""
"Bauen Sie einen beliebigen Block ab, während Sie sehr nahe an der Lava "
"stehen."

#: init.lua
msgid "On The Way"
msgstr "Auf dem Weg"

#: init.lua
msgid "Place 100 rails."
msgstr "Platzieren Sie 100 Gleise."

#: init.lua
msgid "First Day in the Woods"
msgstr "Erster Tag im Wald"

#: init.lua
msgid "Dig 6 tree blocks."
msgstr "Bauen Sie 6 Baumblöcke ab."

#: init.lua
msgid "Lumberjack"
msgstr "Holzfäller"

#: init.lua
msgid "Dig 36 tree blocks."
msgstr "Bauen Sie 36 Baumblöcke ab."

#: init.lua
msgid "Semi-pro Lumberjack"
msgstr "Fortgeschrittener Holzfäller"

#: init.lua
msgid "Dig 216 tree blocks."
msgstr "Bauen Sie 216 Baumblöcke ab."

#: init.lua
msgid "Professional Lumberjack"
msgstr "Profiholzfäller"

#: init.lua
msgid "Dig 1,296 tree blocks."
msgstr "Bauen Sie 1296 Baumblöcke ab."

#: init.lua
msgid "Junglebaby"
msgstr "Dschungelbaby"

#: init.lua
msgid "Dig 100 jungle tree blocks."
msgstr "Bauen Sie 100 Dschungelbaumblöcke ab."

#: init.lua
msgid "Jungleman"
msgstr "Dschungelmann"

#: init.lua
msgid "Dig 1,000 jungle tree blocks."
msgstr "Bauen Sie 1000 Dschungelbaumblöcke ab."

#: init.lua
msgid "First Mese Find"
msgstr "Erster Mesefund"

#: init.lua
msgid "Mine your first mese ore."
msgstr "Bauen Sie Ihr erstes Meseerz ab."

#: init.lua
msgid "Mese Mastery"
msgstr "Mesemeister"

#: init.lua
msgid "Mine a mese block."
msgstr "Bauen Sie einen Meseblock ab."

#: init.lua
msgid "You’re a copper"
msgstr "Du Kupfer!"

#: init.lua
msgid "Dig 1,000 copper ores."
msgstr "Bauen Sie 1000 Kupfererze ab."

#: init.lua
msgid "A Cat in a Pop-Tart?!"
msgstr "Eine Katze im Pop-Tart?!"

#: init.lua
msgid "Mine a nyan cat."
msgstr "Bauen Sie eine Nyan Cat ab."

#: init.lua
msgid "Mini Miner"
msgstr "Berganfänger"

#: init.lua
msgid "Dig 100 stone blocks."
msgstr "Bauen Sie 100 Steinblöcke ab."

#: init.lua
msgid "Hardened Miner"
msgstr "Abhehärteter Bergarbeiter"

#: init.lua
msgid "Dig 1,000 stone blocks."
msgstr "Bauen Sie 1000 Steine ab."

#: init.lua
msgid "Master Miner"
msgstr "Profibergarbeiter"

#: init.lua
msgid "Dig 10,000 stone blocks."
msgstr "Bauen Sie 10000 Steine ab."

#: init.lua
msgid "Marchand De Sable"
msgstr ""

#: init.lua
msgid "Dig 1,000 sand."
msgstr "Bauen Sie 1000 Sand ab."

#: init.lua
msgid "Crafter of Sticks"
msgstr "Stockmacher"

#: init.lua
msgid "Craft 100 sticks."
msgstr "Fertigen Sie 100 Stöcke."

#: init.lua
msgid "Jungle Discoverer"
msgstr "Dschungelerkunder"

#: init.lua
msgid "Mine your first jungle grass."
msgstr "Bauen Sie Ihr erstes Dschungelgras ab."

#: init.lua
msgid "Grasslands Discoverer"
msgstr "Prärieerkunder"

#: init.lua
msgid "Mine some grass."
msgstr "Bauen Sie etwas Gras ab."

#: init.lua
msgid "Savannah Discoverer"
msgstr "Savannenerkunder"

#: init.lua
msgid "Mine some dry grass."
msgstr "Bauen Sie etwas trockenes Gras ab."

#: init.lua
msgid "Desert Discoverer"
msgstr "Wüstenerkunder"

#: init.lua
msgid "Mine your first cactus."
msgstr "Bauen Sie Ihren ersten Kaktus ab."

#: init.lua
msgid "Far Lands"
msgstr "Ferne Lande"

#: init.lua
msgid "Mine your first dry shrub."
msgstr "Bauen Sie Ihren ersten vertrockneten Strauch ab."

#: init.lua
msgid "Glacier Discoverer"
msgstr "Gletschererkunder"

#: init.lua
msgid "Mine your first ice."
msgstr "Bauen Sie Ihr erstes Eis ab."

#: init.lua
msgid "Very Simple Snow Man"
msgstr "Sehr simpler Schneemann"

#: init.lua
msgid "Place two snow blocks."
msgstr "Platzieren Sie zwei Schneeblöcke."

#: init.lua
msgid "First Gold Find"
msgstr "Erster Goldfund"

#: init.lua
msgid "Mine your first gold ore."
msgstr "Bauen Sie Ihr erstes Golderz ab."

#: init.lua
msgid "Gold Rush"
msgstr "Goldrausch"

#: init.lua
msgid "Mine 45 gold ores."
msgstr "Bauen Sie 18 Diamanterze ab."

#: init.lua
msgid "Wow, I am Diamonds!"
msgstr "Wow, ich bin Diamanten!"

#: init.lua
msgid "Mine your first diamond ore."
msgstr "Bauen Sie Ihr erstes Diamanterz ab."

#: init.lua
msgid "Girl's Best Friend"
msgstr "Bester Freund der Mädchen"

#: init.lua
msgid "Mine 18 diamond ores."
msgstr "Bauen Sie 18 Diamanterze ab."

#: init.lua
msgid "Hardest Block on Earth"
msgstr "Härtester Block der Welt"

#: init.lua
msgid "Craft a diamond block."
msgstr "Fertigen Sie einen Diamantblock an."

#: init.lua
msgid "In the Dungeon"
msgstr "Im Verlies"

#: init.lua
msgid "Mine a mossy cobblestone."
msgstr "Bauen Sie ein bemoostes Kopfsteinpflaster ab."

#: init.lua
msgid "Smelter"
msgstr "Schmelzer"

#: init.lua
msgid "Craft 10 furnaces."
msgstr "Fertigen Sie 10 Öfen."

#: init.lua
msgid "Treasurer"
msgstr "Schatzmeister"

#: init.lua
msgid "Craft 15 chests."
msgstr "Fertigen Sie 15 Truhen."

#: init.lua
msgid "Bankier"
msgstr "Bankier"

#: init.lua
msgid "Craft 30 locked chests."
msgstr "Fertigen Sie 30 abgeschlossene Truhen."

#: init.lua
msgid "Bricker"
msgstr "Ziegler"

#: init.lua
msgid "Craft 200 brick blocks."
msgstr "Fertigen Sie 200 Ziegelblöcke."

#: init.lua
msgid "House of Obsidian"
msgstr "Haus aus Obsidian"

#: init.lua
msgid "Craft 100 obsidian bricks."
msgstr "Fertigen Sie 100 Obsidianziegel."

#: init.lua
msgid "Build a Cave"
msgstr "Höhlenbauer"

#: init.lua
msgid "Place 100 stone."
msgstr "Platzieren Sie 100 Steine."

#: init.lua
msgid "Long Ladder"
msgstr "Lange Leiter"

#: init.lua
msgid "Place 400 wooden ladders."
msgstr "Platzieren Sie 400 Holzleitern."

#: init.lua
msgid "Industrial Age"
msgstr "Industriezeitalter"

#: init.lua
msgid "Place 40 steel ladders."
msgstr "Platzieren Sie 40 Stahlleitern."

#: init.lua
msgid "Yummy!"
msgstr "Lecker!"

#: init.lua
msgid "Eat 80 apples."
msgstr "Essen Sie 80 Äpfel."

#: init.lua
msgid "Glasser"
msgstr "Glasmacher"

#: init.lua
msgid "Craft 14 vessels shelves."
msgstr "Fertigen Sie 14 Gefäßregale."

#: init.lua
msgid "Farming Skills Acquired"
msgstr "Landwirtschaft erlernt"

#: init.lua
msgid "Harvest a fully grown wheat plant."
msgstr "Ernten Sie eine voll ausgewachsene Getreidepflanze."

#: init.lua
msgid "Field Worker"
msgstr "Feldarbeiter"

#: init.lua
msgid "Harvest 25 fully grown wheat plants."
msgstr "Ernten Sie 25 voll ausgewachsene Getreidepflanzen."

#: init.lua
msgid "Aspiring Farmer"
msgstr "Aufstrebender Bauer"

#: init.lua
msgid "Harvest 125 fully grown wheat plants."
msgstr "Ernten Sie 125 voll ausgewachsene Getreidepflanzen."

#: init.lua
msgid "Wheat Magnate"
msgstr "Getreidemagnat"

#: init.lua
msgid "Harvest 625 fully grown wheat plants."
msgstr "Ernten Sie 625 voll ausgewachsene Getreidepflanzen."

#: init.lua
msgid "Baker"
msgstr "Bäcker"

#: init.lua
msgid "Eat 10 loaves of bread."
msgstr "Essen Sie 10 Brote."

#: init.lua
msgid "Wool Over Your Eyes"
msgstr "Wollige Augen"

#: init.lua
msgid "Craft 250 white wool."
msgstr "Fertigen Sie 250 weiße Wolle."

#: init.lua
msgid "Hotelier"
msgstr "Hotelier"

#: init.lua
msgid "Craft 15 fancy beds."
msgstr "Fertigen Sie 15 schicke Betten."

#: init.lua
msgid "Filthy Rich"
msgstr "Stinkreich"

#: init.lua
msgid "Craft 24 gold block stairs."
msgstr "Fertigen Sie 24 Goldblockstufen."

#: init.lua
msgid "Roses Are Red"
msgstr "Rosen sind rot"

#: init.lua
msgid "Craft 400 red dyes."
msgstr "Fertigen Sie 400 rote Farbstoffe."

#: init.lua
msgid "Dandelions are Yellow"
msgstr "Löwenzahn ist gelb"

#: init.lua
msgid "Craft 400 yellow dyes."
msgstr "Fertigen Sie 400 gelbe Farbstoffe."

#: init.lua
msgid "Geraniums are Blue"
msgstr "Geranien sind blau"

#: init.lua
msgid "Craft 400 blue dyes."
msgstr "Fertigen Sie 400 blaue Farbstoffe."

#: init.lua
msgid "White Color Stock"
msgstr "Weißer Farbstoffvorrat"

#: init.lua
msgid "Craft 100 white dyes."
msgstr "Fertigen Sie 100 weiße Farbstoffe."

#: init.lua
msgid "Tasty Mushrooms"
msgstr "Leckere Pilze"

#: init.lua
msgid "Eat 3 brown mushrooms."
msgstr "Essen Sie 3 braune Pilze."

#: init.lua
msgid "Mushroom Lover"
msgstr "Pilzfreund"

#: init.lua
msgid "Eat 33 brown mushrooms."
msgstr "Essen Sie 33 braune Pilze."

#: init.lua
msgid "Underground Mushroom Farmer"
msgstr "Unterirdischer Pilzbauer"

#: init.lua
msgid "Eat 333 brown mushrooms."
msgstr "Essen Sie 333 braune Pilze."

#: init.lua
msgid "Builder"
msgstr "Bauarbeiter"

#: init.lua
msgid "Constructor"
msgstr "Konstrukteur"

#: init.lua
msgid "Architect"
msgstr "Architekt"

#: init.lua
msgid "Master Architect"
msgstr "Meisterarchitekt"

#: chat_commands.lua
msgid "[c|clear|disable|enable]"
msgstr "[c|clear|disable|enable]"

#: chat_commands.lua
msgid "Show, clear, disable or enable your achievements"
msgstr "Zeigen, löschen, deaktivieren oder aktivieren Sie Ihre Auszeichnungen"

#: chat_commands.lua
msgid ""
"All your awards and statistics have been cleared. You can now start again."
msgstr ""
"All Ihre Auszeichnugen und Statistiken wurden zurückgesetzt. Sie können nun "
"von vorne anfangen."

#: chat_commands.lua
msgid "You have disabled your achievements."
msgstr "Sie haben Ihre Auszeichnungen deaktiviert."

#: chat_commands.lua
msgid "You have enabled your achievements."
msgstr "Sie haben Ihre Auszeichnungen aktiviert."

#: chat_commands.lua
msgid "<achievement ID>"
msgstr "<Auszeichnungs-ID>"

#: chat_commands.lua
msgid "Show details of an achievement"
msgstr "Details einer Auszeichnung anzeigen"

#: chat_commands.lua
msgid "Achievement not found."
msgstr "Auszeichnung nicht gefunden."

#: chat_commands.lua
msgid "<name>"
msgstr "<Name>"

#: chat_commands.lua
msgid "Get the achievements statistics for the given player or yourself"
msgstr "Die Statistik der Auszeichnungen eines Spielers zeigen"


code:
# Spanish translations for PACKAGE package
# Traducciones al español para el paquete PACKAGE.
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Diego Martínez <kaeza@users.noreply.github.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-21 05:35-0300\n"
"PO-Revision-Date: 2017-02-20 22:17-0300\n"
"Last-Translator: Diego Martínez <kaeza@users.noreply.github.com>\n"
"Language-Team: Spanish\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: api.lua
msgid "Secret Achievement Unlocked:"
msgstr "Logro secreto desbloqueado:"

#: api.lua
msgid "Achievement Unlocked:"
msgstr "Logro desbloqueado:"

#: api.lua
#, lua-format
msgid "Secret Achievement Unlocked: %s"
msgstr "Logro secreto desbloqueado: %s"

#: api.lua
#, lua-format
msgid "Achievement Unlocked: %s"
msgstr "Logro desbloqueado: %s"

#: api.lua
msgid "Secret Achievement Unlocked!"
msgstr "Logro secreto desbloqueado!"

#: api.lua
msgid "Achievement Unlocked!"
msgstr "Logro desbloqueado!"

#: api.lua
msgid "Error: No awards available."
msgstr "Error: No hay logros disponibles."

#: api.lua
msgid "OK"
msgstr "Aceptar"

#: api.lua
msgid "(Secret Award)"
msgstr "(Logro secreto)"

#: api.lua
msgid "Unlock this award to find out what it is."
msgstr "Desbloquea éste logro para saber qué es."

#: api.lua
#, lua-format
msgid "%s (got)"
msgstr "%s (obtenido)"

#: api.lua
msgid "You've disabled awards. Type /awards enable to reenable."
msgstr ""
"Has deshabilitado los logros. Escribe \"/awards enable\" para reactivar."

#: api.lua
msgid "You have not unlocked any awards."
msgstr "No has desbloqueado ningún logro."

#: api.lua
#, lua-format
msgid "%s’s awards:"
msgstr "Logros de %s:"

#: api.lua chat_commands.lua
#, lua-format
msgid "%s: %s"
msgstr "%s: %s"

#: sfinv.lua unified_inventory.lua
msgid "Awards"
msgstr "Logros"

#: triggers.lua
msgid "@1/@2 dug"
msgstr "@1/@2 excavados"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Mine: @2"
msgid_plural "Mine: @1×@2"
msgstr[0] "Excavar: @2"
msgstr[1] "Excavar: @1×@2"

#: triggers.lua
msgid "Mine @1 block."
msgid_plural "Mine @1 blocks."
msgstr[0] "Excavar un bloque."
msgstr[1] "Excavar @1 bloques."

#: triggers.lua
msgid "@1/@2 placed"
msgstr "@1/@2 colocados"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Place: @2"
msgid_plural "Place: @1×@2"
msgstr[0] "Colocar: @2"
msgstr[1] "Colocar: @1×@2"

#: triggers.lua
msgid "Place a block."
msgid_plural "Place @1 blocks."
msgstr[0] "Colocar un bloque."
msgstr[1] "Colocar @1 bloques."

#: triggers.lua
msgid "@1/@2 eaten"
msgstr "@1/@2 comidos"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Eat: @2"
msgid_plural "Eat: @1×@2"
msgstr[0] "Comer: @2"
msgstr[1] "Comer: @1×@2"

#: triggers.lua
msgid "Eat an item."
msgid_plural "Eat @1 items."
msgstr[0] "Comer un objeto."
msgstr[1] "Comer @1 objetos."

#: triggers.lua
msgid "@1/@2 deaths"
msgstr "@1/@2 muertes"

#: triggers.lua
msgid "Die."
msgid_plural "Die @1 times."
msgstr[0] "Morir."
msgstr[1] "Morir @1 veces."

#: triggers.lua
msgid "@1/@2 chat messages"
msgstr "@1/@2 conversaciones"

#: triggers.lua
msgid "Write something in chat."
msgid_plural "Write @1 chat messages."
msgstr[0] "Escribir algo."
msgstr[1] "Escribir @1 mensajes."

#: triggers.lua
msgid "@1/@2 game joins"
msgstr "@1/@2 veces unido"

#: triggers.lua
msgid "Join the game."
msgid_plural "Join the game @1 times."
msgstr[0] "Unirse al juego."
msgstr[1] "Unirse al juego @1 veces."

#: triggers.lua
msgid "@1/@2 crafted"
msgstr "@1/@2 elaborado"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Craft: @2"
msgid_plural "Craft: @1×@2"
msgstr[0] "Elaborar: @2"
msgstr[1] "Elaborar: %1×@2"

#: triggers.lua
msgid "Craft an item."
msgid_plural "Craft @1 items."
msgstr[0] "Elaborar un objeto."
msgstr[1] "Elaborar @1 objetos."

#: init.lua
msgid "Saint-Maclou"
msgstr "Saint-Maclou"

#: init.lua
msgid "Place 20 coal checkers."
msgstr "Colocar 20 baldosas de ajedrez de carbón."

#: init.lua
msgid "Castorama"
msgstr "Castorama"

#: init.lua
msgid "Place 20 iron checkers."
msgstr "Colocar 20 baldosas de ajedrez de hierro."

#: init.lua
msgid "Sam the Trapper"
msgstr "Sam el Atrapador"

#: init.lua
msgid "Place 2 trap stones."
msgstr "Colocar 2 piedras trampa."

#: init.lua
msgid "Backpacker"
msgstr "Mochilero"

#: init.lua
msgid "Craft 4 large bags."
msgstr "Elaborar 4 bolsas grandes."

#: init.lua
msgid "Pyromaniac"
msgstr "Piromaníaco"

#: init.lua
msgid "Craft 8 times flint and steel."
msgstr "Elaborar pedernal y hierro 8 veces."

#: init.lua
msgid "Firefighter"
msgstr "Bombero"

#: init.lua
msgid "Put out 1000 fires."
msgstr "Apagar 1000 incendios."

#: init.lua
msgid "Light It Up"
msgstr "Ilumínalo"

#: init.lua
msgid "Place 100 torches."
msgstr "Colocar 100 antorchas."

#: init.lua
msgid "Well Lit"
msgstr "Bien Iluminado"

#: init.lua
msgid "Place 1,000 torches."
msgstr "Colocar 1.000 antorchas."

#: init.lua
msgid "Really Well Lit"
msgstr "Realmente Bien Iluminado"

#: init.lua
msgid "Craft 10 mese lamps."
msgstr "Elaborar 10 lámparas de MESE."

#: init.lua
msgid "Outpost"
msgstr "Puesto de avanzada"

#: init.lua
msgid "Craft 200 stone bricks."
msgstr "Elaborar 200 ladrillos de piedra."

#: init.lua
msgid "Watchtower"
msgstr "Torre del vigía"

#: init.lua
msgid "Craft 800 stone bricks."
msgstr "Elaborar 800 ladrillos de piedra."

#: init.lua
msgid "Fortress"
msgstr "Fortaleza"

#: init.lua
msgid "Craft 3,200 stone bricks."
msgstr "Elaborar 3.200 ladrillos de piedra."

#: init.lua
msgid "Desert Dweller"
msgstr "Morador Desértico"

#: init.lua
msgid "Craft 400 desert stone bricks."
msgstr "Elaborar 400 ladrillos de piedra desértica."

#: init.lua
msgid "Pharaoh"
msgstr "Faraón"

#: init.lua
msgid "Craft 100 sandstone bricks."
msgstr "Elaborar 200 ladrillos de arenisca."

#: init.lua
msgid "Little Library"
msgstr "Pequeña Biblioteca"

#: init.lua
msgid "Craft 7 bookshelves."
msgstr "Elaborar 7 libreros."

#: init.lua
msgid "Lava and Water"
msgstr "Lava y Agua"

#: init.lua
msgid "Mine your first obsidian."
msgstr "Excavar tu primera obsidiana."

#: init.lua
msgid "Obsessed with Obsidian"
msgstr "Obsesionado con la Obsidiana"

#: init.lua
msgid "Mine 50 obsidian."
msgstr "Excavar 50 obsidianas."

#: init.lua
msgid "Lava Miner"
msgstr "Minero de Lava"

#: init.lua
msgid "Mine any block while being very close to lava."
msgstr "Excavar un bloque cerca de lava."

#: init.lua
msgid "On The Way"
msgstr "En Camino"

#: init.lua
msgid "Place 100 rails."
msgstr "Colocar 100 rieles."

#: init.lua
msgid "First Day in the Woods"
msgstr "Primer Día en el Bosque"

#: init.lua
msgid "Dig 6 tree blocks."
msgstr "Cortar 6 árboles."

#: init.lua
msgid "Lumberjack"
msgstr "Leñador"

#: init.lua
msgid "Dig 36 tree blocks."
msgstr "Cortar 36 árboles."

#: init.lua
msgid "Semi-pro Lumberjack"
msgstr "Leñador semi-profesional"

#: init.lua
msgid "Dig 216 tree blocks."
msgstr "Cortar 216 árboles."

#: init.lua
msgid "Professional Lumberjack"
msgstr "Leñador profesional"

#: init.lua
msgid "Dig 1,296 tree blocks."
msgstr "Cortar 1.296 árboles."

#: init.lua
msgid "Junglebaby"
msgstr "Bebé de la Selva"

#: init.lua
msgid "Dig 100 jungle tree blocks."
msgstr "Cortar 100 árboles selváticos."

#: init.lua
msgid "Jungleman"
msgstr "Hombre de la Selva"

#: init.lua
msgid "Dig 1,000 jungle tree blocks."
msgstr "Cortar 1.000 árboles selváticos."

#: init.lua
msgid "First Mese Find"
msgstr "Primer Encuentro de MESE"

#: init.lua
msgid "Mine your first mese ore."
msgstr "Excava tu primer mineral de MESE."

#: init.lua
msgid "Mese Mastery"
msgstr "Maestría de MESE"

#: init.lua
msgid "Mine a mese block."
msgstr "Excava tu primer bloque de MESE."

#: init.lua
msgid "You’re a copper"
msgstr "Eres un cobre"

#: init.lua
msgid "Dig 1,000 copper ores."
msgstr "Excavar 1.000 minerales de cobre"

#: init.lua
msgid "A Cat in a Pop-Tart?!"
msgstr "¡¿Un Gato en un Pop-Tart?!"

#: init.lua
msgid "Mine a nyan cat."
msgstr "Excavar un Gato Nyan."

#: init.lua
msgid "Mini Miner"
msgstr "Mini Minero"

#: init.lua
msgid "Dig 100 stone blocks."
msgstr "Excavar 100 bloques de piedra."

#: init.lua
msgid "Hardened Miner"
msgstr "Minero Curtido"

#: init.lua
msgid "Dig 1,000 stone blocks."
msgstr "Excavar 1.000 bloques de piedra."

#: init.lua
msgid "Master Miner"
msgstr "Minero Maestro"

#: init.lua
msgid "Dig 10,000 stone blocks."
msgstr "Excavar 10.000 bloques de piedra."

#: init.lua
msgid "Marchand De Sable"
msgstr "Marchand De Sable"

#: init.lua
msgid "Dig 1,000 sand."
msgstr "Cavar 1.000 bloques de arena."

#: init.lua
msgid "Crafter of Sticks"
msgstr "Elaborador de Varitas"

#: init.lua
msgid "Craft 100 sticks."
msgstr "Elaborar 100 varitas."

#: init.lua
msgid "Jungle Discoverer"
msgstr "Descubridor de Selva"

#: init.lua
msgid "Mine your first jungle grass."
msgstr "Cortar tu primer pasto de selva."

#: init.lua
msgid "Grasslands Discoverer"
msgstr "Descubridor de Praderas"

#: init.lua
msgid "Mine some grass."
msgstr "Cortar un poco de pasto."

#: init.lua
msgid "Savannah Discoverer"
msgstr "Descubridor de Savana"

#: init.lua
msgid "Mine some dry grass."
msgstr "Cortar un poco de pasto seco."

#: init.lua
msgid "Desert Discoverer"
msgstr "Descubridor del Desierto"

#: init.lua
msgid "Mine your first cactus."
msgstr "Cortar tu primer cácto."

#: init.lua
msgid "Far Lands"
msgstr "Tierras Lejanas"

#: init.lua
msgid "Mine your first dry shrub."
msgstr "Cortar tu primer arbusto seco"

#: init.lua
msgid "Glacier Discoverer"
msgstr "Descubridor del Glaciar"

#: init.lua
msgid "Mine your first ice."
msgstr "Romper tu primer bloque de hielo."

#: init.lua
msgid "Very Simple Snow Man"
msgstr "Muñeco de Nieve Muy Simple"

#: init.lua
msgid "Place two snow blocks."
msgstr "Colocar dos bloques de nieve."

#: init.lua
msgid "First Gold Find"
msgstr "Primer Encuentro de Oro"

#: init.lua
msgid "Mine your first gold ore."
msgstr "Excavar tu primer pepita de oro."

#: init.lua
msgid "Gold Rush"
msgstr "Fiebre del Oro"

#: init.lua
msgid "Mine 45 gold ores."
msgstr "Excavar 45 pepitas de oro."

#: init.lua
msgid "Wow, I am Diamonds!"
msgstr "¡Guau, Soy Diamantes!"

#: init.lua
msgid "Mine your first diamond ore."
msgstr "Excava tu primer diamante."

#: init.lua
msgid "Girl's Best Friend"
msgstr "El Mejor Amigo de Las Mujeres"

#: init.lua
msgid "Mine 18 diamond ores."
msgstr "Excava 10 diamantes."

#: init.lua
msgid "Hardest Block on Earth"
msgstr "El Bloque Más Duro Sobre La Tierra"

#: init.lua
msgid "Craft a diamond block."
msgstr "Elaborar un bloque de diamante."

#: init.lua
msgid "In the Dungeon"
msgstr "En Las Mazmorras"

#: init.lua
msgid "Mine a mossy cobblestone."
msgstr "Excavar unos adoquines musgosos."

#: init.lua
msgid "Smelter"
msgstr "Fundidor"

#: init.lua
msgid "Craft 10 furnaces."
msgstr "Elaborar 10 hornos."

#: init.lua
msgid "Treasurer"
msgstr "Tesorero"

#: init.lua
msgid "Craft 15 chests."
msgstr "Elaborar 15 cofres."

#: init.lua
msgid "Bankier"
msgstr "Banquero"

#: init.lua
msgid "Craft 30 locked chests."
msgstr "Elaborar 30 bloques cerrados."

#: init.lua
msgid "Bricker"
msgstr "Ladrillero"

#: init.lua
msgid "Craft 200 brick blocks."
msgstr "Elaborar 200 bloques de ladrillo."

#: init.lua
msgid "House of Obsidian"
msgstr "Casa de Obsidiana"

#: init.lua
msgid "Craft 100 obsidian bricks."
msgstr "Elaborar 100 ladrillos de obsidiana."

#: init.lua
msgid "Build a Cave"
msgstr "Construye Una Cueva"

#: init.lua
msgid "Place 100 stone."
msgstr "Coloca 100 piedras."

#: init.lua
msgid "Long Ladder"
msgstr "Escalerilla Larga"

#: init.lua
msgid "Place 400 wooden ladders."
msgstr "Coloca 400 escalerillas de madera."

#: init.lua
msgid "Industrial Age"
msgstr "Era Industrial"

#: init.lua
msgid "Place 40 steel ladders."
msgstr "Coloca 40 escalerillas de acero."

#: init.lua
msgid "Yummy!"
msgstr "¡Qué Rico!"

#: init.lua
msgid "Eat 80 apples."
msgstr "Come 80 manzanas."

# Intentionally marked as fuzzy.
#: init.lua
#, fuzzy
msgid "Glasser"
msgstr "Vidriero"

#: init.lua
msgid "Craft 14 vessels shelves."
msgstr "Elabora 14 estanterías para botellas."

#: init.lua
msgid "Farming Skills Acquired"
msgstr "Habilidades de Granja Adquiridas"

#: init.lua
msgid "Harvest a fully grown wheat plant."
msgstr "Cosecha una plantas de trigo madura."

#: init.lua
msgid "Field Worker"
msgstr "Trabajador de Campo"

#: init.lua
msgid "Harvest 25 fully grown wheat plants."
msgstr "Cosecha 25 plantas de trigo maduras."

#: init.lua
msgid "Aspiring Farmer"
msgstr "Aspirante a Granjero"

#: init.lua
msgid "Harvest 125 fully grown wheat plants."
msgstr "Cosecha 125 plantas de trigo maduras."

#: init.lua
msgid "Wheat Magnate"
msgstr "Magnate del Maíz"

#: init.lua
msgid "Harvest 625 fully grown wheat plants."
msgstr "Cosecha 625 plantas de trigo maduras."

#: init.lua
msgid "Baker"
msgstr "Panadero"

#: init.lua
msgid "Eat 10 loaves of bread."
msgstr "Come 10 rebanadas de pan."

#: init.lua
msgid "Wool Over Your Eyes"
msgstr "Lana Sobre Tus Ojos"

#: init.lua
msgid "Craft 250 white wool."
msgstr "Elabora 250 bloques de lana blanca."

#: init.lua
msgid "Hotelier"
msgstr "Hotelero"

#: init.lua
msgid "Craft 15 fancy beds."
msgstr "Elabora 15 camas de lujo."

#: init.lua
msgid "Filthy Rich"
msgstr "Sucio Rico"

#: init.lua
msgid "Craft 24 gold block stairs."
msgstr "Elabora 24 escaleras de bloque de oro."

#: init.lua
msgid "Roses Are Red"
msgstr "Las Rosas Son Rojas"

#: init.lua
msgid "Craft 400 red dyes."
msgstr "Elabora 400 colorantes rojos."

#: init.lua
msgid "Dandelions are Yellow"
msgstr "Los Dientes de León Son Amarillos"

#: init.lua
msgid "Craft 400 yellow dyes."
msgstr "Elabora 400 colorantes amarillos."

#: init.lua
msgid "Geraniums are Blue"
msgstr "Los Geranios Son Azules"

#: init.lua
msgid "Craft 400 blue dyes."
msgstr "Elabora 400 colorantes azules."

#: init.lua
msgid "White Color Stock"
msgstr "Reserva de Color Blanco"

#: init.lua
msgid "Craft 100 white dyes."
msgstr "Elabora 100 colorantes blancos."

#: init.lua
msgid "Tasty Mushrooms"
msgstr "Ricos Hongos"

#: init.lua
msgid "Eat 3 brown mushrooms."
msgstr "Come 3 hongos marrones."

#: init.lua
msgid "Mushroom Lover"
msgstr "Amante de los Hongos"

#: init.lua
msgid "Eat 33 brown mushrooms."
msgstr "Come 33 hongos marrones."

#: init.lua
msgid "Underground Mushroom Farmer"
msgstr "Granjero de Hongos Subterráneo"

#: init.lua
msgid "Eat 333 brown mushrooms."
msgstr "Come 333 hongos marrones."

# Nota: "Builder" y "Constructor" se traducen a "Constructor",
# así que lo traduje de ésta manera para diferenciar.
#: init.lua
msgid "Builder"
msgstr "Hacedor"

#: init.lua
msgid "Constructor"
msgstr "Constructor"

#: init.lua
msgid "Architect"
msgstr "Arquitecto"

#: init.lua
msgid "Master Architect"
msgstr "Maestro Arquitecto"

#: chat_commands.lua
msgid "[c|clear|disable|enable]"
msgstr "[c|clear|disable|enable]"

#: chat_commands.lua
msgid "Show, clear, disable or enable your achievements"
msgstr "Mostrar, limpiar, deshabilitar o habilitar tus logros"

#: chat_commands.lua
msgid ""
"All your awards and statistics have been cleared. You can now start again."
msgstr ""
"Todos tus logros y estadísticas han sido borrados. Puedes iniciar nuevamente."

#: chat_commands.lua
msgid "You have disabled your achievements."
msgstr "Has deshabilitado tus logros."

#: chat_commands.lua
msgid "You have enabled your achievements."
msgstr "Has habilitado tus logros."

#: chat_commands.lua
msgid "<achievement ID>"
msgstr "<ID logro>"

#: chat_commands.lua
msgid "Show details of an achievement"
msgstr "Muestra los detalles de un logro"

#: chat_commands.lua
msgid "Achievement not found."
msgstr "Logro no encontrado."

#: chat_commands.lua
msgid "<name>"
msgstr "<nombre>"

#: chat_commands.lua
msgid "Get the achievements statistics for the given player or yourself"
msgstr "Obtener las estadísticas y logros del jugador dado"


code:
# French translations for PACKAGE package.
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# xisd, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-21 05:50-0300\n"
"PO-Revision-Date: 2017-02-21 05:50-0300\n"
"Last-Translator: xisd\n"
"Language-Team: French\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#: api.lua
msgid "Secret Achievement Unlocked:"
msgstr "Réussite Secrète Débloquée :"

#: api.lua
msgid "Achievement Unlocked:"
msgstr "Réussite Débloquée :"

#: api.lua
#, lua-format
msgid "Secret Achievement Unlocked: %s"
msgstr "Réussite Secrète Débloquée : %s"

#: api.lua
#, lua-format
msgid "Achievement Unlocked: %s"
msgstr "Réussite Débloquée : %s"

#: api.lua
msgid "Secret Achievement Unlocked!"
msgstr "Réussite Secrète Débloquée !"

#: api.lua
msgid "Achievement Unlocked!"
msgstr "Réussite Débloquée !"

#: api.lua
msgid "Error: No awards available."
msgstr "Erreur : Aucun trophée disponible"

#: api.lua
msgid "OK"
msgstr "OK"

#: api.lua
msgid "(Secret Award)"
msgstr "(Trophée Secret)"

#: api.lua
msgid "Unlock this award to find out what it is."
msgstr "Débloque ce trophée pour découvrir ce que c'est."

#: api.lua
#, lua-format
msgid "%s (got)"
msgstr "%s (obtenu)"

#: api.lua
msgid "You've disabled awards. Type /awards enable to reenable."
msgstr "Vous avez désactivé les trophées. Tapez '/awards enable' pour les réactiver."

#: api.lua
msgid "You have not unlocked any awards."
msgstr "Vous n'avez encore débloqué aucun trophée."

#: api.lua
#, lua-format
msgid "%s’s awards:"
msgstr "Les trophées de %s :"

#: api.lua chat_commands.lua
#, lua-format
msgid "%s: %s"
msgstr "%s : %s"

#: sfinv.lua unified_inventory.lua
msgid "Awards"
msgstr "Trophées"

#: triggers.lua
msgid "@1/@2 dug"
msgstr "@1/@2 creusés"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Mine: @2"
msgid_plural "Mine: @1×@2"
msgstr[0] "Mine : @2"
msgstr[1] "Mine : @1×@2"

#: triggers.lua
msgid "Mine @1 block."
msgid_plural "Mine @1 blocks."
msgstr[0] "Creuse @1 bloc."
msgstr[1] "Creuse @1 blocs."

#: triggers.lua
msgid "@1/@2 placed"
msgstr "@1/@2 placés"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Place: @2"
msgid_plural "Place: @1×@2"
msgstr[0] "Place : @2"
msgstr[1] "Place : @1×@2"

#: triggers.lua
msgid "Place a block."
msgid_plural "Place @1 blocks."
msgstr[0] "Place un bloc."
msgstr[1] "Place @1 blocs."

#: triggers.lua
msgid "@1/@2 eaten"
msgstr "@1/@2 Mangés"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Eat: @2"
msgid_plural "Eat: @1×@2"
msgstr[0] "Mange : @2"
msgstr[1] "Mange : @1×@2"

#: triggers.lua
msgid "Eat an item."
msgid_plural "Eat @1 items."
msgstr[0] "Mange quelque chose."
msgstr[1] "Mange @1 aliments."

#: triggers.lua
msgid "@1/@2 deaths"
msgstr "@1/@2 morts"

#: triggers.lua
msgid "Die."
msgid_plural "Die @1 times."
msgstr[0] "Mort·e."
msgstr[1] "Mort·e %d fois."

#: triggers.lua
msgid "@1/@2 chat messages"
msgstr "@1/@2 messages du chat"

#: triggers.lua
msgid "Write something in chat."
msgid_plural "Write @1 chat messages."
msgstr[0] "Écrit quelque chose dans le chat."
msgstr[1] "Écrit @1 messages dans le chat."

#: triggers.lua
msgid "@1/@2 game joins"
msgstr "@1/@2 connexions"

#: triggers.lua
msgid "Join the game."
msgid_plural "Join the game @1 times."
msgstr[0] "Connecte toi au jeu."
msgstr[1] "Connecte toi au jeu @1 fois."

#: triggers.lua
msgid "@1/@2 crafted"
msgstr "@1/@2 craftés"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Craft: @2"
msgid_plural "Craft: @1×@2"
msgstr[0] "Fabrique : @2"
msgstr[1] "Fabrique : @1×@2"

#: triggers.lua
msgid "Craft an item."
msgid_plural "Craft @1 items."
msgstr[0] "Confectionne un objet."
msgstr[1] "Confectionne @1 objets."

#: init.lua
msgid "Saint-Maclou"
msgstr "Saint-Maclou"

#: init.lua
msgid "Place 20 coal checkers."
msgstr "Place 20 damiers de charbon."

#: init.lua
msgid "Castorama"
msgstr "Castorama"

#: init.lua
msgid "Place 20 iron checkers."
msgstr "Place 20 damiers de fer."

#: init.lua
msgid "Sam the Trapper"
msgstr "Sam le Trappeur"

#: init.lua
msgid "Place 2 trap stones."
msgstr "Place 2 pièges de pierre."

#: init.lua
msgid "Backpacker"
msgstr "Randonneu·r·se"

#: init.lua
msgid "Craft 4 large bags."
msgstr "Confectionne 4 grands sacs"

#: init.lua
msgid "Pyromaniac"
msgstr "Pyromane"

#: init.lua
msgid "Craft 8 times flint and steel."
msgstr "Fabrique 8 silex et aciers."

#: init.lua
msgid "Firefighter"
msgstr "Pompier"

#: init.lua
msgid "Put out 1000 fires."
msgstr "Éteint 1000 feux."

#: init.lua
msgid "Light It Up"
msgstr "Eclairé·e"

#: init.lua
msgid "Place 100 torches."
msgstr "Place 100 torches."

#: init.lua
msgid "Well Lit"
msgstr "Bien Éclairé"

#: init.lua
msgid "Place 1,000 torches."
msgstr "Place 1000 torches."

#: init.lua
msgid "Really Well Lit"
msgstr "Vraiment Bien Éclairé"

#: init.lua
msgid "Craft 10 mese lamps."
msgstr "Fabrique 10 lampes de mese."

#: init.lua
msgid "Outpost"
msgstr "Poste Avancé"

#: init.lua
msgid "Craft 200 stone bricks."
msgstr "Confectionne 200 briques de pierre."

#: init.lua
msgid "Watchtower"
msgstr "Tour de Garde"

#: init.lua
msgid "Craft 800 stone bricks."
msgstr "Confectionne 800 briques de pierre."

#: init.lua
msgid "Fortress"
msgstr "Forteresse"

#: init.lua
msgid "Craft 3,200 stone bricks."
msgstr "Confectionne 3200 briques de pierre."

#: init.lua
msgid "Desert Dweller"
msgstr "Habitant·e du Désert"

#: init.lua
msgid "Craft 400 desert stone bricks."
msgstr "Confectionne 400 briques de pierre du désert."

#: init.lua
msgid "Pharaoh"
msgstr "Pharaon"

#: init.lua
msgid "Craft 100 sandstone bricks."
msgstr "Confectionne 100 briques de roche de sable."

#: init.lua
msgid "Little Library"
msgstr "Petite Bibliothèque"

#: init.lua
msgid "Craft 7 bookshelves."
msgstr "Fabrique 7 bibliothèques."

#: init.lua
msgid "Lava and Water"
msgstr "La Lave et l'Eau"

#: init.lua
msgid "Mine your first obsidian."
msgstr "Mine ton premier bloc d'obsidienne."

#: init.lua
msgid "Obsessed with Obsidian"
msgstr "Obsédé·e par l'obsidienne"

#: init.lua
msgid "Mine 50 obsidian."
msgstr "Mine 50 pierres d'obsidienne."

#: init.lua
msgid "Lava Miner"
msgstr "Mineu·r·se de lave"

#: init.lua
msgid "Mine any block while being very close to lava."
msgstr "Mine n'importe quel bloc à proximité de la lave."

#: init.lua
msgid "On The Way"
msgstr "Sur La Voie"

#: init.lua
msgid "Place 100 rails."
msgstr "Place 100 rails."

#: init.lua
msgid "First Day in the Woods"
msgstr "Premier Jour dans les Bois"

#: init.lua
msgid "Dig 6 tree blocks."
msgstr "Creuse 6 blocs d'arbre."

#: init.lua
msgid "Lumberjack"
msgstr "Bûcheron·ne"

#: init.lua
msgid "Dig 36 tree blocks."
msgstr "Creuse 36 blocs d'arbre."

#: init.lua
msgid "Semi-pro Lumberjack"
msgstr "Bûcheron.ne. Semi-Professionnel.le."

#: init.lua
msgid "Dig 216 tree blocks."
msgstr "Creuse 216 blocs d'arbre."

#: init.lua
msgid "Professional Lumberjack"
msgstr "Bûcheron·ne Professionnel·le"

#: init.lua
msgid "Dig 1,296 tree blocks."
msgstr "Creuse 1296 blocs d'arbre."

#: init.lua
msgid "Junglebaby"
msgstr "Enfant de la Jungle"

#: init.lua
msgid "Dig 100 jungle tree blocks."
msgstr "Creuse 100 blocs d'arbres de jungle."

#: init.lua
msgid "Jungleman"
msgstr "Personne de la Jungle"

#: init.lua
msgid "Dig 1,000 jungle tree blocks."
msgstr "Creuse 1000 blocs d'arbre de jungle."

#: init.lua
msgid "First Mese Find"
msgstr "Première Pépite : Mese"

#: init.lua
msgid "Mine your first mese ore."
msgstr "Mine ton premier minerai de mese."

#: init.lua
msgid "Mese Mastery"
msgstr "Maîtrise de Mese"

#: init.lua
msgid "Mine a mese block."
msgstr "Mine un bloc de mese."

#: init.lua
msgid "You’re a copper"
msgstr "Faîtes Jouer les Cuivres"

#: init.lua
msgid "Dig 1,000 copper ores."
msgstr "Creuse 1000 minerais de cuivre."

#: init.lua
msgid "A Cat in a Pop-Tart?!"
msgstr "Un Chat dans un Pop-Tart ?!"

#: init.lua
msgid "Mine a nyan cat."
msgstr "Mine un nyan cat."

#: init.lua
msgid "Mini Miner"
msgstr "Mini Mineu·r·se"

#: init.lua
msgid "Dig 100 stone blocks."
msgstr "Creuse 100 blocs de pierre."

#: init.lua
msgid "Hardened Miner"
msgstr "Mineu·r·se Endurci·e"

#: init.lua
msgid "Dig 1,000 stone blocks."
msgstr "Creuse 1000 blocs de pierre."

#: init.lua
msgid "Master Miner"
msgstr "Maître·sse Mineu·r·se"

#: init.lua
msgid "Dig 10,000 stone blocks."
msgstr "Creuse 10000 blocs de pierre."

#: init.lua
msgid "Marchand De Sable"
msgstr "Marchand·e De Sable"

#: init.lua
msgid "Dig 1,000 sand."
msgstr "Creuse 1000 blocs de sable."

#: init.lua
msgid "Crafter of Sticks"
msgstr "Fabriquant·e de Bâtons."

#: init.lua
msgid "Craft 100 sticks."
msgstr "Confectionne 100 bâtons."

#: init.lua
msgid "Jungle Discoverer"
msgstr "Explorat·eur·rice de la Jungle"

#: init.lua
msgid "Mine your first jungle grass."
msgstr "Ramasse ta première herbe de jungle."

#: init.lua
msgid "Grasslands Discoverer"
msgstr "Découvreu·r·se de prairies"

#: init.lua
msgid "Mine some grass."
msgstr "Ramasse de l'herbe."

#: init.lua
msgid "Savannah Discoverer"
msgstr "Explorat·eur·rice de la Savanne"

#: init.lua
msgid "Mine some dry grass."
msgstr "Ramasse de l'herbe sèche."

#: init.lua
msgid "Desert Discoverer"
msgstr "Expolrat·eur·rice du Désert."

#: init.lua
msgid "Mine your first cactus."
msgstr "Mine ton premier catus."

#: init.lua
msgid "Far Lands"
msgstr "Terres Lointaines"

#: init.lua
msgid "Mine your first dry shrub."
msgstr "Coupe ton premier arbuste sec."

#: init.lua
msgid "Glacier Discoverer"
msgstr "Découvreu·r·se de glacier"

#: init.lua
msgid "Mine your first ice."
msgstr "Creuse ton premier bloc de glace."

#: init.lua
msgid "Very Simple Snow Man"
msgstr "Bonhomme de Neige Rudimentaire"

#: init.lua
msgid "Place two snow blocks."
msgstr "Place deux blocs de neige."

#: init.lua
msgid "First Gold Find"
msgstr "Première Pépite : Or"

#: init.lua
msgid "Mine your first gold ore."
msgstr "Mine ton premier minerai d'or."

#: init.lua
msgid "Gold Rush"
msgstr "Ruée vers l'Or"

#: init.lua
msgid "Mine 45 gold ores."
msgstr "Mine 45 minerais d'or."

#: init.lua
msgid "Wow, I am Diamonds!"
msgstr "Wow, Je suis Diamants!"

#: init.lua
msgid "Mine your first diamond ore."
msgstr "Mine ton premier diamant."

#: init.lua
#, fuzzy
msgid "Girl's Best Friend"
msgstr "Girl's Best Friend"

#: init.lua
msgid "Mine 18 diamond ores."
msgstr "Mine 18 diamants."

#: init.lua
msgid "Hardest Block on Earth"
msgstr "Le Bloc le Plus Dur du Monde"

#: init.lua
msgid "Craft a diamond block."
msgstr "Confectionne un bloc de diamant."

#: init.lua
msgid "In the Dungeon"
msgstr "Dans le Donjon"

#: init.lua
msgid "Mine a mossy cobblestone."
msgstr "Mine un bloc de pavés moussus."

#: init.lua
msgid "Smelter"
msgstr "Fondeu·r·se"

#: init.lua
msgid "Craft 10 furnaces."
msgstr "Construis 10 fours."

#: init.lua
msgid "Treasurer"
msgstr "Trésori·er·ère"

#: init.lua
msgid "Craft 15 chests."
msgstr "Fabrique 15 coffres."

#: init.lua
msgid "Bankier"
msgstr "Banqui·er·ère"

#: init.lua
msgid "Craft 30 locked chests."
msgstr "Fabrique 30 coffres Verrouillés."

#: init.lua
msgid "Bricker"
msgstr "Briqueu·r·se"

#: init.lua
msgid "Craft 200 brick blocks."
msgstr "Confectionne 200 blocs de brique."

#: init.lua
msgid "House of Obsidian"
msgstr "La Maison de L'Obsidienne"

#: init.lua
msgid "Craft 100 obsidian bricks."
msgstr "Confectionne 100 briques d'obsidienne."

#: init.lua
msgid "Build a Cave"
msgstr "Construis une grotte"

#: init.lua
msgid "Place 100 stone."
msgstr "Place 100 pierres."

#: init.lua
msgid "Long Ladder"
msgstr "Longue Echelle"

#: init.lua
msgid "Place 400 wooden ladders."
msgstr "Place 400 échelles en bois."

#: init.lua
msgid "Industrial Age"
msgstr "Âge Industriel"

#: init.lua
msgid "Place 40 steel ladders."
msgstr "Place 40 échelles métalliques."

#: init.lua
msgid "Yummy!"
msgstr "Miam !"

#: init.lua
msgid "Eat 80 apples."
msgstr "Mange 80 pommes."

#: init.lua
msgid "Glasser"
msgstr "Verri·er·ère"

#: init.lua
msgid "Craft 14 vessels shelves."
msgstr "Fabrique 14 vaisseliers."

#: init.lua
msgid "Farming Skills Acquired"
msgstr "Compétences Paysannes Acquises"

#: init.lua
msgid "Harvest a fully grown wheat plant."
msgstr "Récolte un plant de blé à maturité."

#: init.lua
msgid "Field Worker"
msgstr "Travailleu·r·se Agricole"

#: init.lua
msgid "Harvest 25 fully grown wheat plants."
msgstr "Récolte 25 plants de blé à maturité."

#: init.lua
msgid "Aspiring Farmer"
msgstr "Apprenti·e Fermi·er·ère"

#: init.lua
msgid "Harvest 125 fully grown wheat plants."
msgstr "Récolte 125 plants de blé à maturité."

#: init.lua
msgid "Wheat Magnate"
msgstr "Magnat·e du Blé"

#: init.lua
msgid "Harvest 625 fully grown wheat plants."
msgstr "Récolte 625 plants de blé à maturité."

#: init.lua
msgid "Baker"
msgstr "Boulang·er·ère"

#: init.lua
msgid "Eat 10 loaves of bread."
msgstr "Mange 10 miches de pain."

#: init.lua
msgid "Wool Over Your Eyes"
msgstr "De la Laines dans Tes Yeux"

#: init.lua
msgid "Craft 250 white wool."
msgstr "Confectionne 250 blocs de laine blanche."

#: init.lua
msgid "Hotelier"
msgstr "Hoteli·er·ère"

#: init.lua
msgid "Craft 15 fancy beds."
msgstr "Construis 15 lits chics."

#: init.lua
msgid "Filthy Rich"
msgstr "Richissime"

#: init.lua
msgid "Craft 24 gold block stairs."
msgstr "Construis 24 escaliers en or."

#: init.lua
msgid "Roses Are Red"
msgstr "Les Roses Sont Rouges"

#: init.lua
msgid "Craft 400 red dyes."
msgstr "Prépare 400 teintures rouges."

#: init.lua
msgid "Dandelions are Yellow"
msgstr "Les Pissenlits sont Jaunes."

#: init.lua
msgid "Craft 400 yellow dyes."
msgstr "Prépare 400 teintures jaunes."

#: init.lua
msgid "Geraniums are Blue"
msgstr "Les Geraniums Sont Bleus"

#: init.lua
msgid "Craft 400 blue dyes."
msgstr "Prépare 400 teintures bleues."

#: init.lua
msgid "White Color Stock"
msgstr "Chaussettes Blanches"

#: init.lua
msgid "Craft 100 white dyes."
msgstr "Prépare 100 teintures blanches."

#: init.lua
msgid "Tasty Mushrooms"
msgstr "Délicieux Champignons"

#: init.lua
msgid "Eat 3 brown mushrooms."
msgstr "Mange 3 champignons marrons."

#: init.lua
msgid "Mushroom Lover"
msgstr "Adorat·eur·rice de Champignons"

#: init.lua
msgid "Eat 33 brown mushrooms."
msgstr "Mange 33 champignons marrons."

#: init.lua
msgid "Underground Mushroom Farmer"
msgstr "Culture de Champignons en Cave"

#: init.lua
msgid "Eat 333 brown mushrooms."
msgstr "Mange 333 champignons marrons."

#: init.lua
msgid "Builder"
msgstr "Bâtisseu·r·se"

#: init.lua
msgid "Constructor"
msgstr "Construct·eur·rice"

#: init.lua
msgid "Architect"
msgstr "Architecte"

#: init.lua
msgid "Master Architect"
msgstr "Maître·sse Architecte"

#: chat_commands.lua
msgid "[c|clear|disable|enable]"
msgstr "[c|clear|disable|enable]"

#: chat_commands.lua
msgid "Show, clear, disable or enable your achievements"
msgstr "Affiche, réinitialise, désactive ou active vos réussites."

#: chat_commands.lua
msgid "All your awards and statistics have been cleared. You can now start again."
msgstr "Tous vos trophées et statistiques ont été réinitialisés. Vous pouvez recommencer à nouveau."

#: chat_commands.lua
msgid "You have disabled your achievements."
msgstr "Vous avez désactivé vos réussites."

#: chat_commands.lua
msgid "You have enabled your achievements."
msgstr "Vous avez activé vos réussites."

#: chat_commands.lua
msgid "<achievement ID>"
msgstr "<réussite ID>"

#: chat_commands.lua
msgid "Show details of an achievement"
msgstr "Afficher les détails d'une réussite"

#: chat_commands.lua
msgid "Achievement not found."
msgstr "Réussite non trouvée."

#: chat_commands.lua
msgid "<name>"
msgstr "<nom>"

#: chat_commands.lua
msgid "Get the achievements statistics for the given player or yourself"
msgstr "Obtenez les statistiques des réussites d'un joueur donné ou de vous-même"


code:
# Portuguese translations for Awards package.
# Copyright (C) 2018
# This file is distributed under the same license as the Awards package.
# FIRST AUTHOR borgesdossantosbruno@gmail.com, 2018.
# BrunoMine, 2018
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-21 05:50-0300\n"
"PO-Revision-Date: 2018-08-01 16:16-0300\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.6\n"
"Last-Translator: BrunoMine\n"
"Language: pt\n"

#: api.lua
msgid "Secret Achievement Unlocked:"
msgstr "Conquista Secreta Desbloqueada:"

#: api.lua
msgid "Achievement Unlocked:"
msgstr "Conquista Desbloqueada:"

#: api.lua
#, lua-format
msgid "Secret Achievement Unlocked: %s"
msgstr "Conquista Secreta Desbloqueada: %s"

#: api.lua
#, lua-format
msgid "Achievement Unlocked: %s"
msgstr "Conquista Desbloqueada: %s"

#: api.lua
msgid "Secret Achievement Unlocked!"
msgstr "Conquista Secreta Desbloqueada!"

#: api.lua
msgid "Achievement Unlocked!"
msgstr "Conquista Desbloqueada!"

#: api.lua
msgid "Error: No awards available."
msgstr "Erro: Nenhuma conquista encontrada."

#: api.lua
msgid "OK"
msgstr "OK"

#: api.lua
msgid "(Secret Award)"
msgstr "(Conquista Secreta)"

#: api.lua
msgid "Unlock this award to find out what it is."
msgstr "Desbloqueie essa conquista para descobrir o que significa."

#: api.lua
#, lua-format
msgid "%s (got)"
msgstr "%s (obtido)"

#: api.lua
msgid "You've disabled awards. Type /awards enable to reenable."
msgstr "Desabilitaste as conquistas. Digite /awards enable para reabilitar."

#: api.lua
msgid "You have not unlocked any awards."
msgstr "Nenhuma conquista desbloqueada ainda."

#: api.lua
#, lua-format
msgid "%s’s awards:"
msgstr "%s das conquistas:"

#: api.lua chat_commands.lua
#, lua-format
msgid "%s: %s"
msgstr "%s: %s"

#: sfinv.lua unified_inventory.lua
msgid "Awards"
msgstr "Conquistas"

#: triggers.lua
msgid "@1/@2 dug"
msgstr "@1 de @2 obtidos"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Mine: @2"
msgid_plural "Mine: @1×@2"
msgstr[0] "Cavar: @2"
msgstr[1] "Minar: @1×@2"

#: triggers.lua
msgid "Mine @1 block."
msgid_plural "Mine @1 blocks."
msgstr[0] "Cavar um bloco."
msgstr[1] "Cavar @1 blocos."

#: triggers.lua
msgid "@1/@2 placed"
msgstr "@1 de @2 colocados"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Place: @2"
msgid_plural "Place: @1×@2"
msgstr[0] "Colocar: @2"
msgstr[1] "Place: @1×@2"

#: triggers.lua
msgid "Place a block."
msgid_plural "Place @1 blocks."
msgstr[0] "Colocar um bloco."
msgstr[1] "Colocar @1 blocos."

#: triggers.lua
msgid "@1/@2 eaten"
msgstr "@1 de @2 consumidos"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Eat: @2"
msgid_plural "Eat: @1×@2"
msgstr[0] "Consumir: @2"
msgstr[1] "Consumir: @1×@2"

#: triggers.lua
msgid "Eat an item."
msgid_plural "Eat @1 items."
msgstr[0] "Consumir um item."
msgstr[1] "Consumir @1 itens."

#: triggers.lua
msgid "@1/@2 deaths"
msgstr "@1 de @2 mortes"

#: triggers.lua
msgid "Die."
msgid_plural "Die @1 times."
msgstr[0] "Morrer."
msgstr[1] "Morrer @1 vezes."

#: triggers.lua
msgid "@1/@2 chat messages"
msgstr "@1 de @2"

#: triggers.lua
msgid "Write something in chat."
msgid_plural "Write @1 chat messages."
msgstr[0] "Escrever algo no bate papo."
msgstr[1] "Escrever @1 mensagens no bate papo."

#: triggers.lua
msgid "@1/@2 game joins"
msgstr "@1 de @2"

#: triggers.lua
msgid "Join the game."
msgid_plural "Join the game @1 times."
msgstr[0] "Entre no jogo."
msgstr[1] "Entre no jogo @1 vezes."

#: triggers.lua
msgid "@1/@2 crafted"
msgstr "@1 de @2 feitos"

#. Translators: @1 is count, @2 is description.
#: triggers.lua
msgid "Craft: @2"
msgid_plural "Craft: @1×@2"
msgstr[0] "Fazer @2"
msgstr[1] "Montar @2 @1 vezes"

#: triggers.lua
msgid "Craft an item."
msgid_plural "Craft @1 items."
msgstr[0] "Fazer um item."
msgstr[1] "Fazer @1 itens."

#: init.lua
msgid "Saint-Maclou"
msgstr "Saint-Maclou"

#: init.lua
msgid "Place 20 coal checkers."
msgstr ""

#: init.lua
msgid "Castorama"
msgstr ""

#: init.lua
msgid "Place 20 iron checkers."
msgstr ""

#: init.lua
msgid "Sam the Trapper"
msgstr ""

#: init.lua
msgid "Place 2 trap stones."
msgstr ""

#: init.lua
msgid "Backpacker"
msgstr ""

#: init.lua
msgid "Craft 4 large bags."
msgstr ""

#: init.lua
msgid "Pyromaniac"
msgstr "Piromaníaco"

#: init.lua
msgid "Craft 8 times flint and steel."
msgstr "Montar acendedor de Ferro e Pederneira 8 vezes."

#: init.lua
msgid "Firefighter"
msgstr "Bombeiro"

#: init.lua
msgid "Put out 1000 fires."
msgstr "Apagar fogo 1000 vezes."

#: init.lua
msgid "Light It Up"
msgstr "Ilumine Isso"

#: init.lua
msgid "Place 100 torches."
msgstr "Colocar 100 tochas."

#: init.lua
msgid "Well Lit"
msgstr "Bem Iluminado"

#: init.lua
msgid "Place 1,000 torches."
msgstr "Colocar 1.000 tochas."

#: init.lua
msgid "Really Well Lit"
msgstr "Realmente Bem Iluminado"

#: init.lua
msgid "Craft 10 mese lamps."
msgstr "Fazer 10 lâmpadas de mese."

#: init.lua
msgid "Outpost"
msgstr "Posto Avançado"

#: init.lua
msgid "Craft 200 stone bricks."
msgstr "Fazer 200 tijolos de pedra."

#: init.lua
msgid "Watchtower"
msgstr "Sentinela"

#: init.lua
msgid "Craft 800 stone bricks."
msgstr "Fazer 800 tijolos de pedra."

#: init.lua
msgid "Fortress"
msgstr "Fortaleza"

#: init.lua
msgid "Craft 3,200 stone bricks."
msgstr "Fazer 3.200 tijolos de pedra."

#: init.lua
msgid "Desert Dweller"
msgstr "Morador do Deserto"

#: init.lua
msgid "Craft 400 desert stone bricks."
msgstr "Fazer 400 Tijolos de pedra do deserto."

#: init.lua
msgid "Pharaoh"
msgstr "Faraó"

#: init.lua
msgid "Craft 100 sandstone bricks."
msgstr "Fazer 100 tijolos de arenito."

#: init.lua
msgid "Little Library"
msgstr "Pequena Biblioteca"

#: init.lua
msgid "Craft 7 bookshelves."
msgstr "Fazer 7 estantes de livros."

#: init.lua
msgid "Lava and Water"
msgstr "Lava e Água"

#: init.lua
msgid "Mine your first obsidian."
msgstr "Cavar sua primeira obsidiana."

#: init.lua
msgid "Obsessed with Obsidian"
msgstr "Obcecado por Obsidiana"

#: init.lua
msgid "Mine 50 obsidian."
msgstr "Minerar 50 obsidianas."

#: init.lua
msgid "Lava Miner"
msgstr "Minerador de Lava"

#: init.lua
msgid "Mine any block while being very close to lava."
msgstr "Minerar qualquer bloco enquanto estiver mergulhado em lava."

#: init.lua
msgid "On The Way"
msgstr "No Caminho"

#: init.lua
msgid "Place 100 rails."
msgstr "Colocar 100 trilhos."

#: init.lua
msgid "First Day in the Woods"
msgstr "Primeiro dia na Floresta"

#: init.lua
msgid "Dig 6 tree blocks."
msgstr "Cortar 6 blocos de árvore."

#: init.lua
msgid "Lumberjack"
msgstr "Lenhador"

#: init.lua
msgid "Dig 36 tree blocks."
msgstr "Cortar 36 blocos de árvore."

#: init.lua
msgid "Semi-pro Lumberjack"
msgstr "Lenhador Semi-Profissional"

#: init.lua
msgid "Dig 216 tree blocks."
msgstr "Cortar 216 blocos de árvore."

#: init.lua
msgid "Professional Lumberjack"
msgstr "Lenhador Profissional"

#: init.lua
msgid "Dig 1,296 tree blocks."
msgstr "Cortar 1.296 blocos de árvore."

#: init.lua
msgid "Junglebaby"
msgstr "Bebê Selvagem"

#: init.lua
msgid "Dig 100 jungle tree blocks."
msgstr "Cortar 100 blocos de árvore selvagem."

#: init.lua
msgid "Jungleman"
msgstr "Homem Selvagem"

#: init.lua
msgid "Dig 1,000 jungle tree blocks."
msgstr "Cortar 1.000 blocos de árvore selvagem."

#: init.lua
msgid "First Mese Find"
msgstr "Primeiro Mese"

#: init.lua
msgid "Mine your first mese ore."
msgstr "Cavar seu primeiro mese."

#: init.lua
msgid "Mese Mastery"
msgstr "Mestre do Mese"

#: init.lua
msgid "Mine a mese block."
msgstr "Cavar um bloco de mese."

#: init.lua
msgid "You’re a copper"
msgstr "Sou um Cobre"

#: init.lua
msgid "Dig 1,000 copper ores."
msgstr "Minerar 1.000 cobres."

#: init.lua
msgid "A Cat in a Pop-Tart?!"
msgstr "Um Gato em um Pop-Tart?!"

#: init.lua
msgid "Mine a nyan cat."
msgstr "Capturar um gato nyan."

#: init.lua
msgid "Mini Miner"
msgstr "Mini Minerador"

#: init.lua
msgid "Dig 100 stone blocks."
msgstr "Minerar 100 blocos de pedra."

#: init.lua
msgid "Hardened Miner"
msgstr "Minerador Avançado"

#: init.lua
msgid "Dig 1,000 stone blocks."
msgstr "Minerar 1.000 blocos de pedra."

#: init.lua
msgid "Master Miner"
msgstr "Minerador Mestre"

#: init.lua
msgid "Dig 10,000 stone blocks."
msgstr "Minerar 10.000 blocos de pedra."

#: init.lua
msgid "Marchand De Sable"
msgstr "Vendedor de Areia"

#: init.lua
msgid "Dig 1,000 sand."
msgstr "Cavar 1.000 blocos de areia."

#: init.lua
msgid "Crafter of Sticks"
msgstr "Rachador de Lenha"

#: init.lua
msgid "Craft 100 sticks."
msgstr "Lenhar 100 gravetos."

#: init.lua
msgid "Jungle Discoverer"
msgstr "Desbravador Selvagem"

#: init.lua
msgid "Mine your first jungle grass."
msgstr "Cortar seu primeiro mato selvagem."

#: init.lua
msgid "Grasslands Discoverer"
msgstr "Descobridor do Gramado"

#: init.lua
msgid "Mine some grass."
msgstr "Minerar algum mato"

#: init.lua
msgid "Savannah Discoverer"
msgstr "Descobridor da Savana"

#: init.lua
msgid "Mine some dry grass."
msgstr "Minerar algum mato seco."

#: init.lua
msgid "Desert Discoverer"
msgstr "Descobridor do Deserto"

#: init.lua
msgid "Mine your first cactus."
msgstr "Cortar seu primeiro cacto."

#: init.lua
msgid "Far Lands"
msgstr "Terras Distantes"

#: init.lua
msgid "Mine your first dry shrub."
msgstr "Minerar seu primeiro arbusto seco."

#: init.lua
msgid "Glacier Discoverer"
msgstr "Descobridor Glacial"

#: init.lua
msgid "Mine your first ice."
msgstr "Quebrar seu primeiro bloco de gelo."

#: init.lua
msgid "Very Simple Snow Man"
msgstr "Homem de Neve Muito Simples"

#: init.lua
msgid "Place two snow blocks."
msgstr "Colocar 2 blocos de neve."

#: init.lua
msgid "First Gold Find"
msgstr "Achei Ouro"

#: init.lua
msgid "Mine your first gold ore."
msgstr "Minerar sua primeira de ouro."

#: init.lua
msgid "Gold Rush"
msgstr "Corriga do Ouro"

#: init.lua
msgid "Mine 45 gold ores."
msgstr "Minerar 45 de ouro."

#: init.lua
msgid "Wow, I am Diamonds!"
msgstr "Uau, Diamante!"

#: init.lua
msgid "Mine your first diamond ore."
msgstr "Minerar seu primeiro diamante."

#: init.lua
msgid "Girl's Best Friend"
msgstr "Melhor Amigo da Menina"

#: init.lua
msgid "Mine 18 diamond ores."
msgstr "Minere 18 diamantes."

#: init.lua
msgid "Hardest Block on Earth"
msgstr "O Bloco mais Duro da Terra"

#: init.lua
msgid "Craft a diamond block."
msgstr "Montar um bloco de diamante."

#: init.lua
msgid "In the Dungeon"
msgstr "Na Masmorra"

#: init.lua
msgid "Mine a mossy cobblestone."
msgstr "Minerar um pedregulho com musgo."

#: init.lua
msgid "Smelter"
msgstr "Fundidor"

#: init.lua
msgid "Craft 10 furnaces."
msgstr "Montar 10 fornos."

#: init.lua
msgid "Treasurer"
msgstr "Tesoureiro"

#: init.lua
msgid "Craft 15 chests."
msgstr "Montar 10 baús."

#: init.lua
msgid "Bankier"
msgstr "Banqueiro"

#: init.lua
msgid "Craft 30 locked chests."
msgstr "Montar 30 baús trancados."

#: init.lua
msgid "Bricker"
msgstr "Tijoleiro"

#: init.lua
msgid "Craft 200 brick blocks."
msgstr "Fazer 200 blocos de tijolo."

#: init.lua
msgid "House of Obsidian"
msgstr "Casa de Obsidiana"

#: init.lua
msgid "Craft 100 obsidian bricks."
msgstr "Montar 100 tijolos de obsidiana."

#: init.lua
msgid "Build a Cave"
msgstr "Montar uma Caverna"

#: init.lua
msgid "Place 100 stone."
msgstr "Colocar 100 pedras."

#: init.lua
msgid "Long Ladder"
msgstr "Longa Escadaria"

#: init.lua
msgid "Place 400 wooden ladders."
msgstr "Colocar 400 escadas de madeira."

#: init.lua
msgid "Industrial Age"
msgstr "Era Industrial"

#: init.lua
msgid "Place 40 steel ladders."
msgstr "Colocar 40 escadas de ferro."

#: init.lua
msgid "Yummy!"
msgstr "Humm!"

#: init.lua
msgid "Eat 80 apples."
msgstr "Comer 80 maçãs."

#: init.lua
msgid "Glasser"
msgstr "Vidraceiro"

#: init.lua
msgid "Craft 14 vessels shelves."
msgstr "Montar 14 estantes de frascos."

#: init.lua
msgid "Farming Skills Acquired"
msgstr "Conhecimento de Cultivo Adquirido"

#: init.lua
msgid "Harvest a fully grown wheat plant."
msgstr "Colher um trigo totalmente crescido."

#: init.lua
msgid "Field Worker"
msgstr "Trabalhador do Campo"

#: init.lua
msgid "Harvest 25 fully grown wheat plants."
msgstr "Colher 25 plantas trigos totalmente crescidos."

#: init.lua
msgid "Aspiring Farmer"
msgstr "Fazendeiro Aspirante"

#: init.lua
msgid "Harvest 125 fully grown wheat plants."
msgstr "Colher 125 plantas trigos totalmente crescidos."

#: init.lua
msgid "Wheat Magnate"
msgstr "Magnata do Trigo"

#: init.lua
msgid "Harvest 625 fully grown wheat plants."
msgstr "Colher 625 plantas trigos totalmente crescidos."

#: init.lua
msgid "Baker"
msgstr "Padeiro"

#: init.lua
msgid "Eat 10 loaves of bread."
msgstr "Comer 10 pães."

#: init.lua
msgid "Wool Over Your Eyes"
msgstr "Lã Sobre Meus Olhos"

#: init.lua
msgid "Craft 250 white wool."
msgstr "Tecer 250 lãs branca."

#: init.lua
msgid "Hotelier"
msgstr "Hoteleiro"

#: init.lua
msgid "Craft 15 fancy beds."
msgstr "Montar 15 camas chiques."

#: init.lua
msgid "Filthy Rich"
msgstr "Muito Rico"

#: init.lua
msgid "Craft 24 gold block stairs."
msgstr "Montar 24 escadas de bloco de ouro."

#: init.lua
msgid "Roses Are Red"
msgstr "Rosas São Vermelhas"

#: init.lua
msgid "Craft 400 red dyes."
msgstr "Fazer 400 tintas vermelhas."

#: init.lua
msgid "Dandelions are Yellow"
msgstr "Dentes-de-Leões são Amarelos"

#: init.lua
msgid "Craft 400 yellow dyes."
msgstr "Fazer 400 tintas amarelas."

#: init.lua
msgid "Geraniums are Blue"
msgstr "Gerânios são Azuis"

#: init.lua
msgid "Craft 400 blue dyes."
msgstr "Fazer 400 tintas azuis."

#: init.lua
msgid "White Color Stock"
msgstr "Estoque de Cor Branca"

#: init.lua
msgid "Craft 100 white dyes."
msgstr "Fazer 100 tintas brancas."

#: init.lua
msgid "Tasty Mushrooms"
msgstr "Cogumelos Deliciosos"

#: init.lua
msgid "Eat 3 brown mushrooms."
msgstr "Comer 3 cogumelos marrons."

#: init.lua
msgid "Mushroom Lover"
msgstr "Amante de Cogumelo"

#: init.lua
msgid "Eat 33 brown mushrooms."
msgstr "Comer 33 cogumelos marrons."

#: init.lua
msgid "Underground Mushroom Farmer"
msgstr "Fazendeiro Subterrâneo de Cogumelos"

#: init.lua
msgid "Eat 333 brown mushrooms."
msgstr "Comer 333 cogumelos marrons."

#: init.lua
msgid "Builder"
msgstr "Construtor"

#: init.lua
msgid "Constructor"
msgstr "Empreiteiro"

#: init.lua
msgid "Architect"
msgstr "Arquiteto"

#: init.lua
msgid "Master Architect"
msgstr "Arquiteto Mestre"

#: chat_commands.lua
msgid "[c|clear|disable|enable]"
msgstr "[c|clear|disable|enable]"

#: chat_commands.lua
msgid "Show, clear, disable or enable your achievements"
msgstr "Exibir, limpar, desabilitar ou habilitar suas conquistas"

#: chat_commands.lua
msgid "All your awards and statistics have been cleared. You can now start again."
msgstr "Todas as suas conquistas e estatísticas foram limpas. Agora podes iniciar novamente."

#: chat_commands.lua
msgid "You have disabled your achievements."
msgstr "Suas conquistas foram desabilitadas."

#: chat_commands.lua
msgid "You have enabled your achievements."
msgstr "Suas conquistas foram habilitadas."

#: chat_commands.lua
msgid "<achievement ID>"
msgstr "<ID da conquista>"

#: chat_commands.lua
msgid "Show details of an achievement"
msgstr "Mostra detalhes de uma conquista"

#: chat_commands.lua
msgid "Achievement not found."
msgstr "Conquista não encontrada."

#: chat_commands.lua
msgid "<name>"
msgstr "<jogador>"

#: chat_commands.lua
msgid "Get the achievements statistics for the given player or yourself"
msgstr "Ver as estatísticas de conquistas de um jogador ou suas próprias"