mirror of https://github.com/minetest/minetest.git
Merge pull request #3 from minetest/master
Merge pull request #3 from minetest/master
This commit is contained in:
commit
d202ac144b
|
@ -31,6 +31,7 @@ CMakeFiles/*
|
||||||
src/CMakeFiles/*
|
src/CMakeFiles/*
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/cmake_config.h
|
src/cmake_config.h
|
||||||
|
src/cmake_config_githash.h
|
||||||
src/cmake_install.cmake
|
src/cmake_install.cmake
|
||||||
src/script/CMakeFiles/*
|
src/script/CMakeFiles/*
|
||||||
src/script/common/CMakeFiles/*
|
src/script/common/CMakeFiles/*
|
||||||
|
|
|
@ -12,9 +12,12 @@ set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
|
||||||
# Also remember to set PROTOCOL_VERSION in clientserver.h when releasing
|
# Also remember to set PROTOCOL_VERSION in clientserver.h when releasing
|
||||||
set(VERSION_MAJOR 0)
|
set(VERSION_MAJOR 0)
|
||||||
set(VERSION_MINOR 4)
|
set(VERSION_MINOR 4)
|
||||||
set(VERSION_PATCH 7)
|
set(VERSION_PATCH 8)
|
||||||
if(VERSION_EXTRA)
|
if(VERSION_EXTRA)
|
||||||
set(VERSION_PATCH ${VERSION_PATCH}-${VERSION_EXTRA})
|
set(VERSION_PATCH ${VERSION_PATCH}-${VERSION_EXTRA})
|
||||||
|
else()
|
||||||
|
# Comment the following line during release
|
||||||
|
set(VERSION_PATCH ${VERSION_PATCH}-dev)
|
||||||
endif()
|
endif()
|
||||||
set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
engine.log("info","Initializing Asynchronous environment")
|
||||||
|
|
||||||
|
dofile(SCRIPTDIR .. DIR_DELIM .. "misc_helpers.lua")
|
||||||
|
|
||||||
|
function engine.job_processor(serialized_function, serialized_data)
|
||||||
|
|
||||||
|
local fct = marshal.decode(serialized_function)
|
||||||
|
local params = marshal.decode(serialized_data)
|
||||||
|
local retval = marshal.encode(nil)
|
||||||
|
|
||||||
|
if fct ~= nil and type(fct) == "function" then
|
||||||
|
local result = fct(params)
|
||||||
|
retval = marshal.encode(result)
|
||||||
|
else
|
||||||
|
engine.log("error","ASYNC WORKER: unable to deserialize function")
|
||||||
|
end
|
||||||
|
|
||||||
|
return retval,retval:len()
|
||||||
|
end
|
|
@ -0,0 +1,59 @@
|
||||||
|
local tbl = engine or minetest
|
||||||
|
|
||||||
|
tbl.async_jobs = {}
|
||||||
|
|
||||||
|
if engine ~= nil then
|
||||||
|
function tbl.async_event_handler(jobid, serialized_retval)
|
||||||
|
local retval = nil
|
||||||
|
if serialized_retval ~= "ERROR" then
|
||||||
|
retval= marshal.decode(serialized_retval)
|
||||||
|
else
|
||||||
|
tbl.log("error","Error fetching async result")
|
||||||
|
end
|
||||||
|
|
||||||
|
assert(type(tbl.async_jobs[jobid]) == "function")
|
||||||
|
tbl.async_jobs[jobid](retval)
|
||||||
|
tbl.async_jobs[jobid] = nil
|
||||||
|
end
|
||||||
|
else
|
||||||
|
|
||||||
|
minetest.register_globalstep(
|
||||||
|
function(dtime)
|
||||||
|
local list = tbl.get_finished_jobs()
|
||||||
|
|
||||||
|
for i=1,#list,1 do
|
||||||
|
local retval = marshal.decode(list[i].retval)
|
||||||
|
|
||||||
|
assert(type(tbl.async_jobs[jobid]) == "function")
|
||||||
|
tbl.async_jobs[list[i].jobid](retval)
|
||||||
|
tbl.async_jobs[list[i].jobid] = nil
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function tbl.handle_async(fct, parameters, callback)
|
||||||
|
|
||||||
|
--serialize fct
|
||||||
|
local serialized_fct = marshal.encode(fct)
|
||||||
|
|
||||||
|
assert(marshal.decode(serialized_fct) ~= nil)
|
||||||
|
|
||||||
|
--serialize parameters
|
||||||
|
local serialized_params = marshal.encode(parameters)
|
||||||
|
|
||||||
|
if serialized_fct == nil or
|
||||||
|
serialized_params == nil or
|
||||||
|
serialized_fct:len() == 0 or
|
||||||
|
serialized_params:len() == 0 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local jobid = tbl.do_async_callback( serialized_fct,
|
||||||
|
serialized_fct:len(),
|
||||||
|
serialized_params,
|
||||||
|
serialized_params:len())
|
||||||
|
|
||||||
|
tbl.async_jobs[jobid] = callback
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
|
@ -471,10 +471,10 @@ minetest.register_chatcommand("spawnentity", {
|
||||||
minetest.chat_send_player(name, "entityname required")
|
minetest.chat_send_player(name, "entityname required")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
print('/spawnentity invoked, entityname="'..entityname..'"')
|
minetest.log("action", '/spawnentity invoked, entityname="'..entityname..'"')
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
if player == nil then
|
if player == nil then
|
||||||
print("Unable to spawn entity, player is nil")
|
minetest.log("error", "Unable to spawn entity, player is nil")
|
||||||
return true -- Handled chat message
|
return true -- Handled chat message
|
||||||
end
|
end
|
||||||
local p = player:getpos()
|
local p = player:getpos()
|
||||||
|
@ -491,7 +491,7 @@ minetest.register_chatcommand("pulverize", {
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
if player == nil then
|
if player == nil then
|
||||||
print("Unable to pulverize, player is nil")
|
minetest.log("error", "Unable to pulverize, player is nil")
|
||||||
return true -- Handled chat message
|
return true -- Handled chat message
|
||||||
end
|
end
|
||||||
if player:get_wielded_item():is_empty() then
|
if player:get_wielded_item():is_empty() then
|
||||||
|
@ -515,34 +515,45 @@ minetest.register_on_punchnode(function(pos, node, puncher)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_chatcommand("rollback_check", {
|
minetest.register_chatcommand("rollback_check", {
|
||||||
params = "[<range>] [<seconds>]",
|
params = "[<range>] [<seconds>] [limit]",
|
||||||
description = "check who has last touched a node or near it, "..
|
description = "check who has last touched a node or near it, "..
|
||||||
"max. <seconds> ago (default range=0, seconds=86400=24h)",
|
"max. <seconds> ago (default range=0, seconds=86400=24h, limit=5)",
|
||||||
privs = {rollback=true},
|
privs = {rollback=true},
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local range, seconds = string.match(param, "(%d+) *(%d*)")
|
local range, seconds, limit =
|
||||||
|
param:match("(%d+) *(%d*) *(%d*)")
|
||||||
range = tonumber(range) or 0
|
range = tonumber(range) or 0
|
||||||
seconds = tonumber(seconds) or 86400
|
seconds = tonumber(seconds) or 86400
|
||||||
minetest.chat_send_player(name, "Punch a node (limits set: range="..
|
limit = tonumber(limit) or 5
|
||||||
dump(range).." seconds="..dump(seconds).."s)")
|
if limit > 100 then
|
||||||
|
minetest.chat_send_player(name, "That limit is too high!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
minetest.chat_send_player(name, "Punch a node (range="..
|
||||||
|
range..", seconds="..seconds.."s, limit="..limit..")")
|
||||||
|
|
||||||
minetest.rollback_punch_callbacks[name] = function(pos, node, puncher)
|
minetest.rollback_punch_callbacks[name] = function(pos, node, puncher)
|
||||||
local name = puncher:get_player_name()
|
local name = puncher:get_player_name()
|
||||||
minetest.chat_send_player(name, "Checking...")
|
minetest.chat_send_player(name, "Checking "..minetest.pos_to_string(pos).."...")
|
||||||
local actor, act_p, act_seconds =
|
local actions = minetest.rollback_get_node_actions(pos, range, seconds, limit)
|
||||||
minetest.rollback_get_last_node_actor(pos, range, seconds)
|
local num_actions = #actions
|
||||||
if actor == "" then
|
if num_actions == 0 then
|
||||||
minetest.chat_send_player(name, "Nobody has touched the "..
|
minetest.chat_send_player(name, "Nobody has touched the "..
|
||||||
"specified location in "..dump(seconds).." seconds")
|
"specified location in "..seconds.." seconds")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local nodedesc = "this node"
|
local time = os.time()
|
||||||
if act_p.x ~= pos.x or act_p.y ~= pos.y or act_p.z ~= pos.z then
|
for i = num_actions, 1, -1 do
|
||||||
nodedesc = minetest.pos_to_string(act_p)
|
local action = actions[i]
|
||||||
|
minetest.chat_send_player(name,
|
||||||
|
("%s %s %s -> %s %d seconds ago.")
|
||||||
|
:format(
|
||||||
|
minetest.pos_to_string(action.pos),
|
||||||
|
action.actor,
|
||||||
|
action.oldnode.name,
|
||||||
|
action.newnode.name,
|
||||||
|
time - action.time))
|
||||||
end
|
end
|
||||||
local nodename = minetest.get_node(act_p).name
|
|
||||||
minetest.chat_send_player(name, "Last actor on "..nodedesc..
|
|
||||||
" was "..actor..", "..dump(act_seconds)..
|
|
||||||
"s ago (node is now "..nodename..")")
|
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -554,7 +565,7 @@ minetest.register_chatcommand("rollback", {
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local target_name, seconds = string.match(param, ":([^ ]+) *(%d*)")
|
local target_name, seconds = string.match(param, ":([^ ]+) *(%d*)")
|
||||||
if not target_name then
|
if not target_name then
|
||||||
local player_name = nil;
|
local player_name = nil
|
||||||
player_name, seconds = string.match(param, "([^ ]+) *(%d*)")
|
player_name, seconds = string.match(param, "([^ ]+) *(%d*)")
|
||||||
if not player_name then
|
if not player_name then
|
||||||
minetest.chat_send_player(name, "Invalid parameters. See /help rollback and /help rollback_check")
|
minetest.chat_send_player(name, "Invalid parameters. See /help rollback and /help rollback_check")
|
||||||
|
@ -564,13 +575,13 @@ minetest.register_chatcommand("rollback", {
|
||||||
end
|
end
|
||||||
seconds = tonumber(seconds) or 60
|
seconds = tonumber(seconds) or 60
|
||||||
minetest.chat_send_player(name, "Reverting actions of "..
|
minetest.chat_send_player(name, "Reverting actions of "..
|
||||||
dump(target_name).." since "..dump(seconds).." seconds.")
|
target_name.." since "..seconds.." seconds.")
|
||||||
local success, log = minetest.rollback_revert_actions_by(
|
local success, log = minetest.rollback_revert_actions_by(
|
||||||
target_name, seconds)
|
target_name, seconds)
|
||||||
if #log > 10 then
|
if #log > 100 then
|
||||||
minetest.chat_send_player(name, "(log is too long to show)")
|
minetest.chat_send_player(name, "(log is too long to show)")
|
||||||
else
|
else
|
||||||
for _,line in ipairs(log) do
|
for _, line in pairs(log) do
|
||||||
minetest.chat_send_player(name, line)
|
minetest.chat_send_player(name, line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -46,3 +46,8 @@ setmetatable(minetest.env, {
|
||||||
return rawget(table, key)
|
return rawget(table, key)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function minetest.rollback_get_last_node_actor(pos, range, seconds)
|
||||||
|
return minetest.rollback_get_node_actions(pos, range, seconds, 1)[1]
|
||||||
|
end
|
||||||
|
|
||||||
|
|
|
@ -54,19 +54,25 @@ minetest.register_entity("__builtin:falling_node", {
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:getpos()
|
||||||
local bcp = {x=pos.x, y=pos.y-0.7, z=pos.z} -- Position of bottom center point
|
local bcp = {x=pos.x, y=pos.y-0.7, z=pos.z} -- Position of bottom center point
|
||||||
local bcn = minetest.get_node(bcp)
|
local bcn = minetest.get_node(bcp)
|
||||||
|
local bcd = minetest.registered_nodes[bcn.name]
|
||||||
-- Note: walkable is in the node definition, not in item groups
|
-- Note: walkable is in the node definition, not in item groups
|
||||||
if minetest.registered_nodes[bcn.name] and
|
if not bcd or
|
||||||
minetest.registered_nodes[bcn.name].walkable or
|
(bcd.walkable or
|
||||||
(minetest.get_node_group(self.node.name, "float") ~= 0 and minetest.registered_nodes[bcn.name].liquidtype ~= "none")
|
(minetest.get_node_group(self.node.name, "float") ~= 0 and
|
||||||
then
|
bcd.liquidtype ~= "none")) then
|
||||||
if minetest.registered_nodes[bcn.name].leveled and bcn.name == self.node.name then
|
if bcd and bcd.leveled and
|
||||||
|
bcn.name == self.node.name then
|
||||||
local addlevel = self.node.level
|
local addlevel = self.node.level
|
||||||
if addlevel == nil or addlevel <= 0 then addlevel = minetest.registered_nodes[bcn.name].leveled end
|
if addlevel == nil or addlevel <= 0 then
|
||||||
if minetest.env:add_node_level(bcp, addlevel) == 0 then
|
addlevel = bcd.leveled
|
||||||
|
end
|
||||||
|
if minetest.add_node_level(bcp, addlevel) == 0 then
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
elseif minetest.registered_nodes[bcn.name].buildable_to and (minetest.get_node_group(self.node.name, "float") == 0 or minetest.registered_nodes[bcn.name].liquidtype == "none") then
|
elseif bcd and bcd.buildable_to and
|
||||||
|
(minetest.get_node_group(self.node.name, "float") == 0 or
|
||||||
|
bcd.liquidtype == "none") then
|
||||||
minetest.remove_node(bcp)
|
minetest.remove_node(bcp)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,6 +6,7 @@ minetest.features = {
|
||||||
chat_send_player_param3 = true,
|
chat_send_player_param3 = true,
|
||||||
get_all_craft_recipes_works = true,
|
get_all_craft_recipes_works = true,
|
||||||
use_texture_alpha = true,
|
use_texture_alpha = true,
|
||||||
|
no_legacy_abms = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
function minetest.has_feature(arg)
|
function minetest.has_feature(arg)
|
||||||
|
|
|
@ -17,6 +17,20 @@
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- Generic implementation of a filter/sortable list --
|
-- Generic implementation of a filter/sortable list --
|
||||||
|
-- Usage: --
|
||||||
|
-- Filterlist needs to be initialized on creation. To achieve this you need to --
|
||||||
|
-- pass following functions: --
|
||||||
|
-- raw_fct() (mandatory): --
|
||||||
|
-- function returning a table containing the elements to be filtered --
|
||||||
|
-- compare_fct(element1,element2) (mandatory): --
|
||||||
|
-- function returning true/false if element1 is same element as element2 --
|
||||||
|
-- uid_match_fct(element1,uid) (optional) --
|
||||||
|
-- function telling if uid is attached to element1 --
|
||||||
|
-- filter_fct(element,filtercriteria) (optional) --
|
||||||
|
-- function returning true/false if filtercriteria met to element --
|
||||||
|
-- fetch_param (optional) --
|
||||||
|
-- parameter passed to raw_fct to aquire correct raw data --
|
||||||
|
-- --
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
filterlist = {}
|
filterlist = {}
|
||||||
|
|
||||||
|
@ -157,7 +171,7 @@ function filterlist.process(this)
|
||||||
this.m_processed_list = {}
|
this.m_processed_list = {}
|
||||||
|
|
||||||
for k,v in pairs(this.m_raw_list) do
|
for k,v in pairs(this.m_raw_list) do
|
||||||
if this.m_filtercriteria == nil or
|
if this.m_filtercriteria == nil or
|
||||||
this.m_filter_fct(v,this.m_filtercriteria) then
|
this.m_filter_fct(v,this.m_filtercriteria) then
|
||||||
table.insert(this.m_processed_list,v)
|
table.insert(this.m_processed_list,v)
|
||||||
end
|
end
|
||||||
|
@ -167,7 +181,7 @@ function filterlist.process(this)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if this.m_sort_list[this.m_sortmode] ~= nil and
|
if this.m_sort_list[this.m_sortmode] ~= nil and
|
||||||
type(this.m_sort_list[this.m_sortmode]) == "function" then
|
type(this.m_sort_list[this.m_sortmode]) == "function" then
|
||||||
|
|
||||||
this.m_sort_list[this.m_sortmode](this)
|
this.m_sort_list[this.m_sortmode](this)
|
||||||
|
@ -237,7 +251,7 @@ function compare_worlds(world1,world2)
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function sort_worlds_alphabetic(this)
|
function sort_worlds_alphabetic(this)
|
||||||
|
|
||||||
table.sort(this.m_processed_list, function(a, b)
|
table.sort(this.m_processed_list, function(a, b)
|
||||||
--fixes issue #857 (crash due to sorting nil in worldlist)
|
--fixes issue #857 (crash due to sorting nil in worldlist)
|
||||||
|
|
|
@ -98,7 +98,7 @@ function minetest.facedir_to_dir(facedir)
|
||||||
|
|
||||||
--indexed into by a table of correlating facedirs
|
--indexed into by a table of correlating facedirs
|
||||||
[({[0]=1, 2, 3, 4,
|
[({[0]=1, 2, 3, 4,
|
||||||
5, 2, 6, 4,
|
5, 4, 6, 2,
|
||||||
6, 2, 5, 4,
|
6, 2, 5, 4,
|
||||||
1, 5, 3, 6,
|
1, 5, 3, 6,
|
||||||
1, 6, 3, 5,
|
1, 6, 3, 5,
|
||||||
|
@ -179,11 +179,11 @@ function minetest.get_node_drops(nodename, toolname)
|
||||||
return got_items
|
return got_items
|
||||||
end
|
end
|
||||||
|
|
||||||
function minetest.item_place_node(itemstack, placer, pointed_thing)
|
function minetest.item_place_node(itemstack, placer, pointed_thing, param2)
|
||||||
local item = itemstack:peek_item()
|
local item = itemstack:peek_item()
|
||||||
local def = itemstack:get_definition()
|
local def = itemstack:get_definition()
|
||||||
if def.type ~= "node" or pointed_thing.type ~= "node" then
|
if def.type ~= "node" or pointed_thing.type ~= "node" then
|
||||||
return itemstack
|
return itemstack, false
|
||||||
end
|
end
|
||||||
|
|
||||||
local under = pointed_thing.under
|
local under = pointed_thing.under
|
||||||
|
@ -194,7 +194,7 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||||
if not oldnode_under or not oldnode_above then
|
if not oldnode_under or not oldnode_above then
|
||||||
minetest.log("info", placer:get_player_name() .. " tried to place"
|
minetest.log("info", placer:get_player_name() .. " tried to place"
|
||||||
.. " node in unloaded position " .. minetest.pos_to_string(above))
|
.. " node in unloaded position " .. minetest.pos_to_string(above))
|
||||||
return itemstack
|
return itemstack, false
|
||||||
end
|
end
|
||||||
|
|
||||||
local olddef_under = ItemStack({name=oldnode_under.name}):get_definition()
|
local olddef_under = ItemStack({name=oldnode_under.name}):get_definition()
|
||||||
|
@ -206,7 +206,7 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||||
minetest.log("info", placer:get_player_name() .. " tried to place"
|
minetest.log("info", placer:get_player_name() .. " tried to place"
|
||||||
.. " node in invalid position " .. minetest.pos_to_string(above)
|
.. " node in invalid position " .. minetest.pos_to_string(above)
|
||||||
.. ", replacing " .. oldnode_above.name)
|
.. ", replacing " .. oldnode_above.name)
|
||||||
return itemstack
|
return itemstack, false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Place above pointed node
|
-- Place above pointed node
|
||||||
|
@ -218,14 +218,23 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||||
place_to = {x = under.x, y = under.y, z = under.z}
|
place_to = {x = under.x, y = under.y, z = under.z}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if minetest.is_protected(place_to, placer:get_player_name()) then
|
||||||
|
minetest.log("action", placer:get_player_name()
|
||||||
|
.. " tried to place " .. def.name
|
||||||
|
.. " at protected position "
|
||||||
|
.. minetest.pos_to_string(place_to))
|
||||||
|
minetest.record_protection_violation(place_to, placer:get_player_name())
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
minetest.log("action", placer:get_player_name() .. " places node "
|
minetest.log("action", placer:get_player_name() .. " places node "
|
||||||
.. def.name .. " at " .. minetest.pos_to_string(place_to))
|
.. def.name .. " at " .. minetest.pos_to_string(place_to))
|
||||||
|
|
||||||
local oldnode = minetest.get_node(place_to)
|
local oldnode = minetest.get_node(place_to)
|
||||||
local newnode = {name = def.name, param1 = 0, param2 = 0}
|
local newnode = {name = def.name, param1 = 0, param2 = param2}
|
||||||
|
|
||||||
-- Calculate direction for wall mounted stuff like torches and signs
|
-- Calculate direction for wall mounted stuff like torches and signs
|
||||||
if def.paramtype2 == 'wallmounted' then
|
if def.paramtype2 == 'wallmounted' and not param2 then
|
||||||
local dir = {
|
local dir = {
|
||||||
x = under.x - above.x,
|
x = under.x - above.x,
|
||||||
y = under.y - above.y,
|
y = under.y - above.y,
|
||||||
|
@ -233,7 +242,7 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||||
}
|
}
|
||||||
newnode.param2 = minetest.dir_to_wallmounted(dir)
|
newnode.param2 = minetest.dir_to_wallmounted(dir)
|
||||||
-- Calculate the direction for furnaces and chests and stuff
|
-- Calculate the direction for furnaces and chests and stuff
|
||||||
elseif def.paramtype2 == 'facedir' then
|
elseif def.paramtype2 == 'facedir' and not param2 then
|
||||||
local placer_pos = placer:getpos()
|
local placer_pos = placer:getpos()
|
||||||
if placer_pos then
|
if placer_pos then
|
||||||
local dir = {
|
local dir = {
|
||||||
|
@ -251,7 +260,7 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||||
not check_attached_node(place_to, newnode) then
|
not check_attached_node(place_to, newnode) then
|
||||||
minetest.log("action", "attached node " .. def.name ..
|
minetest.log("action", "attached node " .. def.name ..
|
||||||
" can not be placed at " .. minetest.pos_to_string(place_to))
|
" can not be placed at " .. minetest.pos_to_string(place_to))
|
||||||
return itemstack
|
return itemstack, false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Add node and update
|
-- Add node and update
|
||||||
|
@ -283,7 +292,7 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||||
if take_item then
|
if take_item then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack, true
|
||||||
end
|
end
|
||||||
|
|
||||||
function minetest.item_place_object(itemstack, placer, pointed_thing)
|
function minetest.item_place_object(itemstack, placer, pointed_thing)
|
||||||
|
@ -295,19 +304,19 @@ function minetest.item_place_object(itemstack, placer, pointed_thing)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
function minetest.item_place(itemstack, placer, pointed_thing)
|
function minetest.item_place(itemstack, placer, pointed_thing, param2)
|
||||||
-- Call on_rightclick if the pointed node defines it
|
-- Call on_rightclick if the pointed node defines it
|
||||||
if pointed_thing.type == "node" and placer and
|
if pointed_thing.type == "node" and placer and
|
||||||
not placer:get_player_control().sneak then
|
not placer:get_player_control().sneak then
|
||||||
local n = minetest.get_node(pointed_thing.under)
|
local n = minetest.get_node(pointed_thing.under)
|
||||||
local nn = n.name
|
local nn = n.name
|
||||||
if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].on_rightclick then
|
if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].on_rightclick then
|
||||||
return minetest.registered_nodes[nn].on_rightclick(pointed_thing.under, n, placer, itemstack) or itemstack
|
return minetest.registered_nodes[nn].on_rightclick(pointed_thing.under, n, placer, itemstack) or itemstack, false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if itemstack:get_definition().type == "node" then
|
if itemstack:get_definition().type == "node" then
|
||||||
return minetest.item_place_node(itemstack, placer, pointed_thing)
|
return minetest.item_place_node(itemstack, placer, pointed_thing, param2)
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
@ -370,27 +379,40 @@ end
|
||||||
|
|
||||||
function minetest.node_dig(pos, node, digger)
|
function minetest.node_dig(pos, node, digger)
|
||||||
local def = ItemStack({name=node.name}):get_definition()
|
local def = ItemStack({name=node.name}):get_definition()
|
||||||
-- Check if def ~= 0 because we always want to be able to remove unknown nodes
|
if not def.diggable or (def.can_dig and not def.can_dig(pos,digger)) then
|
||||||
if #def ~= 0 and not def.diggable or (def.can_dig and not def.can_dig(pos,digger)) then
|
|
||||||
minetest.log("info", digger:get_player_name() .. " tried to dig "
|
minetest.log("info", digger:get_player_name() .. " tried to dig "
|
||||||
.. node.name .. " which is not diggable "
|
.. node.name .. " which is not diggable "
|
||||||
.. minetest.pos_to_string(pos))
|
.. minetest.pos_to_string(pos))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if minetest.is_protected(pos, digger:get_player_name()) then
|
||||||
|
minetest.log("action", digger:get_player_name()
|
||||||
|
.. " tried to dig " .. node.name
|
||||||
|
.. " at protected position "
|
||||||
|
.. minetest.pos_to_string(pos))
|
||||||
|
minetest.record_protection_violation(pos, digger:get_player_name())
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
minetest.log('action', digger:get_player_name() .. " digs "
|
minetest.log('action', digger:get_player_name() .. " digs "
|
||||||
.. node.name .. " at " .. minetest.pos_to_string(pos))
|
.. node.name .. " at " .. minetest.pos_to_string(pos))
|
||||||
|
|
||||||
local wielded = digger:get_wielded_item()
|
local wielded = digger:get_wielded_item()
|
||||||
local drops = minetest.get_node_drops(node.name, wielded:get_name())
|
local drops = minetest.get_node_drops(node.name, wielded:get_name())
|
||||||
|
|
||||||
-- Wear out tool
|
local wdef = wielded:get_definition()
|
||||||
if not minetest.setting_getbool("creative_mode") then
|
local tp = wielded:get_tool_capabilities()
|
||||||
local tp = wielded:get_tool_capabilities()
|
local dp = minetest.get_dig_params(def.groups, tp)
|
||||||
local dp = minetest.get_dig_params(def.groups, tp)
|
if wdef and wdef.after_use then
|
||||||
wielded:add_wear(dp.wear)
|
wielded = wdef.after_use(wielded, digger, node, dp) or wielded
|
||||||
digger:set_wielded_item(wielded)
|
else
|
||||||
|
-- Wear out tool
|
||||||
|
if not minetest.setting_getbool("creative_mode") then
|
||||||
|
wielded:add_wear(dp.wear)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
digger:set_wielded_item(wielded)
|
||||||
|
|
||||||
-- Handle drops
|
-- Handle drops
|
||||||
minetest.handle_node_drops(pos, drops, digger)
|
minetest.handle_node_drops(pos, drops, digger)
|
||||||
|
@ -479,7 +501,7 @@ minetest.nodedef_default = {
|
||||||
post_effect_color = {a=0, r=0, g=0, b=0},
|
post_effect_color = {a=0, r=0, g=0, b=0},
|
||||||
paramtype = "none",
|
paramtype = "none",
|
||||||
paramtype2 = "none",
|
paramtype2 = "none",
|
||||||
is_ground_content = false,
|
is_ground_content = true,
|
||||||
sunlight_propagates = false,
|
sunlight_propagates = false,
|
||||||
walkable = true,
|
walkable = true,
|
||||||
pointable = true,
|
pointable = true,
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -40,15 +40,24 @@ function minetest.check_player_privs(name, privs)
|
||||||
return true, ""
|
return true, ""
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local player_list = {}
|
||||||
|
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
player_list[player:get_player_name()] = player
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_leaveplayer(function(player)
|
||||||
|
player_list[player:get_player_name()] = nil
|
||||||
|
end)
|
||||||
|
|
||||||
function minetest.get_connected_players()
|
function minetest.get_connected_players()
|
||||||
-- This could be optimized a bit, but leave that for later
|
local temp_table = {}
|
||||||
local list = {}
|
for index, value in pairs(player_list) do
|
||||||
for _, obj in pairs(minetest.get_objects_inside_radius({x=0,y=0,z=0}, 1000000)) do
|
if value:is_player_connected() then
|
||||||
if obj:is_player() then
|
table.insert(temp_table, value)
|
||||||
table.insert(list, obj)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return list
|
return temp_table
|
||||||
end
|
end
|
||||||
|
|
||||||
function minetest.hash_node_position(pos)
|
function minetest.hash_node_position(pos)
|
||||||
|
@ -99,3 +108,14 @@ function minetest.setting_get_pos(name)
|
||||||
return minetest.string_to_pos(value)
|
return minetest.string_to_pos(value)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- To be overriden by protection mods
|
||||||
|
function minetest.is_protected(pos, name)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function minetest.record_protection_violation(pos, name)
|
||||||
|
for _, func in pairs(minetest.registered_on_protection_violation) do
|
||||||
|
func(pos, name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
|
@ -205,6 +205,155 @@ function tbl.formspec_escape(text)
|
||||||
return text
|
return text
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function tbl.splittext(text,charlimit)
|
||||||
|
local retval = {}
|
||||||
|
|
||||||
|
local current_idx = 1
|
||||||
|
|
||||||
|
local start,stop = string.find(text," ",current_idx)
|
||||||
|
local nl_start,nl_stop = string.find(text,"\n",current_idx)
|
||||||
|
local gotnewline = false
|
||||||
|
if nl_start ~= nil and (start == nil or nl_start < start) then
|
||||||
|
start = nl_start
|
||||||
|
stop = nl_stop
|
||||||
|
gotnewline = true
|
||||||
|
end
|
||||||
|
local last_line = ""
|
||||||
|
while start ~= nil do
|
||||||
|
if string.len(last_line) + (stop-start) > charlimit then
|
||||||
|
table.insert(retval,last_line)
|
||||||
|
last_line = ""
|
||||||
|
end
|
||||||
|
|
||||||
|
if last_line ~= "" then
|
||||||
|
last_line = last_line .. " "
|
||||||
|
end
|
||||||
|
|
||||||
|
last_line = last_line .. string.sub(text,current_idx,stop -1)
|
||||||
|
|
||||||
|
if gotnewline then
|
||||||
|
table.insert(retval,last_line)
|
||||||
|
last_line = ""
|
||||||
|
gotnewline = false
|
||||||
|
end
|
||||||
|
current_idx = stop+1
|
||||||
|
|
||||||
|
start,stop = string.find(text," ",current_idx)
|
||||||
|
nl_start,nl_stop = string.find(text,"\n",current_idx)
|
||||||
|
|
||||||
|
if nl_start ~= nil and (start == nil or nl_start < start) then
|
||||||
|
start = nl_start
|
||||||
|
stop = nl_stop
|
||||||
|
gotnewline = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--add last part of text
|
||||||
|
if string.len(last_line) + (string.len(text) - current_idx) > charlimit then
|
||||||
|
table.insert(retval,last_line)
|
||||||
|
table.insert(retval,string.sub(text,current_idx))
|
||||||
|
else
|
||||||
|
last_line = last_line .. " " .. string.sub(text,current_idx)
|
||||||
|
table.insert(retval,last_line)
|
||||||
|
end
|
||||||
|
|
||||||
|
return retval
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if minetest then
|
||||||
|
local dirs1 = { 9, 18, 7, 12 }
|
||||||
|
local dirs2 = { 20, 23, 22, 21 }
|
||||||
|
|
||||||
|
function minetest.rotate_and_place(itemstack, placer, pointed_thing, infinitestacks, orient_flags)
|
||||||
|
orient_flags = orient_flags or {}
|
||||||
|
|
||||||
|
local node = minetest.get_node(pointed_thing.under)
|
||||||
|
if not minetest.registered_nodes[node.name]
|
||||||
|
or not minetest.registered_nodes[node.name].on_rightclick then
|
||||||
|
|
||||||
|
local above = pointed_thing.above
|
||||||
|
local under = pointed_thing.under
|
||||||
|
local pitch = placer:get_look_pitch()
|
||||||
|
local pname = minetest.get_node(under).name
|
||||||
|
local node = minetest.get_node(above)
|
||||||
|
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
|
||||||
|
local wield_name = itemstack:get_name()
|
||||||
|
local reg_node = minetest.registered_nodes[pname]
|
||||||
|
|
||||||
|
if not reg_node or not reg_node.on_rightclick then
|
||||||
|
|
||||||
|
local iswall = (above.x ~= under.x) or (above.z ~= under.z)
|
||||||
|
local isceiling = (above.x == under.x) and (above.z == under.z)
|
||||||
|
and (pitch > 0)
|
||||||
|
local pos1 = above
|
||||||
|
|
||||||
|
if reg_node and reg_node.buildable_to then
|
||||||
|
pos1 = under
|
||||||
|
iswall = false
|
||||||
|
end
|
||||||
|
|
||||||
|
reg_node = minetest.registered_nodes[minetest.get_node(pos1).name]
|
||||||
|
if not reg_node or not reg_node.buildable_to then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if orient_flags.force_floor then
|
||||||
|
iswall = false
|
||||||
|
isceiling = false
|
||||||
|
elseif orient_flags.force_ceiling then
|
||||||
|
iswall = false
|
||||||
|
isceiling = true
|
||||||
|
elseif orient_flags.force_wall then
|
||||||
|
iswall = true
|
||||||
|
isceiling = false
|
||||||
|
elseif orient_flags.invert_wall then
|
||||||
|
iswall = not iswall
|
||||||
|
end
|
||||||
|
|
||||||
|
if iswall then
|
||||||
|
minetest.add_node(pos1, {name = wield_name, param2 = dirs1[fdir+1] })
|
||||||
|
elseif isceiling then
|
||||||
|
if orient_flags.force_facedir then
|
||||||
|
minetest.add_node(pos1, {name = wield_name, param2 = 20 })
|
||||||
|
else
|
||||||
|
minetest.add_node(pos1, {name = wield_name, param2 = dirs2[fdir+1] })
|
||||||
|
end
|
||||||
|
else -- place right side up
|
||||||
|
if orient_flags.force_facedir then
|
||||||
|
minetest.add_node(pos1, {name = wield_name, param2 = 0 })
|
||||||
|
else
|
||||||
|
minetest.add_node(pos1, {name = wield_name, param2 = fdir })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not infinitestacks then
|
||||||
|
itemstack:take_item()
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Wrapper for rotate_and_place() to check for sneak and assume Creative mode
|
||||||
|
--implies infinite stacks when performing a 6d rotation.
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
minetest.rotate_node = function(itemstack, placer, pointed_thing)
|
||||||
|
minetest.rotate_and_place(itemstack, placer, pointed_thing,
|
||||||
|
minetest.setting_getbool("creative_mode"),
|
||||||
|
{invert_wall = placer:get_player_control().sneak})
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- mainmenu only functions
|
-- mainmenu only functions
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
|
@ -24,17 +24,15 @@ minetest.registered_aliases = {}
|
||||||
|
|
||||||
-- For tables that are indexed by item name:
|
-- For tables that are indexed by item name:
|
||||||
-- If table[X] does not exist, default to table[minetest.registered_aliases[X]]
|
-- If table[X] does not exist, default to table[minetest.registered_aliases[X]]
|
||||||
local function set_alias_metatable(table)
|
local alias_metatable = {
|
||||||
setmetatable(table, {
|
__index = function(t, name)
|
||||||
__index = function(name)
|
return rawget(t, minetest.registered_aliases[name])
|
||||||
return rawget(table, minetest.registered_aliases[name])
|
end
|
||||||
end
|
}
|
||||||
})
|
setmetatable(minetest.registered_items, alias_metatable)
|
||||||
end
|
setmetatable(minetest.registered_nodes, alias_metatable)
|
||||||
set_alias_metatable(minetest.registered_items)
|
setmetatable(minetest.registered_craftitems, alias_metatable)
|
||||||
set_alias_metatable(minetest.registered_nodes)
|
setmetatable(minetest.registered_tools, alias_metatable)
|
||||||
set_alias_metatable(minetest.registered_craftitems)
|
|
||||||
set_alias_metatable(minetest.registered_tools)
|
|
||||||
|
|
||||||
-- These item names may not be used because they would interfere
|
-- These item names may not be used because they would interfere
|
||||||
-- with legacy itemstrings
|
-- with legacy itemstrings
|
||||||
|
@ -106,6 +104,11 @@ function minetest.register_item(name, itemdef)
|
||||||
-- Use the nodebox as selection box if it's not set manually
|
-- Use the nodebox as selection box if it's not set manually
|
||||||
if itemdef.drawtype == "nodebox" and not itemdef.selection_box then
|
if itemdef.drawtype == "nodebox" and not itemdef.selection_box then
|
||||||
itemdef.selection_box = itemdef.node_box
|
itemdef.selection_box = itemdef.node_box
|
||||||
|
elseif itemdef.drawtype == "fencelike" and not itemdef.selection_box then
|
||||||
|
itemdef.selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8},
|
||||||
|
}
|
||||||
end
|
end
|
||||||
setmetatable(itemdef, {__index = minetest.nodedef_default})
|
setmetatable(itemdef, {__index = minetest.nodedef_default})
|
||||||
minetest.registered_nodes[itemdef.name] = itemdef
|
minetest.registered_nodes[itemdef.name] = itemdef
|
||||||
|
@ -230,6 +233,20 @@ function minetest.register_biome(biome)
|
||||||
register_biome_raw(biome)
|
register_biome_raw(biome)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function minetest.on_craft(itemstack, player, old_craft_list, craft_inv)
|
||||||
|
for _, func in ipairs(minetest.registered_on_crafts) do
|
||||||
|
itemstack = func(itemstack, player, old_craft_list, craft_inv) or itemstack
|
||||||
|
end
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
|
function minetest.craft_predict(itemstack, player, old_craft_list, craft_inv)
|
||||||
|
for _, func in ipairs(minetest.registered_craft_predicts) do
|
||||||
|
itemstack = func(itemstack, player, old_craft_list, craft_inv) or itemstack
|
||||||
|
end
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
-- Alias the forbidden item names to "" so they can't be
|
-- Alias the forbidden item names to "" so they can't be
|
||||||
-- created via itemstrings (e.g. /give)
|
-- created via itemstrings (e.g. /give)
|
||||||
local name
|
local name
|
||||||
|
@ -256,6 +273,7 @@ minetest.register_item(":unknown", {
|
||||||
on_place = minetest.item_place,
|
on_place = minetest.item_place,
|
||||||
on_drop = minetest.item_drop,
|
on_drop = minetest.item_drop,
|
||||||
groups = {not_in_creative_inventory=1},
|
groups = {not_in_creative_inventory=1},
|
||||||
|
diggable = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node(":air", {
|
minetest.register_node(":air", {
|
||||||
|
@ -296,6 +314,45 @@ minetest.register_item(":", {
|
||||||
groups = {not_in_creative_inventory=1},
|
groups = {not_in_creative_inventory=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
function minetest.run_callbacks(callbacks, mode, ...)
|
||||||
|
assert(type(callbacks) == "table")
|
||||||
|
local cb_len = #callbacks
|
||||||
|
if cb_len == 0 then
|
||||||
|
if mode == 2 or mode == 3 then
|
||||||
|
return true
|
||||||
|
elseif mode == 4 or mode == 5 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local ret = nil
|
||||||
|
for i = 1, cb_len do
|
||||||
|
local cb_ret = callbacks[i](...)
|
||||||
|
|
||||||
|
if mode == 0 and i == 1 then
|
||||||
|
ret = cb_ret
|
||||||
|
elseif mode == 1 and i == cb_len then
|
||||||
|
ret = cb_ret
|
||||||
|
elseif mode == 2 then
|
||||||
|
if not cb_ret or i == 1 then
|
||||||
|
ret = cb_ret
|
||||||
|
end
|
||||||
|
elseif mode == 3 then
|
||||||
|
if cb_ret then
|
||||||
|
return cb_ret
|
||||||
|
end
|
||||||
|
ret = cb_ret
|
||||||
|
elseif mode == 4 then
|
||||||
|
if (cb_ret and not ret) or i == 1 then
|
||||||
|
ret = cb_ret
|
||||||
|
end
|
||||||
|
elseif mode == 5 and cb_ret then
|
||||||
|
return cb_ret
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Callback registration
|
-- Callback registration
|
||||||
--
|
--
|
||||||
|
@ -323,8 +380,12 @@ minetest.registered_on_generateds, minetest.register_on_generated = make_registr
|
||||||
minetest.registered_on_newplayers, minetest.register_on_newplayer = make_registration()
|
minetest.registered_on_newplayers, minetest.register_on_newplayer = make_registration()
|
||||||
minetest.registered_on_dieplayers, minetest.register_on_dieplayer = make_registration()
|
minetest.registered_on_dieplayers, minetest.register_on_dieplayer = make_registration()
|
||||||
minetest.registered_on_respawnplayers, minetest.register_on_respawnplayer = make_registration()
|
minetest.registered_on_respawnplayers, minetest.register_on_respawnplayer = make_registration()
|
||||||
|
minetest.registered_on_prejoinplayers, minetest.register_on_prejoinplayer = make_registration()
|
||||||
minetest.registered_on_joinplayers, minetest.register_on_joinplayer = make_registration()
|
minetest.registered_on_joinplayers, minetest.register_on_joinplayer = make_registration()
|
||||||
minetest.registered_on_leaveplayers, minetest.register_on_leaveplayer = make_registration()
|
minetest.registered_on_leaveplayers, minetest.register_on_leaveplayer = make_registration()
|
||||||
minetest.registered_on_player_receive_fields, minetest.register_on_player_receive_fields = make_registration_reverse()
|
minetest.registered_on_player_receive_fields, minetest.register_on_player_receive_fields = make_registration_reverse()
|
||||||
minetest.registered_on_cheats, minetest.register_on_cheat = make_registration()
|
minetest.registered_on_cheats, minetest.register_on_cheat = make_registration()
|
||||||
|
minetest.registered_on_crafts, minetest.register_on_craft = make_registration()
|
||||||
|
minetest.registered_craft_predicts, minetest.register_craft_predict = make_registration()
|
||||||
|
minetest.registered_on_protection_violation, minetest.register_on_protection_violation = make_registration()
|
||||||
|
|
||||||
|
|
|
@ -30,27 +30,28 @@ end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function menubar.refresh()
|
function menubar.refresh()
|
||||||
menubar.formspec = "box[-0.3,5.625;12.4,1.3;000000]" ..
|
|
||||||
"box[-0.3,5.6;12.4,0.05;FFFFFF]"
|
menubar.formspec = "box[-0.3,5.625;12.4,1.2;#000000]" ..
|
||||||
|
"box[-0.3,5.6;12.4,0.05;#FFFFFF]"
|
||||||
menubar.buttons = {}
|
menubar.buttons = {}
|
||||||
|
|
||||||
local button_base = -0.25
|
local button_base = -0.08
|
||||||
|
|
||||||
local maxbuttons = #gamemgr.games
|
local maxbuttons = #gamemgr.games
|
||||||
|
|
||||||
if maxbuttons > 10 then
|
if maxbuttons > 11 then
|
||||||
maxbuttons = 10
|
maxbuttons = 11
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1,maxbuttons,1 do
|
for i=1,maxbuttons,1 do
|
||||||
|
|
||||||
local btn_name = "menubar_btn_" .. gamemgr.games[i].id
|
local btn_name = "menubar_btn_" .. gamemgr.games[i].id
|
||||||
local buttonpos = button_base + (i-1) * 1.245
|
local buttonpos = button_base + (i-1) * 1.1
|
||||||
if gamemgr.games[i].menuicon_path ~= nil and
|
if gamemgr.games[i].menuicon_path ~= nil and
|
||||||
gamemgr.games[i].menuicon_path ~= "" then
|
gamemgr.games[i].menuicon_path ~= "" then
|
||||||
|
|
||||||
menubar.formspec = menubar.formspec ..
|
menubar.formspec = menubar.formspec ..
|
||||||
"image_button[" .. buttonpos .. ",5.7;1.3,1.3;" ..
|
"image_button[" .. buttonpos .. ",5.72;1.165,1.175;" ..
|
||||||
engine.formspec_escape(gamemgr.games[i].menuicon_path) .. ";" ..
|
engine.formspec_escape(gamemgr.games[i].menuicon_path) .. ";" ..
|
||||||
btn_name .. ";;true;false]"
|
btn_name .. ";;true;false]"
|
||||||
else
|
else
|
||||||
|
@ -65,7 +66,7 @@ function menubar.refresh()
|
||||||
text = text .. "\n" .. part3
|
text = text .. "\n" .. part3
|
||||||
end
|
end
|
||||||
menubar.formspec = menubar.formspec ..
|
menubar.formspec = menubar.formspec ..
|
||||||
"image_button[" .. buttonpos .. ",5.7;1.3,1.3;;" ..btn_name ..
|
"image_button[" .. buttonpos .. ",5.72;1.165,1.175;;" ..btn_name ..
|
||||||
";" .. text .. ";true;true]"
|
";" .. text .. ";true;true]"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -21,22 +21,68 @@
|
||||||
modstore = {}
|
modstore = {}
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
-- @function [parent=#modstore] init
|
||||||
function modstore.init()
|
function modstore.init()
|
||||||
modstore.tabnames = {}
|
modstore.tabnames = {}
|
||||||
|
|
||||||
table.insert(modstore.tabnames,"dialog_modstore_unsorted")
|
table.insert(modstore.tabnames,"dialog_modstore_unsorted")
|
||||||
table.insert(modstore.tabnames,"dialog_modstore_search")
|
table.insert(modstore.tabnames,"dialog_modstore_search")
|
||||||
|
|
||||||
modstore.modsperpage = 5
|
modstore.modsperpage = 5
|
||||||
|
|
||||||
modstore.basetexturedir = engine.get_texturepath() .. DIR_DELIM .. "base" ..
|
modstore.basetexturedir = engine.get_texturepath() .. DIR_DELIM .. "base" ..
|
||||||
DIR_DELIM .. "pack" .. DIR_DELIM
|
DIR_DELIM .. "pack" .. DIR_DELIM
|
||||||
|
|
||||||
|
modstore.lastmodtitle = ""
|
||||||
|
modstore.last_search = ""
|
||||||
|
|
||||||
|
modstore.searchlist = filterlist.create(
|
||||||
|
function()
|
||||||
|
if modstore.modlist_unsorted ~= nil and
|
||||||
|
modstore.modlist_unsorted.data ~= nil then
|
||||||
|
return modstore.modlist_unsorted.data
|
||||||
|
end
|
||||||
|
return {}
|
||||||
|
end,
|
||||||
|
function(element,modid)
|
||||||
|
if element.id == modid then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end, --compare fct
|
||||||
|
nil, --uid match fct
|
||||||
|
function(element,substring)
|
||||||
|
if substring == nil or
|
||||||
|
substring == "" then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
substring = substring:upper()
|
||||||
|
|
||||||
|
if element.title ~= nil and
|
||||||
|
element.title:upper():find(substring) ~= nil then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
if element.details ~= nil and
|
||||||
|
element.details.author ~= nil and
|
||||||
|
element.details.author:upper():find(substring) ~= nil then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
if element.details ~= nil and
|
||||||
|
element.details.description ~= nil and
|
||||||
|
element.details.description:upper():find(substring) ~= nil then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end --filter fct
|
||||||
|
)
|
||||||
|
|
||||||
modstore.current_list = nil
|
modstore.current_list = nil
|
||||||
|
|
||||||
modstore.details_cache = {}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
-- @function [parent=#modstore] nametoindex
|
||||||
function modstore.nametoindex(name)
|
function modstore.nametoindex(name)
|
||||||
|
|
||||||
for i=1,#modstore.tabnames,1 do
|
for i=1,#modstore.tabnames,1 do
|
||||||
|
@ -49,55 +95,94 @@ function modstore.nametoindex(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function modstore.gettab(tabname)
|
-- @function [parent=#modstore] getsuccessfuldialog
|
||||||
|
function modstore.getsuccessfuldialog()
|
||||||
local retval = ""
|
local retval = ""
|
||||||
|
retval = retval .. "size[6,2]"
|
||||||
|
if modstore.lastmodentry ~= nil then
|
||||||
|
retval = retval .. "label[0,0.25;" .. fgettext("Successfully installed:") .. "]"
|
||||||
|
retval = retval .. "label[3,0.25;" .. modstore.lastmodentry.moddetails.title .. "]"
|
||||||
|
|
||||||
local is_modstore_tab = false
|
|
||||||
|
retval = retval .. "label[0,0.75;" .. fgettext("Shortname:") .. "]"
|
||||||
if tabname == "dialog_modstore_unsorted" then
|
retval = retval .. "label[3,0.75;" .. engine.formspec_escape(modstore.lastmodentry.moddetails.basename) .. "]"
|
||||||
retval = modstore.getmodlist(modstore.modlist_unsorted)
|
|
||||||
is_modstore_tab = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if tabname == "dialog_modstore_search" then
|
|
||||||
|
|
||||||
|
|
||||||
is_modstore_tab = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if is_modstore_tab then
|
|
||||||
return modstore.tabheader(tabname) .. retval
|
|
||||||
end
|
|
||||||
|
|
||||||
if tabname == "modstore_mod_installed" then
|
|
||||||
return "size[6,2]label[0.25,0.25;Mod: " .. modstore.lastmodtitle ..
|
|
||||||
" installed successfully]" ..
|
|
||||||
"button[2.5,1.5;1,0.5;btn_confirm_mod_successfull;ok]"
|
|
||||||
end
|
|
||||||
|
|
||||||
return ""
|
|
||||||
end
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
end
|
||||||
function modstore.tabheader(tabname)
|
retval = retval .. "button[2.5,1.5;1,0.5;btn_confirm_mod_successfull;" .. fgettext("ok") .. "]"
|
||||||
local retval = "size[12,9.25]"
|
|
||||||
retval = retval .. "tabheader[-0.3,-0.99;modstore_tab;" ..
|
|
||||||
"Unsorted,Search;" ..
|
|
||||||
modstore.nametoindex(tabname) .. ";true;false]"
|
|
||||||
|
|
||||||
return retval
|
return retval
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
-- @function [parent=#modstore] gettab
|
||||||
|
function modstore.gettab(tabname)
|
||||||
|
local retval = ""
|
||||||
|
|
||||||
|
local is_modstore_tab = false
|
||||||
|
|
||||||
|
if tabname == "dialog_modstore_unsorted" then
|
||||||
|
modstore.modsperpage = 5
|
||||||
|
retval = modstore.getmodlist(modstore.modlist_unsorted)
|
||||||
|
is_modstore_tab = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if tabname == "dialog_modstore_search" then
|
||||||
|
retval = modstore.getsearchpage()
|
||||||
|
is_modstore_tab = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_modstore_tab then
|
||||||
|
return modstore.tabheader(tabname) .. retval
|
||||||
|
end
|
||||||
|
|
||||||
|
if tabname == "modstore_mod_installed" then
|
||||||
|
return modstore.getsuccessfuldialog()
|
||||||
|
end
|
||||||
|
|
||||||
|
if tabname == "modstore_downloading" then
|
||||||
|
return "size[6,2]label[0.25,0.75;" .. fgettext("Downloading") ..
|
||||||
|
" " .. modstore.lastmodtitle .. " " ..
|
||||||
|
fgettext("please wait...") .. "]"
|
||||||
|
end
|
||||||
|
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
-- @function [parent=#modstore] tabheader
|
||||||
|
function modstore.tabheader(tabname)
|
||||||
|
local retval = "size[12,10.25]"
|
||||||
|
retval = retval .. "tabheader[-0.3,-0.99;modstore_tab;" ..
|
||||||
|
"Unsorted,Search;" ..
|
||||||
|
modstore.nametoindex(tabname) .. ";true;false]" ..
|
||||||
|
"button[4,9.9;4,0.5;btn_modstore_close;" ..
|
||||||
|
fgettext("Close modstore") .. "]"
|
||||||
|
|
||||||
|
return retval
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
-- @function [parent=#modstore] handle_buttons
|
||||||
function modstore.handle_buttons(current_tab,fields)
|
function modstore.handle_buttons(current_tab,fields)
|
||||||
|
|
||||||
modstore.lastmodtitle = ""
|
|
||||||
|
|
||||||
if fields["modstore_tab"] then
|
if fields["modstore_tab"] then
|
||||||
local index = tonumber(fields["modstore_tab"])
|
local index = tonumber(fields["modstore_tab"])
|
||||||
|
|
||||||
if index > 0 and
|
if index > 0 and
|
||||||
index <= #modstore.tabnames then
|
index <= #modstore.tabnames then
|
||||||
|
if modstore.tabnames[index] == "dialog_modstore_search" then
|
||||||
|
filterlist.set_filtercriteria(modstore.searchlist,modstore.last_search)
|
||||||
|
filterlist.refresh(modstore.searchlist)
|
||||||
|
modstore.modsperpage = 4
|
||||||
|
modstore.currentlist = {
|
||||||
|
page = 0,
|
||||||
|
pagecount =
|
||||||
|
math.ceil(filterlist.size(modstore.searchlist) / modstore.modsperpage),
|
||||||
|
data = filterlist.get_list(modstore.searchlist),
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
current_tab = modstore.tabnames[index],
|
current_tab = modstore.tabnames[index],
|
||||||
is_dialog = true,
|
is_dialog = true,
|
||||||
|
@ -105,170 +190,426 @@ function modstore.handle_buttons(current_tab,fields)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
modstore.modlist_page = 0
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if fields["btn_modstore_page_up"] then
|
if fields["btn_modstore_page_up"] then
|
||||||
if modstore.current_list ~= nil and modstore.current_list.page > 0 then
|
if modstore.current_list ~= nil and modstore.current_list.page > 0 then
|
||||||
modstore.current_list.page = modstore.current_list.page - 1
|
modstore.current_list.page = modstore.current_list.page - 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if fields["btn_modstore_page_down"] then
|
if fields["btn_modstore_page_down"] then
|
||||||
if modstore.current_list ~= nil and
|
if modstore.current_list ~= nil and
|
||||||
modstore.current_list.page <modstore.current_list.pagecount-1 then
|
modstore.current_list.page <modstore.current_list.pagecount-1 then
|
||||||
modstore.current_list.page = modstore.current_list.page +1
|
modstore.current_list.page = modstore.current_list.page +1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if fields["btn_hidden_close_download"] ~= nil then
|
||||||
|
if fields["btn_hidden_close_download"].successfull then
|
||||||
|
modstore.lastmodentry = fields["btn_hidden_close_download"]
|
||||||
|
return {
|
||||||
|
current_tab = "modstore_mod_installed",
|
||||||
|
is_dialog = true,
|
||||||
|
show_buttons = false
|
||||||
|
}
|
||||||
|
else
|
||||||
|
modstore.lastmodtitle = ""
|
||||||
|
return {
|
||||||
|
current_tab = modstore.tabnames[1],
|
||||||
|
is_dialog = true,
|
||||||
|
show_buttons = false
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if fields["btn_confirm_mod_successfull"] then
|
if fields["btn_confirm_mod_successfull"] then
|
||||||
|
modstore.lastmodentry = nil
|
||||||
|
modstore.lastmodtitle = ""
|
||||||
return {
|
return {
|
||||||
current_tab = modstore.tabnames[1],
|
current_tab = modstore.tabnames[1],
|
||||||
is_dialog = true,
|
is_dialog = true,
|
||||||
show_buttons = false
|
show_buttons = false
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if fields["btn_modstore_search"] or
|
||||||
|
(fields["key_enter"] and fields["te_modstore_search"] ~= nil) then
|
||||||
|
modstore.last_search = fields["te_modstore_search"]
|
||||||
|
filterlist.set_filtercriteria(modstore.searchlist,fields["te_modstore_search"])
|
||||||
|
filterlist.refresh(modstore.searchlist)
|
||||||
|
modstore.currentlist = {
|
||||||
|
page = 0,
|
||||||
|
pagecount = math.ceil(filterlist.size(modstore.searchlist) / modstore.modsperpage),
|
||||||
|
data = filterlist.get_list(modstore.searchlist),
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
for i=1, modstore.modsperpage, 1 do
|
|
||||||
local installbtn = "btn_install_mod_" .. i
|
if fields["btn_modstore_close"] then
|
||||||
|
return {
|
||||||
if fields[installbtn] then
|
is_dialog = false,
|
||||||
local modlistentry =
|
show_buttons = true,
|
||||||
modstore.current_list.page * modstore.modsperpage + i
|
current_tab = engine.setting_get("main_menu_tab")
|
||||||
|
}
|
||||||
local moddetails = modstore.get_details(modstore.current_list.data[modlistentry].id)
|
end
|
||||||
|
|
||||||
local fullurl = engine.setting_get("modstore_download_url") ..
|
for key,value in pairs(fields) do
|
||||||
moddetails.download_url
|
local foundat = key:find("btn_install_mod_")
|
||||||
local modfilename = os.tempfolder() .. ".zip"
|
if ( foundat == 1) then
|
||||||
|
local modid = tonumber(key:sub(17))
|
||||||
if engine.download_file(fullurl,modfilename) then
|
for i=1,#modstore.modlist_unsorted.data,1 do
|
||||||
|
if modstore.modlist_unsorted.data[i].id == modid then
|
||||||
modmgr.installmod(modfilename,moddetails.basename)
|
local moddetails = modstore.modlist_unsorted.data[i].details
|
||||||
|
|
||||||
os.remove(modfilename)
|
if modstore.lastmodtitle ~= "" then
|
||||||
modstore.lastmodtitle = modstore.current_list.data[modlistentry].title
|
modstore.lastmodtitle = modstore.lastmodtitle .. ", "
|
||||||
|
end
|
||||||
return {
|
|
||||||
current_tab = "modstore_mod_installed",
|
modstore.lastmodtitle = modstore.lastmodtitle .. moddetails.title
|
||||||
is_dialog = true,
|
|
||||||
show_buttons = false
|
engine.handle_async(
|
||||||
}
|
function(param)
|
||||||
else
|
|
||||||
gamedata.errormessage = "Unable to download " ..
|
local fullurl = engine.setting_get("modstore_download_url") ..
|
||||||
moddetails.download_url .. " (internet connection?)"
|
param.moddetails.download_url
|
||||||
|
|
||||||
|
if param.version ~= nil then
|
||||||
|
local found = false
|
||||||
|
for i=1,#param.moddetails.versions, 1 do
|
||||||
|
if param.moddetails.versions[i].date:sub(1,10) == param.version then
|
||||||
|
fullurl = engine.setting_get("modstore_download_url") ..
|
||||||
|
param.moddetails.versions[i].download_url
|
||||||
|
found = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not found then
|
||||||
|
return {
|
||||||
|
moddetails = param.moddetails,
|
||||||
|
successfull = false
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if engine.download_file(fullurl,param.filename) then
|
||||||
|
return {
|
||||||
|
texturename = param.texturename,
|
||||||
|
moddetails = param.moddetails,
|
||||||
|
filename = param.filename,
|
||||||
|
successfull = true
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return {
|
||||||
|
modtitle = param.title,
|
||||||
|
successfull = false
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
moddetails = moddetails,
|
||||||
|
version = fields["dd_version" .. modid],
|
||||||
|
filename = os.tempfolder() .. "_MODNAME_" .. moddetails.basename .. ".zip",
|
||||||
|
texturename = modstore.modlist_unsorted.data[i].texturename
|
||||||
|
},
|
||||||
|
function(result)
|
||||||
|
if result.successfull then
|
||||||
|
modmgr.installmod(result.filename,result.moddetails.basename)
|
||||||
|
os.remove(result.filename)
|
||||||
|
else
|
||||||
|
gamedata.errormessage = "Failed to download " .. result.moddetails.title
|
||||||
|
end
|
||||||
|
|
||||||
|
if gamedata.errormessage == nil then
|
||||||
|
engine.button_handler({btn_hidden_close_download=result})
|
||||||
|
else
|
||||||
|
engine.button_handler({btn_hidden_close_download={successfull=false}})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
return {
|
||||||
|
current_tab = "modstore_downloading",
|
||||||
|
is_dialog = true,
|
||||||
|
show_buttons = false,
|
||||||
|
ignore_menu_quit = true
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
-- @function [parent=#modstore] update_modlist
|
||||||
function modstore.update_modlist()
|
function modstore.update_modlist()
|
||||||
modstore.modlist_unsorted = {}
|
modstore.modlist_unsorted = {}
|
||||||
modstore.modlist_unsorted.data = engine.get_modstore_list()
|
modstore.modlist_unsorted.data = {}
|
||||||
|
modstore.modlist_unsorted.pagecount = 1
|
||||||
if modstore.modlist_unsorted.data ~= nil then
|
|
||||||
modstore.modlist_unsorted.pagecount =
|
|
||||||
math.ceil((#modstore.modlist_unsorted.data / modstore.modsperpage))
|
|
||||||
else
|
|
||||||
modstore.modlist_unsorted.data = {}
|
|
||||||
modstore.modlist_unsorted.pagecount = 1
|
|
||||||
end
|
|
||||||
modstore.modlist_unsorted.page = 0
|
modstore.modlist_unsorted.page = 0
|
||||||
|
|
||||||
|
engine.handle_async(
|
||||||
|
function(param)
|
||||||
|
return engine.get_modstore_list()
|
||||||
|
end,
|
||||||
|
nil,
|
||||||
|
function(result)
|
||||||
|
if result ~= nil then
|
||||||
|
modstore.modlist_unsorted = {}
|
||||||
|
modstore.modlist_unsorted.data = result
|
||||||
|
|
||||||
|
if modstore.modlist_unsorted.data ~= nil then
|
||||||
|
modstore.modlist_unsorted.pagecount =
|
||||||
|
math.ceil((#modstore.modlist_unsorted.data / modstore.modsperpage))
|
||||||
|
else
|
||||||
|
modstore.modlist_unsorted.data = {}
|
||||||
|
modstore.modlist_unsorted.pagecount = 1
|
||||||
|
end
|
||||||
|
modstore.modlist_unsorted.page = 0
|
||||||
|
modstore.fetchdetails()
|
||||||
|
engine.event_handler("Refresh")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function modstore.getmodlist(list)
|
-- @function [parent=#modstore] fetchdetails
|
||||||
local retval = ""
|
function modstore.fetchdetails()
|
||||||
retval = retval .. "label[10,-0.4;" .. fgettext("Page $1 of $2", list.page+1, list.pagecount) .. "]"
|
|
||||||
|
for i=1,#modstore.modlist_unsorted.data,1 do
|
||||||
retval = retval .. "button[11.6,-0.1;0.5,0.5;btn_modstore_page_up;^]"
|
engine.handle_async(
|
||||||
retval = retval .. "box[11.6,0.35;0.28,8.6;000000]"
|
function(param)
|
||||||
local scrollbarpos = 0.35 + (8.1/(list.pagecount-1)) * list.page
|
param.details = engine.get_modstore_details(tostring(param.modid))
|
||||||
retval = retval .. "box[11.6," ..scrollbarpos .. ";0.28,0.5;32CD32]"
|
return param
|
||||||
retval = retval .. "button[11.6,9.0;0.5,0.5;btn_modstore_page_down;v]"
|
end,
|
||||||
|
{
|
||||||
|
modid=modstore.modlist_unsorted.data[i].id,
|
||||||
if #list.data < (list.page * modstore.modsperpage) then
|
listindex=i
|
||||||
return retval
|
},
|
||||||
|
function(result)
|
||||||
|
if result ~= nil and
|
||||||
|
modstore.modlist_unsorted ~= nil
|
||||||
|
and modstore.modlist_unsorted.data ~= nil and
|
||||||
|
modstore.modlist_unsorted.data[result.listindex] ~= nil and
|
||||||
|
modstore.modlist_unsorted.data[result.listindex].id ~= nil then
|
||||||
|
|
||||||
|
modstore.modlist_unsorted.data[result.listindex].details = result.details
|
||||||
|
engine.event_handler("Refresh")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
-- @function [parent=#modstore] getscreenshot
|
||||||
|
function modstore.getscreenshot(ypos,listentry)
|
||||||
|
|
||||||
|
if listentry.details ~= nil and
|
||||||
|
(listentry.details.screenshot_url == nil or
|
||||||
|
listentry.details.screenshot_url == "") then
|
||||||
|
|
||||||
|
if listentry.texturename == nil then
|
||||||
|
listentry.texturename = modstore.basetexturedir .. "no_screenshot.png"
|
||||||
|
end
|
||||||
|
|
||||||
|
return "image[0,".. ypos .. ";3,2;" ..
|
||||||
|
engine.formspec_escape(listentry.texturename) .. "]"
|
||||||
end
|
end
|
||||||
|
|
||||||
local endmod = (list.page * modstore.modsperpage) + modstore.modsperpage
|
if listentry.details ~= nil and
|
||||||
|
listentry.texturename == nil then
|
||||||
|
--make sure we don't download multiple times
|
||||||
|
listentry.texturename = "in progress"
|
||||||
|
|
||||||
|
--prepare url and filename
|
||||||
|
local fullurl = engine.setting_get("modstore_download_url") ..
|
||||||
|
listentry.details.screenshot_url
|
||||||
|
local filename = os.tempfolder() .. "_MID_" .. listentry.id
|
||||||
|
|
||||||
|
--trigger download
|
||||||
|
engine.handle_async(
|
||||||
|
--first param is downloadfct
|
||||||
|
function(param)
|
||||||
|
param.successfull = engine.download_file(param.fullurl,param.filename)
|
||||||
|
return param
|
||||||
|
end,
|
||||||
|
--second parameter is data passed to async job
|
||||||
|
{
|
||||||
|
fullurl = fullurl,
|
||||||
|
filename = filename,
|
||||||
|
modid = listentry.id
|
||||||
|
},
|
||||||
|
--integrate result to raw list
|
||||||
|
function(result)
|
||||||
|
if result.successfull then
|
||||||
|
local found = false
|
||||||
|
for i=1,#modstore.modlist_unsorted.data,1 do
|
||||||
|
if modstore.modlist_unsorted.data[i].id == result.modid then
|
||||||
|
found = true
|
||||||
|
modstore.modlist_unsorted.data[i].texturename = result.filename
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if found then
|
||||||
|
engine.event_handler("Refresh")
|
||||||
|
else
|
||||||
|
engine.log("error","got screenshot but didn't find matching mod: " .. result.modid)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
if listentry.texturename ~= nil and
|
||||||
|
listentry.texturename ~= "in progress" then
|
||||||
|
return "image[0,".. ypos .. ";3,2;" ..
|
||||||
|
engine.formspec_escape(listentry.texturename) .. "]"
|
||||||
|
end
|
||||||
|
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--@function [parent=#modstore] getshortmodinfo
|
||||||
|
function modstore.getshortmodinfo(ypos,listentry,details)
|
||||||
|
local retval = ""
|
||||||
|
|
||||||
|
retval = retval .. "box[0," .. ypos .. ";11.4,1.75;#FFFFFF]"
|
||||||
|
|
||||||
|
--screenshot
|
||||||
|
retval = retval .. modstore.getscreenshot(ypos,listentry)
|
||||||
|
|
||||||
|
--title + author
|
||||||
|
retval = retval .."label[2.75," .. ypos .. ";" ..
|
||||||
|
engine.formspec_escape(details.title) .. " (" .. details.author .. ")]"
|
||||||
|
|
||||||
|
--description
|
||||||
|
local descriptiony = ypos + 0.5
|
||||||
|
retval = retval .. "textarea[3," .. descriptiony .. ";6.5,1.55;;" ..
|
||||||
|
engine.formspec_escape(details.description) .. ";]"
|
||||||
|
|
||||||
|
--rating
|
||||||
|
local ratingy = ypos
|
||||||
|
retval = retval .."label[7," .. ratingy .. ";" ..
|
||||||
|
fgettext("Rating") .. ":]"
|
||||||
|
retval = retval .. "label[8.7," .. ratingy .. ";" .. details.rating .."]"
|
||||||
|
|
||||||
|
--versions (IMPORTANT has to be defined AFTER rating)
|
||||||
|
if details.versions ~= nil and
|
||||||
|
#details.versions > 1 then
|
||||||
|
local versiony = ypos + 0.05
|
||||||
|
retval = retval .. "dropdown[9.1," .. versiony .. ";2.48,0.25;dd_version" .. details.id .. ";"
|
||||||
|
local versions = ""
|
||||||
|
for i=1,#details.versions , 1 do
|
||||||
|
if versions ~= "" then
|
||||||
|
versions = versions .. ","
|
||||||
|
end
|
||||||
|
|
||||||
|
versions = versions .. details.versions[i].date:sub(1,10)
|
||||||
|
end
|
||||||
|
retval = retval .. versions .. ";1]"
|
||||||
|
end
|
||||||
|
|
||||||
|
if details.basename then
|
||||||
|
--install button
|
||||||
|
local buttony = ypos + 1.2
|
||||||
|
retval = retval .."button[9.1," .. buttony .. ";2.5,0.5;btn_install_mod_" .. details.id .. ";"
|
||||||
|
|
||||||
|
if modmgr.mod_exists(details.basename) then
|
||||||
|
retval = retval .. fgettext("re-Install") .."]"
|
||||||
|
else
|
||||||
|
retval = retval .. fgettext("Install") .."]"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return retval
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--@function [parent=#modstore] getmodlist
|
||||||
|
function modstore.getmodlist(list,yoffset)
|
||||||
|
|
||||||
|
modstore.current_list = list
|
||||||
|
|
||||||
|
if #list.data == 0 then
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
|
||||||
|
if yoffset == nil then
|
||||||
|
yoffset = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
local scrollbar = ""
|
||||||
|
scrollbar = scrollbar .. "label[0.1,9.5;"
|
||||||
|
.. fgettext("Page $1 of $2", list.page+1, list.pagecount) .. "]"
|
||||||
|
scrollbar = scrollbar .. "box[11.6," .. (yoffset + 0.35) .. ";0.28,"
|
||||||
|
.. (8.6 - yoffset) .. ";#000000]"
|
||||||
|
local scrollbarpos = (yoffset + 0.75) +
|
||||||
|
((7.7 -yoffset)/(list.pagecount-1)) * list.page
|
||||||
|
scrollbar = scrollbar .. "box[11.6," ..scrollbarpos .. ";0.28,0.5;#32CD32]"
|
||||||
|
scrollbar = scrollbar .. "button[11.6," .. (yoffset + (0.3))
|
||||||
|
.. ";0.5,0.5;btn_modstore_page_up;^]"
|
||||||
|
scrollbar = scrollbar .. "button[11.6," .. 9.0
|
||||||
|
.. ";0.5,0.5;btn_modstore_page_down;v]"
|
||||||
|
|
||||||
|
local retval = ""
|
||||||
|
|
||||||
|
local endmod = (list.page * modstore.modsperpage) + modstore.modsperpage
|
||||||
|
|
||||||
if (endmod > #list.data) then
|
if (endmod > #list.data) then
|
||||||
endmod = #list.data
|
endmod = #list.data
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=(list.page * modstore.modsperpage) +1, endmod, 1 do
|
for i=(list.page * modstore.modsperpage) +1, endmod, 1 do
|
||||||
--getmoddetails
|
--getmoddetails
|
||||||
local details = modstore.get_details(list.data[i].id)
|
local details = list.data[i].details
|
||||||
|
|
||||||
|
if details == nil then
|
||||||
|
details = {}
|
||||||
|
details.title = list.data[i].title
|
||||||
|
details.author = ""
|
||||||
|
details.rating = -1
|
||||||
|
details.description = ""
|
||||||
|
end
|
||||||
|
|
||||||
if details ~= nil then
|
if details ~= nil then
|
||||||
local screenshot_ypos = (i-1 - (list.page * modstore.modsperpage))*1.9 +0.2
|
local screenshot_ypos =
|
||||||
|
yoffset +(i-1 - (list.page * modstore.modsperpage))*1.9 +0.2
|
||||||
retval = retval .. "box[0," .. screenshot_ypos .. ";11.4,1.75;FFFFFF]"
|
|
||||||
|
retval = retval .. modstore.getshortmodinfo(screenshot_ypos,
|
||||||
--screenshot
|
list.data[i],
|
||||||
if details.screenshot_url ~= nil and
|
details)
|
||||||
details.screenshot_url ~= "" then
|
|
||||||
if list.data[i].texturename == nil then
|
|
||||||
local fullurl = engine.setting_get("modstore_download_url") ..
|
|
||||||
details.screenshot_url
|
|
||||||
local filename = os.tempfolder()
|
|
||||||
|
|
||||||
if engine.download_file(fullurl,filename) then
|
|
||||||
list.data[i].texturename = filename
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if list.data[i].texturename == nil then
|
|
||||||
list.data[i].texturename = modstore.basetexturedir .. "no_screenshot.png"
|
|
||||||
end
|
|
||||||
|
|
||||||
retval = retval .. "image[0,".. screenshot_ypos .. ";3,2;" ..
|
|
||||||
engine.formspec_escape(list.data[i].texturename) .. "]"
|
|
||||||
|
|
||||||
--title + author
|
|
||||||
retval = retval .."label[2.75," .. screenshot_ypos .. ";" ..
|
|
||||||
engine.formspec_escape(details.title) .. " (" .. details.author .. ")]"
|
|
||||||
|
|
||||||
--description
|
|
||||||
local descriptiony = screenshot_ypos + 0.5
|
|
||||||
retval = retval .. "textarea[3," .. descriptiony .. ";6.5,1.55;;" ..
|
|
||||||
engine.formspec_escape(details.description) .. ";]"
|
|
||||||
--rating
|
|
||||||
local ratingy = screenshot_ypos + 0.6
|
|
||||||
retval = retval .."label[10.1," .. ratingy .. ";" ..
|
|
||||||
fgettext("Rating") .. ": " .. details.rating .."]"
|
|
||||||
|
|
||||||
--install button
|
|
||||||
local buttony = screenshot_ypos + 1.2
|
|
||||||
local buttonnumber = (i - (list.page * modstore.modsperpage))
|
|
||||||
retval = retval .."button[9.6," .. buttony .. ";2,0.5;btn_install_mod_" .. buttonnumber .. ";"
|
|
||||||
|
|
||||||
if modmgr.mod_exists(details.basename) then
|
|
||||||
retval = retval .. fgettext("re-Install") .."]"
|
|
||||||
else
|
|
||||||
retval = retval .. fgettext("Install") .."]"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
modstore.current_list = list
|
return retval .. scrollbar
|
||||||
|
|
||||||
return retval
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function modstore.get_details(modid)
|
--@function [parent=#modstore] getsearchpage
|
||||||
|
function modstore.getsearchpage()
|
||||||
if modstore.details_cache[modid] ~= nil then
|
local retval = ""
|
||||||
return modstore.details_cache[modid]
|
local search = ""
|
||||||
end
|
|
||||||
|
|
||||||
local retval = engine.get_modstore_details(tostring(modid))
|
if modstore.last_search ~= nil then
|
||||||
modstore.details_cache[modid] = retval
|
search = modstore.last_search
|
||||||
return retval
|
end
|
||||||
|
|
||||||
|
retval = retval ..
|
||||||
|
"button[9.5,0.2;2.5,0.5;btn_modstore_search;".. fgettext("Search") .. "]" ..
|
||||||
|
"field[0.5,0.5;9,0.5;te_modstore_search;;" .. search .. "]"
|
||||||
|
|
||||||
|
|
||||||
|
--show 4 mods only
|
||||||
|
modstore.modsperpage = 4
|
||||||
|
retval = retval ..
|
||||||
|
modstore.getmodlist(
|
||||||
|
modstore.currentlist,
|
||||||
|
1.75)
|
||||||
|
|
||||||
|
return retval;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -178,7 +178,7 @@ function minetest.deserialize(sdata)
|
||||||
if okay then
|
if okay then
|
||||||
return results
|
return results
|
||||||
end
|
end
|
||||||
print('error:'.. results)
|
minetest.log('error', 'minetest.deserialize(): '.. results)
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,45 +1,46 @@
|
||||||
|
|
||||||
vector = {}
|
vector = {}
|
||||||
|
|
||||||
|
local function assert_vector(v)
|
||||||
|
assert(type(v) == "table" and v.x and v.y and v.z, "Invalid vector")
|
||||||
|
end
|
||||||
|
|
||||||
function vector.new(a, b, c)
|
function vector.new(a, b, c)
|
||||||
v = {x=0, y=0, z=0}
|
|
||||||
if type(a) == "table" then
|
if type(a) == "table" then
|
||||||
v = {x=a.x, y=a.y, z=a.z}
|
assert(a.x and a.y and a.z, "Invalid vector passed to vector.new()")
|
||||||
elseif a and b and c then
|
return {x=a.x, y=a.y, z=a.z}
|
||||||
v = {x=a, y=b, z=c}
|
elseif a then
|
||||||
|
assert(b and c, "Invalid arguments for vector.new()")
|
||||||
|
return {x=a, y=b, z=c}
|
||||||
end
|
end
|
||||||
setmetatable(v, {
|
return {x=0, y=0, z=0}
|
||||||
__add = vector.add,
|
|
||||||
__sub = vector.subtract,
|
|
||||||
__mul = vector.multiply,
|
|
||||||
__div = vector.divide,
|
|
||||||
__umn = function(v) return vector.multiply(v, -1) end,
|
|
||||||
__len = vector.length,
|
|
||||||
__eq = vector.equals,
|
|
||||||
})
|
|
||||||
return v
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.equals(a, b)
|
function vector.equals(a, b)
|
||||||
|
assert_vector(a)
|
||||||
|
assert_vector(b)
|
||||||
return a.x == b.x and
|
return a.x == b.x and
|
||||||
a.y == b.y and
|
a.y == b.y and
|
||||||
a.z == b.z
|
a.z == b.z
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.length(v)
|
function vector.length(v)
|
||||||
|
assert_vector(v)
|
||||||
return math.hypot(v.x, math.hypot(v.y, v.z))
|
return math.hypot(v.x, math.hypot(v.y, v.z))
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.normalize(v)
|
function vector.normalize(v)
|
||||||
|
assert_vector(v)
|
||||||
local len = vector.length(v)
|
local len = vector.length(v)
|
||||||
if len == 0 then
|
if len == 0 then
|
||||||
return vector.new()
|
return {x=0, y=0, z=0}
|
||||||
else
|
else
|
||||||
return vector.divide(v, len)
|
return vector.divide(v, len)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.round(v)
|
function vector.round(v)
|
||||||
|
assert_vector(v)
|
||||||
return {
|
return {
|
||||||
x = math.floor(v.x + 0.5),
|
x = math.floor(v.x + 0.5),
|
||||||
y = math.floor(v.y + 0.5),
|
y = math.floor(v.y + 0.5),
|
||||||
|
@ -48,6 +49,8 @@ function vector.round(v)
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.distance(a, b)
|
function vector.distance(a, b)
|
||||||
|
assert_vector(a)
|
||||||
|
assert_vector(b)
|
||||||
local x = a.x - b.x
|
local x = a.x - b.x
|
||||||
local y = a.y - b.y
|
local y = a.y - b.y
|
||||||
local z = a.z - b.z
|
local z = a.z - b.z
|
||||||
|
@ -55,6 +58,8 @@ function vector.distance(a, b)
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.direction(pos1, pos2)
|
function vector.direction(pos1, pos2)
|
||||||
|
assert_vector(pos1)
|
||||||
|
assert_vector(pos2)
|
||||||
local x_raw = pos2.x - pos1.x
|
local x_raw = pos2.x - pos1.x
|
||||||
local y_raw = pos2.y - pos1.y
|
local y_raw = pos2.y - pos1.y
|
||||||
local z_raw = pos2.z - pos1.z
|
local z_raw = pos2.z - pos1.z
|
||||||
|
@ -84,58 +89,58 @@ end
|
||||||
|
|
||||||
|
|
||||||
function vector.add(a, b)
|
function vector.add(a, b)
|
||||||
|
assert_vector(a)
|
||||||
if type(b) == "table" then
|
if type(b) == "table" then
|
||||||
return vector.new(
|
assert_vector(b)
|
||||||
a.x + b.x,
|
return {x = a.x + b.x,
|
||||||
a.y + b.y,
|
y = a.y + b.y,
|
||||||
a.z + b.z)
|
z = a.z + b.z}
|
||||||
else
|
else
|
||||||
return vector.new(
|
return {x = a.x + b,
|
||||||
a.x + b,
|
y = a.y + b,
|
||||||
a.y + b,
|
z = a.z + b}
|
||||||
a.z + b)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.subtract(a, b)
|
function vector.subtract(a, b)
|
||||||
|
assert_vector(a)
|
||||||
if type(b) == "table" then
|
if type(b) == "table" then
|
||||||
return vector.new(
|
assert_vector(b)
|
||||||
a.x - b.x,
|
return {x = a.x - b.x,
|
||||||
a.y - b.y,
|
y = a.y - b.y,
|
||||||
a.z - b.z)
|
z = a.z - b.z}
|
||||||
else
|
else
|
||||||
return vector.new(
|
return {x = a.x - b,
|
||||||
a.x - b,
|
y = a.y - b,
|
||||||
a.y - b,
|
z = a.z - b}
|
||||||
a.z - b)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.multiply(a, b)
|
function vector.multiply(a, b)
|
||||||
|
assert_vector(a)
|
||||||
if type(b) == "table" then
|
if type(b) == "table" then
|
||||||
return vector.new(
|
assert_vector(b)
|
||||||
a.x * b.x,
|
return {x = a.x * b.x,
|
||||||
a.y * b.y,
|
y = a.y * b.y,
|
||||||
a.z * b.z)
|
z = a.z * b.z}
|
||||||
else
|
else
|
||||||
return vector.new(
|
return {x = a.x * b,
|
||||||
a.x * b,
|
y = a.y * b,
|
||||||
a.y * b,
|
z = a.z * b}
|
||||||
a.z * b)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function vector.divide(a, b)
|
function vector.divide(a, b)
|
||||||
|
assert_vector(a)
|
||||||
if type(b) == "table" then
|
if type(b) == "table" then
|
||||||
return vector.new(
|
assert_vector(b)
|
||||||
a.x / b.x,
|
return {x = a.x / b.x,
|
||||||
a.y / b.y,
|
y = a.y / b.y,
|
||||||
a.z / b.z)
|
z = a.z / b.z}
|
||||||
else
|
else
|
||||||
return vector.new(
|
return {x = a.x / b,
|
||||||
a.x / b,
|
y = a.y / b,
|
||||||
a.y / b,
|
z = a.z / b}
|
||||||
a.z / b)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
uniform sampler2D baseTexture;
|
||||||
|
uniform sampler2D normalTexture;
|
||||||
|
uniform sampler2D useNormalmap;
|
||||||
|
|
||||||
|
uniform vec4 skyBgColor;
|
||||||
|
uniform float fogDistance;
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
|
varying vec3 vPosition;
|
||||||
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
#ifdef ENABLE_PARALLAX_OCCLUSION
|
||||||
|
varying vec3 tsEyeVec;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const float e = 2.718281828459;
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
vec3 color;
|
||||||
|
vec2 uv = gl_TexCoord[0].st;
|
||||||
|
|
||||||
|
#ifdef USE_NORMALMAPS
|
||||||
|
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_PARALLAX_OCCLUSION
|
||||||
|
float height;
|
||||||
|
vec2 tsEye = vec2(tsEyeVec.x,-tsEyeVec.y);
|
||||||
|
|
||||||
|
if (use_normalmap > 0.0) {
|
||||||
|
float map_height = texture2D(normalTexture, uv).a;
|
||||||
|
if (map_height < 1.0){
|
||||||
|
float height = PARALLAX_OCCLUSION_SCALE * map_height - PARALLAX_OCCLUSION_BIAS;
|
||||||
|
uv = uv + height * tsEye;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_BUMPMAPPING
|
||||||
|
if (use_normalmap > 0.0) {
|
||||||
|
vec3 base = texture2D(baseTexture, uv).rgb;
|
||||||
|
vec3 vVec = normalize(eyeVec);
|
||||||
|
vec3 bump = normalize(texture2D(normalTexture, uv).xyz * 2.0 - 1.0);
|
||||||
|
vec3 R = reflect(-vVec, bump);
|
||||||
|
vec3 lVec = normalize(vVec);
|
||||||
|
float diffuse = max(dot(lVec, bump), 0.0);
|
||||||
|
float specular = pow(clamp(dot(R, lVec), 0.0, 1.0),1.0);
|
||||||
|
color = mix (base,diffuse*base,1.0) + 0.1 * specular * diffuse;
|
||||||
|
} else {
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float alpha = texture2D(baseTexture, uv).a;
|
||||||
|
vec4 col = vec4(color.r, color.g, color.b, alpha);
|
||||||
|
col *= gl_Color;
|
||||||
|
col = col * col; // SRGB -> Linear
|
||||||
|
col *= 1.8;
|
||||||
|
col.r = 1.0 - exp(1.0 - col.r) / e;
|
||||||
|
col.g = 1.0 - exp(1.0 - col.g) / e;
|
||||||
|
col.b = 1.0 - exp(1.0 - col.b) / e;
|
||||||
|
col = sqrt(col); // Linear -> SRGB
|
||||||
|
if(fogDistance != 0.0){
|
||||||
|
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
||||||
|
col = mix(col, skyBgColor, d);
|
||||||
|
}
|
||||||
|
gl_FragColor = vec4(col.r, col.g, col.b, alpha);
|
||||||
|
}
|
|
@ -0,0 +1,102 @@
|
||||||
|
uniform mat4 mWorldViewProj;
|
||||||
|
uniform mat4 mInvWorld;
|
||||||
|
uniform mat4 mTransWorld;
|
||||||
|
uniform float dayNightRatio;
|
||||||
|
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
|
varying vec3 vPosition;
|
||||||
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
#ifdef ENABLE_PARALLAX_OCCLUSION
|
||||||
|
varying vec3 tsEyeVec;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
gl_Position = mWorldViewProj * gl_Vertex;
|
||||||
|
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
||||||
|
eyeVec = (gl_ModelViewMatrix * gl_Vertex).xyz;
|
||||||
|
|
||||||
|
#ifdef ENABLE_PARALLAX_OCCLUSION
|
||||||
|
vec3 normal,tangent,binormal;
|
||||||
|
normal = normalize(gl_NormalMatrix * gl_Normal);
|
||||||
|
|
||||||
|
if (gl_Normal.x > 0.5) {
|
||||||
|
// 1.0, 0.0, 0.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 0.0, 0.0, -1.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, -1.0, 0.0));
|
||||||
|
} else if (gl_Normal.x < -0.5) {
|
||||||
|
// -1.0, 0.0, 0.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 0.0, 0.0, 1.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, -1.0, 0.0));
|
||||||
|
} else if (gl_Normal.y > 0.5) {
|
||||||
|
// 0.0, 1.0, 0.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 1.0, 0.0, 0.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, 0.0, 1.0));
|
||||||
|
} else if (gl_Normal.y < -0.5) {
|
||||||
|
// 0.0, -1.0, 0.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 1.0, 0.0, 0.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, 0.0, 1.0));
|
||||||
|
} else if (gl_Normal.z > 0.5) {
|
||||||
|
// 0.0, 0.0, 1.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 1.0, 0.0, 0.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, -1.0, 0.0));
|
||||||
|
} else if (gl_Normal.z < -0.5) {
|
||||||
|
// 0.0, 0.0, -1.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3(-1.0, 0.0, 0.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, -1.0, 0.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
mat3 tbnMatrix = mat3( tangent.x, binormal.x, normal.x,
|
||||||
|
tangent.y, binormal.y, normal.y,
|
||||||
|
tangent.z, binormal.z, normal.z);
|
||||||
|
|
||||||
|
tsEyeVec = normalize(eyeVec * tbnMatrix);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec4 color;
|
||||||
|
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
||||||
|
|
||||||
|
float day = gl_Color.r;
|
||||||
|
float night = gl_Color.g;
|
||||||
|
float light_source = gl_Color.b;
|
||||||
|
|
||||||
|
/*color.r = mix(night, day, dayNightRatio);
|
||||||
|
color.g = color.r;
|
||||||
|
color.b = color.r;*/
|
||||||
|
|
||||||
|
float rg = mix(night, day, dayNightRatio);
|
||||||
|
rg += light_source * 2.5; // Make light sources brighter
|
||||||
|
float b = rg;
|
||||||
|
|
||||||
|
// Moonlight is blue
|
||||||
|
b += (day - night) / 13.0;
|
||||||
|
rg -= (day - night) / 13.0;
|
||||||
|
|
||||||
|
// Emphase blue a bit in darker places
|
||||||
|
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||||
|
b += max(0.0, (1.0 - abs(b - 0.13)/0.17) * 0.025);
|
||||||
|
|
||||||
|
// Artificial light is yellow-ish
|
||||||
|
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||||
|
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
||||||
|
|
||||||
|
color.r = clamp(rg,0.0,1.0);
|
||||||
|
color.g = clamp(rg,0.0,1.0);
|
||||||
|
color.b = clamp(b,0.0,1.0);
|
||||||
|
|
||||||
|
// Make sides and bottom darker than the top
|
||||||
|
color = color * color; // SRGB -> Linear
|
||||||
|
if(gl_Normal.y <= 0.5)
|
||||||
|
color *= 0.6;
|
||||||
|
//color *= 0.7;
|
||||||
|
color = sqrt(color); // Linear -> SRGB
|
||||||
|
|
||||||
|
color.a = gl_Color.a;
|
||||||
|
|
||||||
|
gl_FrontColor = gl_BackColor = color;
|
||||||
|
|
||||||
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
|
|
||||||
|
}
|
|
@ -1,46 +0,0 @@
|
||||||
|
|
||||||
uniform sampler2D myTexture;
|
|
||||||
uniform sampler2D normalTexture;
|
|
||||||
|
|
||||||
uniform vec4 skyBgColor;
|
|
||||||
uniform float fogDistance;
|
|
||||||
|
|
||||||
varying vec3 vPosition;
|
|
||||||
|
|
||||||
varying vec3 viewVec;
|
|
||||||
|
|
||||||
void main (void)
|
|
||||||
{
|
|
||||||
vec4 col = texture2D(myTexture, vec2(gl_TexCoord[0]));
|
|
||||||
float alpha = col.a;
|
|
||||||
vec2 uv = gl_TexCoord[0].st;
|
|
||||||
vec4 base = texture2D(myTexture, uv);
|
|
||||||
vec4 final_color = vec4(0.2, 0.2, 0.2, 1.0) * base;
|
|
||||||
vec3 vVec = normalize(viewVec);
|
|
||||||
vec3 bump = normalize(texture2D(normalTexture, uv).xyz * 2.0 - 1.0);
|
|
||||||
vec3 R = reflect(-vVec, bump);
|
|
||||||
vec3 lVec = normalize(vec3(0.0, -0.4, 0.5));
|
|
||||||
float diffuse = max(dot(lVec, bump), 0.0);
|
|
||||||
|
|
||||||
vec3 color = diffuse * texture2D(myTexture, gl_TexCoord[0].st).rgb;
|
|
||||||
|
|
||||||
|
|
||||||
float specular = pow(clamp(dot(R, lVec), 0.0, 1.0),1.0);
|
|
||||||
color += vec3(0.2*specular*diffuse);
|
|
||||||
|
|
||||||
|
|
||||||
col = vec4(color.r, color.g, color.b, alpha);
|
|
||||||
col *= gl_Color;
|
|
||||||
col = col * col; // SRGB -> Linear
|
|
||||||
col *= 1.8;
|
|
||||||
col.r = 1.0 - exp(1.0 - col.r) / exp(1.0);
|
|
||||||
col.g = 1.0 - exp(1.0 - col.g) / exp(1.0);
|
|
||||||
col.b = 1.0 - exp(1.0 - col.b) / exp(1.0);
|
|
||||||
col = sqrt(col); // Linear -> SRGB
|
|
||||||
if(fogDistance != 0.0){
|
|
||||||
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
|
||||||
alpha = mix(alpha, 0.0, d);
|
|
||||||
}
|
|
||||||
|
|
||||||
gl_FragColor = vec4(col.r, col.g, col.b, alpha);
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
|
|
||||||
uniform sampler2D myTexture;
|
|
||||||
uniform sampler2D normalTexture;
|
|
||||||
|
|
||||||
uniform vec4 skyBgColor;
|
|
||||||
uniform float fogDistance;
|
|
||||||
|
|
||||||
varying vec3 vPosition;
|
|
||||||
|
|
||||||
varying vec3 viewVec;
|
|
||||||
|
|
||||||
void main (void)
|
|
||||||
{
|
|
||||||
vec4 col = texture2D(myTexture, vec2(gl_TexCoord[0]));
|
|
||||||
float alpha = col.a;
|
|
||||||
vec2 uv = gl_TexCoord[0].st;
|
|
||||||
vec4 base = texture2D(myTexture, uv);
|
|
||||||
vec4 final_color = vec4(0.2, 0.2, 0.2, 1.0) * base;
|
|
||||||
vec3 vVec = normalize(viewVec);
|
|
||||||
vec3 bump = normalize(texture2D(normalTexture, uv).xyz * 2.0 - 1.0);
|
|
||||||
vec3 R = reflect(-vVec, bump);
|
|
||||||
vec3 lVec = normalize(vec3(0.0, -0.4, 0.5));
|
|
||||||
float diffuse = max(dot(lVec, bump), 0.0);
|
|
||||||
|
|
||||||
vec3 color = diffuse * texture2D(myTexture, gl_TexCoord[0].st).rgb;
|
|
||||||
|
|
||||||
|
|
||||||
float specular = pow(clamp(dot(R, lVec), 0.0, 1.0),1.0);
|
|
||||||
color += vec3(0.2*specular*diffuse);
|
|
||||||
|
|
||||||
|
|
||||||
col = vec4(color.r, color.g, color.b, alpha);
|
|
||||||
col *= gl_Color;
|
|
||||||
col = col * col; // SRGB -> Linear
|
|
||||||
col *= 1.8;
|
|
||||||
col.r = 1.0 - exp(1.0 - col.r) / exp(1.0);
|
|
||||||
col.g = 1.0 - exp(1.0 - col.g) / exp(1.0);
|
|
||||||
col.b = 1.0 - exp(1.0 - col.b) / exp(1.0);
|
|
||||||
col = sqrt(col); // Linear -> SRGB
|
|
||||||
if(fogDistance != 0.0){
|
|
||||||
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
|
||||||
col = mix(col, skyBgColor, d);
|
|
||||||
}
|
|
||||||
gl_FragColor = vec4(col.r, col.g, col.b, alpha);
|
|
||||||
}
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
uniform sampler2D baseTexture;
|
||||||
|
uniform sampler2D normalTexture;
|
||||||
|
uniform sampler2D useNormalmap;
|
||||||
|
|
||||||
|
uniform vec4 skyBgColor;
|
||||||
|
uniform float fogDistance;
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
|
varying vec3 vPosition;
|
||||||
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
const float e = 2.718281828459;
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
vec3 color;
|
||||||
|
vec2 uv = gl_TexCoord[0].st;
|
||||||
|
|
||||||
|
#ifdef USE_NORMALMAPS
|
||||||
|
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_BUMPMAPPING
|
||||||
|
if (use_normalmap > 0.0) {
|
||||||
|
vec3 base = texture2D(baseTexture, uv).rgb;
|
||||||
|
vec3 vVec = normalize(eyeVec);
|
||||||
|
vec3 bump = normalize(texture2D(normalTexture, uv).xyz * 2.0 - 1.0);
|
||||||
|
vec3 R = reflect(-vVec, bump);
|
||||||
|
vec3 lVec = normalize(vVec);
|
||||||
|
float diffuse = max(dot(lVec, bump), 0.0);
|
||||||
|
float specular = pow(clamp(dot(R, lVec), 0.0, 1.0),1.0);
|
||||||
|
color = mix (base,diffuse*base,1.0) + 0.1 * specular * diffuse;
|
||||||
|
} else {
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float alpha = texture2D(baseTexture, uv).a;
|
||||||
|
vec4 col = vec4(color.r, color.g, color.b, alpha);
|
||||||
|
col *= gl_Color;
|
||||||
|
col = col * col; // SRGB -> Linear
|
||||||
|
col *= 1.8;
|
||||||
|
col.r = 1.0 - exp(1.0 - col.r) / e;
|
||||||
|
col.g = 1.0 - exp(1.0 - col.g) / e;
|
||||||
|
col.b = 1.0 - exp(1.0 - col.b) / e;
|
||||||
|
col = sqrt(col); // Linear -> SRGB
|
||||||
|
if(fogDistance != 0.0){
|
||||||
|
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
||||||
|
col = mix(col, skyBgColor, d);
|
||||||
|
}
|
||||||
|
gl_FragColor = vec4(col.r, col.g, col.b, alpha);
|
||||||
|
}
|
|
@ -1,37 +1,44 @@
|
||||||
|
|
||||||
uniform mat4 mWorldViewProj;
|
uniform mat4 mWorldViewProj;
|
||||||
uniform mat4 mInvWorld;
|
uniform mat4 mInvWorld;
|
||||||
uniform mat4 mTransWorld;
|
uniform mat4 mTransWorld;
|
||||||
uniform float dayNightRatio;
|
uniform float dayNightRatio;
|
||||||
|
uniform float animationTimer;
|
||||||
|
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
varying vec3 vPosition;
|
varying vec3 vPosition;
|
||||||
varying vec3 viewVec;
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
#ifdef ENABLE_WAVING_LEAVES
|
||||||
|
float smoothCurve( float x ) {
|
||||||
|
return x * x *( 3.0 - 2.0 * x );
|
||||||
|
}
|
||||||
|
float triangleWave( float x ) {
|
||||||
|
return abs( fract( x + 0.5 ) * 2.0 - 1.0 );
|
||||||
|
}
|
||||||
|
float smoothTriangleWave( float x ) {
|
||||||
|
return smoothCurve( triangleWave( x ) ) * 2.0 - 1.0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
|
|
||||||
|
#ifdef ENABLE_WAVING_LEAVES
|
||||||
|
vec4 pos = gl_Vertex;
|
||||||
|
vec4 pos2 = mTransWorld*gl_Vertex;
|
||||||
|
pos.x += (smoothTriangleWave(animationTimer*10.0 + pos2.x * 0.01 + pos2.z * 0.01) * 2.0 - 1.0) * 0.4;
|
||||||
|
pos.y += (smoothTriangleWave(animationTimer*15.0 + pos2.x * -0.01 + pos2.z * -0.01) * 2.0 - 1.0) * 0.2;
|
||||||
|
pos.z += (smoothTriangleWave(animationTimer*10.0 + pos2.x * -0.01 + pos2.z * -0.01) * 2.0 - 1.0) * 0.4;
|
||||||
|
gl_Position = mWorldViewProj * pos;
|
||||||
|
#else
|
||||||
gl_Position = mWorldViewProj * gl_Vertex;
|
gl_Position = mWorldViewProj * gl_Vertex;
|
||||||
|
#endif
|
||||||
|
|
||||||
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
||||||
|
|
||||||
vec3 tangent;
|
|
||||||
vec3 binormal;
|
|
||||||
|
|
||||||
vec3 c1 = cross( gl_Normal, vec3(0.0, 0.0, 1.0) );
|
eyeVec = (gl_ModelViewMatrix * gl_Vertex).xyz;
|
||||||
vec3 c2 = cross( gl_Normal, vec3(0.0, 1.0, 0.0) );
|
|
||||||
|
|
||||||
if( length(c1)>length(c2) )
|
|
||||||
{
|
|
||||||
tangent = c1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tangent = c2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tangent = normalize(tangent);
|
|
||||||
|
|
||||||
//binormal = cross(gl_Normal, tangent);
|
|
||||||
//binormal = normalize(binormal);
|
|
||||||
|
|
||||||
vec4 color;
|
vec4 color;
|
||||||
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
||||||
|
@ -45,7 +52,7 @@ void main(void)
|
||||||
color.b = color.r;*/
|
color.b = color.r;*/
|
||||||
|
|
||||||
float rg = mix(night, day, dayNightRatio);
|
float rg = mix(night, day, dayNightRatio);
|
||||||
rg += light_source * 1.5; // Make light sources brighter
|
rg += light_source * 2.5; // Make light sources brighter
|
||||||
float b = rg;
|
float b = rg;
|
||||||
|
|
||||||
// Moonlight is blue
|
// Moonlight is blue
|
||||||
|
@ -60,9 +67,9 @@ void main(void)
|
||||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||||
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
||||||
|
|
||||||
color.r = rg;
|
color.r = clamp(rg,0.0,1.0);
|
||||||
color.g = rg;
|
color.g = clamp(rg,0.0,1.0);
|
||||||
color.b = b;
|
color.b = clamp(b,0.0,1.0);
|
||||||
|
|
||||||
// Make sides and bottom darker than the top
|
// Make sides and bottom darker than the top
|
||||||
color = color * color; // SRGB -> Linear
|
color = color * color; // SRGB -> Linear
|
||||||
|
@ -76,23 +83,5 @@ void main(void)
|
||||||
gl_FrontColor = gl_BackColor = color;
|
gl_FrontColor = gl_BackColor = color;
|
||||||
|
|
||||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
|
|
||||||
vec3 n1 = normalize(gl_NormalMatrix * gl_Normal);
|
|
||||||
vec4 tangent1 = vec4(tangent.x, tangent.y, tangent.z, 0);
|
|
||||||
//vec3 t1 = normalize(gl_NormalMatrix * tangent1);
|
|
||||||
//vec3 b1 = cross(n1, t1);
|
|
||||||
|
|
||||||
vec3 v;
|
|
||||||
vec3 vVertex = vec3(gl_ModelViewMatrix * gl_Vertex);
|
|
||||||
vec3 vVec = -vVertex;
|
|
||||||
//v.x = dot(vVec, t1);
|
|
||||||
//v.y = dot(vVec, b1);
|
|
||||||
//v.z = dot(vVec, n1);
|
|
||||||
//viewVec = vVec;
|
|
||||||
viewVec = normalize(vec3(0.0, -0.4, 0.5));
|
|
||||||
//Vector representing the 0th texture coordinate passed to fragment shader
|
|
||||||
//gl_TexCoord[0] = vec2(gl_MultiTexCoord0);
|
|
||||||
|
|
||||||
// Transform the current vertex
|
|
||||||
//gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
|
|
||||||
}
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
uniform sampler2D baseTexture;
|
||||||
|
uniform sampler2D normalTexture;
|
||||||
|
uniform sampler2D useNormalmap;
|
||||||
|
|
||||||
|
uniform vec4 skyBgColor;
|
||||||
|
uniform float fogDistance;
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
|
varying vec3 vPosition;
|
||||||
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
const float e = 2.718281828459;
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
vec3 color;
|
||||||
|
vec2 uv = gl_TexCoord[0].st;
|
||||||
|
|
||||||
|
#ifdef USE_NORMALMAPS
|
||||||
|
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_BUMPMAPPING
|
||||||
|
if (use_normalmap > 0.0) {
|
||||||
|
vec3 base = texture2D(baseTexture, uv).rgb;
|
||||||
|
vec3 vVec = normalize(eyeVec);
|
||||||
|
vec3 bump = normalize(texture2D(normalTexture, uv).xyz * 2.0 - 1.0);
|
||||||
|
vec3 R = reflect(-vVec, bump);
|
||||||
|
vec3 lVec = normalize(vVec);
|
||||||
|
float diffuse = max(dot(vec3(-1.0, -0.4, 0.5), bump), 0.0);
|
||||||
|
float specular = pow(clamp(dot(R, lVec), 0.0, 1.0),1.0);
|
||||||
|
color = mix (base,diffuse*base,1.0) + 0.1 * specular * diffuse;
|
||||||
|
} else {
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float alpha = gl_Color.a;
|
||||||
|
vec4 col = vec4(color.r, color.g, color.b, alpha);
|
||||||
|
col *= gl_Color;
|
||||||
|
col = col * col; // SRGB -> Linear
|
||||||
|
col *= 1.8;
|
||||||
|
col.r = 1.0 - exp(1.0 - col.r) / e;
|
||||||
|
col.g = 1.0 - exp(1.0 - col.g) / e;
|
||||||
|
col.b = 1.0 - exp(1.0 - col.b) / e;
|
||||||
|
col = sqrt(col); // Linear -> SRGB
|
||||||
|
if(fogDistance != 0.0){
|
||||||
|
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
||||||
|
alpha = mix(alpha, 0.0, d);
|
||||||
|
}
|
||||||
|
gl_FragColor = vec4(col.r, col.g, col.b, alpha);
|
||||||
|
}
|
|
@ -1,15 +1,27 @@
|
||||||
|
|
||||||
uniform mat4 mWorldViewProj;
|
uniform mat4 mWorldViewProj;
|
||||||
uniform mat4 mInvWorld;
|
uniform mat4 mInvWorld;
|
||||||
uniform mat4 mTransWorld;
|
uniform mat4 mTransWorld;
|
||||||
uniform float dayNightRatio;
|
uniform float dayNightRatio;
|
||||||
|
uniform float animationTimer;
|
||||||
|
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
varying vec3 vPosition;
|
varying vec3 vPosition;
|
||||||
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
|
#ifdef ENABLE_WAVING_WATER
|
||||||
|
vec4 pos2 = gl_Vertex;
|
||||||
|
pos2.y -= 2.0;
|
||||||
|
pos2.y -= sin (pos2.z/WATER_WAVE_LENGTH + animationTimer * WATER_WAVE_SPEED * WATER_WAVE_LENGTH) * WATER_WAVE_HEIGHT
|
||||||
|
+ sin ((pos2.z/WATER_WAVE_LENGTH + animationTimer * WATER_WAVE_SPEED * WATER_WAVE_LENGTH) / 7.0) * WATER_WAVE_HEIGHT;
|
||||||
|
gl_Position = mWorldViewProj * pos2;
|
||||||
|
#else
|
||||||
gl_Position = mWorldViewProj * gl_Vertex;
|
gl_Position = mWorldViewProj * gl_Vertex;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
eyeVec = (gl_ModelViewMatrix * gl_Vertex).xyz;
|
||||||
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
||||||
|
|
||||||
vec4 color;
|
vec4 color;
|
||||||
|
@ -24,7 +36,7 @@ void main(void)
|
||||||
color.b = color.r;*/
|
color.b = color.r;*/
|
||||||
|
|
||||||
float rg = mix(night, day, dayNightRatio);
|
float rg = mix(night, day, dayNightRatio);
|
||||||
rg += light_source * 1.0; // Make light sources brighter
|
rg += light_source * 2.5; // Make light sources brighter
|
||||||
float b = rg;
|
float b = rg;
|
||||||
|
|
||||||
// Moonlight is blue
|
// Moonlight is blue
|
||||||
|
@ -39,20 +51,13 @@ void main(void)
|
||||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||||
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
||||||
|
|
||||||
color.r = rg;
|
color.r = clamp(rg,0.0,1.0);
|
||||||
color.g = rg;
|
color.g = clamp(rg,0.0,1.0);
|
||||||
color.b = b;
|
color.b = clamp(b,0.0,1.0);
|
||||||
|
|
||||||
// Make sides and bottom darker than the top
|
|
||||||
color = color * color; // SRGB -> Linear
|
|
||||||
if(gl_Normal.y <= 0.5)
|
|
||||||
color *= 0.6;
|
|
||||||
//color *= 0.7;
|
|
||||||
color = sqrt(color); // Linear -> SRGB
|
|
||||||
|
|
||||||
color.a = gl_Color.a;
|
color.a = gl_Color.a;
|
||||||
|
|
||||||
gl_FrontColor = gl_BackColor = color;
|
gl_FrontColor = gl_BackColor = color;
|
||||||
|
|
||||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
uniform sampler2D baseTexture;
|
||||||
|
uniform sampler2D normalTexture;
|
||||||
|
uniform sampler2D useNormalmap;
|
||||||
|
|
||||||
|
uniform vec4 skyBgColor;
|
||||||
|
uniform float fogDistance;
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
|
varying vec3 vPosition;
|
||||||
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
const float e = 2.718281828459;
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
vec3 color;
|
||||||
|
vec2 uv = gl_TexCoord[0].st;
|
||||||
|
|
||||||
|
#ifdef USE_NORMALMAPS
|
||||||
|
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_BUMPMAPPING
|
||||||
|
if (use_normalmap > 0.0) {
|
||||||
|
vec3 base = texture2D(baseTexture, uv).rgb;
|
||||||
|
vec3 vVec = normalize(eyeVec);
|
||||||
|
vec3 bump = normalize(texture2D(normalTexture, uv).xyz * 2.0 - 1.0);
|
||||||
|
vec3 R = reflect(-vVec, bump);
|
||||||
|
vec3 lVec = normalize(vVec);
|
||||||
|
float diffuse = max(dot(lVec, bump), 0.0);
|
||||||
|
float specular = pow(clamp(dot(R, lVec), 0.0, 1.0),1.0);
|
||||||
|
color = mix (base,diffuse*base,1.0) + 0.1 * specular * diffuse;
|
||||||
|
} else {
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float alpha = texture2D(baseTexture, uv).a;
|
||||||
|
vec4 col = vec4(color.r, color.g, color.b, alpha);
|
||||||
|
col *= gl_Color;
|
||||||
|
col = col * col; // SRGB -> Linear
|
||||||
|
col *= 1.8;
|
||||||
|
col.r = 1.0 - exp(1.0 - col.r) / e;
|
||||||
|
col.g = 1.0 - exp(1.0 - col.g) / e;
|
||||||
|
col.b = 1.0 - exp(1.0 - col.b) / e;
|
||||||
|
col = sqrt(col); // Linear -> SRGB
|
||||||
|
if(fogDistance != 0.0){
|
||||||
|
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
||||||
|
col = mix(col, skyBgColor, d);
|
||||||
|
}
|
||||||
|
gl_FragColor = vec4(col.r, col.g, col.b, alpha);
|
||||||
|
}
|
|
@ -1,37 +1,45 @@
|
||||||
|
|
||||||
uniform mat4 mWorldViewProj;
|
uniform mat4 mWorldViewProj;
|
||||||
uniform mat4 mInvWorld;
|
uniform mat4 mInvWorld;
|
||||||
uniform mat4 mTransWorld;
|
uniform mat4 mTransWorld;
|
||||||
uniform float dayNightRatio;
|
uniform float dayNightRatio;
|
||||||
|
uniform float animationTimer;
|
||||||
|
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
varying vec3 vPosition;
|
varying vec3 vPosition;
|
||||||
varying vec3 viewVec;
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
#ifdef ENABLE_WAVING_PLANTS
|
||||||
|
float smoothCurve( float x ) {
|
||||||
|
return x * x *( 3.0 - 2.0 * x );
|
||||||
|
}
|
||||||
|
float triangleWave( float x ) {
|
||||||
|
return abs( fract( x + 0.5 ) * 2.0 - 1.0 );
|
||||||
|
}
|
||||||
|
float smoothTriangleWave( float x ) {
|
||||||
|
return smoothCurve( triangleWave( x ) ) * 2.0 - 1.0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
|
|
||||||
|
#ifdef ENABLE_WAVING_PLANTS
|
||||||
|
vec4 pos = gl_Vertex;
|
||||||
|
vec4 pos2 = mTransWorld * gl_Vertex;
|
||||||
|
if (gl_TexCoord[0].y < 0.05) {
|
||||||
|
pos.x += (smoothTriangleWave(animationTimer * 20.0 + pos2.x * 0.1 + pos2.z * 0.1) * 2.0 - 1.0) * 0.8;
|
||||||
|
pos.y -= (smoothTriangleWave(animationTimer * 10.0 + pos2.x * -0.5 + pos2.z * -0.5) * 2.0 - 1.0) * 0.4;
|
||||||
|
}
|
||||||
|
gl_Position = mWorldViewProj * pos;
|
||||||
|
#else
|
||||||
gl_Position = mWorldViewProj * gl_Vertex;
|
gl_Position = mWorldViewProj * gl_Vertex;
|
||||||
|
#endif
|
||||||
|
|
||||||
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
||||||
|
eyeVec = (gl_ModelViewMatrix * gl_Vertex).xyz;
|
||||||
vec3 tangent;
|
|
||||||
vec3 binormal;
|
|
||||||
|
|
||||||
vec3 c1 = cross( gl_Normal, vec3(0.0, 0.0, 1.0) );
|
|
||||||
vec3 c2 = cross( gl_Normal, vec3(0.0, 1.0, 0.0) );
|
|
||||||
|
|
||||||
if( length(c1)>length(c2) )
|
|
||||||
{
|
|
||||||
tangent = c1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tangent = c2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tangent = normalize(tangent);
|
|
||||||
|
|
||||||
//binormal = cross(gl_Normal, tangent);
|
|
||||||
//binormal = normalize(binormal);
|
|
||||||
|
|
||||||
vec4 color;
|
vec4 color;
|
||||||
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
||||||
|
@ -45,7 +53,7 @@ void main(void)
|
||||||
color.b = color.r;*/
|
color.b = color.r;*/
|
||||||
|
|
||||||
float rg = mix(night, day, dayNightRatio);
|
float rg = mix(night, day, dayNightRatio);
|
||||||
rg += light_source * 1.5; // Make light sources brighter
|
rg += light_source * 2.5; // Make light sources brighter
|
||||||
float b = rg;
|
float b = rg;
|
||||||
|
|
||||||
// Moonlight is blue
|
// Moonlight is blue
|
||||||
|
@ -60,9 +68,9 @@ void main(void)
|
||||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||||
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
||||||
|
|
||||||
color.r = rg;
|
color.r = clamp(rg,0.0,1.0);
|
||||||
color.g = rg;
|
color.g = clamp(rg,0.0,1.0);
|
||||||
color.b = b;
|
color.b = clamp(b,0.0,1.0);
|
||||||
|
|
||||||
// Make sides and bottom darker than the top
|
// Make sides and bottom darker than the top
|
||||||
color = color * color; // SRGB -> Linear
|
color = color * color; // SRGB -> Linear
|
||||||
|
@ -75,24 +83,4 @@ void main(void)
|
||||||
|
|
||||||
gl_FrontColor = gl_BackColor = color;
|
gl_FrontColor = gl_BackColor = color;
|
||||||
|
|
||||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
|
||||||
|
|
||||||
vec3 n1 = normalize(gl_NormalMatrix * gl_Normal);
|
|
||||||
vec4 tangent1 = vec4(tangent.x, tangent.y, tangent.z, 0);
|
|
||||||
//vec3 t1 = normalize(gl_NormalMatrix * tangent1);
|
|
||||||
//vec3 b1 = cross(n1, t1);
|
|
||||||
|
|
||||||
vec3 v;
|
|
||||||
vec3 vVertex = vec3(gl_ModelViewMatrix * gl_Vertex);
|
|
||||||
vec3 vVec = -vVertex;
|
|
||||||
//v.x = dot(vVec, t1);
|
|
||||||
//v.y = dot(vVec, b1);
|
|
||||||
//v.z = dot(vVec, n1);
|
|
||||||
//viewVec = vVec;
|
|
||||||
viewVec = normalize(vec3(0.0, -0.4, 0.5));
|
|
||||||
//Vector representing the 0th texture coordinate passed to fragment shader
|
|
||||||
//gl_TexCoord[0] = vec2(gl_MultiTexCoord0);
|
|
||||||
|
|
||||||
// Transform the current vertex
|
|
||||||
//gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
|
|
||||||
}
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
trans_alphach_ref
|
|
@ -0,0 +1,90 @@
|
||||||
|
uniform sampler2D baseTexture;
|
||||||
|
uniform sampler2D normalTexture;
|
||||||
|
uniform sampler2D useNormalmap;
|
||||||
|
|
||||||
|
uniform vec4 skyBgColor;
|
||||||
|
uniform float fogDistance;
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
|
varying vec3 vPosition;
|
||||||
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
#ifdef ENABLE_PARALLAX_OCCLUSION
|
||||||
|
varying vec3 tsEyeVec;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const float e = 2.718281828459;
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
vec3 color;
|
||||||
|
vec2 uv = gl_TexCoord[0].st;
|
||||||
|
|
||||||
|
#ifdef USE_NORMALMAPS
|
||||||
|
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_PARALLAX_OCCLUSION
|
||||||
|
float height;
|
||||||
|
vec2 tsEye = vec2(tsEyeVec.x,-tsEyeVec.y);
|
||||||
|
|
||||||
|
if (use_normalmap > 0.0) {
|
||||||
|
float map_height = texture2D(normalTexture, uv).a;
|
||||||
|
if (map_height < 1.0){
|
||||||
|
float height = PARALLAX_OCCLUSION_SCALE * map_height - PARALLAX_OCCLUSION_BIAS;
|
||||||
|
uv = uv + height * tsEye;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Steep parallax code, for future use
|
||||||
|
if ((parallaxMappingMode == 2.0) && (use_normalmap > 0.0)) {
|
||||||
|
const float numSteps = 40.0;
|
||||||
|
float height = 1.0;
|
||||||
|
float step = 1.0 / numSteps;
|
||||||
|
vec4 NB = texture2D(normalTexture, uv);
|
||||||
|
vec2 delta = tsEye * parallaxMappingScale / numSteps;
|
||||||
|
for (float i = 0.0; i < numSteps; i++) {
|
||||||
|
if (NB.a < height) {
|
||||||
|
height -= step;
|
||||||
|
uv += delta;
|
||||||
|
NB = texture2D(normalTexture, uv);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef ENABLE_BUMPMAPPING
|
||||||
|
if (use_normalmap > 0.0) {
|
||||||
|
vec3 base = texture2D(baseTexture, uv).rgb;
|
||||||
|
vec3 vVec = normalize(eyeVec);
|
||||||
|
vec3 bump = normalize(texture2D(normalTexture, uv).xyz * 2.0 - 1.0);
|
||||||
|
vec3 R = reflect(-vVec, bump);
|
||||||
|
vec3 lVec = normalize(vVec);
|
||||||
|
float diffuse = max(dot(lVec, bump), 0.0);
|
||||||
|
float specular = pow(clamp(dot(R, lVec), 0.0, 1.0),1.0);
|
||||||
|
color = mix (base,diffuse*base,1.0) + 0.1 * specular * diffuse;
|
||||||
|
} else {
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
color = texture2D(baseTexture, uv).rgb;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float alpha = texture2D(baseTexture, uv).a;
|
||||||
|
vec4 col = vec4(color.r, color.g, color.b, alpha);
|
||||||
|
col *= gl_Color;
|
||||||
|
col = col * col; // SRGB -> Linear
|
||||||
|
col *= 1.8;
|
||||||
|
col.r = 1.0 - exp(1.0 - col.r) / e;
|
||||||
|
col.g = 1.0 - exp(1.0 - col.g) / e;
|
||||||
|
col.b = 1.0 - exp(1.0 - col.b) / e;
|
||||||
|
col = sqrt(col); // Linear -> SRGB
|
||||||
|
if(fogDistance != 0.0){
|
||||||
|
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
||||||
|
col = mix(col, skyBgColor, d);
|
||||||
|
}
|
||||||
|
gl_FragColor = vec4(col.r, col.g, col.b, alpha);
|
||||||
|
}
|
|
@ -0,0 +1,102 @@
|
||||||
|
uniform mat4 mWorldViewProj;
|
||||||
|
uniform mat4 mInvWorld;
|
||||||
|
uniform mat4 mTransWorld;
|
||||||
|
uniform float dayNightRatio;
|
||||||
|
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
|
varying vec3 vPosition;
|
||||||
|
varying vec3 eyeVec;
|
||||||
|
|
||||||
|
#ifdef ENABLE_PARALLAX_OCCLUSION
|
||||||
|
varying vec3 tsEyeVec;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
gl_Position = mWorldViewProj * gl_Vertex;
|
||||||
|
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
||||||
|
eyeVec = (gl_ModelViewMatrix * gl_Vertex).xyz;
|
||||||
|
|
||||||
|
#ifdef ENABLE_PARALLAX_OCCLUSION
|
||||||
|
vec3 normal,tangent,binormal;
|
||||||
|
normal = normalize(gl_NormalMatrix * gl_Normal);
|
||||||
|
|
||||||
|
if (gl_Normal.x > 0.5) {
|
||||||
|
// 1.0, 0.0, 0.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 0.0, 0.0, -1.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, -1.0, 0.0));
|
||||||
|
} else if (gl_Normal.x < -0.5) {
|
||||||
|
// -1.0, 0.0, 0.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 0.0, 0.0, 1.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, -1.0, 0.0));
|
||||||
|
} else if (gl_Normal.y > 0.5) {
|
||||||
|
// 0.0, 1.0, 0.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 1.0, 0.0, 0.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, 0.0, 1.0));
|
||||||
|
} else if (gl_Normal.y < -0.5) {
|
||||||
|
// 0.0, -1.0, 0.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 1.0, 0.0, 0.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, 0.0, 1.0));
|
||||||
|
} else if (gl_Normal.z > 0.5) {
|
||||||
|
// 0.0, 0.0, 1.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3( 1.0, 0.0, 0.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, -1.0, 0.0));
|
||||||
|
} else if (gl_Normal.z < -0.5) {
|
||||||
|
// 0.0, 0.0, -1.0
|
||||||
|
tangent = normalize(gl_NormalMatrix * vec3(-1.0, 0.0, 0.0));
|
||||||
|
binormal = normalize(gl_NormalMatrix * vec3( 0.0, -1.0, 0.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
mat3 tbnMatrix = mat3( tangent.x, binormal.x, normal.x,
|
||||||
|
tangent.y, binormal.y, normal.y,
|
||||||
|
tangent.z, binormal.z, normal.z);
|
||||||
|
|
||||||
|
tsEyeVec = normalize(eyeVec * tbnMatrix);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec4 color;
|
||||||
|
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
||||||
|
|
||||||
|
float day = gl_Color.r;
|
||||||
|
float night = gl_Color.g;
|
||||||
|
float light_source = gl_Color.b;
|
||||||
|
|
||||||
|
/*color.r = mix(night, day, dayNightRatio);
|
||||||
|
color.g = color.r;
|
||||||
|
color.b = color.r;*/
|
||||||
|
|
||||||
|
float rg = mix(night, day, dayNightRatio);
|
||||||
|
rg += light_source * 2.5; // Make light sources brighter
|
||||||
|
float b = rg;
|
||||||
|
|
||||||
|
// Moonlight is blue
|
||||||
|
b += (day - night) / 13.0;
|
||||||
|
rg -= (day - night) / 13.0;
|
||||||
|
|
||||||
|
// Emphase blue a bit in darker places
|
||||||
|
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||||
|
b += max(0.0, (1.0 - abs(b - 0.13)/0.17) * 0.025);
|
||||||
|
|
||||||
|
// Artificial light is yellow-ish
|
||||||
|
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||||
|
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
||||||
|
|
||||||
|
color.r = clamp(rg,0.0,1.0);
|
||||||
|
color.g = clamp(rg,0.0,1.0);
|
||||||
|
color.b = clamp(b,0.0,1.0);
|
||||||
|
|
||||||
|
// Make sides and bottom darker than the top
|
||||||
|
color = color * color; // SRGB -> Linear
|
||||||
|
if(gl_Normal.y <= 0.5)
|
||||||
|
color *= 0.6;
|
||||||
|
//color *= 0.7;
|
||||||
|
color = sqrt(color); // Linear -> SRGB
|
||||||
|
|
||||||
|
color.a = gl_Color.a;
|
||||||
|
|
||||||
|
gl_FrontColor = gl_BackColor = color;
|
||||||
|
|
||||||
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
|
|
||||||
|
}
|
|
@ -1,25 +0,0 @@
|
||||||
|
|
||||||
uniform sampler2D myTexture;
|
|
||||||
uniform vec4 skyBgColor;
|
|
||||||
uniform float fogDistance;
|
|
||||||
|
|
||||||
varying vec3 vPosition;
|
|
||||||
|
|
||||||
void main (void)
|
|
||||||
{
|
|
||||||
//vec4 col = vec4(1.0, 0.0, 0.0, 1.0);
|
|
||||||
vec4 col = texture2D(myTexture, vec2(gl_TexCoord[0]));
|
|
||||||
float a = col.a;
|
|
||||||
col *= gl_Color;
|
|
||||||
col = col * col; // SRGB -> Linear
|
|
||||||
col *= 1.8;
|
|
||||||
col.r = 1.0 - exp(1.0 - col.r) / exp(1.0);
|
|
||||||
col.g = 1.0 - exp(1.0 - col.g) / exp(1.0);
|
|
||||||
col.b = 1.0 - exp(1.0 - col.b) / exp(1.0);
|
|
||||||
col = sqrt(col); // Linear -> SRGB
|
|
||||||
if(fogDistance != 0.0){
|
|
||||||
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
|
||||||
col = mix(col, skyBgColor, d);
|
|
||||||
}
|
|
||||||
gl_FragColor = vec4(col.r, col.g, col.b, a);
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
|
|
||||||
uniform sampler2D myTexture;
|
|
||||||
uniform float fogDistance;
|
|
||||||
|
|
||||||
varying vec3 vPosition;
|
|
||||||
|
|
||||||
void main (void)
|
|
||||||
{
|
|
||||||
vec4 col = texture2D(myTexture, vec2(gl_TexCoord[0]));
|
|
||||||
col *= gl_Color;
|
|
||||||
float a = gl_Color.a;
|
|
||||||
col = col * col; // SRGB -> Linear
|
|
||||||
col *= 1.8;
|
|
||||||
col.r = 1.0 - exp(1.0 - col.r) / exp(1.0);
|
|
||||||
col.g = 1.0 - exp(1.0 - col.g) / exp(1.0);
|
|
||||||
col.b = 1.0 - exp(1.0 - col.b) / exp(1.0);
|
|
||||||
col = sqrt(col); // Linear -> SRGB
|
|
||||||
if(fogDistance != 0.0){
|
|
||||||
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
|
||||||
a = mix(a, 0.0, d);
|
|
||||||
}
|
|
||||||
gl_FragColor = vec4(col.r, col.g, col.b, a);
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
|
|
||||||
uniform mat4 mWorldViewProj;
|
|
||||||
uniform mat4 mInvWorld;
|
|
||||||
uniform mat4 mTransWorld;
|
|
||||||
uniform float dayNightRatio;
|
|
||||||
|
|
||||||
varying vec3 vPosition;
|
|
||||||
|
|
||||||
void main(void)
|
|
||||||
{
|
|
||||||
gl_Position = mWorldViewProj * gl_Vertex;
|
|
||||||
|
|
||||||
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
|
||||||
|
|
||||||
vec4 color;
|
|
||||||
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
|
||||||
|
|
||||||
float day = gl_Color.r;
|
|
||||||
float night = gl_Color.g;
|
|
||||||
float light_source = gl_Color.b;
|
|
||||||
|
|
||||||
/*color.r = mix(night, day, dayNightRatio);
|
|
||||||
color.g = color.r;
|
|
||||||
color.b = color.r;*/
|
|
||||||
|
|
||||||
float rg = mix(night, day, dayNightRatio);
|
|
||||||
rg += light_source * 1.0; // Make light sources brighter
|
|
||||||
float b = rg;
|
|
||||||
|
|
||||||
// Moonlight is blue
|
|
||||||
b += (day - night) / 13.0;
|
|
||||||
rg -= (day - night) / 13.0;
|
|
||||||
|
|
||||||
// Emphase blue a bit in darker places
|
|
||||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
|
||||||
b += max(0.0, (1.0 - abs(b - 0.13)/0.17) * 0.025);
|
|
||||||
|
|
||||||
// Artificial light is yellow-ish
|
|
||||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
|
||||||
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
|
||||||
|
|
||||||
color.r = rg;
|
|
||||||
color.g = rg;
|
|
||||||
color.b = b;
|
|
||||||
|
|
||||||
color.a = gl_Color.a;
|
|
||||||
|
|
||||||
gl_FrontColor = gl_BackColor = color;
|
|
||||||
|
|
||||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
trans_alphach
|
|
|
@ -1,25 +0,0 @@
|
||||||
|
|
||||||
uniform sampler2D myTexture;
|
|
||||||
uniform float fogDistance;
|
|
||||||
|
|
||||||
varying vec3 vPosition;
|
|
||||||
|
|
||||||
void main (void)
|
|
||||||
{
|
|
||||||
vec4 col = texture2D(myTexture, vec2(gl_TexCoord[0]));
|
|
||||||
col *= gl_Color;
|
|
||||||
float a = col.a;
|
|
||||||
col = col * col; // SRGB -> Linear
|
|
||||||
col *= 1.8;
|
|
||||||
col.r = 1.0 - exp(1.0 - col.r) / exp(1.0);
|
|
||||||
col.g = 1.0 - exp(1.0 - col.g) / exp(1.0);
|
|
||||||
col.b = 1.0 - exp(1.0 - col.b) / exp(1.0);
|
|
||||||
col = sqrt(col); // Linear -> SRGB
|
|
||||||
|
|
||||||
if(fogDistance != 0.0){
|
|
||||||
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
|
||||||
a = mix(a, 0.0, d);
|
|
||||||
}
|
|
||||||
|
|
||||||
gl_FragColor = vec4(col.r, col.g, col.b, a);
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
|
|
||||||
uniform mat4 mWorldViewProj;
|
|
||||||
uniform mat4 mInvWorld;
|
|
||||||
uniform mat4 mTransWorld;
|
|
||||||
uniform float dayNightRatio;
|
|
||||||
|
|
||||||
varying vec3 vPosition;
|
|
||||||
|
|
||||||
void main(void)
|
|
||||||
{
|
|
||||||
gl_Position = mWorldViewProj * gl_Vertex;
|
|
||||||
|
|
||||||
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
|
||||||
|
|
||||||
vec4 color;
|
|
||||||
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
|
||||||
|
|
||||||
float day = gl_Color.r;
|
|
||||||
float night = gl_Color.g;
|
|
||||||
float light_source = gl_Color.b;
|
|
||||||
|
|
||||||
/*color.r = mix(night, day, dayNightRatio);
|
|
||||||
color.g = color.r;
|
|
||||||
color.b = color.r;*/
|
|
||||||
|
|
||||||
float rg = mix(night, day, dayNightRatio);
|
|
||||||
rg += light_source * 1.0; // Make light sources brighter
|
|
||||||
float b = rg;
|
|
||||||
|
|
||||||
// Moonlight is blue
|
|
||||||
b += (day - night) / 13.0;
|
|
||||||
rg -= (day - night) / 13.0;
|
|
||||||
|
|
||||||
// Emphase blue a bit in darker places
|
|
||||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
|
||||||
b += max(0.0, (1.0 - abs(b - 0.13)/0.17) * 0.025);
|
|
||||||
|
|
||||||
// Artificial light is yellow-ish
|
|
||||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
|
||||||
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
|
||||||
|
|
||||||
color.r = rg;
|
|
||||||
color.g = rg;
|
|
||||||
color.b = b;
|
|
||||||
|
|
||||||
color.a = gl_Color.a;
|
|
||||||
|
|
||||||
gl_FrontColor = gl_BackColor = color;
|
|
||||||
|
|
||||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
|
||||||
}
|
|
|
@ -20,6 +20,10 @@ if( UNIX )
|
||||||
else( UNIX )
|
else( UNIX )
|
||||||
FIND_PATH(CURL_INCLUDE_DIR NAMES curl/curl.h) # Look for the header file.
|
FIND_PATH(CURL_INCLUDE_DIR NAMES curl/curl.h) # Look for the header file.
|
||||||
FIND_LIBRARY(CURL_LIBRARY NAMES curl) # Look for the library.
|
FIND_LIBRARY(CURL_LIBRARY NAMES curl) # Look for the library.
|
||||||
|
FIND_FILE(CURL_DLL NAMES libcurl.dll
|
||||||
|
PATHS
|
||||||
|
"c:/windows/system32"
|
||||||
|
DOC "Path of the cURL dll (for installation)")
|
||||||
INCLUDE(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set CURL_FOUND to TRUE if
|
INCLUDE(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set CURL_FOUND to TRUE if
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CURL DEFAULT_MSG CURL_LIBRARY CURL_INCLUDE_DIR) # all listed variables are TRUE
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CURL DEFAULT_MSG CURL_LIBRARY CURL_INCLUDE_DIR) # all listed variables are TRUE
|
||||||
endif( UNIX )
|
endif( UNIX )
|
||||||
|
@ -40,3 +44,4 @@ endif ( WIN32 )
|
||||||
|
|
||||||
MESSAGE(STATUS "CURL_INCLUDE_DIR = ${CURL_INCLUDE_DIR}")
|
MESSAGE(STATUS "CURL_INCLUDE_DIR = ${CURL_INCLUDE_DIR}")
|
||||||
MESSAGE(STATUS "CURL_LIBRARY = ${CURL_LIBRARY}")
|
MESSAGE(STATUS "CURL_LIBRARY = ${CURL_LIBRARY}")
|
||||||
|
MESSAGE(STATUS "CURL_DLL = ${CURL_DLL}")
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Always run during 'make'
|
||||||
|
|
||||||
|
if(VERSION_EXTRA)
|
||||||
|
set(VERSION_GITHASH "${VERSION_STRING}")
|
||||||
|
else(VERSION_EXTRA)
|
||||||
|
execute_process(COMMAND git describe --always --tag --dirty
|
||||||
|
WORKING_DIRECTORY "${GENERATE_VERSION_SOURCE_DIR}"
|
||||||
|
OUTPUT_VARIABLE VERSION_GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
ERROR_QUIET)
|
||||||
|
|
||||||
|
if(VERSION_GITHASH)
|
||||||
|
message(STATUS "*** Detected git version ${VERSION_GITHASH} ***")
|
||||||
|
else()
|
||||||
|
set(VERSION_GITHASH "${VERSION_STRING}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${GENERATE_VERSION_SOURCE_DIR}/cmake_config_githash.h.in
|
||||||
|
${GENERATE_VERSION_BINARY_DIR}/cmake_config_githash.h)
|
339
doc/gpl-2.0.txt
339
doc/gpl-2.0.txt
|
@ -1,339 +0,0 @@
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
License is intended to guarantee your freedom to share and change free
|
|
||||||
software--to make sure the software is free for all its users. This
|
|
||||||
General Public License applies to most of the Free Software
|
|
||||||
Foundation's software and to any other program whose authors commit to
|
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
|
||||||
the GNU Lesser General Public License instead.) You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
this service if you wish), that you receive source code or can get it
|
|
||||||
if you want it, that you can change the software or use pieces of it
|
|
||||||
in new free programs; and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
|
||||||
These restrictions translate to certain responsibilities for you if you
|
|
||||||
distribute copies of the software, or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
|
||||||
you have. You must make sure that they, too, receive or can get the
|
|
||||||
source code. And you must show them these terms so they know their
|
|
||||||
rights.
|
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
|
||||||
distribute and/or modify the software.
|
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
|
||||||
that everyone understands that there is no warranty for this free
|
|
||||||
software. If the software is modified by someone else and passed on, we
|
|
||||||
want its recipients to know that what they have is not the original, so
|
|
||||||
that any problems introduced by others will not reflect on the original
|
|
||||||
authors' reputations.
|
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
|
||||||
program will individually obtain patent licenses, in effect making the
|
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
|
||||||
under the terms of this General Public License. The "Program", below,
|
|
||||||
refers to any such program or work, and a "work based on the Program"
|
|
||||||
means either the Program or any derivative work under copyright law:
|
|
||||||
that is to say, a work containing the Program or a portion of it,
|
|
||||||
either verbatim or with modifications and/or translated into another
|
|
||||||
language. (Hereinafter, translation is included without limitation in
|
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running the Program is not restricted, and the output from the Program
|
|
||||||
is covered only if its contents constitute a work based on the
|
|
||||||
Program (independent of having been made by running the Program).
|
|
||||||
Whether that is true depends on what the Program does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
|
||||||
source code as you receive it, in any medium, provided that you
|
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
|
||||||
notices that refer to this License and to the absence of any warranty;
|
|
||||||
and give any other recipients of the Program a copy of this License
|
|
||||||
along with the Program.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
|
||||||
of it, thus forming a work based on the Program, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
|
||||||
whole or in part contains or is derived from the Program or any
|
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
|
||||||
parties under the terms of this License.
|
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
|
||||||
when run, you must cause it, when started running for such
|
|
||||||
interactive use in the most ordinary way, to print or display an
|
|
||||||
announcement including an appropriate copyright notice and a
|
|
||||||
notice that there is no warranty (or else, saying that you provide
|
|
||||||
a warranty) and that users may redistribute the program under
|
|
||||||
these conditions, and telling the user how to view a copy of this
|
|
||||||
License. (Exception: if the Program itself is interactive but
|
|
||||||
does not normally print such an announcement, your work based on
|
|
||||||
the Program is not required to print an announcement.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Program,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Program.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
|
||||||
under Section 2) in object code or executable form under the terms of
|
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
|
||||||
source code, which must be distributed under the terms of Sections
|
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
|
||||||
years, to give any third party, for a charge no more than your
|
|
||||||
cost of physically performing source distribution, a complete
|
|
||||||
machine-readable copy of the corresponding source code, to be
|
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
|
||||||
customarily used for software interchange; or,
|
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
|
||||||
to distribute corresponding source code. (This alternative is
|
|
||||||
allowed only for noncommercial distribution and only if you
|
|
||||||
received the program in object code or executable form with such
|
|
||||||
an offer, in accord with Subsection b above.)
|
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For an executable work, complete source
|
|
||||||
code means all the source code for all modules it contains, plus any
|
|
||||||
associated interface definition files, plus the scripts used to
|
|
||||||
control compilation and installation of the executable. However, as a
|
|
||||||
special exception, the source code distributed need not include
|
|
||||||
anything that is normally distributed (in either source or binary
|
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
|
||||||
operating system on which the executable runs, unless that component
|
|
||||||
itself accompanies the executable.
|
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
|
||||||
access to copy from a designated place, then offering equivalent
|
|
||||||
access to copy the source code from the same place counts as
|
|
||||||
distribution of the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
|
||||||
except as expressly provided under this License. Any attempt
|
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
|
||||||
void, and will automatically terminate your rights under this License.
|
|
||||||
However, parties who have received copies, or rights, from you under
|
|
||||||
this License will not have their licenses terminated so long as such
|
|
||||||
parties remain in full compliance.
|
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Program or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Program (or any work based on the
|
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Program or works based on it.
|
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
|
||||||
Program), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
|
||||||
these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties to
|
|
||||||
this License.
|
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Program at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Program by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Program.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
|
||||||
any particular circumstance, the balance of the section is intended to
|
|
||||||
apply and the section as a whole is intended to apply in other
|
|
||||||
circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system, which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Program under this License
|
|
||||||
may add an explicit geographical distribution limitation excluding
|
|
||||||
those countries, so that distribution is permitted only in or among
|
|
||||||
countries not thus excluded. In such case, this License incorporates
|
|
||||||
the limitation as if written in the body of this License.
|
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
|
||||||
specifies a version number of this License which applies to it and "any
|
|
||||||
later version", you have the option of following the terms and conditions
|
|
||||||
either of that version or of any later version published by the Free
|
|
||||||
Software Foundation. If the Program does not specify a version number of
|
|
||||||
this License, you may choose any version ever published by the Free Software
|
|
||||||
Foundation.
|
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
|
||||||
programs whose distribution conditions are different, write to the author
|
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
|
||||||
of preserving the free status of all derivatives of our free software and
|
|
||||||
of promoting the sharing and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|
||||||
REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
|
||||||
when it starts in an interactive mode:
|
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, the commands you use may
|
|
||||||
be called something other than `show w' and `show c'; they could even be
|
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
|
||||||
consider it more useful to permit linking proprietary applications with the
|
|
||||||
library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License.
|
|
|
@ -0,0 +1,502 @@
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 2.1, February 1999
|
||||||
|
|
||||||
|
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
[This is the first released version of the Lesser GPL. It also counts
|
||||||
|
as the successor of the GNU Library Public License, version 2, hence
|
||||||
|
the version number 2.1.]
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
Licenses are intended to guarantee your freedom to share and change
|
||||||
|
free software--to make sure the software is free for all its users.
|
||||||
|
|
||||||
|
This license, the Lesser General Public License, applies to some
|
||||||
|
specially designated software packages--typically libraries--of the
|
||||||
|
Free Software Foundation and other authors who decide to use it. You
|
||||||
|
can use it too, but we suggest you first think carefully about whether
|
||||||
|
this license or the ordinary General Public License is the better
|
||||||
|
strategy to use in any particular case, based on the explanations below.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom of use,
|
||||||
|
not price. Our General Public Licenses are designed to make sure that
|
||||||
|
you have the freedom to distribute copies of free software (and charge
|
||||||
|
for this service if you wish); that you receive source code or can get
|
||||||
|
it if you want it; that you can change the software and use pieces of
|
||||||
|
it in new free programs; and that you are informed that you can do
|
||||||
|
these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
distributors to deny you these rights or to ask you to surrender these
|
||||||
|
rights. These restrictions translate to certain responsibilities for
|
||||||
|
you if you distribute copies of the library or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of the library, whether gratis
|
||||||
|
or for a fee, you must give the recipients all the rights that we gave
|
||||||
|
you. You must make sure that they, too, receive or can get the source
|
||||||
|
code. If you link other code with the library, you must provide
|
||||||
|
complete object files to the recipients, so that they can relink them
|
||||||
|
with the library after making changes to the library and recompiling
|
||||||
|
it. And you must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
We protect your rights with a two-step method: (1) we copyright the
|
||||||
|
library, and (2) we offer you this license, which gives you legal
|
||||||
|
permission to copy, distribute and/or modify the library.
|
||||||
|
|
||||||
|
To protect each distributor, we want to make it very clear that
|
||||||
|
there is no warranty for the free library. Also, if the library is
|
||||||
|
modified by someone else and passed on, the recipients should know
|
||||||
|
that what they have is not the original version, so that the original
|
||||||
|
author's reputation will not be affected by problems that might be
|
||||||
|
introduced by others.
|
||||||
|
|
||||||
|
Finally, software patents pose a constant threat to the existence of
|
||||||
|
any free program. We wish to make sure that a company cannot
|
||||||
|
effectively restrict the users of a free program by obtaining a
|
||||||
|
restrictive license from a patent holder. Therefore, we insist that
|
||||||
|
any patent license obtained for a version of the library must be
|
||||||
|
consistent with the full freedom of use specified in this license.
|
||||||
|
|
||||||
|
Most GNU software, including some libraries, is covered by the
|
||||||
|
ordinary GNU General Public License. This license, the GNU Lesser
|
||||||
|
General Public License, applies to certain designated libraries, and
|
||||||
|
is quite different from the ordinary General Public License. We use
|
||||||
|
this license for certain libraries in order to permit linking those
|
||||||
|
libraries into non-free programs.
|
||||||
|
|
||||||
|
When a program is linked with a library, whether statically or using
|
||||||
|
a shared library, the combination of the two is legally speaking a
|
||||||
|
combined work, a derivative of the original library. The ordinary
|
||||||
|
General Public License therefore permits such linking only if the
|
||||||
|
entire combination fits its criteria of freedom. The Lesser General
|
||||||
|
Public License permits more lax criteria for linking other code with
|
||||||
|
the library.
|
||||||
|
|
||||||
|
We call this license the "Lesser" General Public License because it
|
||||||
|
does Less to protect the user's freedom than the ordinary General
|
||||||
|
Public License. It also provides other free software developers Less
|
||||||
|
of an advantage over competing non-free programs. These disadvantages
|
||||||
|
are the reason we use the ordinary General Public License for many
|
||||||
|
libraries. However, the Lesser license provides advantages in certain
|
||||||
|
special circumstances.
|
||||||
|
|
||||||
|
For example, on rare occasions, there may be a special need to
|
||||||
|
encourage the widest possible use of a certain library, so that it becomes
|
||||||
|
a de-facto standard. To achieve this, non-free programs must be
|
||||||
|
allowed to use the library. A more frequent case is that a free
|
||||||
|
library does the same job as widely used non-free libraries. In this
|
||||||
|
case, there is little to gain by limiting the free library to free
|
||||||
|
software only, so we use the Lesser General Public License.
|
||||||
|
|
||||||
|
In other cases, permission to use a particular library in non-free
|
||||||
|
programs enables a greater number of people to use a large body of
|
||||||
|
free software. For example, permission to use the GNU C Library in
|
||||||
|
non-free programs enables many more people to use the whole GNU
|
||||||
|
operating system, as well as its variant, the GNU/Linux operating
|
||||||
|
system.
|
||||||
|
|
||||||
|
Although the Lesser General Public License is Less protective of the
|
||||||
|
users' freedom, it does ensure that the user of a program that is
|
||||||
|
linked with the Library has the freedom and the wherewithal to run
|
||||||
|
that program using a modified version of the Library.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow. Pay close attention to the difference between a
|
||||||
|
"work based on the library" and a "work that uses the library". The
|
||||||
|
former contains code derived from the library, whereas the latter must
|
||||||
|
be combined with the library in order to run.
|
||||||
|
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License Agreement applies to any software library or other
|
||||||
|
program which contains a notice placed by the copyright holder or
|
||||||
|
other authorized party saying it may be distributed under the terms of
|
||||||
|
this Lesser General Public License (also called "this License").
|
||||||
|
Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
A "library" means a collection of software functions and/or data
|
||||||
|
prepared so as to be conveniently linked with application programs
|
||||||
|
(which use some of those functions and data) to form executables.
|
||||||
|
|
||||||
|
The "Library", below, refers to any such software library or work
|
||||||
|
which has been distributed under these terms. A "work based on the
|
||||||
|
Library" means either the Library or any derivative work under
|
||||||
|
copyright law: that is to say, a work containing the Library or a
|
||||||
|
portion of it, either verbatim or with modifications and/or translated
|
||||||
|
straightforwardly into another language. (Hereinafter, translation is
|
||||||
|
included without limitation in the term "modification".)
|
||||||
|
|
||||||
|
"Source code" for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For a library, complete source code means
|
||||||
|
all the source code for all modules it contains, plus any associated
|
||||||
|
interface definition files, plus the scripts used to control compilation
|
||||||
|
and installation of the library.
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running a program using the Library is not restricted, and output from
|
||||||
|
such a program is covered only if its contents constitute a work based
|
||||||
|
on the Library (independent of the use of the Library in a tool for
|
||||||
|
writing it). Whether that is true depends on what the Library does
|
||||||
|
and what the program that uses the Library does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Library's
|
||||||
|
complete source code as you receive it, in any medium, provided that
|
||||||
|
you conspicuously and appropriately publish on each copy an
|
||||||
|
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||||
|
all the notices that refer to this License and to the absence of any
|
||||||
|
warranty; and distribute a copy of this License along with the
|
||||||
|
Library.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy,
|
||||||
|
and you may at your option offer warranty protection in exchange for a
|
||||||
|
fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Library or any portion
|
||||||
|
of it, thus forming a work based on the Library, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The modified work must itself be a software library.
|
||||||
|
|
||||||
|
b) You must cause the files modified to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
c) You must cause the whole of the work to be licensed at no
|
||||||
|
charge to all third parties under the terms of this License.
|
||||||
|
|
||||||
|
d) If a facility in the modified Library refers to a function or a
|
||||||
|
table of data to be supplied by an application program that uses
|
||||||
|
the facility, other than as an argument passed when the facility
|
||||||
|
is invoked, then you must make a good faith effort to ensure that,
|
||||||
|
in the event an application does not supply such function or
|
||||||
|
table, the facility still operates, and performs whatever part of
|
||||||
|
its purpose remains meaningful.
|
||||||
|
|
||||||
|
(For example, a function in a library to compute square roots has
|
||||||
|
a purpose that is entirely well-defined independent of the
|
||||||
|
application. Therefore, Subsection 2d requires that any
|
||||||
|
application-supplied function or table used by this function must
|
||||||
|
be optional: if the application does not supply it, the square
|
||||||
|
root function must still compute square roots.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Library,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Library, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Library.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Library
|
||||||
|
with the Library (or with a work based on the Library) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||||
|
License instead of this License to a given copy of the Library. To do
|
||||||
|
this, you must alter all the notices that refer to this License, so
|
||||||
|
that they refer to the ordinary GNU General Public License, version 2,
|
||||||
|
instead of to this License. (If a newer version than version 2 of the
|
||||||
|
ordinary GNU General Public License has appeared, then you can specify
|
||||||
|
that version instead if you wish.) Do not make any other change in
|
||||||
|
these notices.
|
||||||
|
|
||||||
|
Once this change is made in a given copy, it is irreversible for
|
||||||
|
that copy, so the ordinary GNU General Public License applies to all
|
||||||
|
subsequent copies and derivative works made from that copy.
|
||||||
|
|
||||||
|
This option is useful when you wish to copy part of the code of
|
||||||
|
the Library into a program that is not a library.
|
||||||
|
|
||||||
|
4. You may copy and distribute the Library (or a portion or
|
||||||
|
derivative of it, under Section 2) in object code or executable form
|
||||||
|
under the terms of Sections 1 and 2 above provided that you accompany
|
||||||
|
it with the complete corresponding machine-readable source code, which
|
||||||
|
must be distributed under the terms of Sections 1 and 2 above on a
|
||||||
|
medium customarily used for software interchange.
|
||||||
|
|
||||||
|
If distribution of object code is made by offering access to copy
|
||||||
|
from a designated place, then offering equivalent access to copy the
|
||||||
|
source code from the same place satisfies the requirement to
|
||||||
|
distribute the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
5. A program that contains no derivative of any portion of the
|
||||||
|
Library, but is designed to work with the Library by being compiled or
|
||||||
|
linked with it, is called a "work that uses the Library". Such a
|
||||||
|
work, in isolation, is not a derivative work of the Library, and
|
||||||
|
therefore falls outside the scope of this License.
|
||||||
|
|
||||||
|
However, linking a "work that uses the Library" with the Library
|
||||||
|
creates an executable that is a derivative of the Library (because it
|
||||||
|
contains portions of the Library), rather than a "work that uses the
|
||||||
|
library". The executable is therefore covered by this License.
|
||||||
|
Section 6 states terms for distribution of such executables.
|
||||||
|
|
||||||
|
When a "work that uses the Library" uses material from a header file
|
||||||
|
that is part of the Library, the object code for the work may be a
|
||||||
|
derivative work of the Library even though the source code is not.
|
||||||
|
Whether this is true is especially significant if the work can be
|
||||||
|
linked without the Library, or if the work is itself a library. The
|
||||||
|
threshold for this to be true is not precisely defined by law.
|
||||||
|
|
||||||
|
If such an object file uses only numerical parameters, data
|
||||||
|
structure layouts and accessors, and small macros and small inline
|
||||||
|
functions (ten lines or less in length), then the use of the object
|
||||||
|
file is unrestricted, regardless of whether it is legally a derivative
|
||||||
|
work. (Executables containing this object code plus portions of the
|
||||||
|
Library will still fall under Section 6.)
|
||||||
|
|
||||||
|
Otherwise, if the work is a derivative of the Library, you may
|
||||||
|
distribute the object code for the work under the terms of Section 6.
|
||||||
|
Any executables containing that work also fall under Section 6,
|
||||||
|
whether or not they are linked directly with the Library itself.
|
||||||
|
|
||||||
|
6. As an exception to the Sections above, you may also combine or
|
||||||
|
link a "work that uses the Library" with the Library to produce a
|
||||||
|
work containing portions of the Library, and distribute that work
|
||||||
|
under terms of your choice, provided that the terms permit
|
||||||
|
modification of the work for the customer's own use and reverse
|
||||||
|
engineering for debugging such modifications.
|
||||||
|
|
||||||
|
You must give prominent notice with each copy of the work that the
|
||||||
|
Library is used in it and that the Library and its use are covered by
|
||||||
|
this License. You must supply a copy of this License. If the work
|
||||||
|
during execution displays copyright notices, you must include the
|
||||||
|
copyright notice for the Library among them, as well as a reference
|
||||||
|
directing the user to the copy of this License. Also, you must do one
|
||||||
|
of these things:
|
||||||
|
|
||||||
|
a) Accompany the work with the complete corresponding
|
||||||
|
machine-readable source code for the Library including whatever
|
||||||
|
changes were used in the work (which must be distributed under
|
||||||
|
Sections 1 and 2 above); and, if the work is an executable linked
|
||||||
|
with the Library, with the complete machine-readable "work that
|
||||||
|
uses the Library", as object code and/or source code, so that the
|
||||||
|
user can modify the Library and then relink to produce a modified
|
||||||
|
executable containing the modified Library. (It is understood
|
||||||
|
that the user who changes the contents of definitions files in the
|
||||||
|
Library will not necessarily be able to recompile the application
|
||||||
|
to use the modified definitions.)
|
||||||
|
|
||||||
|
b) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (1) uses at run time a
|
||||||
|
copy of the library already present on the user's computer system,
|
||||||
|
rather than copying library functions into the executable, and (2)
|
||||||
|
will operate properly with a modified version of the library, if
|
||||||
|
the user installs one, as long as the modified version is
|
||||||
|
interface-compatible with the version that the work was made with.
|
||||||
|
|
||||||
|
c) Accompany the work with a written offer, valid for at
|
||||||
|
least three years, to give the same user the materials
|
||||||
|
specified in Subsection 6a, above, for a charge no more
|
||||||
|
than the cost of performing this distribution.
|
||||||
|
|
||||||
|
d) If distribution of the work is made by offering access to copy
|
||||||
|
from a designated place, offer equivalent access to copy the above
|
||||||
|
specified materials from the same place.
|
||||||
|
|
||||||
|
e) Verify that the user has already received a copy of these
|
||||||
|
materials or that you have already sent this user a copy.
|
||||||
|
|
||||||
|
For an executable, the required form of the "work that uses the
|
||||||
|
Library" must include any data and utility programs needed for
|
||||||
|
reproducing the executable from it. However, as a special exception,
|
||||||
|
the materials to be distributed need not include anything that is
|
||||||
|
normally distributed (in either source or binary form) with the major
|
||||||
|
components (compiler, kernel, and so on) of the operating system on
|
||||||
|
which the executable runs, unless that component itself accompanies
|
||||||
|
the executable.
|
||||||
|
|
||||||
|
It may happen that this requirement contradicts the license
|
||||||
|
restrictions of other proprietary libraries that do not normally
|
||||||
|
accompany the operating system. Such a contradiction means you cannot
|
||||||
|
use both them and the Library together in an executable that you
|
||||||
|
distribute.
|
||||||
|
|
||||||
|
7. You may place library facilities that are a work based on the
|
||||||
|
Library side-by-side in a single library together with other library
|
||||||
|
facilities not covered by this License, and distribute such a combined
|
||||||
|
library, provided that the separate distribution of the work based on
|
||||||
|
the Library and of the other library facilities is otherwise
|
||||||
|
permitted, and provided that you do these two things:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work
|
||||||
|
based on the Library, uncombined with any other library
|
||||||
|
facilities. This must be distributed under the terms of the
|
||||||
|
Sections above.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library of the fact
|
||||||
|
that part of it is a work based on the Library, and explaining
|
||||||
|
where to find the accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
8. You may not copy, modify, sublicense, link with, or distribute
|
||||||
|
the Library except as expressly provided under this License. Any
|
||||||
|
attempt otherwise to copy, modify, sublicense, link with, or
|
||||||
|
distribute the Library is void, and will automatically terminate your
|
||||||
|
rights under this License. However, parties who have received copies,
|
||||||
|
or rights, from you under this License will not have their licenses
|
||||||
|
terminated so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
9. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Library or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Library (or any work based on the
|
||||||
|
Library), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Library or works based on it.
|
||||||
|
|
||||||
|
10. Each time you redistribute the Library (or any work based on the
|
||||||
|
Library), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute, link with or modify the Library
|
||||||
|
subject to these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties with
|
||||||
|
this License.
|
||||||
|
|
||||||
|
11. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Library at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Library by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Library.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply,
|
||||||
|
and the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
12. If the distribution and/or use of the Library is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Library under this License may add
|
||||||
|
an explicit geographical distribution limitation excluding those countries,
|
||||||
|
so that distribution is permitted only in or among countries not thus
|
||||||
|
excluded. In such case, this License incorporates the limitation as if
|
||||||
|
written in the body of this License.
|
||||||
|
|
||||||
|
13. The Free Software Foundation may publish revised and/or new
|
||||||
|
versions of the Lesser General Public License from time to time.
|
||||||
|
Such new versions will be similar in spirit to the present version,
|
||||||
|
but may differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Library
|
||||||
|
specifies a version number of this License which applies to it and
|
||||||
|
"any later version", you have the option of following the terms and
|
||||||
|
conditions either of that version or of any later version published by
|
||||||
|
the Free Software Foundation. If the Library does not specify a
|
||||||
|
license version number, you may choose any version ever published by
|
||||||
|
the Free Software Foundation.
|
||||||
|
|
||||||
|
14. If you wish to incorporate parts of the Library into other free
|
||||||
|
programs whose distribution conditions are incompatible with these,
|
||||||
|
write to the author to ask for permission. For software which is
|
||||||
|
copyrighted by the Free Software Foundation, write to the Free
|
||||||
|
Software Foundation; we sometimes make exceptions for this. Our
|
||||||
|
decision will be guided by the two goals of preserving the free status
|
||||||
|
of all derivatives of our free software and of promoting the sharing
|
||||||
|
and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||||
|
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||||
|
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||||
|
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||||
|
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||||
|
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||||
|
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||||
|
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||||
|
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||||
|
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||||
|
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||||
|
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||||
|
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Libraries
|
||||||
|
|
||||||
|
If you develop a new library, and you want it to be of the greatest
|
||||||
|
possible use to the public, we recommend making it free software that
|
||||||
|
everyone can redistribute and change. You can do so by permitting
|
||||||
|
redistribution under these terms (or, alternatively, under the terms of the
|
||||||
|
ordinary General Public License).
|
||||||
|
|
||||||
|
To apply these terms, attach the following notices to the library. It is
|
||||||
|
safest to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least the
|
||||||
|
"copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the library's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||||
|
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1990
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
That's all there is to it!
|
216
doc/lua_api.txt
216
doc/lua_api.txt
|
@ -1,4 +1,4 @@
|
||||||
Minetest Lua Modding API Reference 0.4.7
|
Minetest Lua Modding API Reference 0.4.8
|
||||||
========================================
|
========================================
|
||||||
More information at http://www.minetest.net/
|
More information at http://www.minetest.net/
|
||||||
Developer Wiki: http://dev.minetest.net/
|
Developer Wiki: http://dev.minetest.net/
|
||||||
|
@ -100,6 +100,8 @@ Mod directory structure
|
||||||
mods
|
mods
|
||||||
|-- modname
|
|-- modname
|
||||||
| |-- depends.txt
|
| |-- depends.txt
|
||||||
|
| |-- screenshot.png
|
||||||
|
| |-- description.txt
|
||||||
| |-- init.lua
|
| |-- init.lua
|
||||||
| |-- textures
|
| |-- textures
|
||||||
| | |-- modname_stuff.png
|
| | |-- modname_stuff.png
|
||||||
|
@ -121,12 +123,11 @@ depends.txt:
|
||||||
to a single modname. Their meaning is that if the specified mod
|
to a single modname. Their meaning is that if the specified mod
|
||||||
is missing, that does not prevent this mod from being loaded.
|
is missing, that does not prevent this mod from being loaded.
|
||||||
|
|
||||||
optdepends.txt:
|
screenshot.png:
|
||||||
An alternative way of specifying optional dependencies.
|
A screenshot shown in modmanager within mainmenu.
|
||||||
Like depends.txt, a single line contains a single modname.
|
|
||||||
|
|
||||||
NOTE: This file exists for compatibility purposes only and
|
description.txt:
|
||||||
support for it will be removed from the engine by the end of 2013.
|
File containing desctiption to be shown within mainmenu.
|
||||||
|
|
||||||
init.lua:
|
init.lua:
|
||||||
The main Lua script. Running this script should register everything it
|
The main Lua script. Running this script should register everything it
|
||||||
|
@ -873,6 +874,22 @@ list[<inventory location>;<list name>;<X>,<Y>;<W>,<H>;]
|
||||||
list[<inventory location>;<list name>;<X>,<Y>;<W>,<H>;<starting item index>]
|
list[<inventory location>;<list name>;<X>,<Y>;<W>,<H>;<starting item index>]
|
||||||
^ Show an inventory list
|
^ Show an inventory list
|
||||||
|
|
||||||
|
listcolors[<slot_bg_normal>;<slot_bg_hover>]
|
||||||
|
^ Sets background color of slots in HEX-Color format
|
||||||
|
^ Sets background color of slots on mouse hovering
|
||||||
|
|
||||||
|
listcolors[<slot_bg_normal>;<slot_bg_hover>;<slot_border>]
|
||||||
|
^ Sets background color of slots in HEX-Color format
|
||||||
|
^ Sets background color of slots on mouse hovering
|
||||||
|
^ Sets color of slots border
|
||||||
|
|
||||||
|
listcolors[<slot_bg_normal>;<slot_bg_hover>;<slot_border>;<tooltip_bgcolor>;<tooltip_fontcolor>]
|
||||||
|
^ Sets background color of slots in HEX-Color format
|
||||||
|
^ Sets background color of slots on mouse hovering
|
||||||
|
^ Sets color of slots border
|
||||||
|
^ Sets background color of tooltips
|
||||||
|
^ Sets font color of tooltips
|
||||||
|
|
||||||
image[<X>,<Y>;<W>,<H>;<texture name>]
|
image[<X>,<Y>;<W>,<H>;<texture name>]
|
||||||
^ Show an image
|
^ Show an image
|
||||||
^ Position and size units are inventory slots
|
^ Position and size units are inventory slots
|
||||||
|
@ -881,11 +898,21 @@ item_image[<X>,<Y>;<W>,<H>;<item name>]
|
||||||
^ Show an inventory image of registered item/node
|
^ Show an inventory image of registered item/node
|
||||||
^ Position and size units are inventory slots
|
^ Position and size units are inventory slots
|
||||||
|
|
||||||
|
bgcolor[<color>;<fullscreen>]
|
||||||
|
^ Sets background color of formspec in HEX-Color format
|
||||||
|
^ If true the background color is drawn fullscreen (does not effect the size of the formspec)
|
||||||
|
|
||||||
background[<X>,<Y>;<W>,<H>;<texture name>]
|
background[<X>,<Y>;<W>,<H>;<texture name>]
|
||||||
^ Use a background. Inventory rectangles are not drawn then.
|
^ Use a background. Inventory rectangles are not drawn then.
|
||||||
^ Position and size units are inventory slots
|
^ Position and size units are inventory slots
|
||||||
^ Example for formspec 8x4 in 16x resolution: image shall be sized 8*16px x 4*16px
|
^ Example for formspec 8x4 in 16x resolution: image shall be sized 8*16px x 4*16px
|
||||||
|
|
||||||
|
background[<X>,<Y>;<W>,<H>;<texture name>;<auto_clip>]
|
||||||
|
^ Use a background. Inventory rectangles are not drawn then.
|
||||||
|
^ Position and size units are inventory slots
|
||||||
|
^ Example for formspec 8x4 in 16x resolution: image shall be sized 8*16px x 4*16px
|
||||||
|
^ If true the background is clipped to formspec size (x and y are used as offset values, w and h are ignored)
|
||||||
|
|
||||||
pwdfield[<X>,<Y>;<W>,<H>;<name>;<label>]
|
pwdfield[<X>,<Y>;<W>,<H>;<name>;<label>]
|
||||||
^ Textual password style field; will be sent to server when a button is clicked
|
^ Textual password style field; will be sent to server when a button is clicked
|
||||||
^ x and y position the field relative to the top left of the menu
|
^ x and y position the field relative to the top left of the menu
|
||||||
|
@ -972,7 +999,7 @@ textlist[<X>,<Y>;<W>,<H>;<name>;<listelem 1>,<listelem 2>,...,<listelem n>]
|
||||||
^ x and y position the itemlist relative to the top left of the menu
|
^ x and y position the itemlist relative to the top left of the menu
|
||||||
^ w and h are the size of the itemlist
|
^ w and h are the size of the itemlist
|
||||||
^ name fieldname sent to server on doubleclick value is current selected element
|
^ name fieldname sent to server on doubleclick value is current selected element
|
||||||
^ listelements can be prepended by #color in hexadecimal format RRGGBB,
|
^ listelements can be prepended by #color in hexadecimal format RRGGBB (only),
|
||||||
^ if you want a listelement to start with # write ##
|
^ if you want a listelement to start with # write ##
|
||||||
|
|
||||||
textlist[<X>,<Y>;<W>,<H>;<name>;<listelem 1>,<listelem 2>,...,<listelem n>;<selected idx>;<transparent>]
|
textlist[<X>,<Y>;<W>,<H>;<name>;<listelem 1>,<listelem 2>,...,<listelem n>;<selected idx>;<transparent>]
|
||||||
|
@ -980,7 +1007,7 @@ textlist[<X>,<Y>;<W>,<H>;<name>;<listelem 1>,<listelem 2>,...,<listelem n>;<sele
|
||||||
^ x and y position the itemlist relative to the top left of the menu
|
^ x and y position the itemlist relative to the top left of the menu
|
||||||
^ w and h are the size of the itemlist
|
^ w and h are the size of the itemlist
|
||||||
^ name fieldname sent to server on doubleclick value is current selected element
|
^ name fieldname sent to server on doubleclick value is current selected element
|
||||||
^ listelements can be prepended by #RRGGBB in hexadecimal format
|
^ listelements can be prepended by #RRGGBB (only) in hexadecimal format
|
||||||
^ if you want a listelement to start with # write ##
|
^ if you want a listelement to start with # write ##
|
||||||
^ index to be selected within textlist
|
^ index to be selected within textlist
|
||||||
^ true/false draw transparent background
|
^ true/false draw transparent background
|
||||||
|
@ -998,7 +1025,7 @@ box[<X>,<Y>;<W>,<H>;<color>]
|
||||||
^ simple colored semitransparent box
|
^ simple colored semitransparent box
|
||||||
^ x and y position the box relative to the top left of the menu
|
^ x and y position the box relative to the top left of the menu
|
||||||
^ w and h are the size of box
|
^ w and h are the size of box
|
||||||
^ color in hexadecimal format RRGGBB
|
^ color in HEX-Color format
|
||||||
|
|
||||||
dropdown[<X>,<Y>;<W>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>]
|
dropdown[<X>,<Y>;<W>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>]
|
||||||
^ show a dropdown field
|
^ show a dropdown field
|
||||||
|
@ -1007,7 +1034,7 @@ dropdown[<X>,<Y>;<W>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>]
|
||||||
^ fieldname data is transfered to lua
|
^ fieldname data is transfered to lua
|
||||||
^ items to be shown in dropdown
|
^ items to be shown in dropdown
|
||||||
^ index of currently selected dropdown item
|
^ index of currently selected dropdown item
|
||||||
^ color in hexadecimal format RRGGBB
|
^ color in hexadecimal format RRGGBB (only)
|
||||||
|
|
||||||
checkbox[<X>,<Y>;<name>;<label>;<selected>]
|
checkbox[<X>,<Y>;<name>;<label>;<selected>]
|
||||||
^ show a checkbox
|
^ show a checkbox
|
||||||
|
@ -1027,6 +1054,17 @@ Inventory location:
|
||||||
- "nodemeta:<X>,<Y>,<Z>": Any node metadata
|
- "nodemeta:<X>,<Y>,<Z>": Any node metadata
|
||||||
- "detached:<name>": A detached inventory
|
- "detached:<name>": A detached inventory
|
||||||
|
|
||||||
|
HEX-Color
|
||||||
|
---------
|
||||||
|
#RGB
|
||||||
|
^ defines a color in hexadecimal format
|
||||||
|
#RGBA
|
||||||
|
^ defines a color in hexadecimal format and alpha channel
|
||||||
|
#RRGGBB
|
||||||
|
^ defines a color in hexadecimal format
|
||||||
|
#RRGGBBAA
|
||||||
|
^ defines a color in hexadecimal format and alpha channel
|
||||||
|
|
||||||
Vector helpers
|
Vector helpers
|
||||||
---------------
|
---------------
|
||||||
vector.new([x[, y, z]]) -> vector
|
vector.new([x[, y, z]]) -> vector
|
||||||
|
@ -1036,23 +1074,13 @@ vector.distance(p1, p2) -> number
|
||||||
vector.length(v) -> number
|
vector.length(v) -> number
|
||||||
vector.normalize(v) -> vector
|
vector.normalize(v) -> vector
|
||||||
vector.round(v) -> vector
|
vector.round(v) -> vector
|
||||||
vector.equal(v1, v2) -> bool
|
vector.equals(v1, v2) -> bool
|
||||||
|
For the folowing x can be either a vector or a number.
|
||||||
vector.add(v, x) -> vector
|
vector.add(v, x) -> vector
|
||||||
^ x can be annother vector or a number
|
|
||||||
vector.subtract(v, x) -> vector
|
vector.subtract(v, x) -> vector
|
||||||
vector.multiply(v, x) -> vector
|
vector.multiply(v, x) -> vector
|
||||||
vector.divide(v, x) -> vector
|
vector.divide(v, x) -> vector
|
||||||
|
|
||||||
You can also use Lua operators on vectors.
|
|
||||||
For example:
|
|
||||||
v1 = vector.new()
|
|
||||||
v1 = v1 + 5
|
|
||||||
v2 = vector.new(v1)
|
|
||||||
v1 = v1 * v2
|
|
||||||
if v1 == v2 then
|
|
||||||
error("Math broke")
|
|
||||||
end
|
|
||||||
|
|
||||||
Helper functions
|
Helper functions
|
||||||
-----------------
|
-----------------
|
||||||
dump2(obj, name="_", dumped={})
|
dump2(obj, name="_", dumped={})
|
||||||
|
@ -1070,6 +1098,7 @@ minetest.pos_to_string({x=X,y=Y,z=Z}) -> "(X,Y,Z)"
|
||||||
^ Convert position to a printable string
|
^ Convert position to a printable string
|
||||||
minetest.string_to_pos(string) -> position
|
minetest.string_to_pos(string) -> position
|
||||||
^ Same but in reverse
|
^ Same but in reverse
|
||||||
|
minetest.formspec_escape(string) -> string
|
||||||
^ escapes characters [ ] \ , ; that can not be used in formspecs
|
^ escapes characters [ ] \ , ; that can not be used in formspecs
|
||||||
minetest.is_yes(arg)
|
minetest.is_yes(arg)
|
||||||
^ returns whether arg can be interpreted as yes
|
^ returns whether arg can be interpreted as yes
|
||||||
|
@ -1139,6 +1168,9 @@ minetest.register_on_respawnplayer(func(ObjectRef))
|
||||||
^ Called when player is to be respawned
|
^ Called when player is to be respawned
|
||||||
^ Called _before_ repositioning of player occurs
|
^ Called _before_ repositioning of player occurs
|
||||||
^ return true in func to disable regular player placement
|
^ return true in func to disable regular player placement
|
||||||
|
minetest.register_on_prejoinplayer(func(name, ip))
|
||||||
|
^ Called before a player joins the game
|
||||||
|
^ If it returns a string, the player is disconnected with that string as reason
|
||||||
minetest.register_on_joinplayer(func(ObjectRef))
|
minetest.register_on_joinplayer(func(ObjectRef))
|
||||||
^ Called when a player joins the game
|
^ Called when a player joins the game
|
||||||
minetest.register_on_leaveplayer(func(ObjectRef))
|
minetest.register_on_leaveplayer(func(ObjectRef))
|
||||||
|
@ -1155,6 +1187,22 @@ minetest.register_on_player_receive_fields(func(player, formname, fields))
|
||||||
minetest.register_on_mapgen_init(func(MapgenParams))
|
minetest.register_on_mapgen_init(func(MapgenParams))
|
||||||
^ Called just before the map generator is initialized but before the environment is initialized
|
^ Called just before the map generator is initialized but before the environment is initialized
|
||||||
^ MapgenParams consists of a table with the fields mgname, seed, water_level, and flags
|
^ MapgenParams consists of a table with the fields mgname, seed, water_level, and flags
|
||||||
|
minetest.register_on_craft(func(itemstack, player, old_craft_grid, craft_inv))
|
||||||
|
^ Called when player crafts something
|
||||||
|
^ itemstack is the output
|
||||||
|
^ old_craft_grid contains the recipe (Note: the one in the inventory is cleared)
|
||||||
|
^ craft_inv is the inventory with the crafting grid
|
||||||
|
^ Return either an ItemStack, to replace the output, or nil, to not modify it
|
||||||
|
minetest.register_craft_predict(func(itemstack, player, old_craft_grid, craft_inv))
|
||||||
|
^ The same as before, except that it is called before the player crafts, to make
|
||||||
|
^ craft prediction, and it should not change anything.
|
||||||
|
minetest.register_on_protection_violation(func(pos, name))
|
||||||
|
^ Called by builtin and mods when a player violates protection at a position
|
||||||
|
(eg, digs a node or punches a protected entity).
|
||||||
|
^ The registered functions can be called using minetest.record_protection_violation
|
||||||
|
^ The provided function should check that the position is protected by the mod
|
||||||
|
calling this function before it prints a message, if it does, to allow for
|
||||||
|
multiple protection mods.
|
||||||
|
|
||||||
Other registration functions:
|
Other registration functions:
|
||||||
minetest.register_chatcommand(cmd, chatcommand definition)
|
minetest.register_chatcommand(cmd, chatcommand definition)
|
||||||
|
@ -1203,6 +1251,8 @@ Environment access:
|
||||||
minetest.set_node(pos, node)
|
minetest.set_node(pos, node)
|
||||||
minetest.add_node(pos, node): alias set_node(pos, node)
|
minetest.add_node(pos, node): alias set_node(pos, node)
|
||||||
^ Set node at position (node = {name="foo", param1=0, param2=0})
|
^ Set node at position (node = {name="foo", param1=0, param2=0})
|
||||||
|
minetest.swap_node(pos, node)
|
||||||
|
^ Set node at position, but don't remove metadata
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
^ Equivalent to set_node(pos, "air")
|
^ Equivalent to set_node(pos, "air")
|
||||||
minetest.get_node(pos)
|
minetest.get_node(pos)
|
||||||
|
@ -1239,6 +1289,10 @@ minetest.get_perlin(seeddiff, octaves, persistence, scale)
|
||||||
^ Return world-specific perlin noise (int(worldseed)+seeddiff)
|
^ Return world-specific perlin noise (int(worldseed)+seeddiff)
|
||||||
minetest.get_voxel_manip()
|
minetest.get_voxel_manip()
|
||||||
^ Return voxel manipulator object
|
^ Return voxel manipulator object
|
||||||
|
minetest.set_gen_notify(flags)
|
||||||
|
^ Set the types of on-generate notifications that should be collected
|
||||||
|
^ flags is a comma-delimited combination of:
|
||||||
|
^ dungeon, temple, cave_begin, cave_end, large_cave_begin, large_cave_end
|
||||||
minetest.get_mapgen_object(objectname)
|
minetest.get_mapgen_object(objectname)
|
||||||
^ Return requested mapgen object if available (see Mapgen objects)
|
^ Return requested mapgen object if available (see Mapgen objects)
|
||||||
minetest.set_mapgen_params(MapgenParams)
|
minetest.set_mapgen_params(MapgenParams)
|
||||||
|
@ -1251,8 +1305,9 @@ minetest.set_mapgen_params(MapgenParams)
|
||||||
^ flags and flagmask are in the same format and have the same options as 'mgflags' in minetest.conf
|
^ flags and flagmask are in the same format and have the same options as 'mgflags' in minetest.conf
|
||||||
minetest.clear_objects()
|
minetest.clear_objects()
|
||||||
^ clear all objects in the environments
|
^ clear all objects in the environments
|
||||||
minetest.line_of_sight(pos1,pos2,stepsize) ->true/false
|
minetest.line_of_sight(pos1, pos2, stepsize) -> true/false, pos
|
||||||
^ checkif there is a direct line of sight between pos1 and pos2
|
^ Check if there is a direct line of sight between pos1 and pos2
|
||||||
|
^ Returns the position of the blocking node when false
|
||||||
^ pos1 First position
|
^ pos1 First position
|
||||||
^ pos2 Second position
|
^ pos2 Second position
|
||||||
^ stepsize smaller gives more accurate results but requires more computing
|
^ stepsize smaller gives more accurate results but requires more computing
|
||||||
|
@ -1351,8 +1406,8 @@ minetest.handle_node_drops(pos, drops, digger)
|
||||||
^ Can be overridden to get different functionality (eg. dropping items on
|
^ Can be overridden to get different functionality (eg. dropping items on
|
||||||
ground)
|
ground)
|
||||||
|
|
||||||
Rollbacks:
|
Rollback:
|
||||||
minetest.rollback_get_last_node_actor(p, range, seconds) -> actor, p, seconds
|
minetest.rollback_get_node_actions(pos, range, seconds, limit) -> {{actor, pos, time, oldnode, newnode}, ...}
|
||||||
^ Find who has done something to a node, or near a node
|
^ Find who has done something to a node, or near a node
|
||||||
^ actor: "player:<name>", also "liquid".
|
^ actor: "player:<name>", also "liquid".
|
||||||
minetest.rollback_revert_actions_by(actor, seconds) -> bool, log messages
|
minetest.rollback_revert_actions_by(actor, seconds) -> bool, log messages
|
||||||
|
@ -1361,14 +1416,18 @@ minetest.rollback_revert_actions_by(actor, seconds) -> bool, log messages
|
||||||
|
|
||||||
Defaults for the on_* item definition functions:
|
Defaults for the on_* item definition functions:
|
||||||
(These return the leftover itemstack)
|
(These return the leftover itemstack)
|
||||||
minetest.item_place_node(itemstack, placer, pointed_thing)
|
minetest.item_place_node(itemstack, placer, pointed_thing, param2)
|
||||||
^ Place item as a node
|
^ Place item as a node
|
||||||
|
^ param2 overrides facedir and wallmounted param2
|
||||||
|
^ returns itemstack, success
|
||||||
minetest.item_place_object(itemstack, placer, pointed_thing)
|
minetest.item_place_object(itemstack, placer, pointed_thing)
|
||||||
^ Place item as-is
|
^ Place item as-is
|
||||||
minetest.item_place(itemstack, placer, pointed_thing)
|
minetest.item_place(itemstack, placer, pointed_thing, param2)
|
||||||
^ Use one of the above based on what the item is.
|
^ Use one of the above based on what the item is.
|
||||||
^ Calls on_rightclick of pointed_thing.under if defined instead
|
^ Calls on_rightclick of pointed_thing.under if defined instead
|
||||||
^ Note: is not called when wielded item overrides on_place
|
^ Note: is not called when wielded item overrides on_place
|
||||||
|
^ param2 overrides facedir and wallmounted param2
|
||||||
|
^ returns itemstack, success
|
||||||
minetest.item_drop(itemstack, dropper, pos)
|
minetest.item_drop(itemstack, dropper, pos)
|
||||||
^ Drop the item
|
^ Drop the item
|
||||||
minetest.item_eat(hp_change, replace_with_item)
|
minetest.item_eat(hp_change, replace_with_item)
|
||||||
|
@ -1434,7 +1493,7 @@ minetest.delete_particlespawner(id, player)
|
||||||
^ otherwise on all clients
|
^ otherwise on all clients
|
||||||
|
|
||||||
Schematics:
|
Schematics:
|
||||||
minetest.create_schematic(p1, p2, probability_list, filename)
|
minetest.create_schematic(p1, p2, probability_list, filename, slice_prob_list)
|
||||||
^ Create a schematic from the volume of map specified by the box formed by p1 and p2.
|
^ Create a schematic from the volume of map specified by the box formed by p1 and p2.
|
||||||
^ Apply the specified probability values to the specified nodes in probability_list.
|
^ Apply the specified probability values to the specified nodes in probability_list.
|
||||||
^ probability_list is an array of tables containing two fields, pos and prob.
|
^ probability_list is an array of tables containing two fields, pos and prob.
|
||||||
|
@ -1443,6 +1502,9 @@ minetest.create_schematic(p1, p2, probability_list, filename)
|
||||||
^ If there are two or more entries with the same pos value, the last occuring in the array is used.
|
^ If there are two or more entries with the same pos value, the last occuring in the array is used.
|
||||||
^ If pos is not inside the box formed by p1 and p2, it is ignored.
|
^ If pos is not inside the box formed by p1 and p2, it is ignored.
|
||||||
^ If probability_list is nil, no probabilities are applied.
|
^ If probability_list is nil, no probabilities are applied.
|
||||||
|
^ Slice probability works in the same manner, except takes a field called ypos instead which indicates
|
||||||
|
^ the y position of the slice with a probability applied.
|
||||||
|
^ If slice probability list is nil, no slice probabilities are applied.
|
||||||
^ Saves schematic in the Minetest Schematic format to filename.
|
^ Saves schematic in the Minetest Schematic format to filename.
|
||||||
|
|
||||||
minetest.place_schematic(pos, schematic, rotation, replacements)
|
minetest.place_schematic(pos, schematic, rotation, replacements)
|
||||||
|
@ -1468,7 +1530,16 @@ minetest.parse_json(string[, nullvalue]) -> something
|
||||||
^ nullvalue: returned in place of the JSON null; defaults to nil
|
^ nullvalue: returned in place of the JSON null; defaults to nil
|
||||||
^ On success returns a table, a string, a number, a boolean or nullvalue
|
^ On success returns a table, a string, a number, a boolean or nullvalue
|
||||||
^ On failure outputs an error message and returns nil
|
^ On failure outputs an error message and returns nil
|
||||||
^ Example: parse_json("[10, {\"a\":false}]") -> {[1] = 10, [2] = {a = false}}
|
^ Example: parse_json("[10, {\"a\":false}]") -> {10, {a = false}}
|
||||||
|
minetest.write_json(data[, styled]) -> string
|
||||||
|
^ Convert a Lua table into a JSON string
|
||||||
|
^ styled: Outputs in a human-readable format if this is set, defaults to false
|
||||||
|
^ Un-serializable things like functions and userdata are saved as null.
|
||||||
|
^ Warning: JSON is more strict than the Lua table format.
|
||||||
|
1. You can only use strings and positive integers of at least one as keys.
|
||||||
|
2. You can not mix string and integer keys.
|
||||||
|
This is due to the fact that Javascript has two distinct array and object values.
|
||||||
|
^ Example: write_json({10, {a = false}}) -> "[10, {\"a\": false}]"
|
||||||
minetest.serialize(table) -> string
|
minetest.serialize(table) -> string
|
||||||
^ Convert a table containing tables, strings, numbers, booleans and nils
|
^ Convert a table containing tables, strings, numbers, booleans and nils
|
||||||
into string form readable by minetest.deserialize
|
into string form readable by minetest.deserialize
|
||||||
|
@ -1480,6 +1551,44 @@ minetest.deserialize(string) -> table
|
||||||
^ Example: deserialize('return { ["foo"] = "bar" }') -> {foo='bar'}
|
^ Example: deserialize('return { ["foo"] = "bar" }') -> {foo='bar'}
|
||||||
^ Example: deserialize('print("foo")') -> nil (function call fails)
|
^ Example: deserialize('print("foo")') -> nil (function call fails)
|
||||||
^ error:[string "print("foo")"]:1: attempt to call global 'print' (a nil value)
|
^ error:[string "print("foo")"]:1: attempt to call global 'print' (a nil value)
|
||||||
|
minetest.is_protected(pos, name) -> bool
|
||||||
|
^ This function should be overriden by protection mods and should be used to
|
||||||
|
check if a player can interact at a position.
|
||||||
|
^ This function should call the old version of itself if the position is not
|
||||||
|
protected by the mod.
|
||||||
|
^ Example:
|
||||||
|
local old_is_protected = minetest.is_protected
|
||||||
|
function minetest.is_protected(pos, name)
|
||||||
|
if mymod:position_protected_from(pos, name) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return old_is_protected(pos, name)
|
||||||
|
end
|
||||||
|
minetest.record_protection_violation(pos, name)
|
||||||
|
^ This function calls functions registered with
|
||||||
|
minetest.register_on_protection_violation.
|
||||||
|
minetest.rotate_and_place(itemstack, placer, pointed_thing, infinitestacks, orient_flags)
|
||||||
|
^ Attempt to predict the desired orientation of the facedir-capable node
|
||||||
|
defined by itemstack, and place it accordingly (on-wall, on the floor, or
|
||||||
|
hanging from the ceiling). Stacks are handled normally if the infinitestacks
|
||||||
|
field is false or omitted (else, the itemstack is not changed). orient_flags
|
||||||
|
is an optional table containing extra tweaks to the placement code:
|
||||||
|
invert_wall: if true, place wall-orientation on the ground and ground-
|
||||||
|
orientation on the wall.
|
||||||
|
force_wall: if true, always place the node in wall orientation.
|
||||||
|
force_ceiling: if true, always place on the ceiling.
|
||||||
|
force_floor: if true, always place the node on the floor.
|
||||||
|
|
||||||
|
The above four options are mutually-exclusive; the last in the list takes
|
||||||
|
precedence over the first.
|
||||||
|
|
||||||
|
force_facedir: if true, forcably reset the facedir to north when placing on
|
||||||
|
the floor or ceiling
|
||||||
|
|
||||||
|
minetest.rotate_node(itemstack, placer, pointed_thing)
|
||||||
|
^ calls rotate_and_place() with infinitestacks set according to the state of
|
||||||
|
the creative mode setting, and checks for "sneak" to set the invert_wall
|
||||||
|
parameter.
|
||||||
|
|
||||||
Global objects:
|
Global objects:
|
||||||
minetest.env - EnvRef of the server environment and world.
|
minetest.env - EnvRef of the server environment and world.
|
||||||
|
@ -1608,10 +1717,13 @@ Player-only: (no-op for other objects)
|
||||||
{jump=bool,right=bool,left=bool,LMB=bool,RMB=bool,sneak=bool,aux1=bool,down=bool,up=bool}
|
{jump=bool,right=bool,left=bool,LMB=bool,RMB=bool,sneak=bool,aux1=bool,down=bool,up=bool}
|
||||||
- get_player_control_bits(): returns integer with bit packed player pressed keys
|
- get_player_control_bits(): returns integer with bit packed player pressed keys
|
||||||
bit nr/meaning: 0/up ,1/down ,2/left ,3/right ,4/jump ,5/aux1 ,6/sneak ,7/LMB ,8/RMB
|
bit nr/meaning: 0/up ,1/down ,2/left ,3/right ,4/jump ,5/aux1 ,6/sneak ,7/LMB ,8/RMB
|
||||||
- set_physics_override(speed, jump, gravity)
|
- set_physics_override({
|
||||||
modifies per-player walking speed, jump height, and gravity.
|
speed = 1.0, -- multiplier to default value
|
||||||
Values default to 1 and act as offsets to the physics settings
|
jump = 1.0, -- multiplier to default value
|
||||||
in minetest.conf. nil will keep the current setting.
|
gravity = 1.0, -- multiplier to default value
|
||||||
|
sneak = true, -- whether player can sneak
|
||||||
|
sneak_glitch = true, -- whether player can use the sneak glitch
|
||||||
|
})
|
||||||
- hud_add(hud definition): add a HUD element described by HUD def, returns ID number on success
|
- hud_add(hud definition): add a HUD element described by HUD def, returns ID number on success
|
||||||
- hud_remove(id): remove the HUD element of the specified id
|
- hud_remove(id): remove the HUD element of the specified id
|
||||||
- hud_change(id, stat, value): change a value of a previously added HUD element
|
- hud_change(id, stat, value): change a value of a previously added HUD element
|
||||||
|
@ -1633,6 +1745,7 @@ methods:
|
||||||
- is_empty(listname): return true if list is empty
|
- is_empty(listname): return true if list is empty
|
||||||
- get_size(listname): get size of a list
|
- get_size(listname): get size of a list
|
||||||
- set_size(listname, size): set size of a list
|
- set_size(listname, size): set size of a list
|
||||||
|
^ returns false on error (e.g. invalid listname or listsize)
|
||||||
- get_width(listname): get width of a list
|
- get_width(listname): get width of a list
|
||||||
- set_width(listname, width): set width of list; currently used for crafting
|
- set_width(listname, width): set width of list; currently used for crafting
|
||||||
- get_stack(listname, i): get a copy of stack index i in list
|
- get_stack(listname, i): get a copy of stack index i in list
|
||||||
|
@ -1654,9 +1767,13 @@ ItemStack: A stack of items.
|
||||||
methods:
|
methods:
|
||||||
- is_empty(): return true if stack is empty
|
- is_empty(): return true if stack is empty
|
||||||
- get_name(): returns item name (e.g. "default:stone")
|
- get_name(): returns item name (e.g. "default:stone")
|
||||||
|
- set_name(itemname)
|
||||||
- get_count(): returns number of items on the stack
|
- get_count(): returns number of items on the stack
|
||||||
|
- set_count(count)
|
||||||
- get_wear(): returns tool wear (0-65535), 0 for non-tools
|
- get_wear(): returns tool wear (0-65535), 0 for non-tools
|
||||||
|
- set_wear(wear)
|
||||||
- get_metadata(): returns metadata (a string attached to an item stack)
|
- get_metadata(): returns metadata (a string attached to an item stack)
|
||||||
|
- set_metadata(metadata)
|
||||||
- clear(): removes all items from the stack, making it empty
|
- clear(): removes all items from the stack, making it empty
|
||||||
- replace(item): replace the contents of this stack (item can also
|
- replace(item): replace the contents of this stack (item can also
|
||||||
be an itemstring or table)
|
be an itemstring or table)
|
||||||
|
@ -1717,11 +1834,19 @@ methods:
|
||||||
- update_map(): Update map after writing chunk back to map.
|
- update_map(): Update map after writing chunk back to map.
|
||||||
^ To be used only by VoxelManip objects created by the mod itself; not a VoxelManip that was
|
^ To be used only by VoxelManip objects created by the mod itself; not a VoxelManip that was
|
||||||
^ retrieved from minetest.get_mapgen_object
|
^ retrieved from minetest.get_mapgen_object
|
||||||
- set_lighting(light): Set the lighting within the VoxelManip
|
- set_lighting(light, p1, p2): Set the lighting within the VoxelManip to a uniform value
|
||||||
^ light is a table, {day=<0...15>, night=<0...15>}
|
^ light is a table, {day=<0...15>, night=<0...15>}
|
||||||
^ To be used only by a VoxelManip object from minetest.get_mapgen_object
|
^ To be used only by a VoxelManip object from minetest.get_mapgen_object
|
||||||
- calc_lighting(): Calculate lighting within the VoxelManip
|
^ (p1, p2) is the area in which lighting is set; defaults to the whole area if left out
|
||||||
|
- get_light_data(): Gets the light data read into the VoxelManip object
|
||||||
|
^ Returns an array (indicies 1 to volume) of integers ranging from 0 to 255
|
||||||
|
^ Each value is the bitwise combination of day and night light values (0..15 each)
|
||||||
|
^ light = day + (night * 16)
|
||||||
|
- set_light_data(light_data): Sets the param1 (light) contents of each node in the VoxelManip
|
||||||
|
^ expects lighting data in the same format that get_light_data() returns
|
||||||
|
- calc_lighting(p1, p2): Calculate lighting within the VoxelManip
|
||||||
^ To be used only by a VoxelManip object from minetest.get_mapgen_object
|
^ To be used only by a VoxelManip object from minetest.get_mapgen_object
|
||||||
|
^ (p1, p2) is the area in which lighting is set; defaults to the whole area if left out
|
||||||
- update_liquids(): Update liquid flow
|
- update_liquids(): Update liquid flow
|
||||||
|
|
||||||
VoxelArea: A helper class for voxel areas
|
VoxelArea: A helper class for voxel areas
|
||||||
|
@ -1782,6 +1907,12 @@ the current mapgen.
|
||||||
Returns an array containing the humidity values of nodes in the most recently generated chunk by the
|
Returns an array containing the humidity values of nodes in the most recently generated chunk by the
|
||||||
current mapgen.
|
current mapgen.
|
||||||
|
|
||||||
|
- gennotify
|
||||||
|
Returns a table mapping requested generation notification types to arrays of positions at which the
|
||||||
|
corresponding generated structures are located at within the current chunk. To set the capture of positions
|
||||||
|
of interest to be recorded on generate, use minetest.set_gen_notify().
|
||||||
|
Possible fields of the table returned are: dungeon, temple, cave_begin, cave_end, large_cave_begin, large_cave_end
|
||||||
|
|
||||||
Registered entities
|
Registered entities
|
||||||
--------------------
|
--------------------
|
||||||
- Functions receive a "luaentity" as self:
|
- Functions receive a "luaentity" as self:
|
||||||
|
@ -1972,6 +2103,15 @@ Item definition (register_node, register_craftitem, register_tool)
|
||||||
eg. itemstack:take_item(); return itemstack
|
eg. itemstack:take_item(); return itemstack
|
||||||
^ Otherwise, the function is free to do what it wants.
|
^ Otherwise, the function is free to do what it wants.
|
||||||
^ The default functions handle regular use cases.
|
^ The default functions handle regular use cases.
|
||||||
|
after_use = func(itemstack, user, node, digparams),
|
||||||
|
^ default: nil
|
||||||
|
^ If defined, should return an itemstack and will be called instead of
|
||||||
|
wearing out the tool. If returns nil, does nothing.
|
||||||
|
If after_use doesn't exist, it is the same as:
|
||||||
|
function(itemstack, user, node, digparams)
|
||||||
|
itemstack:add_wear(digparams.wear)
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
Tile definition:
|
Tile definition:
|
||||||
|
@ -1991,6 +2131,10 @@ Node definition (register_node)
|
||||||
|
|
||||||
drawtype = "normal", -- See "Node drawtypes"
|
drawtype = "normal", -- See "Node drawtypes"
|
||||||
visual_scale = 1.0,
|
visual_scale = 1.0,
|
||||||
|
^ Supported for drawtypes "plantlike", "signlike", "torchlike".
|
||||||
|
^ For plantlike, the image will start at the bottom of the node; for the
|
||||||
|
^ other drawtypes, the image will be centered on the node.
|
||||||
|
^ Note that positioning for "torchlike" may still change.
|
||||||
tiles = {tile definition 1, def2, def3, def4, def5, def6},
|
tiles = {tile definition 1, def2, def3, def4, def5, def6},
|
||||||
^ Textures of node; +Y, -Y, +X, -X, +Z, -Z (old field name: tile_images)
|
^ Textures of node; +Y, -Y, +X, -X, +Z, -Z (old field name: tile_images)
|
||||||
^ List can be shortened to needed length
|
^ List can be shortened to needed length
|
||||||
|
|
|
@ -33,9 +33,9 @@ engine.close()
|
||||||
Filesystem:
|
Filesystem:
|
||||||
engine.get_scriptdir()
|
engine.get_scriptdir()
|
||||||
^ returns directory of script
|
^ returns directory of script
|
||||||
engine.get_modpath()
|
engine.get_modpath() (possible in async calls)
|
||||||
^ returns path to global modpath
|
^ returns path to global modpath
|
||||||
engine.get_modstore_details(modid)
|
engine.get_modstore_details(modid) (possible in async calls)
|
||||||
^ modid numeric id of mod in modstore
|
^ modid numeric id of mod in modstore
|
||||||
^ returns {
|
^ returns {
|
||||||
id = <numeric id of mod in modstore>,
|
id = <numeric id of mod in modstore>,
|
||||||
|
@ -47,7 +47,7 @@ engine.get_modstore_details(modid)
|
||||||
license = <short description of license>,
|
license = <short description of license>,
|
||||||
rating = <float value of current rating>
|
rating = <float value of current rating>
|
||||||
}
|
}
|
||||||
engine.get_modstore_list()
|
engine.get_modstore_list() (possible in async calls)
|
||||||
^ returns {
|
^ returns {
|
||||||
[1] = {
|
[1] = {
|
||||||
id = <numeric id of mod in modstore>,
|
id = <numeric id of mod in modstore>,
|
||||||
|
@ -55,19 +55,21 @@ engine.get_modstore_list()
|
||||||
basename = <basename for mod>
|
basename = <basename for mod>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
engine.get_gamepath()
|
engine.get_gamepath() (possible in async calls)
|
||||||
^ returns path to global gamepath
|
^ returns path to global gamepath
|
||||||
engine.get_dirlist(path,onlydirs)
|
engine.get_texturepath() (possible in async calls)
|
||||||
|
^ returns path to default textures
|
||||||
|
engine.get_dirlist(path,onlydirs) (possible in async calls)
|
||||||
^ path to get subdirs from
|
^ path to get subdirs from
|
||||||
^ onlydirs should result contain only dirs?
|
^ onlydirs should result contain only dirs?
|
||||||
^ returns list of folders within path
|
^ returns list of folders within path
|
||||||
engine.create_dir(absolute_path)
|
engine.create_dir(absolute_path) (possible in async calls)
|
||||||
^ absolute_path to directory to create (needs to be absolute)
|
^ absolute_path to directory to create (needs to be absolute)
|
||||||
^ returns true/false
|
^ returns true/false
|
||||||
engine.delete_dir(absolute_path)
|
engine.delete_dir(absolute_path) (possible in async calls)
|
||||||
^ absolute_path to directory to delete (needs to be absolute)
|
^ absolute_path to directory to delete (needs to be absolute)
|
||||||
^ returns true/false
|
^ returns true/false
|
||||||
engine.copy_dir(source,destination,keep_soure)
|
engine.copy_dir(source,destination,keep_soure) (possible in async calls)
|
||||||
^ source folder
|
^ source folder
|
||||||
^ destination folder
|
^ destination folder
|
||||||
^ keep_source DEFAULT true --> if set to false source is deleted after copying
|
^ keep_source DEFAULT true --> if set to false source is deleted after copying
|
||||||
|
@ -76,11 +78,11 @@ engine.extract_zip(zipfile,destination) [unzip within path required]
|
||||||
^ zipfile to extract
|
^ zipfile to extract
|
||||||
^ destination folder to extract to
|
^ destination folder to extract to
|
||||||
^ returns true/false
|
^ returns true/false
|
||||||
engine.download_file(url,target)
|
engine.download_file(url,target) (possible in async calls)
|
||||||
^ url to download
|
^ url to download
|
||||||
^ target to store to
|
^ target to store to
|
||||||
^ returns true/false
|
^ returns true/false
|
||||||
engine.get_version()
|
engine.get_version() (possible in async calls)
|
||||||
^ returns current minetest version
|
^ returns current minetest version
|
||||||
engine.sound_play(spec, looped) -> handle
|
engine.sound_play(spec, looped) -> handle
|
||||||
^ spec = SimpleSoundSpec (see lua-api.txt)
|
^ spec = SimpleSoundSpec (see lua-api.txt)
|
||||||
|
@ -105,10 +107,10 @@ engine.get_game(index)
|
||||||
DEPRECATED:
|
DEPRECATED:
|
||||||
addon_mods_paths = {[1] = <path>,},
|
addon_mods_paths = {[1] = <path>,},
|
||||||
}
|
}
|
||||||
engine.get_games() -> table of all games in upper format
|
engine.get_games() -> table of all games in upper format (possible in async calls)
|
||||||
|
|
||||||
Favorites:
|
Favorites:
|
||||||
engine.get_favorites(location) -> list of favorites
|
engine.get_favorites(location) -> list of favorites (possible in async calls)
|
||||||
^ location: "local" or "online"
|
^ location: "local" or "online"
|
||||||
^ returns {
|
^ returns {
|
||||||
[1] = {
|
[1] = {
|
||||||
|
@ -128,21 +130,21 @@ engine.get_favorites(location) -> list of favorites
|
||||||
engine.delete_favorite(id, location) -> success
|
engine.delete_favorite(id, location) -> success
|
||||||
|
|
||||||
Logging:
|
Logging:
|
||||||
engine.debug(line)
|
engine.debug(line) (possible in async calls)
|
||||||
^ Always printed to stderr and logfile (print() is redirected here)
|
^ Always printed to stderr and logfile (print() is redirected here)
|
||||||
engine.log(line)
|
engine.log(line) (possible in async calls)
|
||||||
engine.log(loglevel, line)
|
engine.log(loglevel, line) (possible in async calls)
|
||||||
^ loglevel one of "error", "action", "info", "verbose"
|
^ loglevel one of "error", "action", "info", "verbose"
|
||||||
|
|
||||||
Settings:
|
Settings:
|
||||||
engine.setting_set(name, value)
|
engine.setting_set(name, value)
|
||||||
engine.setting_get(name) -> string or nil
|
engine.setting_get(name) -> string or nil (possible in async calls)
|
||||||
engine.setting_setbool(name, value)
|
engine.setting_setbool(name, value)
|
||||||
engine.setting_getbool(name) -> bool or nil
|
engine.setting_getbool(name) -> bool or nil (possible in async calls)
|
||||||
engine.setting_save() -> nil, save all settings to config file
|
engine.setting_save() -> nil, save all settings to config file
|
||||||
|
|
||||||
Worlds:
|
Worlds:
|
||||||
engine.get_worlds() -> list of worlds
|
engine.get_worlds() -> list of worlds (possible in async calls)
|
||||||
^ returns {
|
^ returns {
|
||||||
[1] = {
|
[1] = {
|
||||||
path = <full path to world>,
|
path = <full path to world>,
|
||||||
|
@ -174,7 +176,7 @@ engine.gettext(string) -> string
|
||||||
fgettext(string, ...) -> string
|
fgettext(string, ...) -> string
|
||||||
^ call engine.gettext(string), replace "$1"..."$9" with the given
|
^ call engine.gettext(string), replace "$1"..."$9" with the given
|
||||||
^ extra arguments, call engine.formspec_escape and return the result
|
^ extra arguments, call engine.formspec_escape and return the result
|
||||||
engine.parse_json(string[, nullvalue]) -> something
|
engine.parse_json(string[, nullvalue]) -> something (possible in async calls)
|
||||||
^ see minetest.parse_json (lua_api.txt)
|
^ see minetest.parse_json (lua_api.txt)
|
||||||
dump(obj, dumped={})
|
dump(obj, dumped={})
|
||||||
^ Return object serialized as a string
|
^ Return object serialized as a string
|
||||||
|
@ -182,9 +184,24 @@ string:split(separator)
|
||||||
^ eg. string:split("a,b", ",") == {"a","b"}
|
^ eg. string:split("a,b", ",") == {"a","b"}
|
||||||
string:trim()
|
string:trim()
|
||||||
^ eg. string.trim("\n \t\tfoo bar\t ") == "foo bar"
|
^ eg. string.trim("\n \t\tfoo bar\t ") == "foo bar"
|
||||||
minetest.is_yes(arg)
|
minetest.is_yes(arg) (possible in async calls)
|
||||||
^ returns whether arg can be interpreted as yes
|
^ returns whether arg can be interpreted as yes
|
||||||
|
|
||||||
|
Async:
|
||||||
|
engine.handle_async(async_job,parameters,finished)
|
||||||
|
^ execute a function asynchronously
|
||||||
|
^ async_job is a function receiving one parameter and returning one parameter
|
||||||
|
^ parameters parameter table passed to async_job
|
||||||
|
^ finished function to be called once async_job has finished
|
||||||
|
^ the result of async_job is passed to this function
|
||||||
|
|
||||||
|
Limitations of Async operations
|
||||||
|
-No access to global lua variables, don't even try
|
||||||
|
-Limited set of available functions
|
||||||
|
e.g. No access to functions modifying menu like engine.start,engine.close,
|
||||||
|
engine.file_open_dialog
|
||||||
|
|
||||||
|
|
||||||
Class reference
|
Class reference
|
||||||
----------------
|
----------------
|
||||||
Settings: see lua_api.txt
|
Settings: see lua_api.txt
|
||||||
|
|
|
@ -37,6 +37,9 @@ Disable main menu
|
||||||
\-\-help
|
\-\-help
|
||||||
Show allowed options
|
Show allowed options
|
||||||
.TP
|
.TP
|
||||||
|
\-\-version
|
||||||
|
Show version information
|
||||||
|
.TP
|
||||||
\-\-logfile <value>
|
\-\-logfile <value>
|
||||||
Set logfile path (debug.txt)
|
Set logfile path (debug.txt)
|
||||||
.TP
|
.TP
|
||||||
|
|
|
@ -31,6 +31,9 @@ Set gameid
|
||||||
\-\-help
|
\-\-help
|
||||||
Show allowed options
|
Show allowed options
|
||||||
.TP
|
.TP
|
||||||
|
\-\-version
|
||||||
|
Show version information
|
||||||
|
.TP
|
||||||
\-\-logfile <value>
|
\-\-logfile <value>
|
||||||
Set logfile path (debug.txt)
|
Set logfile path (debug.txt)
|
||||||
.TP
|
.TP
|
||||||
|
|
|
@ -712,7 +712,6 @@ end
|
||||||
minetest.register_node("default:stone", {
|
minetest.register_node("default:stone", {
|
||||||
description = "Stone",
|
description = "Stone",
|
||||||
tiles ={"default_stone.png"},
|
tiles ={"default_stone.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
drop = 'default:cobble',
|
drop = 'default:cobble',
|
||||||
legacy_mineral = true,
|
legacy_mineral = true,
|
||||||
|
@ -722,7 +721,6 @@ minetest.register_node("default:stone", {
|
||||||
minetest.register_node("default:stone_with_coal", {
|
minetest.register_node("default:stone_with_coal", {
|
||||||
description = "Stone with coal",
|
description = "Stone with coal",
|
||||||
tiles ={"default_stone.png^default_mineral_coal.png"},
|
tiles ={"default_stone.png^default_mineral_coal.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
drop = 'default:coal_lump',
|
drop = 'default:coal_lump',
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
@ -731,7 +729,6 @@ minetest.register_node("default:stone_with_coal", {
|
||||||
minetest.register_node("default:stone_with_iron", {
|
minetest.register_node("default:stone_with_iron", {
|
||||||
description = "Stone with iron",
|
description = "Stone with iron",
|
||||||
tiles ={"default_stone.png^default_mineral_iron.png"},
|
tiles ={"default_stone.png^default_mineral_iron.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
drop = 'default:iron_lump',
|
drop = 'default:iron_lump',
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
@ -740,7 +737,6 @@ minetest.register_node("default:stone_with_iron", {
|
||||||
minetest.register_node("default:dirt_with_grass", {
|
minetest.register_node("default:dirt_with_grass", {
|
||||||
description = "Dirt with grass",
|
description = "Dirt with grass",
|
||||||
tiles ={"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
|
tiles ={"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=3, soil=1},
|
groups = {crumbly=3, soil=1},
|
||||||
drop = 'default:dirt',
|
drop = 'default:dirt',
|
||||||
sounds = default.node_sound_dirt_defaults({
|
sounds = default.node_sound_dirt_defaults({
|
||||||
|
@ -751,7 +747,6 @@ minetest.register_node("default:dirt_with_grass", {
|
||||||
minetest.register_node("default:dirt_with_grass_footsteps", {
|
minetest.register_node("default:dirt_with_grass_footsteps", {
|
||||||
description = "Dirt with grass and footsteps",
|
description = "Dirt with grass and footsteps",
|
||||||
tiles ={"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
|
tiles ={"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=3, soil=1},
|
groups = {crumbly=3, soil=1},
|
||||||
drop = 'default:dirt',
|
drop = 'default:dirt',
|
||||||
sounds = default.node_sound_dirt_defaults({
|
sounds = default.node_sound_dirt_defaults({
|
||||||
|
@ -762,7 +757,6 @@ minetest.register_node("default:dirt_with_grass_footsteps", {
|
||||||
minetest.register_node("default:dirt", {
|
minetest.register_node("default:dirt", {
|
||||||
description = "Dirt",
|
description = "Dirt",
|
||||||
tiles ={"default_dirt.png"},
|
tiles ={"default_dirt.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=3, soil=1},
|
groups = {crumbly=3, soil=1},
|
||||||
sounds = default.node_sound_dirt_defaults(),
|
sounds = default.node_sound_dirt_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -770,7 +764,6 @@ minetest.register_node("default:dirt", {
|
||||||
minetest.register_node("default:sand", {
|
minetest.register_node("default:sand", {
|
||||||
description = "Sand",
|
description = "Sand",
|
||||||
tiles ={"default_sand.png"},
|
tiles ={"default_sand.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=3, falling_node=1},
|
groups = {crumbly=3, falling_node=1},
|
||||||
sounds = default.node_sound_sand_defaults(),
|
sounds = default.node_sound_sand_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -778,7 +771,6 @@ minetest.register_node("default:sand", {
|
||||||
minetest.register_node("default:gravel", {
|
minetest.register_node("default:gravel", {
|
||||||
description = "Gravel",
|
description = "Gravel",
|
||||||
tiles ={"default_gravel.png"},
|
tiles ={"default_gravel.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=2, falling_node=1},
|
groups = {crumbly=2, falling_node=1},
|
||||||
sounds = default.node_sound_dirt_defaults({
|
sounds = default.node_sound_dirt_defaults({
|
||||||
footstep = {name="default_gravel_footstep", gain=0.45},
|
footstep = {name="default_gravel_footstep", gain=0.45},
|
||||||
|
@ -788,7 +780,6 @@ minetest.register_node("default:gravel", {
|
||||||
minetest.register_node("default:sandstone", {
|
minetest.register_node("default:sandstone", {
|
||||||
description = "Sandstone",
|
description = "Sandstone",
|
||||||
tiles ={"default_sandstone.png"},
|
tiles ={"default_sandstone.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=2,cracky=2},
|
groups = {crumbly=2,cracky=2},
|
||||||
drop = 'default:sand',
|
drop = 'default:sand',
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
@ -797,7 +788,6 @@ minetest.register_node("default:sandstone", {
|
||||||
minetest.register_node("default:clay", {
|
minetest.register_node("default:clay", {
|
||||||
description = "Clay",
|
description = "Clay",
|
||||||
tiles ={"default_clay.png"},
|
tiles ={"default_clay.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3},
|
||||||
drop = 'default:clay_lump 4',
|
drop = 'default:clay_lump 4',
|
||||||
sounds = default.node_sound_dirt_defaults({
|
sounds = default.node_sound_dirt_defaults({
|
||||||
|
@ -808,7 +798,6 @@ minetest.register_node("default:clay", {
|
||||||
minetest.register_node("default:brick", {
|
minetest.register_node("default:brick", {
|
||||||
description = "Brick",
|
description = "Brick",
|
||||||
tiles ={"default_brick.png"},
|
tiles ={"default_brick.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
drop = 'default:clay_brick 4',
|
drop = 'default:clay_brick 4',
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
@ -817,7 +806,6 @@ minetest.register_node("default:brick", {
|
||||||
minetest.register_node("default:tree", {
|
minetest.register_node("default:tree", {
|
||||||
description = "Tree",
|
description = "Tree",
|
||||||
tiles ={"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
|
tiles ={"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=1},
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=1},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -825,7 +813,6 @@ minetest.register_node("default:tree", {
|
||||||
minetest.register_node("default:jungletree", {
|
minetest.register_node("default:jungletree", {
|
||||||
description = "Jungle Tree",
|
description = "Jungle Tree",
|
||||||
tiles ={"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
|
tiles ={"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=1},
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=1},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -849,6 +836,7 @@ minetest.register_node("default:leaves", {
|
||||||
visual_scale = 1.3,
|
visual_scale = 1.3,
|
||||||
tiles ={"default_leaves.png"},
|
tiles ={"default_leaves.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
groups = {snappy=3},
|
groups = {snappy=3},
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 1,
|
max_items = 1,
|
||||||
|
@ -871,7 +859,6 @@ minetest.register_node("default:leaves", {
|
||||||
minetest.register_node("default:cactus", {
|
minetest.register_node("default:cactus", {
|
||||||
description = "Cactus",
|
description = "Cactus",
|
||||||
tiles ={"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"},
|
tiles ={"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {snappy=2,choppy=3},
|
groups = {snappy=2,choppy=3},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -883,7 +870,6 @@ minetest.register_node("default:papyrus", {
|
||||||
inventory_image = "default_papyrus.png",
|
inventory_image = "default_papyrus.png",
|
||||||
wield_image = "default_papyrus.png",
|
wield_image = "default_papyrus.png",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
is_ground_content = true,
|
|
||||||
walkable = false,
|
walkable = false,
|
||||||
groups = {snappy=3},
|
groups = {snappy=3},
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
@ -892,7 +878,6 @@ minetest.register_node("default:papyrus", {
|
||||||
minetest.register_node("default:bookshelf", {
|
minetest.register_node("default:bookshelf", {
|
||||||
description = "Bookshelf",
|
description = "Bookshelf",
|
||||||
tiles ={"default_wood.png", "default_wood.png", "default_bookshelf.png"},
|
tiles ={"default_wood.png", "default_wood.png", "default_bookshelf.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=2},
|
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=2},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -904,7 +889,6 @@ minetest.register_node("default:glass", {
|
||||||
inventory_image = minetest.inventorycube("default_glass.png"),
|
inventory_image = minetest.inventorycube("default_glass.png"),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
|
||||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
|
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
|
||||||
sounds = default.node_sound_glass_defaults(),
|
sounds = default.node_sound_glass_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -916,7 +900,6 @@ minetest.register_node("default:fence_wood", {
|
||||||
inventory_image = "default_fence.png",
|
inventory_image = "default_fence.png",
|
||||||
wield_image = "default_fence.png",
|
wield_image = "default_fence.png",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
is_ground_content = true,
|
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
|
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
|
||||||
|
@ -932,7 +915,6 @@ minetest.register_node("default:rail", {
|
||||||
inventory_image = "default_rail.png",
|
inventory_image = "default_rail.png",
|
||||||
wield_image = "default_rail.png",
|
wield_image = "default_rail.png",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
is_ground_content = true,
|
|
||||||
walkable = false,
|
walkable = false,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
|
@ -949,7 +931,6 @@ minetest.register_node("default:ladder", {
|
||||||
wield_image = "default_ladder.png",
|
wield_image = "default_ladder.png",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
is_ground_content = true,
|
|
||||||
walkable = false,
|
walkable = false,
|
||||||
climbable = true,
|
climbable = true,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
|
@ -966,7 +947,6 @@ minetest.register_node("default:ladder", {
|
||||||
minetest.register_node("default:wood", {
|
minetest.register_node("default:wood", {
|
||||||
description = "Wood",
|
description = "Wood",
|
||||||
tiles ={"default_wood.png"},
|
tiles ={"default_wood.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -974,7 +954,6 @@ minetest.register_node("default:wood", {
|
||||||
minetest.register_node("default:mese", {
|
minetest.register_node("default:mese", {
|
||||||
description = "Mese",
|
description = "Mese",
|
||||||
tiles ={"default_mese.png"},
|
tiles ={"default_mese.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=1,level=2},
|
groups = {cracky=1,level=2},
|
||||||
sounds = default.node_sound_defaults(),
|
sounds = default.node_sound_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -982,7 +961,6 @@ minetest.register_node("default:mese", {
|
||||||
minetest.register_node("default:cloud", {
|
minetest.register_node("default:cloud", {
|
||||||
description = "Cloud",
|
description = "Cloud",
|
||||||
tiles ={"default_cloud.png"},
|
tiles ={"default_cloud.png"},
|
||||||
is_ground_content = true,
|
|
||||||
sounds = default.node_sound_defaults(),
|
sounds = default.node_sound_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1104,6 +1082,7 @@ minetest.register_node("default:torch", {
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
is_ground_content = false,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
light_source = LIGHT_MAX-1,
|
light_source = LIGHT_MAX-1,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
|
@ -1126,6 +1105,7 @@ minetest.register_node("default:sign_wall", {
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
is_ground_content = false,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "wallmounted",
|
type = "wallmounted",
|
||||||
|
@ -1160,6 +1140,7 @@ minetest.register_node("default:chest", {
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||||
legacy_facedir_simple = true,
|
legacy_facedir_simple = true,
|
||||||
|
is_ground_content = false,
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
|
@ -1192,6 +1173,7 @@ minetest.register_node("default:chest_locked", {
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||||
legacy_facedir_simple = true,
|
legacy_facedir_simple = true,
|
||||||
|
is_ground_content = false,
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
after_place_node = function(pos, placer)
|
after_place_node = function(pos, placer)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
|
@ -1277,6 +1259,7 @@ minetest.register_node("default:furnace", {
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=2},
|
groups = {cracky=2},
|
||||||
legacy_facedir_simple = true,
|
legacy_facedir_simple = true,
|
||||||
|
is_ground_content = false,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
|
@ -1310,6 +1293,7 @@ minetest.register_node("default:furnace_active", {
|
||||||
drop = "default:furnace",
|
drop = "default:furnace",
|
||||||
groups = {cracky=2},
|
groups = {cracky=2},
|
||||||
legacy_facedir_simple = true,
|
legacy_facedir_simple = true,
|
||||||
|
is_ground_content = false,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
|
@ -1334,18 +1318,13 @@ minetest.register_node("default:furnace_active", {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
function hacky_swap_node(pos,name)
|
function swap_node(pos,name)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
|
||||||
local meta0 = meta:to_table()
|
|
||||||
if node.name == name then
|
if node.name == name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
node.name = name
|
node.name = name
|
||||||
local meta0 = meta:to_table()
|
minetest.swap_node(pos, node)
|
||||||
minetest.set_node(pos,node)
|
|
||||||
meta = minetest.get_meta(pos)
|
|
||||||
meta:from_table(meta0)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
@ -1400,7 +1379,7 @@ minetest.register_abm({
|
||||||
local percent = math.floor(meta:get_float("fuel_time") /
|
local percent = math.floor(meta:get_float("fuel_time") /
|
||||||
meta:get_float("fuel_totaltime") * 100)
|
meta:get_float("fuel_totaltime") * 100)
|
||||||
meta:set_string("infotext","Furnace active: "..percent.."%")
|
meta:set_string("infotext","Furnace active: "..percent.."%")
|
||||||
hacky_swap_node(pos,"default:furnace_active")
|
swap_node(pos,"default:furnace_active")
|
||||||
meta:set_string("formspec",
|
meta:set_string("formspec",
|
||||||
"size[8,9]"..
|
"size[8,9]"..
|
||||||
"image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..
|
"image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..
|
||||||
|
@ -1426,7 +1405,7 @@ minetest.register_abm({
|
||||||
|
|
||||||
if fuel.time <= 0 then
|
if fuel.time <= 0 then
|
||||||
meta:set_string("infotext","Furnace out of fuel")
|
meta:set_string("infotext","Furnace out of fuel")
|
||||||
hacky_swap_node(pos,"default:furnace")
|
swap_node(pos,"default:furnace")
|
||||||
meta:set_string("formspec", default.furnace_inactive_formspec)
|
meta:set_string("formspec", default.furnace_inactive_formspec)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -1434,7 +1413,7 @@ minetest.register_abm({
|
||||||
if cooked.item:is_empty() then
|
if cooked.item:is_empty() then
|
||||||
if was_active then
|
if was_active then
|
||||||
meta:set_string("infotext","Furnace is empty")
|
meta:set_string("infotext","Furnace is empty")
|
||||||
hacky_swap_node(pos,"default:furnace")
|
swap_node(pos,"default:furnace")
|
||||||
meta:set_string("formspec", default.furnace_inactive_formspec)
|
meta:set_string("formspec", default.furnace_inactive_formspec)
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
|
@ -1452,7 +1431,6 @@ minetest.register_abm({
|
||||||
minetest.register_node("default:cobble", {
|
minetest.register_node("default:cobble", {
|
||||||
description = "Cobble",
|
description = "Cobble",
|
||||||
tiles ={"default_cobble.png"},
|
tiles ={"default_cobble.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -1460,7 +1438,6 @@ minetest.register_node("default:cobble", {
|
||||||
minetest.register_node("default:mossycobble", {
|
minetest.register_node("default:mossycobble", {
|
||||||
description = "Mossy Cobble",
|
description = "Mossy Cobble",
|
||||||
tiles ={"default_mossycobble.png"},
|
tiles ={"default_mossycobble.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -1468,7 +1445,6 @@ minetest.register_node("default:mossycobble", {
|
||||||
minetest.register_node("default:steelblock", {
|
minetest.register_node("default:steelblock", {
|
||||||
description = "Steel Block",
|
description = "Steel Block",
|
||||||
tiles ={"default_steel_block.png"},
|
tiles ={"default_steel_block.png"},
|
||||||
is_ground_content = true,
|
|
||||||
groups = {snappy=1,bendy=2},
|
groups = {snappy=1,bendy=2},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -1481,6 +1457,7 @@ minetest.register_node("default:nyancat", {
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=2},
|
groups = {cracky=2},
|
||||||
legacy_facedir_simple = true,
|
legacy_facedir_simple = true,
|
||||||
|
is_ground_content = false,
|
||||||
sounds = default.node_sound_defaults(),
|
sounds = default.node_sound_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1488,6 +1465,7 @@ minetest.register_node("default:nyancat_rainbow", {
|
||||||
description = "Nyancat Rainbow",
|
description = "Nyancat Rainbow",
|
||||||
tiles ={"default_nc_rb.png"},
|
tiles ={"default_nc_rb.png"},
|
||||||
inventory_image = "default_nc_rb.png",
|
inventory_image = "default_nc_rb.png",
|
||||||
|
is_ground_content = false,
|
||||||
groups = {cracky=2},
|
groups = {cracky=2},
|
||||||
sounds = default.node_sound_defaults(),
|
sounds = default.node_sound_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -1519,6 +1497,133 @@ minetest.register_node("default:apple", {
|
||||||
sounds = default.node_sound_defaults(),
|
sounds = default.node_sound_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
local c_air = minetest.get_content_id("air")
|
||||||
|
local c_ignore = minetest.get_content_id("ignore")
|
||||||
|
local c_tree = minetest.get_content_id("default:tree")
|
||||||
|
local c_leaves = minetest.get_content_id("default:leaves")
|
||||||
|
local c_apple = minetest.get_content_id("default:apple")
|
||||||
|
function default.grow_tree(data, a, pos, is_apple_tree, seed)
|
||||||
|
--[[
|
||||||
|
NOTE: Tree-placing code is currently duplicated in the engine
|
||||||
|
and in games that have saplings; both are deprecated but not
|
||||||
|
replaced yet
|
||||||
|
]]--
|
||||||
|
local pr = PseudoRandom(seed)
|
||||||
|
local th = pr:next(4, 5)
|
||||||
|
local x, y, z = pos.x, pos.y, pos.z
|
||||||
|
for yy = y, y+th-1 do
|
||||||
|
local vi = a:index(x, yy, z)
|
||||||
|
if a:contains(x, yy, z) and (data[vi] == c_air or yy == y) then
|
||||||
|
data[vi] = c_tree
|
||||||
|
end
|
||||||
|
end
|
||||||
|
y = y+th-1 -- (x, y, z) is now last piece of trunk
|
||||||
|
local leaves_a = VoxelArea:new{MinEdge={x=-2, y=-1, z=-2}, MaxEdge={x=2, y=2, z=2}}
|
||||||
|
local leaves_buffer = {}
|
||||||
|
|
||||||
|
-- Force leaves near the trunk
|
||||||
|
local d = 1
|
||||||
|
for xi = -d, d do
|
||||||
|
for yi = -d, d do
|
||||||
|
for zi = -d, d do
|
||||||
|
leaves_buffer[leaves_a:index(xi, yi, zi)] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Add leaves randomly
|
||||||
|
for iii = 1, 8 do
|
||||||
|
local d = 1
|
||||||
|
local xx = pr:next(leaves_a.MinEdge.x, leaves_a.MaxEdge.x - d)
|
||||||
|
local yy = pr:next(leaves_a.MinEdge.y, leaves_a.MaxEdge.y - d)
|
||||||
|
local zz = pr:next(leaves_a.MinEdge.z, leaves_a.MaxEdge.z - d)
|
||||||
|
|
||||||
|
for xi = 0, d do
|
||||||
|
for yi = 0, d do
|
||||||
|
for zi = 0, d do
|
||||||
|
leaves_buffer[leaves_a:index(xx+xi, yy+yi, zz+zi)] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Add the leaves
|
||||||
|
for xi = leaves_a.MinEdge.x, leaves_a.MaxEdge.x do
|
||||||
|
for yi = leaves_a.MinEdge.y, leaves_a.MaxEdge.y do
|
||||||
|
for zi = leaves_a.MinEdge.z, leaves_a.MaxEdge.z do
|
||||||
|
if a:contains(x+xi, y+yi, z+zi) then
|
||||||
|
local vi = a:index(x+xi, y+yi, z+zi)
|
||||||
|
if data[vi] == c_air or data[vi] == c_ignore then
|
||||||
|
if leaves_buffer[leaves_a:index(xi, yi, zi)] then
|
||||||
|
if is_apple_tree and pr:next(1, 100) <= 10 then
|
||||||
|
data[vi] = c_apple
|
||||||
|
else
|
||||||
|
data[vi] = c_leaves
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"default:sapling"},
|
||||||
|
interval = 10,
|
||||||
|
chance = 50,
|
||||||
|
action = function(pos, node)
|
||||||
|
local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
|
||||||
|
if is_soil == nil or is_soil == 0 then return end
|
||||||
|
print("A sapling grows into a tree at "..minetest.pos_to_string(pos))
|
||||||
|
local vm = minetest.get_voxel_manip()
|
||||||
|
local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
|
||||||
|
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
|
||||||
|
local data = vm:get_data()
|
||||||
|
default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000))
|
||||||
|
vm:set_data(data)
|
||||||
|
vm:write_to_map(data)
|
||||||
|
vm:update_map()
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"default:dirt"},
|
||||||
|
interval = 2,
|
||||||
|
chance = 200,
|
||||||
|
action = function(pos, node)
|
||||||
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
|
local name = minetest.get_node(above).name
|
||||||
|
local nodedef = minetest.registered_nodes[name]
|
||||||
|
if nodedef and (nodedef.sunlight_propagates or nodedef.paramtype == "light")
|
||||||
|
and nodedef.liquidtype == "none"
|
||||||
|
and (minetest.get_node_light(above) or 0) >= 13 then
|
||||||
|
if name == "default:snow" or name == "default:snowblock" then
|
||||||
|
minetest.set_node(pos, {name = "default:dirt_with_snow"})
|
||||||
|
else
|
||||||
|
minetest.set_node(pos, {name = "default:dirt_with_grass"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"default:dirt_with_grass"},
|
||||||
|
interval = 2,
|
||||||
|
chance = 20,
|
||||||
|
action = function(pos, node)
|
||||||
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
|
local name = minetest.get_node(above).name
|
||||||
|
local nodedef = minetest.registered_nodes[name]
|
||||||
|
if name ~= "ignore" and nodedef
|
||||||
|
and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light")
|
||||||
|
and nodedef.liquidtype == "none") then
|
||||||
|
minetest.set_node(pos, {name = "default:dirt"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Crafting items
|
-- Crafting items
|
||||||
--
|
--
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
-- Aliases for map generator outputs
|
-- Aliases for map generator outputs
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.register_alias("mapgen_air", "air")
|
|
||||||
minetest.register_alias("mapgen_stone", "default:stone")
|
minetest.register_alias("mapgen_stone", "default:stone")
|
||||||
minetest.register_alias("mapgen_tree", "default:tree")
|
minetest.register_alias("mapgen_tree", "default:tree")
|
||||||
minetest.register_alias("mapgen_leaves", "default:leaves")
|
minetest.register_alias("mapgen_leaves", "default:leaves")
|
||||||
|
|
|
@ -22,15 +22,15 @@
|
||||||
# Client and server
|
# Client and server
|
||||||
#
|
#
|
||||||
|
|
||||||
# Network port (UDP)
|
|
||||||
#port =
|
|
||||||
# Name of player; on a server this is the main admin
|
# Name of player; on a server this is the main admin
|
||||||
#name =
|
#name =
|
||||||
|
|
||||||
#
|
#
|
||||||
# Client stuff
|
# Client stuff
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Port to connect to (UDP)
|
||||||
|
#remote_port =
|
||||||
# Key mappings
|
# Key mappings
|
||||||
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
|
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
|
||||||
#keymap_forward = KEY_KEY_W
|
#keymap_forward = KEY_KEY_W
|
||||||
|
@ -82,7 +82,7 @@
|
||||||
#vsync = false
|
#vsync = false
|
||||||
#fov = 72
|
#fov = 72
|
||||||
# Address to connect to (#blank = start local server)
|
# Address to connect to (#blank = start local server)
|
||||||
#address =
|
#address =
|
||||||
# Enable random user input, for testing
|
# Enable random user input, for testing
|
||||||
#random_input = false
|
#random_input = false
|
||||||
# Timeout for client to remove unused map data from memory
|
# Timeout for client to remove unused map data from memory
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
# Constant volume liquids
|
# Constant volume liquids
|
||||||
#liquid_finite = false
|
#liquid_finite = false
|
||||||
# Max liquids processed per step
|
# Max liquids processed per step
|
||||||
#liquid_loop_max = 1000
|
#liquid_loop_max = 10000
|
||||||
# Update liquids every .. recommend for finite: 0.2
|
# Update liquids every .. recommend for finite: 0.2
|
||||||
#liquid_update = 1.0
|
#liquid_update = 1.0
|
||||||
# Relax flowing blocks to source if level near max and N nearby
|
# Relax flowing blocks to source if level near max and N nearby
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
# disable for speed or for different looks.
|
# disable for speed or for different looks.
|
||||||
#smooth_lighting = true
|
#smooth_lighting = true
|
||||||
# Path to texture directory. All textures are first searched from here.
|
# Path to texture directory. All textures are first searched from here.
|
||||||
#texture_path =
|
#texture_path =
|
||||||
# Video back-end.
|
# Video back-end.
|
||||||
# Possible values: null, software, burningsvideo, direct3d8, direct3d9, opengl
|
# Possible values: null, software, burningsvideo, direct3d8, direct3d9, opengl
|
||||||
#video_driver = opengl
|
#video_driver = opengl
|
||||||
|
@ -170,13 +170,37 @@
|
||||||
#enable_shaders = true
|
#enable_shaders = true
|
||||||
# Set to true to enable textures bumpmapping. Requires shaders enabled.
|
# Set to true to enable textures bumpmapping. Requires shaders enabled.
|
||||||
#enable_bumpmapping = false
|
#enable_bumpmapping = false
|
||||||
|
# Set to true enables parallax occlusion mapping. Requires shaders enabled.
|
||||||
|
#enable_parallax_occlusion = false
|
||||||
|
# Scale of parallax occlusion effect
|
||||||
|
#parallax_mapping_scale = 0.08
|
||||||
|
# Bias of parallax occlusion effect, usually scale/2
|
||||||
|
#parallax_mapping_scale = 0.04
|
||||||
|
# Set to true enables waving water. Requires shaders enabled.
|
||||||
|
#enable_waving_water = false
|
||||||
|
# Parameters for waving water:
|
||||||
|
#water_wave_height = 1.0
|
||||||
|
#water_wave_length = 20.0
|
||||||
|
#water_wave_speed = 5.0
|
||||||
|
# Set to true enables waving leaves. Requires shaders enabled.
|
||||||
|
#enable_waving_leaves = false
|
||||||
|
# Set to true enables waving plants. Requires shaders enabled.
|
||||||
|
#enable_waving_plants = false
|
||||||
# The time in seconds it takes between repeated
|
# The time in seconds it takes between repeated
|
||||||
# right clicks when holding the right mouse button
|
# right clicks when holding the right mouse button
|
||||||
#repeat_rightclick_time = 0.25
|
#repeat_rightclick_time = 0.25
|
||||||
|
# Make fog and sky colors depend on daytime (dawn/sunset) and view direction
|
||||||
|
#directional_colored_fog = true
|
||||||
|
|
||||||
# will only work for servers which use remote_media setting
|
# Default timeout for cURL, in milliseconds
|
||||||
# and only for clients compiled with cURL
|
# Only has an effect if compiled with cURL
|
||||||
#media_fetch_threads = 8
|
#curl_timeout = 5000
|
||||||
|
# Limits number of parallel HTTP requests. Affects:
|
||||||
|
# - Media fetch if server uses remote_media setting
|
||||||
|
# - Serverlist download and server announcement
|
||||||
|
# - Downloads performed by main menu (e.g. mod manager)
|
||||||
|
# Only has an effect if compiled with cURL
|
||||||
|
#curl_parallel_limit = 8
|
||||||
|
|
||||||
# Url to the server list displayed in the Multiplayer Tab
|
# Url to the server list displayed in the Multiplayer Tab
|
||||||
#serverlist_url = servers.minetest.net
|
#serverlist_url = servers.minetest.net
|
||||||
|
@ -188,17 +212,24 @@
|
||||||
# Path to TrueTypeFont or bitmap
|
# Path to TrueTypeFont or bitmap
|
||||||
#font_path = fonts/liberationsans.ttf
|
#font_path = fonts/liberationsans.ttf
|
||||||
#font_size = 13
|
#font_size = 13
|
||||||
|
# Font shadow offset, if 0 then shadow will not be drawn.
|
||||||
|
#font_shadow = 1
|
||||||
|
# Font shadow alpha (opaqueness, between 0 and 255)
|
||||||
|
#font_shadow_alpha = 128
|
||||||
#mono_font_path = fonts/liberationmono.ttf
|
#mono_font_path = fonts/liberationmono.ttf
|
||||||
#mono_font_size = 13
|
#mono_font_size = 13
|
||||||
|
|
||||||
# This font will be used for certain languages
|
# This font will be used for certain languages
|
||||||
#fallback_font_path = fonts/DroidSansFallbackFull.ttf
|
#fallback_font_path = fonts/DroidSansFallbackFull.ttf
|
||||||
#fallback_font_size = 13
|
#fallback_font_size = 13
|
||||||
|
#fallback_font_shadow = 1
|
||||||
|
#fallback_font_shadow_alpha = 128
|
||||||
|
|
||||||
#
|
#
|
||||||
# Server stuff
|
# Server stuff
|
||||||
#
|
#
|
||||||
|
# Network port to listen (UDP)
|
||||||
|
#port =
|
||||||
# Name of server
|
# Name of server
|
||||||
#server_name = Minetest server
|
#server_name = Minetest server
|
||||||
# Description of server
|
# Description of server
|
||||||
|
@ -218,7 +249,7 @@
|
||||||
# Message of the Day
|
# Message of the Day
|
||||||
#motd = Welcome to this awesome Minetest server!
|
#motd = Welcome to this awesome Minetest server!
|
||||||
# Maximum number of players connected simultaneously
|
# Maximum number of players connected simultaneously
|
||||||
#max_users = 100
|
#max_users = 15
|
||||||
# Set to true to disallow old clients from connecting
|
# Set to true to disallow old clients from connecting
|
||||||
#strict_protocol_version_checking = false
|
#strict_protocol_version_checking = false
|
||||||
# Set to true to enable creative mode (unlimited inventory)
|
# Set to true to enable creative mode (unlimited inventory)
|
||||||
|
@ -232,7 +263,7 @@
|
||||||
# Gives some stuff to players at the beginning
|
# Gives some stuff to players at the beginning
|
||||||
#give_initial_stuff = false
|
#give_initial_stuff = false
|
||||||
# New users need to input this password
|
# New users need to input this password
|
||||||
#default_password =
|
#default_password =
|
||||||
# Available privileges: interact, shout, teleport, settime, privs, ...
|
# Available privileges: interact, shout, teleport, settime, privs, ...
|
||||||
# See /privs in game for a full list on your server and mod configuration.
|
# See /privs in game for a full list on your server and mod configuration.
|
||||||
#default_privs = interact, shout
|
#default_privs = interact, shout
|
||||||
|
@ -248,6 +279,10 @@
|
||||||
#disable_anticheat = false
|
#disable_anticheat = false
|
||||||
# If true, actions are recorded for rollback
|
# If true, actions are recorded for rollback
|
||||||
#enable_rollback_recording = false
|
#enable_rollback_recording = false
|
||||||
|
# If true, blocks are cached (and generated if not before) before a player is spawned.
|
||||||
|
#cache_block_before_spawn = true
|
||||||
|
# Defines the maximum height a player can spawn in a map, above water level
|
||||||
|
#max_spawn_height = 50
|
||||||
|
|
||||||
# Profiler data print interval. #0 = disable.
|
# Profiler data print interval. #0 = disable.
|
||||||
#profiler_print_interval = 0
|
#profiler_print_interval = 0
|
||||||
|
@ -308,7 +343,7 @@
|
||||||
#emergequeue_limit_diskonly =
|
#emergequeue_limit_diskonly =
|
||||||
# Maximum number of blocks to be queued that are to be generated.
|
# Maximum number of blocks to be queued that are to be generated.
|
||||||
# Leave blank for an appropriate amount to be chosen automatically.
|
# Leave blank for an appropriate amount to be chosen automatically.
|
||||||
#emergequeue_limit_generate =
|
#emergequeue_limit_generate =
|
||||||
# Number of emerge threads to use. Make this field blank, or increase this number, to use multiple threads.
|
# Number of emerge threads to use. Make this field blank, or increase this number, to use multiple threads.
|
||||||
# On multiprocessor systems, this will improve mapgen speed greatly, at the cost of slightly buggy caves.
|
# On multiprocessor systems, this will improve mapgen speed greatly, at the cost of slightly buggy caves.
|
||||||
#num_emerge_threads = 1
|
#num_emerge_threads = 1
|
||||||
|
|
|
@ -0,0 +1,999 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: minetest\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
|
"PO-Revision-Date: 2013-10-30 15:04+0200\n"
|
||||||
|
"Last-Translator: Jakub Vaněk <vanek.jakub4@seznam.cz>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: cs\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
"X-Generator: Weblate 1.7-dev\n"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:23
|
||||||
|
msgid "Game Name"
|
||||||
|
msgstr "Název hry"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
|
msgid "Create"
|
||||||
|
msgstr "Vytvořit"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Zrušit"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:118
|
||||||
|
msgid "Gamemgr: Unable to copy mod \"$1\" to game \"$2\""
|
||||||
|
msgstr "Gamemgr: Nepovedlo se zkopírovat mod \"$1\" do hry\"$2\""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:216
|
||||||
|
msgid "GAMES"
|
||||||
|
msgstr "HRY"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
|
msgid "Games"
|
||||||
|
msgstr "Hry"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:234
|
||||||
|
msgid "Mods:"
|
||||||
|
msgstr "Mody:"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:235
|
||||||
|
msgid "edit game"
|
||||||
|
msgstr "upravit hru"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:238
|
||||||
|
msgid "new game"
|
||||||
|
msgstr "nová hra"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:248
|
||||||
|
msgid "EDIT GAME"
|
||||||
|
msgstr "UPRAVIT HRU"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:269
|
||||||
|
msgid "Remove selected mod"
|
||||||
|
msgstr "Odstranit vybraný mod"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:272
|
||||||
|
msgid "<<-- Add mod"
|
||||||
|
msgstr "<<-- Přidat mod"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:158
|
||||||
|
msgid "Ok"
|
||||||
|
msgstr "Ok"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:297
|
||||||
|
msgid "World name"
|
||||||
|
msgstr "Název světa"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
|
msgid "Mapgen"
|
||||||
|
msgstr "Generátor světa"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:306
|
||||||
|
msgid "Game"
|
||||||
|
msgstr "Hra"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:319
|
||||||
|
msgid "Delete World \"$1\"?"
|
||||||
|
msgstr "Doopravdy chcete smazat svět \"$1\"?"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
|
msgid "Yes"
|
||||||
|
msgstr "Ano"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:321
|
||||||
|
msgid "No"
|
||||||
|
msgstr "Ne"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:364
|
||||||
|
msgid "A world named \"$1\" already exists"
|
||||||
|
msgstr "Svět s názvem \"$1\" už existuje"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:381
|
||||||
|
msgid "No worldname given or no game selected"
|
||||||
|
msgstr "Nebyla vybrána žádná hra"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:650
|
||||||
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:818
|
||||||
|
msgid "CLIENT"
|
||||||
|
msgstr "CLIENT"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:819
|
||||||
|
msgid "Favorites:"
|
||||||
|
msgstr "Oblíbené:"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:820
|
||||||
|
msgid "Address/Port"
|
||||||
|
msgstr "Adresa/port"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:821
|
||||||
|
msgid "Name/Password"
|
||||||
|
msgstr "Jméno/Heslo"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:824
|
||||||
|
msgid "Public Serverlist"
|
||||||
|
msgstr "Veřejný seznam serverů"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
|
#: src/keycode.cpp:229
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Vymazat"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:833
|
||||||
|
msgid "Connect"
|
||||||
|
msgstr "Připojit"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
|
msgid "New"
|
||||||
|
msgstr "Nový"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr "Nastavit"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:877
|
||||||
|
msgid "Start Game"
|
||||||
|
msgstr "Začít hru"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
|
msgid "Select World:"
|
||||||
|
msgstr "Vyber svět:"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:879
|
||||||
|
msgid "START SERVER"
|
||||||
|
msgstr "MÍSTNÍ SERVER"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
|
msgid "Creative Mode"
|
||||||
|
msgstr "Kreativní mód"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
|
msgid "Enable Damage"
|
||||||
|
msgstr "Povolit poškození"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:884
|
||||||
|
msgid "Public"
|
||||||
|
msgstr "Veřejný"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:886
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Jméno"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:888
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Heslo"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:889
|
||||||
|
msgid "Server Port"
|
||||||
|
msgstr "Port serveru"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:899
|
||||||
|
msgid "SETTINGS"
|
||||||
|
msgstr "NASTAVENÍ"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:900
|
||||||
|
msgid "Fancy trees"
|
||||||
|
msgstr "Pěkné stromy"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:902
|
||||||
|
msgid "Smooth Lighting"
|
||||||
|
msgstr "Hladké osvětlení"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:904
|
||||||
|
msgid "3D Clouds"
|
||||||
|
msgstr "3D Mraky"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:906
|
||||||
|
msgid "Opaque Water"
|
||||||
|
msgstr "Neprůhledná voda"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:909
|
||||||
|
msgid "Mip-Mapping"
|
||||||
|
msgstr "Mip-Mapování"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:911
|
||||||
|
msgid "Anisotropic Filtering"
|
||||||
|
msgstr "Anizotropní filtrování"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:913
|
||||||
|
msgid "Bi-Linear Filtering"
|
||||||
|
msgstr "Bilineární filtrování"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:915
|
||||||
|
msgid "Tri-Linear Filtering"
|
||||||
|
msgstr "Trilineární filtrování"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:918
|
||||||
|
msgid "Shaders"
|
||||||
|
msgstr "Shadery"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:920
|
||||||
|
msgid "Preload item visuals"
|
||||||
|
msgstr "Přednačtené textury itemů"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:922
|
||||||
|
msgid "Enable Particles"
|
||||||
|
msgstr "Povolit Částice"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:924
|
||||||
|
msgid "Finite Liquid"
|
||||||
|
msgstr "Konečná voda"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:927
|
||||||
|
msgid "Change keys"
|
||||||
|
msgstr "Změnit nastavení klávesy"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
|
msgid "Play"
|
||||||
|
msgstr "Hrát"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:942
|
||||||
|
msgid "SINGLE PLAYER"
|
||||||
|
msgstr "HRA JEDNOHO HRÁČE"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:955
|
||||||
|
msgid "Select texture pack:"
|
||||||
|
msgstr "Vyberte balíček textur:"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:956
|
||||||
|
msgid "TEXTURE PACKS"
|
||||||
|
msgstr "BALÍČKY TEXTUR"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:976
|
||||||
|
msgid "No information available"
|
||||||
|
msgstr "Žádné informace dostupné"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1005
|
||||||
|
msgid "Core Developers"
|
||||||
|
msgstr "Vývojáři jádra"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1020
|
||||||
|
msgid "Active Contributors"
|
||||||
|
msgstr "Aktivní přispěvatelé"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1028
|
||||||
|
msgid "Previous Contributors"
|
||||||
|
msgstr "Bývalí přispěvatelé"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Hra jednoho hráče"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr "Hra více hráčů"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr "Místní server"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Nastavení"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr "Balíčky textur"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr "Mody"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Autoři"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:236
|
||||||
|
msgid "MODS"
|
||||||
|
msgstr "MODY"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:237
|
||||||
|
msgid "Installed Mods:"
|
||||||
|
msgstr "Instalované Mody:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:243
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Add mod:"
|
||||||
|
msgstr "<<-- Přidat mod"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:244
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Local install"
|
||||||
|
msgstr "Instalovat"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
#, fuzzy
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr "Žádné informace dostupné"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr "Žádné informace dostupné"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
|
msgid "Rename"
|
||||||
|
msgstr "Přejmenovat"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:301
|
||||||
|
msgid "Uninstall selected modpack"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:312
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr "Odstranit vybraný mod"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
|
msgid "Rename Modpack:"
|
||||||
|
msgstr "Přejmenovat Modpack:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
|
msgid "Accept"
|
||||||
|
msgstr "Přijmout"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:423
|
||||||
|
msgid "World:"
|
||||||
|
msgstr "Svět:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
|
msgid "Hide Game"
|
||||||
|
msgstr "Skrýt Hru"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
|
msgid "Hide mp content"
|
||||||
|
msgstr "Skrýt obsah mp"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:442
|
||||||
|
msgid "Mod:"
|
||||||
|
msgstr "Mody:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:444
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "Závislosti:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Uložit"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:464
|
||||||
|
msgid "Enable MP"
|
||||||
|
msgstr "Povolit Hru více hráčů"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:466
|
||||||
|
msgid "Disable MP"
|
||||||
|
msgstr "Zakázat Hru více hráčů"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
|
msgid "enabled"
|
||||||
|
msgstr "povoleno"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:478
|
||||||
|
msgid "Enable all"
|
||||||
|
msgstr "Povolit vše"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:577
|
||||||
|
msgid "Select Mod File:"
|
||||||
|
msgstr "Vybrat Soubor s Modem:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:616
|
||||||
|
msgid "Install Mod: file: \"$1\""
|
||||||
|
msgstr "Instalace Modu: ze souboru: \"$1\""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:617
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"Instalace Modu: nepodporovaný typ souboru \"$1\""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:638
|
||||||
|
msgid "Failed to install $1 to $2"
|
||||||
|
msgstr "Selhala instalace $1 do $2"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:641
|
||||||
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
|
msgstr "Install Mod: nenalezen adresář s příslušným názvem pro balíček modu $1"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:661
|
||||||
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
|
msgstr "Install Mod: Nenašel jsem skutečné jméno modu: $1"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:855
|
||||||
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
|
msgstr "Modmgr: Nepodařilo se odstranit \"$1\""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:859
|
||||||
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
|
msgstr "Modmgr: Neplatná cesta k modu \"$1\""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:876
|
||||||
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
|
msgstr "Skutečně chcete odstranit \"$1\"?"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:878
|
||||||
|
msgid "No of course not!"
|
||||||
|
msgstr "Jistě, že ne!"
|
||||||
|
|
||||||
|
#: builtin/modstore.lua:183
|
||||||
|
msgid "Page $1 of $2"
|
||||||
|
msgstr "Strana $1 z $2"
|
||||||
|
|
||||||
|
#: builtin/modstore.lua:243
|
||||||
|
msgid "Rating"
|
||||||
|
msgstr "Hodnocení"
|
||||||
|
|
||||||
|
#: builtin/modstore.lua:251
|
||||||
|
msgid "re-Install"
|
||||||
|
msgstr "přeinstalovat"
|
||||||
|
|
||||||
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr "Instalovat"
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
|
msgid "Item textures..."
|
||||||
|
msgstr "Textury předmětů..."
|
||||||
|
|
||||||
|
#: src/game.cpp:940
|
||||||
|
msgid "Loading..."
|
||||||
|
msgstr "Nahrávám..."
|
||||||
|
|
||||||
|
#: src/game.cpp:1000
|
||||||
|
msgid "Creating server...."
|
||||||
|
msgstr "Vytvářím server..."
|
||||||
|
|
||||||
|
#: src/game.cpp:1016
|
||||||
|
msgid "Creating client..."
|
||||||
|
msgstr "Vytvářím klienta..."
|
||||||
|
|
||||||
|
#: src/game.cpp:1025
|
||||||
|
msgid "Resolving address..."
|
||||||
|
msgstr "Překládám adresu..."
|
||||||
|
|
||||||
|
#: src/game.cpp:1122
|
||||||
|
msgid "Connecting to server..."
|
||||||
|
msgstr "Připojuji se k serveru..."
|
||||||
|
|
||||||
|
#: src/game.cpp:1219
|
||||||
|
msgid "Item definitions..."
|
||||||
|
msgstr "Definice předmětů..."
|
||||||
|
|
||||||
|
#: src/game.cpp:1226
|
||||||
|
msgid "Node definitions..."
|
||||||
|
msgstr "Definice uzlů..."
|
||||||
|
|
||||||
|
#: src/game.cpp:1233
|
||||||
|
msgid "Media..."
|
||||||
|
msgstr "Média..."
|
||||||
|
|
||||||
|
#: src/game.cpp:3409
|
||||||
|
msgid "Shutting down stuff..."
|
||||||
|
msgstr "Vypínám to..."
|
||||||
|
|
||||||
|
#: src/game.cpp:3439
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Check debug.txt for details."
|
||||||
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"Pro detaily se podívej do debug.txt."
|
||||||
|
|
||||||
|
#: src/guiDeathScreen.cpp:96
|
||||||
|
msgid "You died."
|
||||||
|
msgstr "Zemřel jsi."
|
||||||
|
|
||||||
|
#: src/guiDeathScreen.cpp:104
|
||||||
|
msgid "Respawn"
|
||||||
|
msgstr "Oživení"
|
||||||
|
|
||||||
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
|
#: src/guiTextInputMenu.cpp:139
|
||||||
|
msgid "Proceed"
|
||||||
|
msgstr "Pokračovat"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:121
|
||||||
|
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||||
|
msgstr ""
|
||||||
|
"Nastavení kláves. (Pokud tohle menu nebude v pořádku, odstraňte nastavení z "
|
||||||
|
"minetest.conf)"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:161
|
||||||
|
msgid "\"Use\" = climb down"
|
||||||
|
msgstr "\"Použít\" = slézt dolů"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:176
|
||||||
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
|
msgstr "Dvakrát zmáčkněte \"skok\" pro zapnutí létání"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
|
msgid "Key already in use"
|
||||||
|
msgstr "Klávesa je již používána"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
|
msgid "press key"
|
||||||
|
msgstr "stiskni klávesu"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
|
msgid "Forward"
|
||||||
|
msgstr "Vpřed"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
|
msgid "Backward"
|
||||||
|
msgstr "Vzad"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
|
msgid "Left"
|
||||||
|
msgstr "Vlevo"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
|
msgid "Right"
|
||||||
|
msgstr "Vpravo"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
|
msgid "Use"
|
||||||
|
msgstr "Použít"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
|
msgid "Jump"
|
||||||
|
msgstr "Skočit"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
|
msgid "Sneak"
|
||||||
|
msgstr "Plížení"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
|
msgid "Drop"
|
||||||
|
msgstr "Zahodit"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
|
msgid "Inventory"
|
||||||
|
msgstr "Inventář"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
|
msgid "Chat"
|
||||||
|
msgstr "Chat"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
|
msgid "Command"
|
||||||
|
msgstr "Příkaz"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
|
msgid "Console"
|
||||||
|
msgstr "Konzole"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
|
msgid "Toggle fly"
|
||||||
|
msgstr "Přepnout létání"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
|
msgid "Toggle fast"
|
||||||
|
msgstr "Přepnout rychlý pohyb"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
|
msgid "Toggle noclip"
|
||||||
|
msgstr "Zapnout noclip"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
|
msgid "Range select"
|
||||||
|
msgstr "Vybrat rozmezí"
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
|
msgid "Print stacks"
|
||||||
|
msgstr "Vytisknout zásobníky"
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:106
|
||||||
|
msgid "Old Password"
|
||||||
|
msgstr "Staré heslo"
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:122
|
||||||
|
msgid "New Password"
|
||||||
|
msgstr "Nové heslo"
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:137
|
||||||
|
msgid "Confirm Password"
|
||||||
|
msgstr "Potvrdit heslo"
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:153
|
||||||
|
msgid "Change"
|
||||||
|
msgstr "Změnit"
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:162
|
||||||
|
msgid "Passwords do not match!"
|
||||||
|
msgstr "Hesla si neodpovídají!"
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:122
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr "Pokračovat"
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:133
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr "Změnit heslo"
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:143
|
||||||
|
msgid "Sound Volume"
|
||||||
|
msgstr "Hlasitost"
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:152
|
||||||
|
msgid "Exit to Menu"
|
||||||
|
msgstr "Odejít do Nabídky"
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:161
|
||||||
|
msgid "Exit to OS"
|
||||||
|
msgstr "Ukončit hru"
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:170
|
||||||
|
msgid ""
|
||||||
|
"Default Controls:\n"
|
||||||
|
"- WASD: move\n"
|
||||||
|
"- Space: jump/climb\n"
|
||||||
|
"- Shift: sneak/go down\n"
|
||||||
|
"- Q: drop item\n"
|
||||||
|
"- I: inventory\n"
|
||||||
|
"- Mouse: turn/look\n"
|
||||||
|
"- Mouse left: dig/punch\n"
|
||||||
|
"- Mouse right: place/use\n"
|
||||||
|
"- Mouse wheel: select item\n"
|
||||||
|
"- T: chat\n"
|
||||||
|
msgstr ""
|
||||||
|
"Výchozí ovládání:\n"
|
||||||
|
"- WASD: pohyb\n"
|
||||||
|
"- Mezera: skákání/šplhání\n"
|
||||||
|
"- Shift: plížení\n"
|
||||||
|
"- Q: zahodit\n"
|
||||||
|
"- I: inventář\n"
|
||||||
|
"- Myš: otáčení,rozhlížení\n"
|
||||||
|
"- Myš(levé tl.): kopat, štípat\n"
|
||||||
|
"- Myš(pravé tl.): položit, použít\n"
|
||||||
|
"- Myš(kolečko): vybrat předmět\n"
|
||||||
|
"- T: chat\n"
|
||||||
|
|
||||||
|
#: src/guiVolumeChange.cpp:107
|
||||||
|
msgid "Sound Volume: "
|
||||||
|
msgstr "Hlasitost: "
|
||||||
|
|
||||||
|
#: src/guiVolumeChange.cpp:121
|
||||||
|
msgid "Exit"
|
||||||
|
msgstr "Odejít"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:223
|
||||||
|
msgid "Left Button"
|
||||||
|
msgstr "Levé tlačítko myši"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:223
|
||||||
|
msgid "Middle Button"
|
||||||
|
msgstr "Prostřední tlačítko myši"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:223
|
||||||
|
msgid "Right Button"
|
||||||
|
msgstr "Pravé tlačítko myši"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:223
|
||||||
|
msgid "X Button 1"
|
||||||
|
msgstr "X Tlačítko 1"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "Back"
|
||||||
|
msgstr "Zpět"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "Clear"
|
||||||
|
msgstr "Vyčistit"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "Return"
|
||||||
|
msgstr "Vrátit"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "Tab"
|
||||||
|
msgstr "Tabulátor"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "X Button 2"
|
||||||
|
msgstr "X Tlačítko 2"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Capital"
|
||||||
|
msgstr "Klávesa velkého písmene"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Control"
|
||||||
|
msgstr "Control"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Kana"
|
||||||
|
msgstr "Kana"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Menu"
|
||||||
|
msgstr "Nabídka"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "Pauza"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Shift"
|
||||||
|
msgstr "Shift"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Convert"
|
||||||
|
msgstr "Převádět"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Escape"
|
||||||
|
msgstr "Esc"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Final"
|
||||||
|
msgstr "Konečný"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Junja"
|
||||||
|
msgstr "Junja"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Kanji"
|
||||||
|
msgstr "Kanji"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Nonconvert"
|
||||||
|
msgstr "Nepřevádět"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "End"
|
||||||
|
msgstr "End"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Home"
|
||||||
|
msgstr "Home"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Mode Change"
|
||||||
|
msgstr "Změna modu"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Next"
|
||||||
|
msgstr "Další"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Prior"
|
||||||
|
msgstr "Předchozí"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Space"
|
||||||
|
msgstr "Mezerník"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Dolů"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Execute"
|
||||||
|
msgstr "Spustit"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Print Screen"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Select"
|
||||||
|
msgstr "Vybrat"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Nahoru"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:229
|
||||||
|
msgid "Help"
|
||||||
|
msgstr "Pomoc"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:229
|
||||||
|
msgid "Insert"
|
||||||
|
msgstr "Vložit"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:229
|
||||||
|
msgid "Snapshot"
|
||||||
|
msgstr "Momentka"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:232
|
||||||
|
msgid "Left Windows"
|
||||||
|
msgstr "Levá klávesa Windows"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Apps"
|
||||||
|
msgstr "Aplikace"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Numpad 0"
|
||||||
|
msgstr "Numerická klávesnice: 0"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Numpad 1"
|
||||||
|
msgstr "Numerická klávesnice: 1"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Right Windows"
|
||||||
|
msgstr "Pravá klávesa Windows"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Sleep"
|
||||||
|
msgstr "Spát"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 2"
|
||||||
|
msgstr "Numerická klávesnice: 2"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 3"
|
||||||
|
msgstr "Numerická klávesnice: 3"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 4"
|
||||||
|
msgstr "Numerická klávesnice: 4"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 5"
|
||||||
|
msgstr "Numerická klávesnice: 5"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 6"
|
||||||
|
msgstr "Numerická klávesnice: 6"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 7"
|
||||||
|
msgstr "Numerická klávesnice: 7"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad *"
|
||||||
|
msgstr "Numerická klávesnice: *"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad +"
|
||||||
|
msgstr "Numerická klávesnice: +"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad -"
|
||||||
|
msgstr "Numerická klávesnice: -"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad /"
|
||||||
|
msgstr "Numerická klávesnice: /"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad 8"
|
||||||
|
msgstr "Numerická klávesnice: 8"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad 9"
|
||||||
|
msgstr "Numerická klávesnice: 9"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:239
|
||||||
|
msgid "Num Lock"
|
||||||
|
msgstr "Num Lock"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:239
|
||||||
|
msgid "Scroll Lock"
|
||||||
|
msgstr "Scroll Lock"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:240
|
||||||
|
msgid "Left Shift"
|
||||||
|
msgstr "Levý Shift"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:240
|
||||||
|
msgid "Right Shift"
|
||||||
|
msgstr "Pravý Shift"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:241
|
||||||
|
msgid "Left Control"
|
||||||
|
msgstr "Levý Control"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:241
|
||||||
|
msgid "Left Menu"
|
||||||
|
msgstr "Levá klávesa Menu"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:241
|
||||||
|
msgid "Right Control"
|
||||||
|
msgstr "Pravý Control"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:241
|
||||||
|
msgid "Right Menu"
|
||||||
|
msgstr "Pravá klávesa Menu"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:243
|
||||||
|
msgid "Comma"
|
||||||
|
msgstr "Čárka"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:243
|
||||||
|
msgid "Minus"
|
||||||
|
msgstr "Mínus"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:243
|
||||||
|
msgid "Period"
|
||||||
|
msgstr "Tečka"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:243
|
||||||
|
msgid "Plus"
|
||||||
|
msgstr "Plus"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:247
|
||||||
|
msgid "Attn"
|
||||||
|
msgstr "Attn"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:247
|
||||||
|
msgid "CrSel"
|
||||||
|
msgstr "CrSel"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "Erase OEF"
|
||||||
|
msgstr "Smazat EOF"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "ExSel"
|
||||||
|
msgstr "ExSel"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "OEM Clear"
|
||||||
|
msgstr "OEM Clear"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "PA1"
|
||||||
|
msgstr "PA1"
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Přiblížení"
|
||||||
|
|
||||||
|
#: src/main.cpp:1472
|
||||||
|
msgid "needs_fallback_font"
|
||||||
|
msgstr "vyžaduje_fallback_font"
|
||||||
|
|
||||||
|
#: src/main.cpp:1547
|
||||||
|
msgid "Main Menu"
|
||||||
|
msgstr "Hlavní nabídka"
|
||||||
|
|
||||||
|
#: src/main.cpp:1723
|
||||||
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
|
msgstr ""
|
||||||
|
"Nebyl vybrán žádný svět a nebyla poskytnuta žádná adresa. Nemám co dělat."
|
||||||
|
|
||||||
|
#: src/main.cpp:1731
|
||||||
|
msgid "Could not find or load game \""
|
||||||
|
msgstr "Hru nebylo možné najít nebo nahrát \""
|
||||||
|
|
||||||
|
#: src/main.cpp:1745
|
||||||
|
msgid "Invalid gamespec."
|
||||||
|
msgstr "Neplatná specifikace hry."
|
||||||
|
|
||||||
|
#: src/main.cpp:1790
|
||||||
|
msgid "Connection error (timed out?)"
|
||||||
|
msgstr "Chyba spojení (vypršel čas?)"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Levý klik: Přesunout všechny předměty, Pravý klik: Přesunout jeden předmět"
|
||||||
|
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Stáhnout"
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.0\n"
|
"Project-Id-Version: 0.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-02-17 00:41+0200\n"
|
"PO-Revision-Date: 2013-02-17 00:41+0200\n"
|
||||||
"Last-Translator: Rune Biskopstö Christensen <lakersforce@gmail.com>\n"
|
"Last-Translator: Rune Biskopstö Christensen <lakersforce@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
|
@ -23,12 +23,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Spil"
|
msgstr "Spil"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Skab"
|
msgstr "Skab"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Anuller"
|
msgstr "Anuller"
|
||||||
|
|
||||||
|
@ -40,36 +40,36 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Spil"
|
msgstr "Spil"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -77,230 +77,238 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Verdens navn"
|
msgstr "Verdens navn"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Spil"
|
msgstr "Spil"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Slet verden"
|
msgstr "Slet verden"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nej"
|
msgstr "Nej"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "Kan ikke skabe verden: en verden med dette navn eksisterer allerede"
|
msgstr "Kan ikke skabe verden: en verden med dette navn eksisterer allerede"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Enligspiller"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Indstillinger"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Skabt af"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Vis favoritter"
|
msgstr "Vis favoritter"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "Adresse/port"
|
msgstr "Adresse/port"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Navn/kodeord"
|
msgstr "Navn/kodeord"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Slet"
|
msgstr "Slet"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Forbind"
|
msgstr "Forbind"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Ny"
|
msgstr "Ny"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Konfigurér"
|
msgstr "Konfigurér"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Start spil / Forbind"
|
msgstr "Start spil / Forbind"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Vælg verden:"
|
msgstr "Vælg verden:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Kreativ tilstand"
|
msgstr "Kreativ tilstand"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Aktivér skade"
|
msgstr "Aktivér skade"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Vis offentlig"
|
msgstr "Vis offentlig"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Gammelt kodeord"
|
msgstr "Gammelt kodeord"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "\"Smarte\" træer"
|
msgstr "\"Smarte\" træer"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Glat belysning"
|
msgstr "Glat belysning"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3D skyer"
|
msgstr "3D skyer"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Opakt (uigennemsigtigt) vand"
|
msgstr "Opakt (uigennemsigtigt) vand"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "Mip-mapping"
|
msgstr "Mip-mapping"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Anisotropisk filtréring"
|
msgstr "Anisotropisk filtréring"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Bi-lineær filtréring"
|
msgstr "Bi-lineær filtréring"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Tri-lineær filtréring"
|
msgstr "Tri-lineær filtréring"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Shadere"
|
msgstr "Shadere"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "For-indlæs elementernes grafik"
|
msgstr "For-indlæs elementernes grafik"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Aktivér partikler"
|
msgstr "Aktivér partikler"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Skift bindinger"
|
msgstr "Skift bindinger"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Afspil"
|
msgstr "Afspil"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Enligspiller"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Indstillinger"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Skabt af"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -309,114 +317,133 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
#, fuzzy
|
msgid "Local install"
|
||||||
msgid "Download"
|
msgstr ""
|
||||||
msgstr "Ned"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
#, fuzzy
|
msgid "Uninstall selected modpack"
|
||||||
msgid "Depends:"
|
msgstr ""
|
||||||
msgstr "afhænger af:"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Accepter"
|
msgstr "Accepter"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Vælg verden:"
|
msgstr "Vælg verden:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Spil"
|
msgstr "Spil"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "afhænger af:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Gem"
|
msgstr "Gem"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Aktivér alle"
|
msgstr "Aktivér alle"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Deaktivér alle"
|
msgstr "Deaktivér alle"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "aktiveret"
|
msgstr "aktiveret"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Aktivér alle"
|
msgstr "Aktivér alle"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Vælg verden:"
|
msgstr "Vælg verden:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "Mislykkedes i at initialisere verden"
|
msgstr "Mislykkedes i at initialisere verden"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -432,47 +459,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -488,12 +519,8 @@ msgstr "Du døde."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Genopstå"
|
msgstr "Genopstå"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr "Venstre klik: flyt alle enheder. Højre klik: flyt en enkelt enhed"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Fortsæt"
|
msgstr "Fortsæt"
|
||||||
|
|
||||||
|
@ -513,99 +540,99 @@ msgstr ""
|
||||||
"Tryk på \"hop\" hurtigt to gange for at skifte frem og tilbage mellem flyve-"
|
"Tryk på \"hop\" hurtigt to gange for at skifte frem og tilbage mellem flyve-"
|
||||||
"tilstand"
|
"tilstand"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "Tast allerede i brug"
|
msgstr "Tast allerede i brug"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "Tryk på en tast"
|
msgstr "Tryk på en tast"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Fremad"
|
msgstr "Fremad"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Baglæns"
|
msgstr "Baglæns"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Venstre"
|
msgstr "Venstre"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Højre"
|
msgstr "Højre"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Brug"
|
msgstr "Brug"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Hop"
|
msgstr "Hop"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Snige"
|
msgstr "Snige"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Slip"
|
msgstr "Slip"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Beholdning"
|
msgstr "Beholdning"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Snak"
|
msgstr "Snak"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Kommando"
|
msgstr "Kommando"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Konsol"
|
msgstr "Konsol"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Omstil flyvning"
|
msgstr "Omstil flyvning"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Omstil hurtig"
|
msgstr "Omstil hurtig"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "Omstil fylde"
|
msgstr "Omstil fylde"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "Afstands vælg"
|
msgstr "Afstands vælg"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "Udskriv stakke"
|
msgstr "Udskriv stakke"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Gammelt kodeord"
|
msgstr "Gammelt kodeord"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Nyt kodeord"
|
msgstr "Nyt kodeord"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Bekræft kodeord"
|
msgstr "Bekræft kodeord"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Skift"
|
msgstr "Skift"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Kodeordene er ikke ens!"
|
msgstr "Kodeordene er ikke ens!"
|
||||||
|
|
||||||
|
@ -644,11 +671,11 @@ msgid ""
|
||||||
"- T: chat\n"
|
"- T: chat\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -943,77 +970,46 @@ msgstr "PA1"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "Zoom"
|
msgstr "Zoom"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Hovedmenu"
|
msgstr "Hovedmenu"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "Ingen verden valgt og ingen adresse angivet. Ingen opgave at lave."
|
msgstr "Ingen verden valgt og ingen adresse angivet. Ingen opgave at lave."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Kunne ikke finde eller indlæse spil \""
|
msgstr "Kunne ikke finde eller indlæse spil \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "Ugyldig spilspecifikationer."
|
msgstr "Ugyldig spilspecifikationer."
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Forbindelses fejl (udløbelse af tidsfrist?)"
|
msgstr "Forbindelses fejl (udløbelse af tidsfrist?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "er påkrævet af:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Advarsel: nogle modifikationer er endnu ikke konfigureret.\n"
|
||||||
|
#~ "De vil blive aktiveret som standard når du gemmer konfigurationen. "
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgid ""
|
||||||
#~ msgstr "Konfiguration gemt. "
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
#~ "Their setting will be removed when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Advarsel: nogle konfigurerede modifikationer mangler.\n"
|
||||||
|
#~ "Deres indstillinger vil blive fjernet når du gemmer konfigurationen. "
|
||||||
|
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
#~ msgid "Delete map"
|
||||||
#~ msgstr "Advarsel: konfigurationen er ikke sammenhængende. "
|
#~ msgstr "Slet mappen"
|
||||||
|
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "Kan ikke skabe verden: navnet indeholder ugyldige bogstaver"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Flerspiller"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Avanceret"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Vis offentlig"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Vis favoritter"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Lad adresse-feltet være tomt for at starte en lokal server."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Skab verden"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "Adresse påkrævet."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Kan ikke slette verden: ingenting valgt"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "Filer som slettes"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Kan ikke skabe verden: ingen spil fundet"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "Kan ikke konfigurere verden: ingenting valgt"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "Mislykkedes i at slette alle verdenens filer"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Default Controls:\n"
|
#~ "Default Controls:\n"
|
||||||
|
@ -1040,19 +1036,57 @@ msgstr "Forbindelses fejl (udløbelse af tidsfrist?)"
|
||||||
#~ "- ESC: denne menu\n"
|
#~ "- ESC: denne menu\n"
|
||||||
#~ "- T: snak\n"
|
#~ "- T: snak\n"
|
||||||
|
|
||||||
#~ msgid "Delete map"
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ msgstr "Slet mappen"
|
#~ msgstr "Mislykkedes i at slette alle verdenens filer"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ msgstr "Kan ikke konfigurere verden: ingenting valgt"
|
||||||
#~ "Their setting will be removed when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Advarsel: nogle konfigurerede modifikationer mangler.\n"
|
|
||||||
#~ "Deres indstillinger vil blive fjernet når du gemmer konfigurationen. "
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot create world: No games found"
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "Kan ikke skabe verden: ingen spil fundet"
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
#~ msgid "Files to be deleted"
|
||||||
#~ "Advarsel: nogle modifikationer er endnu ikke konfigureret.\n"
|
#~ msgstr "Filer som slettes"
|
||||||
#~ "De vil blive aktiveret som standard når du gemmer konfigurationen. "
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "Kan ikke slette verden: ingenting valgt"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "Adresse påkrævet."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Skab verden"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Lad adresse-feltet være tomt for at starte en lokal server."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Vis favoritter"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Vis offentlig"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Avanceret"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Flerspiller"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "Kan ikke skabe verden: navnet indeholder ugyldige bogstaver"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Advarsel: konfigurationen er ikke sammenhængende. "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Konfiguration gemt. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "er påkrævet af:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr "Venstre klik: flyt alle enheder. Højre klik: flyt en enkelt enhed"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Ned"
|
||||||
|
|
|
@ -7,9 +7,9 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.0\n"
|
"Project-Id-Version: 0.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-09-06 21:24+0200\n"
|
"PO-Revision-Date: 2013-09-09 18:31+0200\n"
|
||||||
"Last-Translator: Block Men <nmuelll@web.de>\n"
|
"Last-Translator: Pilz Adam <PilzAdam@gmx.de>\n"
|
||||||
"Language-Team: Deutsch <>\n"
|
"Language-Team: Deutsch <>\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -22,12 +22,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Spielname"
|
msgstr "Spielname"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Erstellen"
|
msgstr "Erstellen"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
|
@ -39,35 +39,35 @@ msgstr "Gamemgr: Kann mod \"$1\" nicht in Spiel \"$2\" kopieren"
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr "SPIELE"
|
msgstr "SPIELE"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Spiele"
|
msgstr "Spiele"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr "Mods:"
|
msgstr "Mods:"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr "Spiel ändern"
|
msgstr "Spiel ändern"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr "neues Spiel"
|
msgstr "neues Spiel"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr "SPIEL ÄNDERN"
|
msgstr "SPIEL ÄNDERN"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr "Ausgewählte Mod löschen"
|
msgstr "Ausgewählte Mod löschen"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr "<<-- Mod hinzufügen"
|
msgstr "<<-- Mod hinzufügen"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "Ok"
|
msgstr "Ok"
|
||||||
|
|
||||||
|
@ -75,223 +75,231 @@ msgstr "Ok"
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Weltname"
|
msgstr "Weltname"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr "Weltgenerator"
|
msgstr "Weltgenerator"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Spiel"
|
msgstr "Spiel"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Welt \"$1\" löschen?"
|
msgstr "Welt \"$1\" löschen?"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nein"
|
msgstr "Nein"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "Eine Welt namens \"$1\" existiert bereits"
|
msgstr "Eine Welt namens \"$1\" existiert bereits"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr "Keine Weltname gegeben oder kein Spiel ausgewählt"
|
msgstr "Keine Weltname gegeben oder kein Spiel ausgewählt"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Einzelspieler"
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Client"
|
|
||||||
msgstr "Client"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
|
||||||
msgid "Server"
|
|
||||||
msgstr "Server"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Einstellungen"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr "Texturen Pakete"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr "Mods"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Credits"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr "CLIENT"
|
msgstr "CLIENT"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Favoriten:"
|
msgstr "Favoriten:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "Adresse / Port"
|
msgstr "Adresse / Port"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Name/Passwort"
|
msgstr "Name/Passwort"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr "Öffentliche Serverliste"
|
msgstr "Öffentliche Serverliste"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Entfernen"
|
msgstr "Entfernen"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Verbinden"
|
msgstr "Verbinden"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Neu"
|
msgstr "Neu"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Konfigurieren"
|
msgstr "Konfigurieren"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Spiel starten"
|
msgstr "Spiel starten"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Welt wählen:"
|
msgstr "Welt wählen:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr "SERVER STARTEN"
|
msgstr "SERVER STARTEN"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Kreativitätsmodus"
|
msgstr "Kreativitätsmodus"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Schaden einschalten"
|
msgstr "Schaden einschalten"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Öffentlich"
|
msgstr "Öffentlich"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Passwort"
|
msgstr "Passwort"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr "Server Port"
|
msgstr "Server Port"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr "EINSTELLUNGEN"
|
msgstr "EINSTELLUNGEN"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "Schöne Bäume"
|
msgstr "Schöne Bäume"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Besseres Licht"
|
msgstr "Besseres Licht"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3D Wolken"
|
msgstr "3D Wolken"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Undurchs. Wasser"
|
msgstr "Undurchs. Wasser"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "Mip-Mapping"
|
msgstr "Mip-Mapping"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Anisotroper Filter"
|
msgstr "Anisotroper Filter"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Bi-Linearer Filter"
|
msgstr "Bi-Linearer Filter"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Tri-Linearer Filter"
|
msgstr "Tri-Linearer Filter"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Shader"
|
msgstr "Shader"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "Lade Inventarbilder vor"
|
msgstr "Lade Inventarbilder vor"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Aktiviere Partikel"
|
msgstr "Aktiviere Partikel"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr "Endliches Wasser"
|
msgstr "Endliches Wasser"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Tasten ändern"
|
msgstr "Tasten ändern"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Spielen"
|
msgstr "Spielen"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr "EINZELSPIELER"
|
msgstr "EINZELSPIELER"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr "Texturen Paket auswählen:"
|
msgstr "Texturen Paket auswählen:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr "TEXTUREN PAKETE"
|
msgstr "TEXTUREN PAKETE"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr "Keine Informationen vorhanden"
|
msgstr "Keine Informationen vorhanden"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr "Core Entwickler"
|
msgstr "Core Entwickler"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr "Aktive Mitwirkende"
|
msgstr "Aktive Mitwirkende"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr "Frühere Mitwirkende"
|
msgstr "Frühere Mitwirkende"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Einzelspieler"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr "Client"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr "Server"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr "Texturen Pakete"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr "Mods"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Credits"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr "MODS"
|
msgstr "MODS"
|
||||||
|
@ -300,75 +308,100 @@ msgstr "MODS"
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr "Installierte Mods:"
|
msgstr "Installierte Mods:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
#, fuzzy
|
||||||
msgstr "Installieren"
|
msgid "Add mod:"
|
||||||
|
msgstr "<<-- Mod hinzufügen"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
msgid "Download"
|
#, fuzzy
|
||||||
msgstr "Runterladen"
|
msgid "Local install"
|
||||||
|
msgstr "Installieren"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
#, fuzzy
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr "Keine Informationen vorhanden"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr "Keine Informationen vorhanden"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Umbenennen"
|
msgstr "Umbenennen"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
msgid "Depends:"
|
msgid "Uninstall selected modpack"
|
||||||
msgstr "Abhängig von:"
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr "Ausgewählte Mod löschen"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr "Modpack umbenennen:"
|
msgstr "Modpack umbenennen:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Annehmen"
|
msgstr "Annehmen"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Welt:"
|
msgstr "Welt:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Spiel verstecken"
|
msgstr "Spiel verstecken"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr "MP mods verstecken"
|
msgstr "MP mods verstecken"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr "Mod:"
|
msgstr "Mod:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "Abhängig von:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "MP aktivieren"
|
msgstr "MP aktivieren"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "MP deaktivieren"
|
msgstr "MP deaktivieren"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "Aktiviert"
|
msgstr "Aktiviert"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Alle an"
|
msgstr "Alle an"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Mod Datei auswählen:"
|
msgstr "Mod Datei auswählen:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr "Mod installieren: Datei: \"$1\""
|
msgstr "Mod installieren: Datei: \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
|
@ -376,31 +409,31 @@ msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Mod installieren: Nicht unterstützter Dateityp \"$1\""
|
"Mod installieren: Nicht unterstützter Dateityp \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "Fehler beim installieren von $1 zu $2"
|
msgstr "Fehler beim installieren von $1 zu $2"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr "Mod installieren: Kann keinen Ordnernamen für Modpack $1 finden"
|
msgstr "Mod installieren: Kann keinen Ordnernamen für Modpack $1 finden"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr "Mod installieren: Kann echten Namen für $1 nicht finden"
|
msgstr "Mod installieren: Kann echten Namen für $1 nicht finden"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr "Modmgr: Fehler beim löschen von \"$1\""
|
msgstr "Modmgr: Fehler beim löschen von \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr "Modmgr: Unzulässiger Modpfad \"$1\""
|
msgstr "Modmgr: Unzulässiger Modpfad \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr "\"$1\" wirklich löschen?"
|
msgstr "\"$1\" wirklich löschen?"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr "Nein, natürlich nicht!"
|
msgstr "Nein, natürlich nicht!"
|
||||||
|
|
||||||
|
@ -416,47 +449,51 @@ msgstr "Bewertung"
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr "erneut installieren"
|
msgstr "erneut installieren"
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr "Installieren"
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr "Inventarbilder..."
|
msgstr "Inventarbilder..."
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr "Lädt..."
|
msgstr "Lädt..."
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr "Erstelle Server..."
|
msgstr "Erstelle Server..."
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr "Erstelle Client..."
|
msgstr "Erstelle Client..."
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr "Löse Adresse auf..."
|
msgstr "Löse Adresse auf..."
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr "Verbinde zum Server..."
|
msgstr "Verbinde zum Server..."
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr "Item Definitionen..."
|
msgstr "Item Definitionen..."
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr "Node Definitionen..."
|
msgstr "Node Definitionen..."
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr "Medien..."
|
msgstr "Medien..."
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr "Herunterfahren..."
|
msgstr "Herunterfahren..."
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -472,12 +509,8 @@ msgstr "Sie sind gestorben."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Wiederbeleben"
|
msgstr "Wiederbeleben"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr "Linksklick: Alle Items bewegen, Rechtsklick: Einzelnes Item bewegen"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Fortsetzen"
|
msgstr "Fortsetzen"
|
||||||
|
|
||||||
|
@ -493,99 +526,99 @@ msgstr "\"Benutzen\" = herunterklettern"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "Doppelt \"springen\" zum fliegen"
|
msgstr "Doppelt \"springen\" zum fliegen"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "Taste bereits in Benutzung"
|
msgstr "Taste bereits in Benutzung"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "Taste drücken"
|
msgstr "Taste drücken"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Vorwärts"
|
msgstr "Vorwärts"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Rückwärts"
|
msgstr "Rückwärts"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Links"
|
msgstr "Links"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Rechts"
|
msgstr "Rechts"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Benutzen"
|
msgstr "Benutzen"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Springen"
|
msgstr "Springen"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Schleichen"
|
msgstr "Schleichen"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Wegwerfen"
|
msgstr "Wegwerfen"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Inventar"
|
msgstr "Inventar"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Chat"
|
msgstr "Chat"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Befehl"
|
msgstr "Befehl"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Konsole"
|
msgstr "Konsole"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Fliegen umsch."
|
msgstr "Fliegen umsch."
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Speed umsch."
|
msgstr "Speed umsch."
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "Noclip umsch."
|
msgstr "Noclip umsch."
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "Entfernung wählen"
|
msgstr "Entfernung wählen"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "Stack ausgeben"
|
msgstr "Stack ausgeben"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Altes Passwort"
|
msgstr "Altes Passwort"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Neues Passwort"
|
msgstr "Neues Passwort"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Passwort wiederholen"
|
msgstr "Passwort wiederholen"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Ändern"
|
msgstr "Ändern"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Passwörter passen nicht zusammen!"
|
msgstr "Passwörter passen nicht zusammen!"
|
||||||
|
|
||||||
|
@ -635,11 +668,11 @@ msgstr ""
|
||||||
"- Mausrad: Item auswählen\n"
|
"- Mausrad: Item auswählen\n"
|
||||||
"- T: Chat\n"
|
"- T: Chat\n"
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr "Sound Lautstärke: "
|
msgstr "Sound Lautstärke: "
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
|
@ -931,77 +964,50 @@ msgstr "PA1"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "Zoom"
|
msgstr "Zoom"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr "no"
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Hauptmenü"
|
msgstr "Hauptmenü"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "Keine Welt ausgewählt und keine Adresse angegeben. Nichts zu tun."
|
msgstr "Keine Welt ausgewählt und keine Adresse angegeben. Nichts zu tun."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Kann Spiel nicht finden/laden \""
|
msgstr "Kann Spiel nicht finden/laden \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "Invalide Spielspezif."
|
msgstr "Invalide Spielspezif."
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Verbindungsfehler (Zeitüberschreitung?)"
|
msgstr "Verbindungsfehler (Zeitüberschreitung?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "wird benötigt von:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Warnung: Einige Mods sind noch nicht konfiguriert.\n"
|
||||||
|
#~ "Sie werden aktiviert wenn die Konfiguration gespeichert wird. "
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgid ""
|
||||||
#~ msgstr "Konfiguration gespeichert. "
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
#~ "Their setting will be removed when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Warnung: Einige konfigurierte Mods fehlen.\n"
|
||||||
|
#~ "Mod Einstellungen werden gelöscht wenn die Konfiguration gespeichert "
|
||||||
|
#~ "wird. "
|
||||||
|
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
#~ msgid "KEYBINDINGS"
|
||||||
#~ msgstr "Warnung: Konfiguration nicht konsistent. "
|
#~ msgstr "TASTEN EINST."
|
||||||
|
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
#~ msgid "Delete map"
|
||||||
#~ msgstr "Kann Welt nicht erstellen: Name enthält ungültige Zeichen"
|
#~ msgstr "Karte löschen"
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Mehrspieler"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Erweitert"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Zeige öffentliche"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Zeige Favoriten"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Lasse die Adresse frei um einen eigenen Server zu starten."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Welt erstellen"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "Adresse benötigt."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Kann Welt nicht löchen: Nichts ausgewählt"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "Zu löschende Dateien"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Kann Welt nicht erstellen: Keine Spiele gefunden"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "Kann Welt nicht konfigurieren: Nichts ausgewählt"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "Es konnten nicht alle Welt Dateien gelöscht werden"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Default Controls:\n"
|
#~ "Default Controls:\n"
|
||||||
|
@ -1027,23 +1033,56 @@ msgstr "Verbindungsfehler (Zeitüberschreitung?)"
|
||||||
#~ "- I: Inventar\n"
|
#~ "- I: Inventar\n"
|
||||||
#~ "- T: Chat\n"
|
#~ "- T: Chat\n"
|
||||||
|
|
||||||
#~ msgid "Delete map"
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ msgstr "Karte löschen"
|
#~ msgstr "Es konnten nicht alle Welt Dateien gelöscht werden"
|
||||||
|
|
||||||
#~ msgid "KEYBINDINGS"
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ msgstr "TASTEN EINST."
|
#~ msgstr "Kann Welt nicht konfigurieren: Nichts ausgewählt"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot create world: No games found"
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ msgstr "Kann Welt nicht erstellen: Keine Spiele gefunden"
|
||||||
#~ "Their setting will be removed when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Warnung: Einige konfigurierte Mods fehlen.\n"
|
|
||||||
#~ "Mod Einstellungen werden gelöscht wenn die Konfiguration gespeichert "
|
|
||||||
#~ "wird. "
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Files to be deleted"
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "Zu löschende Dateien"
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
#~ "Warnung: Einige Mods sind noch nicht konfiguriert.\n"
|
#~ msgstr "Kann Welt nicht löchen: Nichts ausgewählt"
|
||||||
#~ "Sie werden aktiviert wenn die Konfiguration gespeichert wird. "
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "Adresse benötigt."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Welt erstellen"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Lasse die Adresse frei um einen eigenen Server zu starten."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Zeige Favoriten"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Zeige öffentliche"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Erweitert"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Mehrspieler"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "Kann Welt nicht erstellen: Name enthält ungültige Zeichen"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Warnung: Konfiguration nicht konsistent. "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Konfiguration gespeichert. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "wird benötigt von:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr "Linksklick: Alle Items bewegen, Rechtsklick: Einzelnes Item bewegen"
|
||||||
|
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Runterladen"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-06-21 15:47+0200\n"
|
"PO-Revision-Date: 2013-06-21 15:47+0200\n"
|
||||||
"Last-Translator: sfan5 <sfan5@live.de>\n"
|
"Last-Translator: sfan5 <sfan5@live.de>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -23,12 +23,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Mäng"
|
msgstr "Mäng"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Loo"
|
msgstr "Loo"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Tühista"
|
msgstr "Tühista"
|
||||||
|
|
||||||
|
@ -40,36 +40,36 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Mäng"
|
msgstr "Mäng"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -77,230 +77,238 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Maailma nimi"
|
msgstr "Maailma nimi"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Mäng"
|
msgstr "Mäng"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Kustuta maailm"
|
msgstr "Kustuta maailm"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Jah"
|
msgstr "Jah"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Ei"
|
msgstr "Ei"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "Maailma loomine ebaõnnestus: Samanimeline maailm on juba olemas"
|
msgstr "Maailma loomine ebaõnnestus: Samanimeline maailm on juba olemas"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Üksikmäng"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Sätted"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Tänuavaldused"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Lemmikud:"
|
msgstr "Lemmikud:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "IP/Port"
|
msgstr "IP/Port"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Nimi/Parool"
|
msgstr "Nimi/Parool"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr "Avatud serverite nimekiri:"
|
msgstr "Avatud serverite nimekiri:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Kustuta"
|
msgstr "Kustuta"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Liitu"
|
msgstr "Liitu"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Uus"
|
msgstr "Uus"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Konfigureeri"
|
msgstr "Konfigureeri"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Alusta mängu / Liitu"
|
msgstr "Alusta mängu / Liitu"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Vali maailm:"
|
msgstr "Vali maailm:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Kujunduslik mängumood"
|
msgstr "Kujunduslik mängumood"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Lülita valu sisse"
|
msgstr "Lülita valu sisse"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Avalik"
|
msgstr "Avalik"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Vana parool"
|
msgstr "Vana parool"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "Uhked puud"
|
msgstr "Uhked puud"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Ilus valgustus"
|
msgstr "Ilus valgustus"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3D pilved"
|
msgstr "3D pilved"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Läbipaistmatu vesi"
|
msgstr "Läbipaistmatu vesi"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "Väga hea kvaliteet"
|
msgstr "Väga hea kvaliteet"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Anisotroopne Filtreerimine"
|
msgstr "Anisotroopne Filtreerimine"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Bi-lineaarsed Filtreerimine"
|
msgstr "Bi-lineaarsed Filtreerimine"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Tri-Linear Filtreerimine"
|
msgstr "Tri-Linear Filtreerimine"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Varjutajad"
|
msgstr "Varjutajad"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "Lae asjade visuaale"
|
msgstr "Lae asjade visuaale"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Lülita osakesed sisse"
|
msgstr "Lülita osakesed sisse"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr "Löppev vedelik"
|
msgstr "Löppev vedelik"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Vaheta nuppe"
|
msgstr "Vaheta nuppe"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Mängi"
|
msgstr "Mängi"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Üksikmäng"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Sätted"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Tänuavaldused"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -309,114 +317,133 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
#, fuzzy
|
msgid "Local install"
|
||||||
msgid "Download"
|
msgstr ""
|
||||||
msgstr "Alla"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
#, fuzzy
|
msgid "Uninstall selected modpack"
|
||||||
msgid "Depends:"
|
msgstr ""
|
||||||
msgstr "Vajab:"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Nõustu"
|
msgstr "Nõustu"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Vali maailm:"
|
msgstr "Vali maailm:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Mäng"
|
msgstr "Mäng"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "Vajab:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Salvesta"
|
msgstr "Salvesta"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Lülita kõik sisse"
|
msgstr "Lülita kõik sisse"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Lülita kõik välja"
|
msgstr "Lülita kõik välja"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "Sisse lülitatud"
|
msgstr "Sisse lülitatud"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Lülita kõik sisse"
|
msgstr "Lülita kõik sisse"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Vali maailm:"
|
msgstr "Vali maailm:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "Maailma initsialiseerimine ebaõnnestus"
|
msgstr "Maailma initsialiseerimine ebaõnnestus"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -432,47 +459,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -488,13 +519,8 @@ msgstr "Sa surid."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Ärka ellu"
|
msgstr "Ärka ellu"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr ""
|
|
||||||
"Vasak hiireklõps: Liiguta kõiki asju, Parem hiireklõps: Liiguta üksikut asja"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Jätka"
|
msgstr "Jätka"
|
||||||
|
|
||||||
|
@ -512,99 +538,99 @@ msgstr "\"Tegevus\" = Roni alla"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "Topeltklõpsa \"Hüppamist\" et sisse lülitada lendamine"
|
msgstr "Topeltklõpsa \"Hüppamist\" et sisse lülitada lendamine"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "Nupp juba kasutuses"
|
msgstr "Nupp juba kasutuses"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "Vajuta nuppu"
|
msgstr "Vajuta nuppu"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Edasi"
|
msgstr "Edasi"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Tagasi"
|
msgstr "Tagasi"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Vasakule"
|
msgstr "Vasakule"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Paremale"
|
msgstr "Paremale"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Tegevus"
|
msgstr "Tegevus"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Hüppamine"
|
msgstr "Hüppamine"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Hiilimine"
|
msgstr "Hiilimine"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Viska maha"
|
msgstr "Viska maha"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Seljakott"
|
msgstr "Seljakott"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Jututuba"
|
msgstr "Jututuba"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Käsklus"
|
msgstr "Käsklus"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Konsool"
|
msgstr "Konsool"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Lülita lendamine sisse"
|
msgstr "Lülita lendamine sisse"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Lülita kiirus sisse"
|
msgstr "Lülita kiirus sisse"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "Lülita läbi seinte minek sisse"
|
msgstr "Lülita läbi seinte minek sisse"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "Kauguse valik"
|
msgstr "Kauguse valik"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "Prindi kogused"
|
msgstr "Prindi kogused"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Vana parool"
|
msgstr "Vana parool"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Uus parool"
|
msgstr "Uus parool"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Kinnita parooli"
|
msgstr "Kinnita parooli"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Muuda"
|
msgstr "Muuda"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Paroolid ei ole samad!"
|
msgstr "Paroolid ei ole samad!"
|
||||||
|
|
||||||
|
@ -643,11 +669,11 @@ msgid ""
|
||||||
"- T: chat\n"
|
"- T: chat\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr "Hääle Volüüm: "
|
msgstr "Hääle Volüüm: "
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Välju"
|
msgstr "Välju"
|
||||||
|
|
||||||
|
@ -939,77 +965,43 @@ msgstr "PA1"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "Suumi"
|
msgstr "Suumi"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Menüü"
|
msgstr "Menüü"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "Pole valitud ei maailma ega IP aadressi. Pole midagi teha."
|
msgstr "Pole valitud ei maailma ega IP aadressi. Pole midagi teha."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Ei leia ega suuda jätkata mängu \""
|
msgstr "Ei leia ega suuda jätkata mängu \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "Vale mängu ID."
|
msgstr "Vale mängu ID."
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Ühenduse viga (Aeg otsas?)"
|
msgstr "Ühenduse viga (Aeg otsas?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "Seda vajavad:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Hoiatus: Mõned modifikatsioonid pole sätitud veel.\n"
|
||||||
|
#~ "Need lülitatakse sisse kohe pärast sätete salvestamist."
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgid ""
|
||||||
#~ msgstr "Konfiguratsioon salvestatud. "
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
#~ "Their setting will be removed when you save the configuration. "
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
#~ msgstr ""
|
||||||
#~ msgstr "Hoiatus: Konfiguratsioon pole kindel."
|
#~ "Hoiatus: Mõned konfigureeritud modifikatsioonid on kaotsi läinud.\n"
|
||||||
|
#~ "Nende sätted kustutatakse kui salvestada konfiguratsioon."
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "Maailma loomine ebaõnnestus: Nimes esineb keelatud tähti"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Mitmikmäng"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Arenenud sätted"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Näita avalikke"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Näita lemmikuid"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Jäta IP lahter tühjaks et alustada LAN serverit."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Loo maailm"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "IP on vajalkik."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Maailma kustutamine ebaõnnestus: Maailma pole valitud"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "Failid mida kustutada"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Maailma loomine ebaõnnestus: Mängu ei leitud"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "Maailma konfigureerimine ebaõnnestus: Pole midagi valitud"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "Kõigi maailma failide kustutamine ebaõnnestus"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Default Controls:\n"
|
#~ "Default Controls:\n"
|
||||||
|
@ -1036,16 +1028,59 @@ msgstr "Ühenduse viga (Aeg otsas?)"
|
||||||
#~ "- ESC: Menüü\n"
|
#~ "- ESC: Menüü\n"
|
||||||
#~ "- T: Jututupa\n"
|
#~ "- T: Jututupa\n"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ msgstr "Kõigi maailma failide kustutamine ebaõnnestus"
|
||||||
#~ "Their setting will be removed when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Hoiatus: Mõned konfigureeritud modifikatsioonid on kaotsi läinud.\n"
|
|
||||||
#~ "Nende sätted kustutatakse kui salvestada konfiguratsioon."
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "Maailma konfigureerimine ebaõnnestus: Pole midagi valitud"
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
|
#~ msgid "Cannot create world: No games found"
|
||||||
|
#~ msgstr "Maailma loomine ebaõnnestus: Mängu ei leitud"
|
||||||
|
|
||||||
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "Failid mida kustutada"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "Maailma kustutamine ebaõnnestus: Maailma pole valitud"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "IP on vajalkik."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Loo maailm"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Jäta IP lahter tühjaks et alustada LAN serverit."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Näita lemmikuid"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Näita avalikke"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Arenenud sätted"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Mitmikmäng"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "Maailma loomine ebaõnnestus: Nimes esineb keelatud tähti"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Hoiatus: Konfiguratsioon pole kindel."
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Konfiguratsioon salvestatud. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "Seda vajavad:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Hoiatus: Mõned modifikatsioonid pole sätitud veel.\n"
|
#~ "Vasak hiireklõps: Liiguta kõiki asju, Parem hiireklõps: Liiguta üksikut "
|
||||||
#~ "Need lülitatakse sisse kohe pärast sätete salvestamist."
|
#~ "asja"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Alla"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-08-11 03:05+0200\n"
|
"PO-Revision-Date: 2013-08-11 03:05+0200\n"
|
||||||
"Last-Translator: Sasikaa Lacikaa <sasikaa@gmail.com>\n"
|
"Last-Translator: Sasikaa Lacikaa <sasikaa@gmail.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -23,12 +23,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Játék"
|
msgstr "Játék"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Létrehozás"
|
msgstr "Létrehozás"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Mégse"
|
msgstr "Mégse"
|
||||||
|
|
||||||
|
@ -40,36 +40,36 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Játék"
|
msgstr "Játék"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -77,230 +77,238 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Világ neve"
|
msgstr "Világ neve"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Játék"
|
msgstr "Játék"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Világ törlése"
|
msgstr "Világ törlése"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Igen"
|
msgstr "Igen"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nem"
|
msgstr "Nem"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "Nem sikerült a viág létrehozása: A világ neve már használva van"
|
msgstr "Nem sikerült a viág létrehozása: A világ neve már használva van"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Egyjátékos mód"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Beállítások"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Stáblista"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Kedvencek:"
|
msgstr "Kedvencek:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "Cím/Port"
|
msgstr "Cím/Port"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Név/jelszó"
|
msgstr "Név/jelszó"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr "Publikus Szerver Lista:"
|
msgstr "Publikus Szerver Lista:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Törlés"
|
msgstr "Törlés"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Csatlakozás"
|
msgstr "Csatlakozás"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Új"
|
msgstr "Új"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Beállítás"
|
msgstr "Beállítás"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Játék indítása / Csatlakozás"
|
msgstr "Játék indítása / Csatlakozás"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Világ kiválasztása:"
|
msgstr "Világ kiválasztása:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Kreatív mód"
|
msgstr "Kreatív mód"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Sérülés engedélyezése"
|
msgstr "Sérülés engedélyezése"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Publikus"
|
msgstr "Publikus"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Régi jelszó"
|
msgstr "Régi jelszó"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "Szép fák"
|
msgstr "Szép fák"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Simított megvilágítás"
|
msgstr "Simított megvilágítás"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3D Felhők"
|
msgstr "3D Felhők"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Átlátszó víz"
|
msgstr "Átlátszó víz"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "Mip-mapping"
|
msgstr "Mip-mapping"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Anzisztrópikus szűrés"
|
msgstr "Anzisztrópikus szűrés"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Bi-Linear Szűrés"
|
msgstr "Bi-Linear Szűrés"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Tri-Linear Szűrés"
|
msgstr "Tri-Linear Szűrés"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Shaderek"
|
msgstr "Shaderek"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "Előretöltött tárgy láthatóság"
|
msgstr "Előretöltött tárgy láthatóság"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Részecskék engedélyezése"
|
msgstr "Részecskék engedélyezése"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr "Végtelen folyadék"
|
msgstr "Végtelen folyadék"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Gomb választása"
|
msgstr "Gomb választása"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Játék"
|
msgstr "Játék"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Egyjátékos mód"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Beállítások"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Stáblista"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -309,114 +317,133 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
#, fuzzy
|
msgid "Local install"
|
||||||
msgid "Download"
|
msgstr ""
|
||||||
msgstr "Le"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
#, fuzzy
|
msgid "Uninstall selected modpack"
|
||||||
msgid "Depends:"
|
msgstr ""
|
||||||
msgstr "Attól függ:"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Elfogadva"
|
msgstr "Elfogadva"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Világ kiválasztása:"
|
msgstr "Világ kiválasztása:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Játék"
|
msgstr "Játék"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "Attól függ:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Mentés"
|
msgstr "Mentés"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Összes engedélyezve"
|
msgstr "Összes engedélyezve"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Összes tiltva"
|
msgstr "Összes tiltva"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "Engedélyezve"
|
msgstr "Engedélyezve"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Összes engedélyezve"
|
msgstr "Összes engedélyezve"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Világ kiválasztása:"
|
msgstr "Világ kiválasztása:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "A világ betöltése közben hiba"
|
msgstr "A világ betöltése közben hiba"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -432,47 +459,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr "Tárgy textúrák..."
|
msgstr "Tárgy textúrák..."
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr "Betöltés..."
|
msgstr "Betöltés..."
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr "Szerver létrehozása..."
|
msgstr "Szerver létrehozása..."
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr "Kliens létrehozása..."
|
msgstr "Kliens létrehozása..."
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr "Cím létrehozása..."
|
msgstr "Cím létrehozása..."
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr "Csatlakozás a szerverhez..."
|
msgstr "Csatlakozás a szerverhez..."
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr "Dolog leállítása..."
|
msgstr "Dolog leállítása..."
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -486,12 +517,8 @@ msgstr "Meghaltál."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Újra éledés"
|
msgstr "Újra éledés"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr "Ball gomb: Tárgyak mozgatása, Jobb gomb: egy tárgyat mozgat"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Elfogadva"
|
msgstr "Elfogadva"
|
||||||
|
|
||||||
|
@ -509,99 +536,99 @@ msgstr "\"Használat\" = Lemászás"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "Duplán nyomd meg az \"ugrás\" gombot ahhoz hogy repülj"
|
msgstr "Duplán nyomd meg az \"ugrás\" gombot ahhoz hogy repülj"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "A gomb már használatban van"
|
msgstr "A gomb már használatban van"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "Nyomj meg egy gombot"
|
msgstr "Nyomj meg egy gombot"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Vissza"
|
msgstr "Vissza"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Előre"
|
msgstr "Előre"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Bal"
|
msgstr "Bal"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Jobb"
|
msgstr "Jobb"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Használni"
|
msgstr "Használni"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Ugrás"
|
msgstr "Ugrás"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Lopakodás"
|
msgstr "Lopakodás"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Dobás"
|
msgstr "Dobás"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Invertory"
|
msgstr "Invertory"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Beszélgetés"
|
msgstr "Beszélgetés"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Parancs"
|
msgstr "Parancs"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Konzol"
|
msgstr "Konzol"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Repülés bekapcsolása"
|
msgstr "Repülés bekapcsolása"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Gyorsaság bekapcsolása"
|
msgstr "Gyorsaság bekapcsolása"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "váltás noclip-re"
|
msgstr "váltás noclip-re"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "Távolság választása"
|
msgstr "Távolság választása"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "Stacks nyomtatása"
|
msgstr "Stacks nyomtatása"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Régi jelszó"
|
msgstr "Régi jelszó"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Új jelszó"
|
msgstr "Új jelszó"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Jelszó visszaigazolás"
|
msgstr "Jelszó visszaigazolás"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Változtat"
|
msgstr "Változtat"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Nem eggyeznek a jelszavak!"
|
msgstr "Nem eggyeznek a jelszavak!"
|
||||||
|
|
||||||
|
@ -651,11 +678,11 @@ msgstr ""
|
||||||
"- Egér görgő: Tárgyak kiválasztása\n"
|
"- Egér görgő: Tárgyak kiválasztása\n"
|
||||||
"- T: Beszélgetés\n"
|
"- T: Beszélgetés\n"
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr "Hangerő: "
|
msgstr "Hangerő: "
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Kilépés"
|
msgstr "Kilépés"
|
||||||
|
|
||||||
|
@ -947,74 +974,81 @@ msgstr "PA11"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "Nagyítás"
|
msgstr "Nagyítás"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Fő menü"
|
msgstr "Fő menü"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "Nincs kiválasztott világ, nincs cím. Nincs mit tenni."
|
msgstr "Nincs kiválasztott világ, nincs cím. Nincs mit tenni."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Nem található, vagy nem betöltött játék \""
|
msgstr "Nem található, vagy nem betöltött játék \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "Nem valós játék spec."
|
msgstr "Nem valós játék spec."
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Csatlakozási hiba (Idő lejárt?)"
|
msgstr "Csatlakozási hiba (Idő lejárt?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ msgstr "kell neki:"
|
#~ msgstr "Hiba az összes világ törlése közben"
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
|
||||||
#~ msgstr "Beállítások mentve. "
|
|
||||||
|
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
|
||||||
#~ msgstr "Figyelem: A beállítások nem egyformák. "
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "Nem sikerült a világ létrehozása: A névben nem jó karakterek vannak"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Többjátékos mód"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Haladó"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Publikus mutatása"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Kedvencek mutatása"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Hagyd el a nevét, hogy helyi szervert indíts."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Világ létrehozása"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "Cím szükséges."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Nem törölhető a világ: Nincs kiválasztva"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "A fájl törölve lett"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Nem sikerült a világot létrehozni: Nem található a játék"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ msgstr "Nem sikerült a világ beállítása: Nincs kiválasztva"
|
#~ msgstr "Nem sikerült a világ beállítása: Nincs kiválasztva"
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
#~ msgid "Cannot create world: No games found"
|
||||||
#~ msgstr "Hiba az összes világ törlése közben"
|
#~ msgstr "Nem sikerült a világot létrehozni: Nem található a játék"
|
||||||
|
|
||||||
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "A fájl törölve lett"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "Nem törölhető a világ: Nincs kiválasztva"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "Cím szükséges."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Világ létrehozása"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Hagyd el a nevét, hogy helyi szervert indíts."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Kedvencek mutatása"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Publikus mutatása"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Haladó"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Többjátékos mód"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "Nem sikerült a világ létrehozása: A névben nem jó karakterek vannak"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Figyelem: A beállítások nem egyformák. "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Beállítások mentve. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "kell neki:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr "Ball gomb: Tárgyak mozgatása, Jobb gomb: egy tárgyat mozgat"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Le"
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-03-30 20:50+0200\n"
|
"PO-Revision-Date: 2013-03-30 20:50+0200\n"
|
||||||
"Last-Translator: Fabio Luongo <e249260@rmqkr.net>\n"
|
"Last-Translator: Fabio Luongo <e249260@rmqkr.net>\n"
|
||||||
"Language-Team: Italian\n"
|
"Language-Team: Italian\n"
|
||||||
|
@ -23,12 +23,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Gioco"
|
msgstr "Gioco"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Crea"
|
msgstr "Crea"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annulla"
|
msgstr "Annulla"
|
||||||
|
|
||||||
|
@ -40,36 +40,36 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Gioco"
|
msgstr "Gioco"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -77,230 +77,238 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Nome mondo"
|
msgstr "Nome mondo"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Gioco"
|
msgstr "Gioco"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Cancella il mondo"
|
msgstr "Cancella il mondo"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Sì"
|
msgstr "Sì"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "No"
|
msgstr "No"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "Impossibile creare il mondo: un mondo con questo nome già esiste"
|
msgstr "Impossibile creare il mondo: un mondo con questo nome già esiste"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Giocatore singolo"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Opzioni"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Crediti"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Mostra preferiti"
|
msgstr "Mostra preferiti"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "Indirizzo/Porta"
|
msgstr "Indirizzo/Porta"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Nome/Password"
|
msgstr "Nome/Password"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Cancella"
|
msgstr "Cancella"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Connetti"
|
msgstr "Connetti"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Nuovo"
|
msgstr "Nuovo"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Configura"
|
msgstr "Configura"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Avvia gioco/Connetti"
|
msgstr "Avvia gioco/Connetti"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Seleziona mondo:"
|
msgstr "Seleziona mondo:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Modalità creativa"
|
msgstr "Modalità creativa"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Attiva danno"
|
msgstr "Attiva danno"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Lista server pubblici"
|
msgstr "Lista server pubblici"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Vecchia password"
|
msgstr "Vecchia password"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "Alberi migliori"
|
msgstr "Alberi migliori"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Luce uniforme"
|
msgstr "Luce uniforme"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "Nuvole 3D"
|
msgstr "Nuvole 3D"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Acqua opaca"
|
msgstr "Acqua opaca"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "Mipmapping"
|
msgstr "Mipmapping"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Filtro anisotropico"
|
msgstr "Filtro anisotropico"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Filtro bilineare"
|
msgstr "Filtro bilineare"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Filtro trilineare"
|
msgstr "Filtro trilineare"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Shader"
|
msgstr "Shader"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "Pre-carica le immagini degli oggetti"
|
msgstr "Pre-carica le immagini degli oggetti"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Attiva particelle"
|
msgstr "Attiva particelle"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Modifica tasti"
|
msgstr "Modifica tasti"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Gioca"
|
msgstr "Gioca"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Giocatore singolo"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Opzioni"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Crediti"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -309,114 +317,133 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
#, fuzzy
|
msgid "Local install"
|
||||||
msgid "Download"
|
msgstr ""
|
||||||
msgstr "Giù"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
#, fuzzy
|
msgid "Uninstall selected modpack"
|
||||||
msgid "Depends:"
|
msgstr ""
|
||||||
msgstr "dipende da:"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Accetta"
|
msgstr "Accetta"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Seleziona mondo:"
|
msgstr "Seleziona mondo:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Gioco"
|
msgstr "Gioco"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "dipende da:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Salva"
|
msgstr "Salva"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Attiva tutto"
|
msgstr "Attiva tutto"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Disabilita tutto"
|
msgstr "Disabilita tutto"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "attivato"
|
msgstr "attivato"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Attiva tutto"
|
msgstr "Attiva tutto"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Seleziona mondo:"
|
msgstr "Seleziona mondo:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "Fallimento nell'inizializzare il mondo"
|
msgstr "Fallimento nell'inizializzare il mondo"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -432,47 +459,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -488,13 +519,8 @@ msgstr "Sei morto."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Ricomincia"
|
msgstr "Ricomincia"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr ""
|
|
||||||
"Click sinistro: muovi tutti gli oggetti; click destro: muovi un solo oggetto"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Procedi"
|
msgstr "Procedi"
|
||||||
|
|
||||||
|
@ -512,99 +538,99 @@ msgstr "\"Usa\" = scendi sotto"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "Premi due volte \"salto\" per volare"
|
msgstr "Premi due volte \"salto\" per volare"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "Tasto già usato"
|
msgstr "Tasto già usato"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "premi il tasto"
|
msgstr "premi il tasto"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Avanti"
|
msgstr "Avanti"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Indietro"
|
msgstr "Indietro"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Sinistra"
|
msgstr "Sinistra"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Destra"
|
msgstr "Destra"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Usa"
|
msgstr "Usa"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Salta"
|
msgstr "Salta"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Abbassati"
|
msgstr "Abbassati"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Lancia"
|
msgstr "Lancia"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Inventario"
|
msgstr "Inventario"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Parla"
|
msgstr "Parla"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Comando"
|
msgstr "Comando"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Console"
|
msgstr "Console"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Attiva volo"
|
msgstr "Attiva volo"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Aumenta velocità"
|
msgstr "Aumenta velocità"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "(Non) attraversi blocchi"
|
msgstr "(Non) attraversi blocchi"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "Distanza di rendering"
|
msgstr "Distanza di rendering"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "Stampa stack"
|
msgstr "Stampa stack"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Vecchia password"
|
msgstr "Vecchia password"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Nuova password"
|
msgstr "Nuova password"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Conferma password"
|
msgstr "Conferma password"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Modifica"
|
msgstr "Modifica"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Le password non corrispondono!"
|
msgstr "Le password non corrispondono!"
|
||||||
|
|
||||||
|
@ -643,11 +669,11 @@ msgid ""
|
||||||
"- T: chat\n"
|
"- T: chat\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -939,77 +965,47 @@ msgstr ""
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Menu principale"
|
msgstr "Menu principale"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "Nessun mondo selezionato e nessun indirizzo fornito. Niente da fare."
|
msgstr "Nessun mondo selezionato e nessun indirizzo fornito. Niente da fare."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Impossibile trovare o caricare il gioco \""
|
msgstr "Impossibile trovare o caricare il gioco \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "Specifiche di gioco non valide."
|
msgstr "Specifiche di gioco non valide."
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Errore connessione (tempo scaduto?)"
|
msgstr "Errore connessione (tempo scaduto?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "è richiesto da:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Attenzione: alcune mod non sono ancora configurate.\n"
|
||||||
|
#~ "Saranno abilitate di default quando salverai la configurazione. "
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgid ""
|
||||||
#~ msgstr "Configurazione salvata. "
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
#~ "Their setting will be removed when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Attenzione: mancano alcune mod configurate.\n"
|
||||||
|
#~ "Le loro impostazioni saranno rimosse al salvataggio della "
|
||||||
|
#~ "configurazione. "
|
||||||
|
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
#~ msgid "Delete map"
|
||||||
#~ msgstr "Attenzione: configurazione non corretta. "
|
#~ msgstr "Cancella mappa"
|
||||||
|
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "Impossibile creare il mondo: il nome contiene caratteri non validi"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Multigiocatore"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Avanzato"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Lista server pubblici"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Mostra preferiti"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Lascia vuoto l'indirizzo per avviare un server locale."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Crea mondo"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "Indirizzo necessario."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Impossibile eliminare il mondo: nessun mondo selezionato"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "File da eliminarsi"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Impossibile creare il mondo: nessun gioco trovato"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "Impossibile configurare il mondo: nessun mondo selezionato"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "Eliminazione di tutti i file del mondo fallita"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Default Controls:\n"
|
#~ "Default Controls:\n"
|
||||||
|
@ -1036,20 +1032,59 @@ msgstr "Errore connessione (tempo scaduto?)"
|
||||||
#~ "- ESC: questo menu\n"
|
#~ "- ESC: questo menu\n"
|
||||||
#~ "- T: chat\n"
|
#~ "- T: chat\n"
|
||||||
|
|
||||||
#~ msgid "Delete map"
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ msgstr "Cancella mappa"
|
#~ msgstr "Eliminazione di tutti i file del mondo fallita"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ msgstr "Impossibile configurare il mondo: nessun mondo selezionato"
|
||||||
#~ "Their setting will be removed when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Attenzione: mancano alcune mod configurate.\n"
|
|
||||||
#~ "Le loro impostazioni saranno rimosse al salvataggio della "
|
|
||||||
#~ "configurazione. "
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot create world: No games found"
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "Impossibile creare il mondo: nessun gioco trovato"
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "File da eliminarsi"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "Impossibile eliminare il mondo: nessun mondo selezionato"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "Indirizzo necessario."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Crea mondo"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Lascia vuoto l'indirizzo per avviare un server locale."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Mostra preferiti"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Lista server pubblici"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Avanzato"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Multigiocatore"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "Impossibile creare il mondo: il nome contiene caratteri non validi"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Attenzione: configurazione non corretta. "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Configurazione salvata. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "è richiesto da:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Attenzione: alcune mod non sono ancora configurate.\n"
|
#~ "Click sinistro: muovi tutti gli oggetti; click destro: muovi un solo "
|
||||||
#~ "Saranno abilitate di default quando salverai la configurazione. "
|
#~ "oggetto"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Giù"
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-03-07 23:06+0200\n"
|
"PO-Revision-Date: 2013-03-07 23:06+0200\n"
|
||||||
"Last-Translator: Mitori Itoshiki <mito551@gmail.com>\n"
|
"Last-Translator: Mitori Itoshiki <mito551@gmail.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -23,12 +23,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "ゲーム"
|
msgstr "ゲーム"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "作成"
|
msgstr "作成"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "キャンセル"
|
msgstr "キャンセル"
|
||||||
|
|
||||||
|
@ -40,36 +40,36 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "ゲーム"
|
msgstr "ゲーム"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -77,231 +77,239 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "ワールド名"
|
msgstr "ワールド名"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "ゲーム"
|
msgstr "ゲーム"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "ワールド削除"
|
msgstr "ワールド削除"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "はい"
|
msgstr "はい"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "いいえ"
|
msgstr "いいえ"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "ワールドを作成できません: 同名のワールドが既に存在しています"
|
msgstr "ワールドを作成できません: 同名のワールドが既に存在しています"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "シングルプレイヤー"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "設定"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "クレジット"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "お気に入りを見せる"
|
msgstr "お気に入りを見せる"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "アドレス/ポート"
|
msgstr "アドレス/ポート"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "名前/パスワード"
|
msgstr "名前/パスワード"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "削除"
|
msgstr "削除"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "接続"
|
msgstr "接続"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "新規作成"
|
msgstr "新規作成"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "設定"
|
msgstr "設定"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "ゲーム開始 / 接続"
|
msgstr "ゲーム開始 / 接続"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "ワールド選択:"
|
msgstr "ワールド選択:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "クリエイティブモード"
|
msgstr "クリエイティブモード"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "ダメージ有効"
|
msgstr "ダメージ有効"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "公共を見せる"
|
msgstr "公共を見せる"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "古いパスワード"
|
msgstr "古いパスワード"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "きれいな木"
|
msgstr "きれいな木"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "自然な光表現"
|
msgstr "自然な光表現"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3Dの雲"
|
msgstr "3Dの雲"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "不透明な水面"
|
msgstr "不透明な水面"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "ミップマップ"
|
msgstr "ミップマップ"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "異方性フィルタリング"
|
msgstr "異方性フィルタリング"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "バイリニアフィルタリング"
|
msgstr "バイリニアフィルタリング"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "トリリニアフィルタリング"
|
msgstr "トリリニアフィルタリング"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "シェーダー"
|
msgstr "シェーダー"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "アイテム外観のプリロード"
|
msgstr "アイテム外観のプリロード"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "破片表現の有効化"
|
msgstr "破片表現の有効化"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "キー割当て変更"
|
msgstr "キー割当て変更"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "選択した世界に入る"
|
msgstr "選択した世界に入る"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "シングルプレイヤー"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "設定"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "クレジット"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -310,115 +318,134 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
#, fuzzy
|
msgid "Local install"
|
||||||
msgid "Download"
|
msgstr ""
|
||||||
msgstr "Down"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
#, fuzzy
|
msgid "Uninstall selected modpack"
|
||||||
msgid "Depends:"
|
msgstr ""
|
||||||
msgstr "この改造ファイルが必要です:"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Accept"
|
msgstr "Accept"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "ワールド選択:"
|
msgstr "ワールド選択:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "ゲーム"
|
msgstr "ゲーム"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "この改造ファイルが必要です:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "保存"
|
msgstr "保存"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "全部を有効にしました"
|
msgstr "全部を有効にしました"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "全部を無効にしました"
|
msgstr "全部を無効にしました"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "有効にしました"
|
msgstr "有効にしました"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "全部を有効にしました"
|
msgstr "全部を有効にしました"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "ワールド選択:"
|
msgstr "ワールド選択:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "ワールドの初期化に失敗"
|
msgstr "ワールドの初期化に失敗"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -434,47 +461,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -488,12 +519,8 @@ msgstr "死亡しました。"
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "リスポーン"
|
msgstr "リスポーン"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr "左クリックは全部のアイテムを動かす,右クリックは一つのアイテムを動かす"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "続く"
|
msgstr "続く"
|
||||||
|
|
||||||
|
@ -509,99 +536,99 @@ msgstr "「使う」は下りる"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "「ジャンプ」を二回押すと飛べる"
|
msgstr "「ジャンプ」を二回押すと飛べる"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "既に使われているキーです"
|
msgstr "既に使われているキーです"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "キー入力待ち"
|
msgstr "キー入力待ち"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "前進"
|
msgstr "前進"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "後退"
|
msgstr "後退"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "左へ進む"
|
msgstr "左へ進む"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "右へ進む"
|
msgstr "右へ進む"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "使う"
|
msgstr "使う"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "ジャンプ"
|
msgstr "ジャンプ"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "こっそり進む"
|
msgstr "こっそり進む"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "落とす"
|
msgstr "落とす"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "インベントリ"
|
msgstr "インベントリ"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "チャット"
|
msgstr "チャット"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "コマンド"
|
msgstr "コマンド"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "コンソール"
|
msgstr "コンソール"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "飛べるモードをトグル"
|
msgstr "飛べるモードをトグル"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "ファストモードをトグル"
|
msgstr "ファストモードをトグル"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "ノクリップモードをトグル"
|
msgstr "ノクリップモードをトグル"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "範囲選択"
|
msgstr "範囲選択"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "スタックの表示"
|
msgstr "スタックの表示"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "古いパスワード"
|
msgstr "古いパスワード"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "新しいパスワード"
|
msgstr "新しいパスワード"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "パスワードの確認"
|
msgstr "パスワードの確認"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "変更"
|
msgstr "変更"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "新しいパスワードが一致しません!"
|
msgstr "新しいパスワードが一致しません!"
|
||||||
|
|
||||||
|
@ -640,11 +667,11 @@ msgid ""
|
||||||
"- T: chat\n"
|
"- T: chat\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -971,77 +998,36 @@ msgstr "PA1"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "ズーム"
|
msgstr "ズーム"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr "yes"
|
msgstr "yes"
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "メインメニュー"
|
msgstr "メインメニュー"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "ゲームをロードか見つかるのに失敗"
|
msgstr "ゲームをロードか見つかるのに失敗"
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "接続エラー (タイムアウトか?)"
|
msgstr "接続エラー (タイムアウトか?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "この改造に必要されます:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgstr ""
|
||||||
#~ msgstr "設定を保存しました. "
|
#~ "警告: マインテストの改造がいくつか設定されていません。\n"
|
||||||
|
#~ "これらを設定を保存すると自動で有効化されます。 "
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
|
||||||
#~ msgstr "注意:設定が一定でわありません。"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "ワールドを作成できません: 名前に無効な文字が含まれています"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "マルチプレイヤー"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "高度"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "公共を見せる"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "お気に入りを見せる"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "アドレスを入力しないかぎりロカルサーバーを開始。"
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "ワールド作成"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "アドレスが必要です."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "ワールドを削除できません: 何も選択されていません"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "削除されるファイル"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "ワールドを作成できません: ゲームが見つかりませんでした"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "ワールドの設定ができません: 何も選択されていません"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "ワールドファイルの全ての削除に失敗"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
@ -1050,9 +1036,58 @@ msgstr "接続エラー (タイムアウトか?)"
|
||||||
#~ "警告: いくつかの設定みの改造ファイルが見つかりません.\n"
|
#~ "警告: いくつかの設定みの改造ファイルが見つかりません.\n"
|
||||||
#~ "これらの情報は設定を保存すると削除されます. "
|
#~ "これらの情報は設定を保存すると削除されます. "
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "ワールドファイルの全ての削除に失敗"
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
|
#~ msgstr "ワールドの設定ができません: 何も選択されていません"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: No games found"
|
||||||
|
#~ msgstr "ワールドを作成できません: ゲームが見つかりませんでした"
|
||||||
|
|
||||||
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "削除されるファイル"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "ワールドを削除できません: 何も選択されていません"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "アドレスが必要です."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "ワールド作成"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "アドレスを入力しないかぎりロカルサーバーを開始。"
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "お気に入りを見せる"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "公共を見せる"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "高度"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "マルチプレイヤー"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "ワールドを作成できません: 名前に無効な文字が含まれています"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "注意:設定が一定でわありません。"
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "設定を保存しました. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "この改造に必要されます:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "警告: マインテストの改造がいくつか設定されていません。\n"
|
#~ "左クリックは全部のアイテムを動かす,右クリックは一つのアイテムを動かす"
|
||||||
#~ "これらを設定を保存すると自動で有効化されます。 "
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Down"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -21,12 +21,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -38,35 +38,35 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -74,223 +74,231 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -299,105 +307,125 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
msgid "Download"
|
msgid "Local install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
msgid "Depends:"
|
msgid "Uninstall selected modpack"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -413,47 +441,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -467,12 +499,8 @@ msgstr ""
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -488,99 +516,99 @@ msgstr ""
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -619,11 +647,11 @@ msgid ""
|
||||||
"- T: chat\n"
|
"- T: chat\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -915,26 +943,26 @@ msgstr ""
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr "yes"
|
msgstr "yes"
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-06-01 18:09+0200\n"
|
"PO-Revision-Date: 2013-06-01 18:09+0200\n"
|
||||||
"Last-Translator: Chynggyz Jumaliev <translatorky@lavabit.com>\n"
|
"Last-Translator: Chynggyz Jumaliev <translatorky@lavabit.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -23,12 +23,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Оюн"
|
msgstr "Оюн"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Жаратуу"
|
msgstr "Жаратуу"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Жокко чыгаруу"
|
msgstr "Жокко чыгаруу"
|
||||||
|
|
||||||
|
@ -40,36 +40,36 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Оюн"
|
msgstr "Оюн"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -77,229 +77,237 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Дүйнө аты"
|
msgstr "Дүйнө аты"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Оюн"
|
msgstr "Оюн"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Дүйнөнү өчүрүү"
|
msgstr "Дүйнөнү өчүрүү"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ооба"
|
msgstr "Ооба"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Жок"
|
msgstr "Жок"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Бир кишилик"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Ырастоолор"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Алкыштар"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Тандалмалар:"
|
msgstr "Тандалмалар:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "Дареги/порту"
|
msgstr "Дареги/порту"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Аты/сырсөзү"
|
msgstr "Аты/сырсөзү"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr "Жалпылык серверлердин тизмеси:"
|
msgstr "Жалпылык серверлердин тизмеси:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Өчүрүү"
|
msgstr "Өчүрүү"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Туташуу"
|
msgstr "Туташуу"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Жаңы"
|
msgstr "Жаңы"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Ырастоо"
|
msgstr "Ырастоо"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Оюнду баштоо/туташуу"
|
msgstr "Оюнду баштоо/туташуу"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Дүйнөнү тандаңыз:"
|
msgstr "Дүйнөнү тандаңыз:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Жаратуу режими"
|
msgstr "Жаратуу режими"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Убалды күйгүзүү"
|
msgstr "Убалды күйгүзүү"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Жалпылык"
|
msgstr "Жалпылык"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Эски сырсөз"
|
msgstr "Эски сырсөз"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "Кооз бактар"
|
msgstr "Кооз бактар"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Тегиз жарык"
|
msgstr "Тегиз жарык"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3D-булуттар"
|
msgstr "3D-булуттар"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Күңүрт суу"
|
msgstr "Күңүрт суу"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "Mip-текстуралоо"
|
msgstr "Mip-текстуралоо"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Анизатропия чыпкалоосу"
|
msgstr "Анизатропия чыпкалоосу"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Экисызык чыпкалоосу"
|
msgstr "Экисызык чыпкалоосу"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Үчсызык чыпкалоосу"
|
msgstr "Үчсызык чыпкалоосу"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Көлөкөлөгүчтөр"
|
msgstr "Көлөкөлөгүчтөр"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Бөлүкчөлөрдү күйгүзүү"
|
msgstr "Бөлүкчөлөрдү күйгүзүү"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr "Чектүү суюктук"
|
msgstr "Чектүү суюктук"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Баскычтарды өзгөртүү"
|
msgstr "Баскычтарды өзгөртүү"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Ойноо"
|
msgstr "Ойноо"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Бир кишилик"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Ырастоолор"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Алкыштар"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -308,114 +316,133 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
#, fuzzy
|
msgid "Local install"
|
||||||
msgid "Download"
|
msgstr ""
|
||||||
msgstr "Ылдый"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
#, fuzzy
|
msgid "Uninstall selected modpack"
|
||||||
msgid "Depends:"
|
msgstr ""
|
||||||
msgstr "көз карандылыктары:"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Кабыл алуу"
|
msgstr "Кабыл алуу"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Дүйнөнү тандаңыз:"
|
msgstr "Дүйнөнү тандаңыз:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Оюн"
|
msgstr "Оюн"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "көз карандылыктары:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Сактоо"
|
msgstr "Сактоо"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Баарын күйгүзүү"
|
msgstr "Баарын күйгүзүү"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Баарын өчүрүү"
|
msgstr "Баарын өчүрүү"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "күйгүзүлгөн"
|
msgstr "күйгүзүлгөн"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Баарын күйгүзүү"
|
msgstr "Баарын күйгүзүү"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Дүйнөнү тандаңыз:"
|
msgstr "Дүйнөнү тандаңыз:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "Дүйнөнү инициалдаштыруу катасы"
|
msgstr "Дүйнөнү инициалдаштыруу катасы"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -431,48 +458,52 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr "Буюм текстуралары..."
|
msgstr "Буюм текстуралары..."
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr "Жүктөлүүдө..."
|
msgstr "Жүктөлүүдө..."
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr "Сервер жаратылууда...."
|
msgstr "Сервер жаратылууда...."
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr "Клиент жаратылууда..."
|
msgstr "Клиент жаратылууда..."
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr "Дареги чечилүүдө..."
|
msgstr "Дареги чечилүүдө..."
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr "Серверге туташтырылууда..."
|
msgstr "Серверге туташтырылууда..."
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr "Буюм текстуралары..."
|
msgstr "Буюм текстуралары..."
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr "Оюн өчүрүлүүдө..."
|
msgstr "Оюн өчүрүлүүдө..."
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -488,12 +519,8 @@ msgstr "Сиз өлдүңүз."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Кайтадан жаралуу"
|
msgstr "Кайтадан жаралуу"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr "Сол баскычы: Бардык буюмдарды ташуу, Оң баскычы: Бир буюмду ташуу"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Улантуу"
|
msgstr "Улантуу"
|
||||||
|
|
||||||
|
@ -509,99 +536,99 @@ msgstr ""
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "баскычты басыңыз"
|
msgstr "баскычты басыңыз"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Алга"
|
msgstr "Алга"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Артка"
|
msgstr "Артка"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Солго"
|
msgstr "Солго"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Оңго"
|
msgstr "Оңго"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Колдонуу"
|
msgstr "Колдонуу"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Секирүү"
|
msgstr "Секирүү"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Уурданып басуу"
|
msgstr "Уурданып басуу"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Ыргытуу"
|
msgstr "Ыргытуу"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Мүлк-шайман"
|
msgstr "Мүлк-шайман"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Маек"
|
msgstr "Маек"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Команда"
|
msgstr "Команда"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Консоль"
|
msgstr "Консоль"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Учууга которуу"
|
msgstr "Учууга которуу"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Тез басууга которуу"
|
msgstr "Тез басууга которуу"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Эски сырсөз"
|
msgstr "Эски сырсөз"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Жаңы сырсөз"
|
msgstr "Жаңы сырсөз"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Сырсөздү аныктоо"
|
msgstr "Сырсөздү аныктоо"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Өзгөртүү"
|
msgstr "Өзгөртүү"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Сырсөздөр дал келген жок!"
|
msgstr "Сырсөздөр дал келген жок!"
|
||||||
|
|
||||||
|
@ -651,11 +678,11 @@ msgstr ""
|
||||||
"- Чычкан дөңгөлөгү: буюмду тандоо\n"
|
"- Чычкан дөңгөлөгү: буюмду тандоо\n"
|
||||||
"- T: маек\n"
|
"- T: маек\n"
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr "Үн көлөмү: "
|
msgstr "Үн көлөмү: "
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Чыгуу"
|
msgstr "Чыгуу"
|
||||||
|
|
||||||
|
@ -947,75 +974,30 @@ msgstr ""
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "Масштаб"
|
msgstr "Масштаб"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Башкы меню"
|
msgstr "Башкы меню"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "Дүйнө тандалган жок жана дареги киргизилген жок. Кылууга эч нерсе жок."
|
msgstr "Дүйнө тандалган жок жана дареги киргизилген жок. Кылууга эч нерсе жок."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Оюнду табуу же жүктөө мүмкүн эмес \""
|
msgstr "Оюнду табуу же жүктөө мүмкүн эмес \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Туташтыруу катасы (убактыңыз өтүп кеттиби?)"
|
msgstr "Туташтыруу катасы (убактыңыз өтүп кеттиби?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
|
||||||
#~ msgstr "талап кылынганы:"
|
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
|
||||||
#~ msgstr "Конфигурация сакталды. "
|
|
||||||
|
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
|
||||||
#~ msgstr "Эскертүү: Туура эмес конфигурация. "
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Көп кишилик"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Кошумча"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Жалпылыкты көрсөтүү"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Тандалмаларды көрсөтүү"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Жергиликтүү серверди жүргүзүү үчүн даректи бош калтырыңыз."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Дүйнөнү жаратуу"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "Дареги талап кылынат."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Дүнөнү жаратуу мүмкүн эмес: Эч нерсе тандалган жок"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "Өчүрүлө турган файлдар"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Дүйнөнү жаратуу мүмкүн эмес: Оюндар табылган жок"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "Дүйнөнү ырастоо мүмкүн эмес: Эч нерсе тандалган жок"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "Бардык дүйнө файлдарын өчүрүү оңунан чыккан жок"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Default Controls:\n"
|
#~ "Default Controls:\n"
|
||||||
#~ "- WASD: Walk\n"
|
#~ "- WASD: Walk\n"
|
||||||
|
@ -1040,3 +1022,55 @@ msgstr "Туташтыруу катасы (убактыңыз өтүп кетт
|
||||||
#~ "- I: мүлк-шайман\n"
|
#~ "- I: мүлк-шайман\n"
|
||||||
#~ "- ESC: бул меню\n"
|
#~ "- ESC: бул меню\n"
|
||||||
#~ "- T: маек\n"
|
#~ "- T: маек\n"
|
||||||
|
|
||||||
|
#~ msgid "Failed to delete all world files"
|
||||||
|
#~ msgstr "Бардык дүйнө файлдарын өчүрүү оңунан чыккан жок"
|
||||||
|
|
||||||
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
|
#~ msgstr "Дүйнөнү ырастоо мүмкүн эмес: Эч нерсе тандалган жок"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: No games found"
|
||||||
|
#~ msgstr "Дүйнөнү жаратуу мүмкүн эмес: Оюндар табылган жок"
|
||||||
|
|
||||||
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "Өчүрүлө турган файлдар"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "Дүнөнү жаратуу мүмкүн эмес: Эч нерсе тандалган жок"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "Дареги талап кылынат."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Дүйнөнү жаратуу"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Жергиликтүү серверди жүргүзүү үчүн даректи бош калтырыңыз."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Тандалмаларды көрсөтүү"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Жалпылыкты көрсөтүү"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Кошумча"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Көп кишилик"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Эскертүү: Туура эмес конфигурация. "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Конфигурация сакталды. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "талап кылынганы:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr "Сол баскычы: Бардык буюмдарды ташуу, Оң баскычы: Бир буюмду ташуу"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Ылдый"
|
||||||
|
|
|
@ -0,0 +1,968 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: minetest\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:23
|
||||||
|
msgid "Game Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
|
msgid "Create"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:118
|
||||||
|
msgid "Gamemgr: Unable to copy mod \"$1\" to game \"$2\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:216
|
||||||
|
msgid "GAMES"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
|
msgid "Games"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:234
|
||||||
|
msgid "Mods:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:235
|
||||||
|
msgid "edit game"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:238
|
||||||
|
msgid "new game"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:248
|
||||||
|
msgid "EDIT GAME"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:269
|
||||||
|
msgid "Remove selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/gamemgr.lua:272
|
||||||
|
msgid "<<-- Add mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:158
|
||||||
|
msgid "Ok"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:297
|
||||||
|
msgid "World name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
|
msgid "Mapgen"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:306
|
||||||
|
msgid "Game"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:319
|
||||||
|
msgid "Delete World \"$1\"?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
|
msgid "Yes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:321
|
||||||
|
msgid "No"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:364
|
||||||
|
msgid "A world named \"$1\" already exists"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:381
|
||||||
|
msgid "No worldname given or no game selected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:650
|
||||||
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:818
|
||||||
|
msgid "CLIENT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:819
|
||||||
|
msgid "Favorites:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:820
|
||||||
|
msgid "Address/Port"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:821
|
||||||
|
msgid "Name/Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:824
|
||||||
|
msgid "Public Serverlist"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
|
#: src/keycode.cpp:229
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:833
|
||||||
|
msgid "Connect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
|
msgid "New"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:877
|
||||||
|
msgid "Start Game"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
|
msgid "Select World:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:879
|
||||||
|
msgid "START SERVER"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
|
msgid "Creative Mode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
|
msgid "Enable Damage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:884
|
||||||
|
msgid "Public"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:886
|
||||||
|
msgid "Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:888
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:889
|
||||||
|
msgid "Server Port"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:899
|
||||||
|
msgid "SETTINGS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:900
|
||||||
|
msgid "Fancy trees"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:902
|
||||||
|
msgid "Smooth Lighting"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:904
|
||||||
|
msgid "3D Clouds"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:906
|
||||||
|
msgid "Opaque Water"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:909
|
||||||
|
msgid "Mip-Mapping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:911
|
||||||
|
msgid "Anisotropic Filtering"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:913
|
||||||
|
msgid "Bi-Linear Filtering"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:915
|
||||||
|
msgid "Tri-Linear Filtering"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:918
|
||||||
|
msgid "Shaders"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:920
|
||||||
|
msgid "Preload item visuals"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:922
|
||||||
|
msgid "Enable Particles"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:924
|
||||||
|
msgid "Finite Liquid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:927
|
||||||
|
msgid "Change keys"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
|
msgid "Play"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:942
|
||||||
|
msgid "SINGLE PLAYER"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:955
|
||||||
|
msgid "Select texture pack:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:956
|
||||||
|
msgid "TEXTURE PACKS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:976
|
||||||
|
msgid "No information available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1005
|
||||||
|
msgid "Core Developers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1020
|
||||||
|
msgid "Active Contributors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1028
|
||||||
|
msgid "Previous Contributors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:236
|
||||||
|
msgid "MODS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:237
|
||||||
|
msgid "Installed Mods:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:243
|
||||||
|
msgid "Add mod:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:244
|
||||||
|
msgid "Local install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
|
msgid "Rename"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:301
|
||||||
|
msgid "Uninstall selected modpack"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
|
msgid "Rename Modpack:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
|
msgid "Accept"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:423
|
||||||
|
msgid "World:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
|
msgid "Hide Game"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
|
msgid "Hide mp content"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:442
|
||||||
|
msgid "Mod:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:444
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:464
|
||||||
|
msgid "Enable MP"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:466
|
||||||
|
msgid "Disable MP"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
|
msgid "enabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:478
|
||||||
|
msgid "Enable all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:577
|
||||||
|
msgid "Select Mod File:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:616
|
||||||
|
msgid "Install Mod: file: \"$1\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:617
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:638
|
||||||
|
msgid "Failed to install $1 to $2"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:641
|
||||||
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:661
|
||||||
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:855
|
||||||
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:859
|
||||||
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:876
|
||||||
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:878
|
||||||
|
msgid "No of course not!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modstore.lua:183
|
||||||
|
msgid "Page $1 of $2"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modstore.lua:243
|
||||||
|
msgid "Rating"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modstore.lua:251
|
||||||
|
msgid "re-Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
|
msgid "Item textures..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:940
|
||||||
|
msgid "Loading..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:1000
|
||||||
|
msgid "Creating server...."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:1016
|
||||||
|
msgid "Creating client..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:1025
|
||||||
|
msgid "Resolving address..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:1122
|
||||||
|
msgid "Connecting to server..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:1219
|
||||||
|
msgid "Item definitions..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:1226
|
||||||
|
msgid "Node definitions..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:1233
|
||||||
|
msgid "Media..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:3409
|
||||||
|
msgid "Shutting down stuff..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/game.cpp:3439
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Check debug.txt for details."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiDeathScreen.cpp:96
|
||||||
|
msgid "You died."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiDeathScreen.cpp:104
|
||||||
|
msgid "Respawn"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
|
#: src/guiTextInputMenu.cpp:139
|
||||||
|
msgid "Proceed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:121
|
||||||
|
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:161
|
||||||
|
msgid "\"Use\" = climb down"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:176
|
||||||
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
|
msgid "Key already in use"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
|
msgid "press key"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
|
msgid "Forward"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
|
msgid "Backward"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
|
msgid "Left"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
|
msgid "Right"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
|
msgid "Use"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
|
msgid "Jump"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
|
msgid "Sneak"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
|
msgid "Drop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
|
msgid "Inventory"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
|
msgid "Chat"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
|
msgid "Command"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
|
msgid "Console"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
|
msgid "Toggle fly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
|
msgid "Toggle fast"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
|
msgid "Toggle noclip"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
|
msgid "Range select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
|
msgid "Print stacks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:106
|
||||||
|
msgid "Old Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:122
|
||||||
|
msgid "New Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:137
|
||||||
|
msgid "Confirm Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:153
|
||||||
|
msgid "Change"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPasswordChange.cpp:162
|
||||||
|
msgid "Passwords do not match!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:122
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:133
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:143
|
||||||
|
msgid "Sound Volume"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:152
|
||||||
|
msgid "Exit to Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:161
|
||||||
|
msgid "Exit to OS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiPauseMenu.cpp:170
|
||||||
|
msgid ""
|
||||||
|
"Default Controls:\n"
|
||||||
|
"- WASD: move\n"
|
||||||
|
"- Space: jump/climb\n"
|
||||||
|
"- Shift: sneak/go down\n"
|
||||||
|
"- Q: drop item\n"
|
||||||
|
"- I: inventory\n"
|
||||||
|
"- Mouse: turn/look\n"
|
||||||
|
"- Mouse left: dig/punch\n"
|
||||||
|
"- Mouse right: place/use\n"
|
||||||
|
"- Mouse wheel: select item\n"
|
||||||
|
"- T: chat\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiVolumeChange.cpp:107
|
||||||
|
msgid "Sound Volume: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/guiVolumeChange.cpp:121
|
||||||
|
msgid "Exit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:223
|
||||||
|
msgid "Left Button"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:223
|
||||||
|
msgid "Middle Button"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:223
|
||||||
|
msgid "Right Button"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:223
|
||||||
|
msgid "X Button 1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "Back"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "Clear"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "Return"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "Tab"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:224
|
||||||
|
msgid "X Button 2"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Capital"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Control"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Kana"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:225
|
||||||
|
msgid "Shift"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Convert"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Escape"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Final"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Junja"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Kanji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:226
|
||||||
|
msgid "Nonconvert"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "End"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Home"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Mode Change"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Next"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Prior"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:227
|
||||||
|
msgid "Space"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Down"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Execute"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Print"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:228
|
||||||
|
msgid "Up"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:229
|
||||||
|
msgid "Help"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:229
|
||||||
|
msgid "Insert"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:229
|
||||||
|
msgid "Snapshot"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:232
|
||||||
|
msgid "Left Windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Apps"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Numpad 0"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Numpad 1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Right Windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:233
|
||||||
|
msgid "Sleep"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 2"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 3"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 4"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 5"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 6"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:234
|
||||||
|
msgid "Numpad 7"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad *"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad +"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad -"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad /"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad 8"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:235
|
||||||
|
msgid "Numpad 9"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:239
|
||||||
|
msgid "Num Lock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:239
|
||||||
|
msgid "Scroll Lock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:240
|
||||||
|
msgid "Left Shift"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:240
|
||||||
|
msgid "Right Shift"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:241
|
||||||
|
msgid "Left Control"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:241
|
||||||
|
msgid "Left Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:241
|
||||||
|
msgid "Right Control"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:241
|
||||||
|
msgid "Right Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:243
|
||||||
|
msgid "Comma"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:243
|
||||||
|
msgid "Minus"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:243
|
||||||
|
msgid "Period"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:243
|
||||||
|
msgid "Plus"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:247
|
||||||
|
msgid "Attn"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:247
|
||||||
|
msgid "CrSel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "Erase OEF"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "ExSel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "OEM Clear"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "PA1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/keycode.cpp:248
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main.cpp:1472
|
||||||
|
msgid "needs_fallback_font"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main.cpp:1547
|
||||||
|
msgid "Main Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main.cpp:1723
|
||||||
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main.cpp:1731
|
||||||
|
msgid "Could not find or load game \""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main.cpp:1745
|
||||||
|
msgid "Invalid gamespec."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main.cpp:1790
|
||||||
|
msgid "Connection error (timed out?)"
|
||||||
|
msgstr ""
|
352
po/minetest.pot
352
po/minetest.pot
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -21,12 +21,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -38,35 +38,35 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -74,223 +74,231 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -299,105 +307,125 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
msgid "Download"
|
msgid "Local install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
msgid "Depends:"
|
msgid "Uninstall selected modpack"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -413,47 +441,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -467,12 +499,8 @@ msgstr ""
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -488,99 +516,99 @@ msgstr ""
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -619,11 +647,11 @@ msgid ""
|
||||||
"- T: chat\n"
|
"- T: chat\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -915,26 +943,26 @@ msgstr ""
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-06-21 15:48+0200\n"
|
"PO-Revision-Date: 2013-06-21 15:48+0200\n"
|
||||||
"Last-Translator: sfan5 <sfan5@live.de>\n"
|
"Last-Translator: sfan5 <sfan5@live.de>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -23,12 +23,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Spill"
|
msgstr "Spill"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Opprett"
|
msgstr "Opprett"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Avbryt"
|
msgstr "Avbryt"
|
||||||
|
|
||||||
|
@ -40,36 +40,36 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Spill"
|
msgstr "Spill"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -77,223 +77,231 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Navnet på verdenen"
|
msgstr "Navnet på verdenen"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Spill"
|
msgstr "Spill"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nei"
|
msgstr "Nei"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -302,111 +310,131 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
msgid "Download"
|
msgid "Local install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
#, fuzzy
|
msgid "Uninstall selected modpack"
|
||||||
msgid "Depends:"
|
msgstr ""
|
||||||
msgstr "Avhenger av:"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Navnet på verdenen"
|
msgstr "Navnet på verdenen"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Spill"
|
msgstr "Spill"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "Avhenger av:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Lagre"
|
msgstr "Lagre"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Aktiver Alle"
|
msgstr "Aktiver Alle"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Deaktiver Alle"
|
msgstr "Deaktiver Alle"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "aktivert"
|
msgstr "aktivert"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Aktiver Alle"
|
msgstr "Aktiver Alle"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -422,47 +450,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -476,12 +508,8 @@ msgstr "Du døde."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -497,99 +525,99 @@ msgstr ""
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -628,11 +656,11 @@ msgid ""
|
||||||
"- T: chat\n"
|
"- T: chat\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -924,35 +952,36 @@ msgstr ""
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "trengs av:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgstr ""
|
||||||
#~ msgstr "Konfigurasjon lagret. "
|
#~ "Advarsel: Noen modifikasjoner er ikke konfigurert enda. \n"
|
||||||
|
#~ "De vil bli aktivert som standard når du lagrer konfigurasjonen."
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
@ -961,9 +990,8 @@ msgstr ""
|
||||||
#~ "Advarsel: Noen konfigurerte modifikasjoner mangler. \n"
|
#~ "Advarsel: Noen konfigurerte modifikasjoner mangler. \n"
|
||||||
#~ "Instillingene deres vil bli fjernet når du lagrer konfigurasjonen."
|
#~ "Instillingene deres vil bli fjernet når du lagrer konfigurasjonen."
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Configuration saved. "
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "Konfigurasjon lagret. "
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
#~ msgid "is required by:"
|
||||||
#~ "Advarsel: Noen modifikasjoner er ikke konfigurert enda. \n"
|
#~ msgstr "trengs av:"
|
||||||
#~ "De vil bli aktivert som standard når du lagrer konfigurasjonen."
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-09-05 12:47+0200\n"
|
"PO-Revision-Date: 2013-09-05 12:47+0200\n"
|
||||||
"Last-Translator: Leonardo Costa <k95leo@gmail.com>\n"
|
"Last-Translator: Leonardo Costa <k95leo@gmail.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -22,12 +22,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Nome do Jogo"
|
msgstr "Nome do Jogo"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Criar"
|
msgstr "Criar"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
|
@ -40,35 +40,35 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr "JOGOS"
|
msgstr "JOGOS"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Jogos"
|
msgstr "Jogos"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr "Extras:"
|
msgstr "Extras:"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr "editar jogo"
|
msgstr "editar jogo"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr "novo jogo"
|
msgstr "novo jogo"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr "EDITAR JOGO"
|
msgstr "EDITAR JOGO"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr "Remover extra selecionado"
|
msgstr "Remover extra selecionado"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr "<<-- Adicionar extra"
|
msgstr "<<-- Adicionar extra"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "Ok"
|
msgstr "Ok"
|
||||||
|
|
||||||
|
@ -76,223 +76,231 @@ msgstr "Ok"
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Nome do Mundo"
|
msgstr "Nome do Mundo"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr "Geração de Mapa"
|
msgstr "Geração de Mapa"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Jogo"
|
msgstr "Jogo"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Eliminar Mundo \"$1\"?"
|
msgstr "Eliminar Mundo \"$1\"?"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Sim"
|
msgstr "Sim"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Não"
|
msgstr "Não"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "O mundo com o nome \"$1\" já existe"
|
msgstr "O mundo com o nome \"$1\" já existe"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr "Mundo sem nome ou nenhum jogo selecionado"
|
msgstr "Mundo sem nome ou nenhum jogo selecionado"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Um Jogador"
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Client"
|
|
||||||
msgstr "Cliente"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
|
||||||
msgid "Server"
|
|
||||||
msgstr "Servidor"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Definições"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr "Pacotes de Texturas"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr "Extras"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Créditos"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr "CLIENTE"
|
msgstr "CLIENTE"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Favoritos:"
|
msgstr "Favoritos:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "Endereço/Porta"
|
msgstr "Endereço/Porta"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Nome/Senha"
|
msgstr "Nome/Senha"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr "Lista de Servidores Públicos"
|
msgstr "Lista de Servidores Públicos"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Ligar"
|
msgstr "Ligar"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Novo"
|
msgstr "Novo"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Configurar"
|
msgstr "Configurar"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Jogar"
|
msgstr "Jogar"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Seleccionar Mundo:"
|
msgstr "Seleccionar Mundo:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr "INICIAR SERVIDOR"
|
msgstr "INICIAR SERVIDOR"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Modo Criativo"
|
msgstr "Modo Criativo"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Ativar Dano"
|
msgstr "Ativar Dano"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Público"
|
msgstr "Público"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nome"
|
msgstr "Nome"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Senha"
|
msgstr "Senha"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr "Porta"
|
msgstr "Porta"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr "DEFINIÇÕES"
|
msgstr "DEFINIÇÕES"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "Árvores Melhoradas"
|
msgstr "Árvores Melhoradas"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Iluminação Suave"
|
msgstr "Iluminação Suave"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "Nuvens 3D"
|
msgstr "Nuvens 3D"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Água Opaca"
|
msgstr "Água Opaca"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "Mip-Mapping"
|
msgstr "Mip-Mapping"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Filtro Anisotrópico"
|
msgstr "Filtro Anisotrópico"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Filtro Bi-Linear"
|
msgstr "Filtro Bi-Linear"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Filtro Tri-Linear"
|
msgstr "Filtro Tri-Linear"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Sombras"
|
msgstr "Sombras"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "Pré-carregamento dos itens"
|
msgstr "Pré-carregamento dos itens"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Ativar Partículas"
|
msgstr "Ativar Partículas"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr "Líquido Finito"
|
msgstr "Líquido Finito"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Mudar teclas"
|
msgstr "Mudar teclas"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Jogar"
|
msgstr "Jogar"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr "Um Jogador"
|
msgstr "Um Jogador"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr "Selecione um pacote de texturas:"
|
msgstr "Selecione um pacote de texturas:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr "PACOTES DE TEXTURAS"
|
msgstr "PACOTES DE TEXTURAS"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr "Sem informação"
|
msgstr "Sem informação"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr "Desenvolvedores Chave"
|
msgstr "Desenvolvedores Chave"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr "Contribuintes Ativos"
|
msgstr "Contribuintes Ativos"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr "Antigos Contribuintes"
|
msgstr "Antigos Contribuintes"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Um Jogador"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr "Cliente"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr "Servidor"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Definições"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr "Pacotes de Texturas"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr "Extras"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Créditos"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr "EXTRAS"
|
msgstr "EXTRAS"
|
||||||
|
@ -301,78 +309,103 @@ msgstr "EXTRAS"
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr "Extras Instalados:"
|
msgstr "Extras Instalados:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
#, fuzzy
|
||||||
msgstr "Instalar"
|
msgid "Add mod:"
|
||||||
|
msgstr "<<-- Adicionar extra"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
msgid "Download"
|
#, fuzzy
|
||||||
msgstr "Descarregar"
|
msgid "Local install"
|
||||||
|
msgstr "Instalar"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
#, fuzzy
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr "Sem informação"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr "Sem informação"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Renomear"
|
msgstr "Renomear"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
msgid "Depends:"
|
msgid "Uninstall selected modpack"
|
||||||
msgstr "Depende de:"
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr "Remover extra selecionado"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr "Renomear Pacote de Extras:"
|
msgstr "Renomear Pacote de Extras:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Aceitar"
|
msgstr "Aceitar"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Mundo:"
|
msgstr "Mundo:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Esconder Jogo"
|
msgstr "Esconder Jogo"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr "Extra:"
|
msgstr "Extra:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "Depende de:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Guardar"
|
msgstr "Guardar"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Ativar Tudo"
|
msgstr "Ativar Tudo"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Desativar Tudo"
|
msgstr "Desativar Tudo"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "ativo"
|
msgstr "ativo"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Ativar Tudo"
|
msgstr "Ativar Tudo"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Seleccionar ficheiro de Extra:"
|
msgstr "Seleccionar ficheiro de Extra:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr "Instalar Extra: ficheiro: \"$1\""
|
msgstr "Instalar Extra: ficheiro: \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
|
@ -380,31 +413,31 @@ msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Instalar Extra: tipo de ficheiro desconhecido \"$1\""
|
"Instalar Extra: tipo de ficheiro desconhecido \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "Falha ao instalar de $1 ao $2"
|
msgstr "Falha ao instalar de $1 ao $2"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr "Mensagem de Extra: falhou a eliminação de \"$1\""
|
msgstr "Mensagem de Extra: falhou a eliminação de \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr "Mensagem de extra: caminho inválido \"$1\""
|
msgstr "Mensagem de extra: caminho inválido \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr "Tem a certeza que pertende eliminar \"$1\"?"
|
msgstr "Tem a certeza que pertende eliminar \"$1\"?"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr "Não, é claro que não!"
|
msgstr "Não, é claro que não!"
|
||||||
|
|
||||||
|
@ -420,47 +453,51 @@ msgstr "Classificação"
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr "re-Instalar"
|
msgstr "re-Instalar"
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr "Instalar"
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr "Texturas dos items..."
|
msgstr "Texturas dos items..."
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr "A carregar..."
|
msgstr "A carregar..."
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr "A criar servidor..."
|
msgstr "A criar servidor..."
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr "A criar cliente..."
|
msgstr "A criar cliente..."
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr "A resolver endereço..."
|
msgstr "A resolver endereço..."
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr "A conectar ao servidor..."
|
msgstr "A conectar ao servidor..."
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr "Definições dos Itens..."
|
msgstr "Definições dos Itens..."
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr "Dados..."
|
msgstr "Dados..."
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr "A desligar..."
|
msgstr "A desligar..."
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -476,12 +513,8 @@ msgstr "Morreste."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Reaparecer"
|
msgstr "Reaparecer"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr "Botão esq: Mover todos os itens Botão dir: Mover um item"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Continuar"
|
msgstr "Continuar"
|
||||||
|
|
||||||
|
@ -497,99 +530,99 @@ msgstr "\"Use\" = descer"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "Carregue duas vezes em \"saltar\" para ativar o vôo"
|
msgstr "Carregue duas vezes em \"saltar\" para ativar o vôo"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "Tecla já em uso"
|
msgstr "Tecla já em uso"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "pressione a tecla"
|
msgstr "pressione a tecla"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Avançar"
|
msgstr "Avançar"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Recuar"
|
msgstr "Recuar"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Esquerda"
|
msgstr "Esquerda"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Direita"
|
msgstr "Direita"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Usar"
|
msgstr "Usar"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Saltar"
|
msgstr "Saltar"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Agachar"
|
msgstr "Agachar"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Largar"
|
msgstr "Largar"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Inventário"
|
msgstr "Inventário"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Conversa"
|
msgstr "Conversa"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Comando"
|
msgstr "Comando"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Consola"
|
msgstr "Consola"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Ativar/Desativar vôo"
|
msgstr "Ativar/Desativar vôo"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Ativar/Desativar correr"
|
msgstr "Ativar/Desativar correr"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "Ativar/Desativar noclip"
|
msgstr "Ativar/Desativar noclip"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "Seleccionar Distância"
|
msgstr "Seleccionar Distância"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "Imprimir stacks"
|
msgstr "Imprimir stacks"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Senha antiga"
|
msgstr "Senha antiga"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Senha Nova"
|
msgstr "Senha Nova"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Confirmar Senha"
|
msgstr "Confirmar Senha"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Mudar"
|
msgstr "Mudar"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Senhas não correspondem!"
|
msgstr "Senhas não correspondem!"
|
||||||
|
|
||||||
|
@ -639,11 +672,11 @@ msgstr ""
|
||||||
"- Roda do rato: seleccionar item\n"
|
"- Roda do rato: seleccionar item\n"
|
||||||
"- T: conversação\n"
|
"- T: conversação\n"
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr "Volume do som: "
|
msgstr "Volume do som: "
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Sair"
|
msgstr "Sair"
|
||||||
|
|
||||||
|
@ -935,78 +968,44 @@ msgstr "PAL"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "Zoom"
|
msgstr "Zoom"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Menu Principal"
|
msgstr "Menu Principal"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nenhum mundo seleccionado e nenhum endereço providenciado. Nada para fazer."
|
"Nenhum mundo seleccionado e nenhum endereço providenciado. Nada para fazer."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Não foi possível encontrar ou carregar jogo \""
|
msgstr "Não foi possível encontrar ou carregar jogo \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "gamespec inválido."
|
msgstr "gamespec inválido."
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Erro de conexão (excedeu tempo?)"
|
msgstr "Erro de conexão (excedeu tempo?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "é necessário pelo:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Atenção: Alguns mods ainda não estão configurados.\n"
|
||||||
|
#~ "Eles vão ser ativados por predefinição quando guardar a configuração. "
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgid ""
|
||||||
#~ msgstr "Configuração gravada. "
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
#~ "Their setting will be removed when you save the configuration. "
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
#~ msgstr ""
|
||||||
#~ msgstr "Atenção: Configuração não compatível. "
|
#~ "Atenção: Alguns mods configurados estão em falta.\n"
|
||||||
|
#~ "As suas definições vão ser removidas quando gravar a configuração. "
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "Não foi possível criar mundo: Nome com caracteres inválidos"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Vários jogadores"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Avançado"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Mostrar Públicos"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Mostrar Favoritos"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Deixe endereço em branco para iniciar servidor local."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Criar mundo"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "Endereço necessário."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Não foi possível eliminar mundo: Nada seleccionado"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "Ficheiros para eliminar"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Não foi possível criar mundo: Não foram detectados jogos"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "Não foi possível configurar mundo: Nada seleccionado"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "Falhou a remoção de todos os ficheiros dos mundos"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Default Controls:\n"
|
#~ "Default Controls:\n"
|
||||||
|
@ -1033,16 +1032,56 @@ msgstr "Erro de conexão (excedeu tempo?)"
|
||||||
#~ "- ESC: Este menu\n"
|
#~ "- ESC: Este menu\n"
|
||||||
#~ "- T: Chat\n"
|
#~ "- T: Chat\n"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ msgstr "Falhou a remoção de todos os ficheiros dos mundos"
|
||||||
#~ "Their setting will be removed when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Atenção: Alguns mods configurados estão em falta.\n"
|
|
||||||
#~ "As suas definições vão ser removidas quando gravar a configuração. "
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "Não foi possível configurar mundo: Nada seleccionado"
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
#~ msgid "Cannot create world: No games found"
|
||||||
#~ "Atenção: Alguns mods ainda não estão configurados.\n"
|
#~ msgstr "Não foi possível criar mundo: Não foram detectados jogos"
|
||||||
#~ "Eles vão ser ativados por predefinição quando guardar a configuração. "
|
|
||||||
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "Ficheiros para eliminar"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "Não foi possível eliminar mundo: Nada seleccionado"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "Endereço necessário."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Criar mundo"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Deixe endereço em branco para iniciar servidor local."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Mostrar Favoritos"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Mostrar Públicos"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Avançado"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Vários jogadores"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "Não foi possível criar mundo: Nome com caracteres inválidos"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Atenção: Configuração não compatível. "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Configuração gravada. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "é necessário pelo:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr "Botão esq: Mover todos os itens Botão dir: Mover um item"
|
||||||
|
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Descarregar"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -7,9 +7,9 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-08-30 23:15+0200\n"
|
"PO-Revision-Date: 2013-11-22 11:45+0200\n"
|
||||||
"Last-Translator: Ilya Zhuravlev <zhuravlevilya@ya.ru>\n"
|
"Last-Translator: Anton Tsyganenko <anton-tsyganenko@yandex.ru>\n"
|
||||||
"Language-Team: Russian\n"
|
"Language-Team: Russian\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -23,12 +23,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Название"
|
msgstr "Название"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Создать"
|
msgstr "Создать"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Отменить"
|
msgstr "Отменить"
|
||||||
|
|
||||||
|
@ -40,35 +40,35 @@ msgstr "Gamemgr: Не могу скопировать мод \"$1\" в игру
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr "ИГРЫ"
|
msgstr "ИГРЫ"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Игры"
|
msgstr "Игры"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr "Моды:"
|
msgstr "Моды:"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr "Редактировать"
|
msgstr "Редактировать"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr "Создать игру"
|
msgstr "Создать игру"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr "РЕДАКТИРОВАНИЕ"
|
msgstr "РЕДАКТИРОВАНИЕ"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr "Удалить мод"
|
msgstr "Удалить мод"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr "<<-- Добавить мод"
|
msgstr "<<-- Добавить мод"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "Ok"
|
msgstr "Ok"
|
||||||
|
|
||||||
|
@ -76,223 +76,231 @@ msgstr "Ok"
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Название мира"
|
msgstr "Название мира"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr "Генератор карты"
|
msgstr "Генератор карты"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Игра"
|
msgstr "Игра"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Удалить мир \"$1\"?"
|
msgstr "Удалить мир \"$1\"?"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Да"
|
msgstr "Да"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Нет"
|
msgstr "Нет"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "Мир под названием \"$1\" уже существует"
|
msgstr "Мир под названием \"$1\" уже существует"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr "Не задано имя мира или не выбрана игра"
|
msgstr "Не задано имя мира или не выбрана игра"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Одиночная игра"
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Client"
|
|
||||||
msgstr "Клиент"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
|
||||||
msgid "Server"
|
|
||||||
msgstr "Сервер"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Настройки"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr "Пакеты текстур"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr "Моды"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Благодарности"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr "КЛИЕНТ"
|
msgstr "КЛИЕНТ"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Избранное:"
|
msgstr "Избранное:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "Адрес/Порт"
|
msgstr "Адрес/Порт"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Имя/Пароль"
|
msgstr "Имя/Пароль"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr "Список публичных серверов"
|
msgstr "Список публичных серверов"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Удалить"
|
msgstr "Удалить"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Подключиться"
|
msgstr "Подключиться"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Новый"
|
msgstr "Новый"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Настроить"
|
msgstr "Настроить"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Начать игру"
|
msgstr "Начать игру"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Выберите мир:"
|
msgstr "Выберите мир:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr "СЕРВЕР"
|
msgstr "СЕРВЕР"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Режим создания"
|
msgstr "Режим создания"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Включить урон"
|
msgstr "Включить урон"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Публичные"
|
msgstr "Публичные"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Имя"
|
msgstr "Имя"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Пароль"
|
msgstr "Пароль"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr "Порт"
|
msgstr "Порт"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr "НАСТРОЙКИ"
|
msgstr "НАСТРОЙКИ"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "Красивые деревья"
|
msgstr "Красивые деревья"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Мягкое освещение"
|
msgstr "Мягкое освещение"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3D облака"
|
msgstr "3D облака"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Непрозрачная вода"
|
msgstr "Непрозрачная вода"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "Mip-текстурирование"
|
msgstr "Mip-текстурирование"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Анизотропная фильтрация"
|
msgstr "Анизотропная фильтрация"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Билинейная фильтрация"
|
msgstr "Билинейная фильтрация"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Трилинейная фильтрация"
|
msgstr "Трилинейная фильтрация"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Шейдеры"
|
msgstr "Шейдеры"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "Предзагрузка изображений"
|
msgstr "Предзагрузка изображений"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Включить частицы"
|
msgstr "Включить частицы"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr "Конечные жидкости"
|
msgstr "Конечные жидкости"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Смена управления"
|
msgstr "Смена управления"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Играть"
|
msgstr "Играть"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr "ОДИНОЧНАЯ ИГРА"
|
msgstr "ОДИНОЧНАЯ ИГРА"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr "Выберите пакет текстур:"
|
msgstr "Выберите пакет текстур:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr "ПАКЕТЫ ТЕКСТУР"
|
msgstr "ПАКЕТЫ ТЕКСТУР"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr "Описание отсутствует"
|
msgstr "Описание отсутствует"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr "Основные разработчики"
|
msgstr "Основные разработчики"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr "Активные контрибьюторы"
|
msgstr "Активные контрибьюторы"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr "В отставке"
|
msgstr "В отставке"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Одиночная игра"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr "Клиент"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr "Сервер"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Настройки"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr "Пакеты текстур"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr "Моды"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Благодарности"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr "МОДЫ"
|
msgstr "МОДЫ"
|
||||||
|
@ -301,78 +309,102 @@ msgstr "МОДЫ"
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr "Установленные моды:"
|
msgstr "Установленные моды:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
#, fuzzy
|
||||||
msgstr "Установить"
|
msgid "Add mod:"
|
||||||
|
msgstr "<<-- Добавить мод"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
msgid "Download"
|
#, fuzzy
|
||||||
msgstr "Загрузить"
|
msgid "Local install"
|
||||||
|
msgstr "Установить"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
#, fuzzy
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr "Описание отсутствует"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr "Описание отсутствует"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Переименовать"
|
msgstr "Переименовать"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
msgid "Depends:"
|
msgid "Uninstall selected modpack"
|
||||||
msgstr "Зависит от:"
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr "Удалить мод"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr "Переименовать модпак:"
|
msgstr "Переименовать модпак:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Принять"
|
msgstr "Принять"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Мир:"
|
msgstr "Мир:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Игра"
|
msgstr "Скрыть игру"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr "Скрыть содержимое модпака"
|
msgstr "Скрыть содержимое модпака"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr "Мод:"
|
msgstr "Мод:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "Зависит от:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Сохранить"
|
msgstr "Сохранить"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Включить Всё"
|
msgstr "Включить Всё"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Отключить Всё"
|
msgstr "Отключить Всё"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "включено"
|
msgstr "включено"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Включить всё"
|
msgstr "Включить всё"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Выберите файл с модом:"
|
msgstr "Выберите файл с модом:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr "Установка мода: файл \"$1\""
|
msgstr "Установка мода: файл \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
|
@ -380,32 +412,32 @@ msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Установка мода: неподдерживаемый тип \"$1\""
|
"Установка мода: неподдерживаемый тип \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "Ошибка при установке $1 в $2"
|
msgstr "Ошибка при установке $1 в $2"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Установка мода: невозможно найти подходящее имя директории для модпака $1"
|
"Установка мода: невозможно найти подходящее имя директории для модпака $1"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr "Установка мода: невозможно определить название мода для $1"
|
msgstr "Установка мода: невозможно определить название мода для $1"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr "Modmgr: невозможно удалить \"$1\""
|
msgstr "Modmgr: невозможно удалить \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr "Modmgr: неправильный путь \"$1\""
|
msgstr "Modmgr: неправильный путь \"$1\""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr "Уверены, что хотите удалить \"$1\"?"
|
msgstr "Уверены, что хотите удалить \"$1\"?"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr "Никак нет!"
|
msgstr "Никак нет!"
|
||||||
|
|
||||||
|
@ -421,47 +453,51 @@ msgstr "Рейтинг"
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr "Переустановить"
|
msgstr "Переустановить"
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr "Установить"
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr "Текстуры предметов..."
|
msgstr "Текстуры предметов..."
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr "Загрузка..."
|
msgstr "Загрузка..."
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr "Создание сервера..."
|
msgstr "Создание сервера..."
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr "Создание клиента..."
|
msgstr "Создание клиента..."
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr "Получение адреса..."
|
msgstr "Получение адреса..."
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr "Подключение к серверу..."
|
msgstr "Подключение к серверу..."
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr "Описания предметов..."
|
msgstr "Описания предметов..."
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr "Описания нод..."
|
msgstr "Описания нод..."
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr "Медиафайлы..."
|
msgstr "Медиафайлы..."
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr "Завершение работы..."
|
msgstr "Завершение работы..."
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -477,12 +513,8 @@ msgstr "Вы умерли."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Возродиться"
|
msgstr "Возродиться"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr "ЛКМ: Переместить все предметы, ПКМ: Переместить один предмет"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Продолжить"
|
msgstr "Продолжить"
|
||||||
|
|
||||||
|
@ -500,99 +532,99 @@ msgstr "\"Использовать\" = вниз"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "Двойной прыжок = летать"
|
msgstr "Двойной прыжок = летать"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "Клавиша уже используется"
|
msgstr "Клавиша уже используется"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "нажмите клавишу"
|
msgstr "нажмите клавишу"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Вперед"
|
msgstr "Вперед"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Назад"
|
msgstr "Назад"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Влево"
|
msgstr "Влево"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Вправо"
|
msgstr "Вправо"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Использовать"
|
msgstr "Использовать"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Прыжок"
|
msgstr "Прыжок"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Красться"
|
msgstr "Красться"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Бросить"
|
msgstr "Бросить"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Инвентарь"
|
msgstr "Инвентарь"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Чат"
|
msgstr "Чат"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Команда"
|
msgstr "Команда"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Консоль"
|
msgstr "Консоль"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Полёт"
|
msgstr "Полёт"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Ускорение"
|
msgstr "Ускорение"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "Включить noclip"
|
msgstr "Включить noclip"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "Зона видимости"
|
msgstr "Зона видимости"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "Печать стеков"
|
msgstr "Печать стеков"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Старый пароль"
|
msgstr "Старый пароль"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Новый пароль"
|
msgstr "Новый пароль"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Подтверждение пароля"
|
msgstr "Подтверждение пароля"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Изменить"
|
msgstr "Изменить"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Пароли не совпадают!"
|
msgstr "Пароли не совпадают!"
|
||||||
|
|
||||||
|
@ -642,11 +674,11 @@ msgstr ""
|
||||||
"- Колесико мыши: выбор предмета\n"
|
"- Колесико мыши: выбор предмета\n"
|
||||||
"- T: чат\n"
|
"- T: чат\n"
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr "Громкость звука: "
|
msgstr "Громкость звука: "
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Выход"
|
msgstr "Выход"
|
||||||
|
|
||||||
|
@ -938,77 +970,44 @@ msgstr "PA1"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "Масштаб"
|
msgstr "Масштаб"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Главное меню"
|
msgstr "Главное меню"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "Не выбран мир и не введен адрес."
|
msgstr "Не выбран мир и не введен адрес."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Невозможно найти или загрузить игру \""
|
msgstr "Невозможно найти или загрузить игру \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "Неправильная конфигурация игры."
|
msgstr "Неправильная конфигурация игры."
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Ошибка соединения (таймаут?)"
|
msgstr "Ошибка соединения (таймаут?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "требуется для:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Предупреждение: Некоторые моды еще не настроены.\n"
|
||||||
|
#~ "Их стандартные настройки будут установлены, когда вы сохраните "
|
||||||
|
#~ "конфигурацию. "
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgid ""
|
||||||
#~ msgstr "Настройки сохранены. "
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
#~ "Their setting will be removed when you save the configuration. "
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
#~ msgstr ""
|
||||||
#~ msgstr "Предупреждение: Неверная конфигурация. "
|
#~ "Предупреждение: Некоторые моды не найдены.\n"
|
||||||
|
#~ "Их настройки будут удалены, когда вы сохраните конфигурацию. "
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "Невозможно создать мир: Имя содержит недопустимые символы"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Сетевая игра"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Дополнительно"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Публичные"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Избранные"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Оставьте адрес пустым для запуска локального сервера."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Создать мир"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "Нужно ввести адрес."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Невозможно удалить мир: Ничего не выбрано"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "Следующие файлы будут удалены"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Невозможно создать мир: Ни одной игры не найдено"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "Невозможно настроить мир: ничего не выбрано"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "Ошибка при удалении файлов мира"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Default Controls:\n"
|
#~ "Default Controls:\n"
|
||||||
|
@ -1035,17 +1034,56 @@ msgstr "Ошибка соединения (таймаут?)"
|
||||||
#~ "- ESC: это меню\n"
|
#~ "- ESC: это меню\n"
|
||||||
#~ "- T: чат\n"
|
#~ "- T: чат\n"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ msgstr "Ошибка при удалении файлов мира"
|
||||||
#~ "Their setting will be removed when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Предупреждение: Некоторые моды не найдены.\n"
|
|
||||||
#~ "Их настройки будут удалены, когда вы сохраните конфигурацию. "
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "Невозможно настроить мир: ничего не выбрано"
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
#~ msgid "Cannot create world: No games found"
|
||||||
#~ "Предупреждение: Некоторые моды еще не настроены.\n"
|
#~ msgstr "Невозможно создать мир: Ни одной игры не найдено"
|
||||||
#~ "Их стандартные настройки будут установлены, когда вы сохраните "
|
|
||||||
#~ "конфигурацию. "
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "Следующие файлы будут удалены"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "Невозможно удалить мир: Ничего не выбрано"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "Нужно ввести адрес."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Создать мир"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Оставьте адрес пустым для запуска локального сервера."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Избранные"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Публичные"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Дополнительно"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Сетевая игра"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "Невозможно создать мир: Имя содержит недопустимые символы"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Предупреждение: Неверная конфигурация. "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Настройки сохранены. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "требуется для:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr "ЛКМ: Переместить все предметы, ПКМ: Переместить один предмет"
|
||||||
|
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Загрузить"
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-06-27 01:22+0200\n"
|
"PO-Revision-Date: 2013-06-27 01:22+0200\n"
|
||||||
"Last-Translator: Vladimir a <c-vld@ya.ru>\n"
|
"Last-Translator: Vladimir a <c-vld@ya.ru>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -24,12 +24,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "Гра"
|
msgstr "Гра"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Створити"
|
msgstr "Створити"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Відміна"
|
msgstr "Відміна"
|
||||||
|
|
||||||
|
@ -41,36 +41,36 @@ msgstr ""
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Гра"
|
msgstr "Гра"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -78,230 +78,238 @@ msgstr ""
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "Назва Світу"
|
msgstr "Назва Світу"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:303
|
||||||
msgid "Mapgen"
|
msgid "Mapgen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Гра"
|
msgstr "Гра"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "Видалити світ"
|
msgstr "Видалити світ"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Так"
|
msgstr "Так"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Ні"
|
msgstr "Ні"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "Неможливо створити світ: Світ з таким ім'ям вже існує"
|
msgstr "Неможливо створити світ: Світ з таким ім'ям вже існує"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "Одиночна гра"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
|
||||||
msgid "Client"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "Налаштування"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "Подяка"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "Улюблені:"
|
msgstr "Улюблені:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "Адреса/Порт"
|
msgstr "Адреса/Порт"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "Ім'я/Пароль"
|
msgstr "Ім'я/Пароль"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr "Список публічних серверів:"
|
msgstr "Список публічних серверів:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Видалити"
|
msgstr "Видалити"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Підключитися"
|
msgstr "Підключитися"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Новий"
|
msgstr "Новий"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Налаштувати"
|
msgstr "Налаштувати"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "Почати гру / Підключитися"
|
msgstr "Почати гру / Підключитися"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "Виберіть світ:"
|
msgstr "Виберіть світ:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "Режим Створення"
|
msgstr "Режим Створення"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "Ввімкнути урон"
|
msgstr "Ввімкнути урон"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "Публичний"
|
msgstr "Публичний"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Старий Пароль"
|
msgstr "Старий Пароль"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "Гарні дерева"
|
msgstr "Гарні дерева"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "Рівне освітлення"
|
msgstr "Рівне освітлення"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3D Хмари"
|
msgstr "3D Хмари"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "Непрозора вода"
|
msgstr "Непрозора вода"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "MIP-текстурування"
|
msgstr "MIP-текстурування"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "Анізотропна фільтрація"
|
msgstr "Анізотропна фільтрація"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "Білінійна фільтрація"
|
msgstr "Білінійна фільтрація"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "Трилінійна фільтрація"
|
msgstr "Трилінійна фільтрація"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "Шейдери"
|
msgstr "Шейдери"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "Попереднє завантаження зображень"
|
msgstr "Попереднє завантаження зображень"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "Ввімкнути частки"
|
msgstr "Ввімкнути частки"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr "Кінцеві рідини"
|
msgstr "Кінцеві рідини"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "Змінити клавіши"
|
msgstr "Змінити клавіши"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Грати"
|
msgstr "Грати"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "Одиночна гра"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Налаштування"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "Подяка"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -310,115 +318,134 @@ msgstr ""
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
msgid "Add mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
#, fuzzy
|
msgid "Local install"
|
||||||
msgid "Download"
|
msgstr ""
|
||||||
msgstr "Вниз"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
#, fuzzy
|
msgid "Uninstall selected modpack"
|
||||||
msgid "Depends:"
|
msgstr ""
|
||||||
msgstr "залежить від:"
|
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Підтвердити"
|
msgstr "Підтвердити"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "Виберіть світ:"
|
msgstr "Виберіть світ:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "Гра"
|
msgstr "Гра"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "залежить від:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Зберегти"
|
msgstr "Зберегти"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "Увімкнути Все"
|
msgstr "Увімкнути Все"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "Вимкнути Усе"
|
msgstr "Вимкнути Усе"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "Увімкнено"
|
msgstr "Увімкнено"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "Увімкнути Все"
|
msgstr "Увімкнути Все"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "Виберіть світ:"
|
msgstr "Виберіть світ:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "Не вдалося ініціалізувати світ"
|
msgstr "Не вдалося ініціалізувати світ"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -434,47 +461,51 @@ msgstr ""
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr "Текстура предметів..."
|
msgstr "Текстура предметів..."
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr "Завантаження..."
|
msgstr "Завантаження..."
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr "Створення сервера..."
|
msgstr "Створення сервера..."
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr "Створення клієнта..."
|
msgstr "Створення клієнта..."
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr "Отримання адреси..."
|
msgstr "Отримання адреси..."
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr "Підключення до сервера..."
|
msgstr "Підключення до сервера..."
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -490,14 +521,8 @@ msgstr "Ви загинули."
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "Народитися"
|
msgstr "Народитися"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr ""
|
|
||||||
"Ліва кнопка миші: Перемістити усі предмети, Права кнопка миші: Перемістити "
|
|
||||||
"один предмет"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "Далі"
|
msgstr "Далі"
|
||||||
|
|
||||||
|
@ -516,99 +541,99 @@ msgstr "\"Використовувати\" = підніматися в гору"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "Подвійний \"Стрибок\" щоб полетіти"
|
msgstr "Подвійний \"Стрибок\" щоб полетіти"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "Клавіша вже використовується"
|
msgstr "Клавіша вже використовується"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "Натисніть клавішу"
|
msgstr "Натисніть клавішу"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Уперед"
|
msgstr "Уперед"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "Назад"
|
msgstr "Назад"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Ліворуч"
|
msgstr "Ліворуч"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Праворуч"
|
msgstr "Праворуч"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "Використовувати"
|
msgstr "Використовувати"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "Стрибок"
|
msgstr "Стрибок"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "Крастися"
|
msgstr "Крастися"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "Викинути"
|
msgstr "Викинути"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Інвентар"
|
msgstr "Інвентар"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "Чат"
|
msgstr "Чат"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "Комманда"
|
msgstr "Комманда"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "Консоль"
|
msgstr "Консоль"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "Переключити режим польоту"
|
msgstr "Переключити режим польоту"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "Переключити швидкий режим"
|
msgstr "Переключити швидкий режим"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "Переключити режим проходження скрізь стін"
|
msgstr "Переключити режим проходження скрізь стін"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "Вибір діапазону"
|
msgstr "Вибір діапазону"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "Надрукувати стек"
|
msgstr "Надрукувати стек"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "Старий Пароль"
|
msgstr "Старий Пароль"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "Новий Пароль"
|
msgstr "Новий Пароль"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Підтвердження нового пароля"
|
msgstr "Підтвердження нового пароля"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "Змінити"
|
msgstr "Змінити"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "Паролі не збігаються!"
|
msgstr "Паролі не збігаються!"
|
||||||
|
|
||||||
|
@ -659,11 +684,11 @@ msgstr ""
|
||||||
"- Колесо миші: вибір предмета\n"
|
"- Колесо миші: вибір предмета\n"
|
||||||
"- T: чат\n"
|
"- T: чат\n"
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr "Гучність Звуку: "
|
msgstr "Гучність Звуку: "
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Вихід"
|
msgstr "Вихід"
|
||||||
|
|
||||||
|
@ -972,74 +997,83 @@ msgstr "PA1"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "Збільшити"
|
msgstr "Збільшити"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "Головне Меню"
|
msgstr "Головне Меню"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "Жоден світ не вибрано та не надано адреси. Нічого не робити."
|
msgstr "Жоден світ не вибрано та не надано адреси. Нічого не робити."
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "Неможливо знайти, або завантажити гру \""
|
msgstr "Неможливо знайти, або завантажити гру \""
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "Помилкова конфігурація гри."
|
msgstr "Помилкова конфігурація гри."
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "Помилка з'єднання (час вийшов?)"
|
msgstr "Помилка з'єднання (час вийшов?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ msgstr "необхідний для:"
|
#~ msgstr "Помилка при видаленні файлів світу"
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
|
||||||
#~ msgstr "Налаштування Збережено. "
|
|
||||||
|
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
|
||||||
#~ msgstr "Попередження: Помилкова конфігурація. "
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "Неможливо створити світ: Ім'я містить недопустимі символи"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "Мережева гра"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Додатково"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "Показати Публічні"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "Показати Улюблені"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "Залишіть адресу незаповненою для створення локального серверу."
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "Створити світ"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "Адреса необхідна."
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "Неможливо видалити світ: Нічого не вибрано"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "Файлів, що підлягають видаленню"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "Неможливо створити світ: Не знайдено жодної гри"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ msgstr "Неможливо налаштувати світ: Нічого не вибрано"
|
#~ msgstr "Неможливо налаштувати світ: Нічого не вибрано"
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
#~ msgid "Cannot create world: No games found"
|
||||||
#~ msgstr "Помилка при видаленні файлів світу"
|
#~ msgstr "Неможливо створити світ: Не знайдено жодної гри"
|
||||||
|
|
||||||
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "Файлів, що підлягають видаленню"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "Неможливо видалити світ: Нічого не вибрано"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "Адреса необхідна."
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "Створити світ"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "Залишіть адресу незаповненою для створення локального серверу."
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "Показати Улюблені"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "Показати Публічні"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "Додатково"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "Мережева гра"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "Неможливо створити світ: Ім'я містить недопустимі символи"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "Попередження: Помилкова конфігурація. "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "Налаштування Збережено. "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "необхідний для:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Ліва кнопка миші: Перемістити усі предмети, Права кнопка миші: "
|
||||||
|
#~ "Перемістити один предмет"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "Вниз"
|
||||||
|
|
|
@ -7,8 +7,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: minetest\n"
|
"Project-Id-Version: minetest\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-07 22:01+0400\n"
|
"POT-Creation-Date: 2013-11-23 17:37+0100\n"
|
||||||
"PO-Revision-Date: 2013-09-07 16:20+0200\n"
|
"PO-Revision-Date: 2013-09-14 12:52+0200\n"
|
||||||
"Last-Translator: Shen Zheyu <arsdragonfly@gmail.com>\n"
|
"Last-Translator: Shen Zheyu <arsdragonfly@gmail.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"Language: zh_CN\n"
|
"Language: zh_CN\n"
|
||||||
|
@ -22,12 +22,12 @@ msgstr ""
|
||||||
msgid "Game Name"
|
msgid "Game Name"
|
||||||
msgstr "游戏名"
|
msgstr "游戏名"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:301
|
#: builtin/gamemgr.lua:25 builtin/mainmenu.lua:310
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "创建"
|
msgstr "创建"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:302 builtin/modmgr.lua:289
|
#: builtin/gamemgr.lua:26 builtin/mainmenu.lua:311 builtin/modmgr.lua:331
|
||||||
#: builtin/modmgr.lua:406 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
#: builtin/modmgr.lua:448 src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "取消"
|
msgstr "取消"
|
||||||
|
|
||||||
|
@ -39,35 +39,35 @@ msgstr "Gamemgr: 无法复制MOD“$1”到游戏“$2”"
|
||||||
msgid "GAMES"
|
msgid "GAMES"
|
||||||
msgstr "游戏"
|
msgstr "游戏"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:859
|
#: builtin/gamemgr.lua:217 builtin/mainmenu.lua:1076
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "游戏"
|
msgstr "游戏"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:233
|
#: builtin/gamemgr.lua:234
|
||||||
msgid "Mods:"
|
msgid "Mods:"
|
||||||
msgstr "MODS:"
|
msgstr "MODS:"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:234
|
#: builtin/gamemgr.lua:235
|
||||||
msgid "edit game"
|
msgid "edit game"
|
||||||
msgstr "编辑游戏"
|
msgstr "编辑游戏"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:237
|
#: builtin/gamemgr.lua:238
|
||||||
msgid "new game"
|
msgid "new game"
|
||||||
msgstr "新建游戏"
|
msgstr "新建游戏"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:247
|
#: builtin/gamemgr.lua:248
|
||||||
msgid "EDIT GAME"
|
msgid "EDIT GAME"
|
||||||
msgstr "编辑游戏"
|
msgstr "编辑游戏"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:267
|
#: builtin/gamemgr.lua:269
|
||||||
msgid "Remove selected mod"
|
msgid "Remove selected mod"
|
||||||
msgstr "删除选中MOD"
|
msgstr "删除选中MOD"
|
||||||
|
|
||||||
#: builtin/gamemgr.lua:270
|
#: builtin/gamemgr.lua:272
|
||||||
msgid "<<-- Add mod"
|
msgid "<<-- Add mod"
|
||||||
msgstr "<<-- 添加MOD"
|
msgstr "<<-- 添加MOD"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:159
|
#: builtin/mainmenu.lua:158
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "OK"
|
msgstr "OK"
|
||||||
|
|
||||||
|
@ -75,224 +75,231 @@ msgstr "OK"
|
||||||
msgid "World name"
|
msgid "World name"
|
||||||
msgstr "世界名称"
|
msgstr "世界名称"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:298
|
#: builtin/mainmenu.lua:300
|
||||||
msgid "Mapgen"
|
msgid "Seed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:300
|
#: builtin/mainmenu.lua:303
|
||||||
|
msgid "Mapgen"
|
||||||
|
msgstr "地图生成器"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:306
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "游戏"
|
msgstr "游戏"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:314
|
#: builtin/mainmenu.lua:319
|
||||||
msgid "Delete World \"$1\"?"
|
msgid "Delete World \"$1\"?"
|
||||||
msgstr "删除世界“$1”?"
|
msgstr "删除世界“$1”?"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:315 builtin/modmgr.lua:846
|
#: builtin/mainmenu.lua:320 builtin/modmgr.lua:877
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "是"
|
msgstr "是"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:316
|
#: builtin/mainmenu.lua:321
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "否"
|
msgstr "否"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:384
|
#: builtin/mainmenu.lua:364
|
||||||
msgid "A world named \"$1\" already exists"
|
msgid "A world named \"$1\" already exists"
|
||||||
msgstr "名为 \"$1\" 的世界已经存在"
|
msgstr "名为 \"$1\" 的世界已经存在"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:399
|
#: builtin/mainmenu.lua:381
|
||||||
msgid "No worldname given or no game selected"
|
msgid "No worldname given or no game selected"
|
||||||
msgstr "未给定世界名或未选择游戏"
|
msgstr "未给定世界名或未选择游戏"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:852
|
#: builtin/mainmenu.lua:650
|
||||||
msgid "Singleplayer"
|
msgid "To enable shaders the OpenGL driver needs to be used."
|
||||||
msgstr "单人游戏"
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:853
|
#: builtin/mainmenu.lua:818
|
||||||
msgid "Client"
|
|
||||||
msgstr "客户端"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:854
|
|
||||||
msgid "Server"
|
|
||||||
msgstr "服务器"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:855
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr "设置"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:856
|
|
||||||
msgid "Texture Packs"
|
|
||||||
msgstr "材质包"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:863
|
|
||||||
msgid "Mods"
|
|
||||||
msgstr "MODS"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:865
|
|
||||||
msgid "Credits"
|
|
||||||
msgstr "关于"
|
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:885
|
|
||||||
msgid "CLIENT"
|
msgid "CLIENT"
|
||||||
msgstr "客户端"
|
msgstr "客户端"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:886
|
#: builtin/mainmenu.lua:819
|
||||||
msgid "Favorites:"
|
msgid "Favorites:"
|
||||||
msgstr "最爱的服务器:"
|
msgstr "最爱的服务器:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:887
|
#: builtin/mainmenu.lua:820
|
||||||
msgid "Address/Port"
|
msgid "Address/Port"
|
||||||
msgstr "地址/端口"
|
msgstr "地址/端口"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:888
|
#: builtin/mainmenu.lua:821
|
||||||
msgid "Name/Password"
|
msgid "Name/Password"
|
||||||
msgstr "名字/密码"
|
msgstr "名字/密码"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:891
|
#: builtin/mainmenu.lua:824
|
||||||
msgid "Public Serverlist"
|
msgid "Public Serverlist"
|
||||||
msgstr "公共服务器列表"
|
msgstr "公共服务器列表"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:896 builtin/mainmenu.lua:941 builtin/mainmenu.lua:1004
|
#: builtin/mainmenu.lua:829 builtin/mainmenu.lua:874 builtin/mainmenu.lua:937
|
||||||
#: builtin/modmgr.lua:271 src/keycode.cpp:229
|
#: src/keycode.cpp:229
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "删除"
|
msgstr "删除"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:900
|
#: builtin/mainmenu.lua:833
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "连接"
|
msgstr "连接"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:942 builtin/mainmenu.lua:1005
|
#: builtin/mainmenu.lua:875 builtin/mainmenu.lua:938
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "新建"
|
msgstr "新建"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:943 builtin/mainmenu.lua:1006
|
#: builtin/mainmenu.lua:876 builtin/mainmenu.lua:939
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "配置"
|
msgstr "配置"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:944
|
#: builtin/mainmenu.lua:877
|
||||||
#, fuzzy
|
|
||||||
msgid "Start Game"
|
msgid "Start Game"
|
||||||
msgstr "启动游戏"
|
msgstr "启动游戏"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:945 builtin/mainmenu.lua:1008
|
#: builtin/mainmenu.lua:878 builtin/mainmenu.lua:941
|
||||||
msgid "Select World:"
|
msgid "Select World:"
|
||||||
msgstr "选择世界:"
|
msgstr "选择世界:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:946
|
#: builtin/mainmenu.lua:879
|
||||||
msgid "START SERVER"
|
msgid "START SERVER"
|
||||||
msgstr "启动服务器"
|
msgstr "启动服务器"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:947 builtin/mainmenu.lua:1010
|
#: builtin/mainmenu.lua:880 builtin/mainmenu.lua:943
|
||||||
msgid "Creative Mode"
|
msgid "Creative Mode"
|
||||||
msgstr "创造模式"
|
msgstr "创造模式"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:949 builtin/mainmenu.lua:1012
|
#: builtin/mainmenu.lua:882 builtin/mainmenu.lua:945
|
||||||
msgid "Enable Damage"
|
msgid "Enable Damage"
|
||||||
msgstr "开启伤害"
|
msgstr "开启伤害"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:951
|
#: builtin/mainmenu.lua:884
|
||||||
msgid "Public"
|
msgid "Public"
|
||||||
msgstr "公共服务器"
|
msgstr "公共服务器"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:953
|
#: builtin/mainmenu.lua:886
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "名字"
|
msgstr "名字"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:955
|
#: builtin/mainmenu.lua:888
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "密码"
|
msgstr "密码"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:956
|
#: builtin/mainmenu.lua:889
|
||||||
msgid "Server Port"
|
msgid "Server Port"
|
||||||
msgstr "服务器端口"
|
msgstr "服务器端口"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:966
|
#: builtin/mainmenu.lua:899
|
||||||
msgid "SETTINGS"
|
msgid "SETTINGS"
|
||||||
msgstr "设置"
|
msgstr "设置"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:967
|
#: builtin/mainmenu.lua:900
|
||||||
msgid "Fancy trees"
|
msgid "Fancy trees"
|
||||||
msgstr "更漂亮的树"
|
msgstr "更漂亮的树"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:969
|
#: builtin/mainmenu.lua:902
|
||||||
msgid "Smooth Lighting"
|
msgid "Smooth Lighting"
|
||||||
msgstr "平滑光照"
|
msgstr "平滑光照"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:971
|
#: builtin/mainmenu.lua:904
|
||||||
msgid "3D Clouds"
|
msgid "3D Clouds"
|
||||||
msgstr "3D云彩"
|
msgstr "3D云彩"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:973
|
#: builtin/mainmenu.lua:906
|
||||||
msgid "Opaque Water"
|
msgid "Opaque Water"
|
||||||
msgstr "不透明的水"
|
msgstr "不透明的水"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:976
|
#: builtin/mainmenu.lua:909
|
||||||
msgid "Mip-Mapping"
|
msgid "Mip-Mapping"
|
||||||
msgstr "贴图处理"
|
msgstr "贴图处理"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:978
|
#: builtin/mainmenu.lua:911
|
||||||
msgid "Anisotropic Filtering"
|
msgid "Anisotropic Filtering"
|
||||||
msgstr "各向异性过滤"
|
msgstr "各向异性过滤"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:980
|
#: builtin/mainmenu.lua:913
|
||||||
msgid "Bi-Linear Filtering"
|
msgid "Bi-Linear Filtering"
|
||||||
msgstr "双线性过滤"
|
msgstr "双线性过滤"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:982
|
#: builtin/mainmenu.lua:915
|
||||||
msgid "Tri-Linear Filtering"
|
msgid "Tri-Linear Filtering"
|
||||||
msgstr "三线性过滤"
|
msgstr "三线性过滤"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:985
|
#: builtin/mainmenu.lua:918
|
||||||
msgid "Shaders"
|
msgid "Shaders"
|
||||||
msgstr "着色器"
|
msgstr "着色器"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:987
|
#: builtin/mainmenu.lua:920
|
||||||
msgid "Preload item visuals"
|
msgid "Preload item visuals"
|
||||||
msgstr "预先加载物品图像"
|
msgstr "预先加载物品图像"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:989
|
#: builtin/mainmenu.lua:922
|
||||||
msgid "Enable Particles"
|
msgid "Enable Particles"
|
||||||
msgstr "启用粒子效果"
|
msgstr "启用粒子效果"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:991
|
#: builtin/mainmenu.lua:924
|
||||||
msgid "Finite Liquid"
|
msgid "Finite Liquid"
|
||||||
msgstr "液体有限延伸"
|
msgstr "液体有限延伸"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:994
|
#: builtin/mainmenu.lua:927
|
||||||
msgid "Change keys"
|
msgid "Change keys"
|
||||||
msgstr "改变键位设置"
|
msgstr "改变键位设置"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1007 src/keycode.cpp:248
|
#: builtin/mainmenu.lua:940 src/keycode.cpp:248
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "开始游戏"
|
msgstr "开始游戏"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1009
|
#: builtin/mainmenu.lua:942
|
||||||
msgid "SINGLE PLAYER"
|
msgid "SINGLE PLAYER"
|
||||||
msgstr "单人游戏"
|
msgstr "单人游戏"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1022
|
#: builtin/mainmenu.lua:955
|
||||||
msgid "Select texture pack:"
|
msgid "Select texture pack:"
|
||||||
msgstr "选择材质包:"
|
msgstr "选择材质包:"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1023
|
#: builtin/mainmenu.lua:956
|
||||||
msgid "TEXTURE PACKS"
|
msgid "TEXTURE PACKS"
|
||||||
msgstr "材质包"
|
msgstr "材质包"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1043
|
#: builtin/mainmenu.lua:976
|
||||||
msgid "No information available"
|
msgid "No information available"
|
||||||
msgstr "无可用信息"
|
msgstr "无可用信息"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1071
|
#: builtin/mainmenu.lua:1005
|
||||||
msgid "Core Developers"
|
msgid "Core Developers"
|
||||||
msgstr "核心开发人员"
|
msgstr "核心开发人员"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1082
|
#: builtin/mainmenu.lua:1020
|
||||||
msgid "Active Contributors"
|
msgid "Active Contributors"
|
||||||
msgstr "活跃的贡献者"
|
msgstr "活跃的贡献者"
|
||||||
|
|
||||||
#: builtin/mainmenu.lua:1092
|
#: builtin/mainmenu.lua:1028
|
||||||
msgid "Previous Contributors"
|
msgid "Previous Contributors"
|
||||||
msgstr "以往的贡献者"
|
msgstr "以往的贡献者"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1069
|
||||||
|
msgid "Singleplayer"
|
||||||
|
msgstr "单人游戏"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1070
|
||||||
|
msgid "Client"
|
||||||
|
msgstr "客户端"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1071
|
||||||
|
msgid "Server"
|
||||||
|
msgstr "服务器"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1072
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "设置"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1073
|
||||||
|
msgid "Texture Packs"
|
||||||
|
msgstr "材质包"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1080
|
||||||
|
msgid "Mods"
|
||||||
|
msgstr "MODS"
|
||||||
|
|
||||||
|
#: builtin/mainmenu.lua:1082
|
||||||
|
msgid "Credits"
|
||||||
|
msgstr "关于"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:236
|
#: builtin/modmgr.lua:236
|
||||||
msgid "MODS"
|
msgid "MODS"
|
||||||
msgstr "MODS"
|
msgstr "MODS"
|
||||||
|
@ -301,168 +308,192 @@ msgstr "MODS"
|
||||||
msgid "Installed Mods:"
|
msgid "Installed Mods:"
|
||||||
msgstr "已安装的MOD:"
|
msgstr "已安装的MOD:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:243 builtin/modstore.lua:253
|
#: builtin/modmgr.lua:243
|
||||||
msgid "Install"
|
#, fuzzy
|
||||||
msgstr "安装"
|
msgid "Add mod:"
|
||||||
|
msgstr "<<-- 添加MOD"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:244
|
#: builtin/modmgr.lua:244
|
||||||
msgid "Download"
|
#, fuzzy
|
||||||
msgstr "下载"
|
msgid "Local install"
|
||||||
|
msgstr "安装"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:256
|
#: builtin/modmgr.lua:245
|
||||||
|
msgid "Online mod repository"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:284
|
||||||
|
#, fuzzy
|
||||||
|
msgid "No mod description available"
|
||||||
|
msgstr "无可用信息"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:288
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Mod information:"
|
||||||
|
msgstr "无可用信息"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:299
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "重命名"
|
msgstr "重命名"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:260 builtin/modmgr.lua:402
|
#: builtin/modmgr.lua:301
|
||||||
msgid "Depends:"
|
msgid "Uninstall selected modpack"
|
||||||
msgstr "依赖于:"
|
msgstr ""
|
||||||
|
|
||||||
#: builtin/modmgr.lua:282
|
#: builtin/modmgr.lua:312
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Uninstall selected mod"
|
||||||
|
msgstr "删除选中MOD"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:324
|
||||||
msgid "Rename Modpack:"
|
msgid "Rename Modpack:"
|
||||||
msgstr "重命名MOD包:"
|
msgstr "重命名MOD包:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:287 src/keycode.cpp:227
|
#: builtin/modmgr.lua:329 src/keycode.cpp:227
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "接受"
|
msgstr "接受"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:381
|
#: builtin/modmgr.lua:423
|
||||||
msgid "World:"
|
msgid "World:"
|
||||||
msgstr "世界:"
|
msgstr "世界:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:385 builtin/modmgr.lua:387
|
#: builtin/modmgr.lua:427 builtin/modmgr.lua:429
|
||||||
msgid "Hide Game"
|
msgid "Hide Game"
|
||||||
msgstr "隐藏游戏"
|
msgstr "隐藏游戏"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:391 builtin/modmgr.lua:393
|
#: builtin/modmgr.lua:433 builtin/modmgr.lua:435
|
||||||
#, fuzzy
|
|
||||||
msgid "Hide mp content"
|
msgid "Hide mp content"
|
||||||
msgstr "隐藏mp内容"
|
msgstr "隐藏MOD包内容"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:400
|
#: builtin/modmgr.lua:442
|
||||||
msgid "Mod:"
|
msgid "Mod:"
|
||||||
msgstr "MOD:"
|
msgstr "MOD:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:405 src/guiKeyChangeMenu.cpp:187
|
#: builtin/modmgr.lua:444
|
||||||
|
msgid "Depends:"
|
||||||
|
msgstr "依赖于:"
|
||||||
|
|
||||||
|
#: builtin/modmgr.lua:447 src/guiKeyChangeMenu.cpp:187
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "保存"
|
msgstr "保存"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:422
|
#: builtin/modmgr.lua:464
|
||||||
#, fuzzy
|
|
||||||
msgid "Enable MP"
|
msgid "Enable MP"
|
||||||
msgstr "启用MP"
|
msgstr "启用MOD包"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:424
|
#: builtin/modmgr.lua:466
|
||||||
#, fuzzy
|
|
||||||
msgid "Disable MP"
|
msgid "Disable MP"
|
||||||
msgstr "全部禁用"
|
msgstr "禁用MOD包"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:428 builtin/modmgr.lua:430
|
#: builtin/modmgr.lua:470 builtin/modmgr.lua:472
|
||||||
msgid "enabled"
|
msgid "enabled"
|
||||||
msgstr "启用"
|
msgstr "启用"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:436
|
#: builtin/modmgr.lua:478
|
||||||
#, fuzzy
|
|
||||||
msgid "Enable all"
|
msgid "Enable all"
|
||||||
msgstr "全部启用"
|
msgstr "全部启用"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:551
|
#: builtin/modmgr.lua:577
|
||||||
#, fuzzy
|
|
||||||
msgid "Select Mod File:"
|
msgid "Select Mod File:"
|
||||||
msgstr "选择世界:"
|
msgstr "选择MOD文件:"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:590
|
#: builtin/modmgr.lua:616
|
||||||
msgid "Install Mod: file: \"$1\""
|
msgid "Install Mod: file: \"$1\""
|
||||||
msgstr ""
|
msgstr "安装MOD:文件:”$1“"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:591
|
#: builtin/modmgr.lua:617
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Install Mod: unsupported filetype \"$1\""
|
"Install Mod: unsupported filetype \"$1\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"安装MOD:不支持的文件类型“$1“"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:612
|
#: builtin/modmgr.lua:638
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to install $1 to $2"
|
msgid "Failed to install $1 to $2"
|
||||||
msgstr "无法初始化世界"
|
msgstr "无法安装$1到$2"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:615
|
#: builtin/modmgr.lua:641
|
||||||
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
msgid "Install Mod: unable to find suitable foldername for modpack $1"
|
||||||
msgstr ""
|
msgstr "安装MOD:找不到MOD包$1的合适文件夹名"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:635
|
#: builtin/modmgr.lua:661
|
||||||
msgid "Install Mod: unable to find real modname for: $1"
|
msgid "Install Mod: unable to find real modname for: $1"
|
||||||
msgstr ""
|
msgstr "安装MOD:找不到$1的真正MOD名"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:824
|
#: builtin/modmgr.lua:855
|
||||||
msgid "Modmgr: failed to delete \"$1\""
|
msgid "Modmgr: failed to delete \"$1\""
|
||||||
msgstr ""
|
msgstr "MOD管理器:无法删除“$1“"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:828
|
#: builtin/modmgr.lua:859
|
||||||
msgid "Modmgr: invalid modpath \"$1\""
|
msgid "Modmgr: invalid modpath \"$1\""
|
||||||
msgstr ""
|
msgstr "MOD管理器:MOD“$1“路径非法"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:845
|
#: builtin/modmgr.lua:876
|
||||||
msgid "Are you sure you want to delete \"$1\"?"
|
msgid "Are you sure you want to delete \"$1\"?"
|
||||||
msgstr ""
|
msgstr "你确认要删除\"$1\"?"
|
||||||
|
|
||||||
#: builtin/modmgr.lua:847
|
#: builtin/modmgr.lua:878
|
||||||
msgid "No of course not!"
|
msgid "No of course not!"
|
||||||
msgstr ""
|
msgstr "当然不!"
|
||||||
|
|
||||||
#: builtin/modstore.lua:183
|
#: builtin/modstore.lua:183
|
||||||
msgid "Page $1 of $2"
|
msgid "Page $1 of $2"
|
||||||
msgstr ""
|
msgstr "第$1页,共$2页"
|
||||||
|
|
||||||
#: builtin/modstore.lua:243
|
#: builtin/modstore.lua:243
|
||||||
msgid "Rating"
|
msgid "Rating"
|
||||||
msgstr ""
|
msgstr "评级"
|
||||||
|
|
||||||
#: builtin/modstore.lua:251
|
#: builtin/modstore.lua:251
|
||||||
msgid "re-Install"
|
msgid "re-Install"
|
||||||
msgstr ""
|
msgstr "重新安装"
|
||||||
|
|
||||||
#: src/client.cpp:2915
|
#: builtin/modstore.lua:253
|
||||||
|
msgid "Install"
|
||||||
|
msgstr "安装"
|
||||||
|
|
||||||
|
#: src/client.cpp:2917
|
||||||
msgid "Item textures..."
|
msgid "Item textures..."
|
||||||
msgstr "物品材质..."
|
msgstr "物品材质..."
|
||||||
|
|
||||||
#: src/game.cpp:939
|
#: src/game.cpp:940
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr "载入中..."
|
msgstr "载入中..."
|
||||||
|
|
||||||
#: src/game.cpp:999
|
#: src/game.cpp:1000
|
||||||
msgid "Creating server...."
|
msgid "Creating server...."
|
||||||
msgstr "正在建立服务器...."
|
msgstr "正在建立服务器...."
|
||||||
|
|
||||||
#: src/game.cpp:1015
|
#: src/game.cpp:1016
|
||||||
msgid "Creating client..."
|
msgid "Creating client..."
|
||||||
msgstr "正在建立客户端..."
|
msgstr "正在建立客户端..."
|
||||||
|
|
||||||
#: src/game.cpp:1024
|
#: src/game.cpp:1025
|
||||||
msgid "Resolving address..."
|
msgid "Resolving address..."
|
||||||
msgstr "正在解析地址..."
|
msgstr "正在解析地址..."
|
||||||
|
|
||||||
#: src/game.cpp:1121
|
#: src/game.cpp:1122
|
||||||
msgid "Connecting to server..."
|
msgid "Connecting to server..."
|
||||||
msgstr "正在连接服务器..."
|
msgstr "正在连接服务器..."
|
||||||
|
|
||||||
#: src/game.cpp:1218
|
#: src/game.cpp:1219
|
||||||
#, fuzzy
|
|
||||||
msgid "Item definitions..."
|
msgid "Item definitions..."
|
||||||
msgstr "物品材质..."
|
msgstr "物品定义..."
|
||||||
|
|
||||||
#: src/game.cpp:1225
|
#: src/game.cpp:1226
|
||||||
msgid "Node definitions..."
|
msgid "Node definitions..."
|
||||||
msgstr ""
|
msgstr "方块定义..."
|
||||||
|
|
||||||
#: src/game.cpp:1232
|
#: src/game.cpp:1233
|
||||||
msgid "Media..."
|
msgid "Media..."
|
||||||
msgstr ""
|
msgstr "媒体..."
|
||||||
|
|
||||||
#: src/game.cpp:3405
|
#: src/game.cpp:3409
|
||||||
msgid "Shutting down stuff..."
|
msgid "Shutting down stuff..."
|
||||||
msgstr "关闭中......"
|
msgstr "关闭中......"
|
||||||
|
|
||||||
#: src/game.cpp:3435
|
#: src/game.cpp:3439
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Check debug.txt for details."
|
"Check debug.txt for details."
|
||||||
|
@ -478,12 +509,8 @@ msgstr "你死了。"
|
||||||
msgid "Respawn"
|
msgid "Respawn"
|
||||||
msgstr "重生"
|
msgstr "重生"
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1569
|
#: src/guiFormSpecMenu.cpp:1656 src/guiMessageMenu.cpp:107
|
||||||
msgid "Left click: Move all items, Right click: Move single item"
|
#: src/guiTextInputMenu.cpp:139
|
||||||
msgstr "左键:移动所有物品,右键:移动单个物品"
|
|
||||||
|
|
||||||
#: src/guiFormSpecMenu.cpp:1595 src/guiMessageMenu.cpp:107
|
|
||||||
#: src/guiTextInputMenu.cpp:140
|
|
||||||
msgid "Proceed"
|
msgid "Proceed"
|
||||||
msgstr "继续游戏"
|
msgstr "继续游戏"
|
||||||
|
|
||||||
|
@ -499,99 +526,99 @@ msgstr "“使用” = 向下爬"
|
||||||
msgid "Double tap \"jump\" to toggle fly"
|
msgid "Double tap \"jump\" to toggle fly"
|
||||||
msgstr "连按两次“跳”切换飞行状态"
|
msgstr "连按两次“跳”切换飞行状态"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:290
|
#: src/guiKeyChangeMenu.cpp:288
|
||||||
msgid "Key already in use"
|
msgid "Key already in use"
|
||||||
msgstr "按键已被占用"
|
msgstr "按键已被占用"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:372
|
#: src/guiKeyChangeMenu.cpp:363
|
||||||
msgid "press key"
|
msgid "press key"
|
||||||
msgstr "按键"
|
msgstr "按键"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:400
|
#: src/guiKeyChangeMenu.cpp:389
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "向前"
|
msgstr "向前"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:401
|
#: src/guiKeyChangeMenu.cpp:390
|
||||||
msgid "Backward"
|
msgid "Backward"
|
||||||
msgstr "向后"
|
msgstr "向后"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:391 src/keycode.cpp:228
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "向左"
|
msgstr "向左"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
#: src/guiKeyChangeMenu.cpp:392 src/keycode.cpp:228
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "向右"
|
msgstr "向右"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:404
|
#: src/guiKeyChangeMenu.cpp:393
|
||||||
msgid "Use"
|
msgid "Use"
|
||||||
msgstr "使用"
|
msgstr "使用"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:405
|
#: src/guiKeyChangeMenu.cpp:394
|
||||||
msgid "Jump"
|
msgid "Jump"
|
||||||
msgstr "跳"
|
msgstr "跳"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:406
|
#: src/guiKeyChangeMenu.cpp:395
|
||||||
msgid "Sneak"
|
msgid "Sneak"
|
||||||
msgstr "潜行"
|
msgstr "潜行"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:407
|
#: src/guiKeyChangeMenu.cpp:396
|
||||||
msgid "Drop"
|
msgid "Drop"
|
||||||
msgstr "丢出"
|
msgstr "丢出"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:408
|
#: src/guiKeyChangeMenu.cpp:397
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "物品栏"
|
msgstr "物品栏"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:409
|
#: src/guiKeyChangeMenu.cpp:398
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
msgstr "聊天"
|
msgstr "聊天"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:410
|
#: src/guiKeyChangeMenu.cpp:399
|
||||||
msgid "Command"
|
msgid "Command"
|
||||||
msgstr "命令"
|
msgstr "命令"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:411
|
#: src/guiKeyChangeMenu.cpp:400
|
||||||
msgid "Console"
|
msgid "Console"
|
||||||
msgstr "控制台"
|
msgstr "控制台"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:412
|
#: src/guiKeyChangeMenu.cpp:401
|
||||||
msgid "Toggle fly"
|
msgid "Toggle fly"
|
||||||
msgstr "切换飞行状态"
|
msgstr "切换飞行状态"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:413
|
#: src/guiKeyChangeMenu.cpp:402
|
||||||
msgid "Toggle fast"
|
msgid "Toggle fast"
|
||||||
msgstr "切换快速移动状态"
|
msgstr "切换快速移动状态"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:414
|
#: src/guiKeyChangeMenu.cpp:403
|
||||||
msgid "Toggle noclip"
|
msgid "Toggle noclip"
|
||||||
msgstr "切换穿墙模式"
|
msgstr "切换穿墙模式"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:415
|
#: src/guiKeyChangeMenu.cpp:404
|
||||||
msgid "Range select"
|
msgid "Range select"
|
||||||
msgstr "选择范围"
|
msgstr "选择范围"
|
||||||
|
|
||||||
#: src/guiKeyChangeMenu.cpp:416
|
#: src/guiKeyChangeMenu.cpp:405
|
||||||
msgid "Print stacks"
|
msgid "Print stacks"
|
||||||
msgstr "打印栈"
|
msgstr "打印栈"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:107
|
#: src/guiPasswordChange.cpp:106
|
||||||
msgid "Old Password"
|
msgid "Old Password"
|
||||||
msgstr "旧密码"
|
msgstr "旧密码"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:125
|
#: src/guiPasswordChange.cpp:122
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr "新密码"
|
msgstr "新密码"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:142
|
#: src/guiPasswordChange.cpp:137
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "确认密码"
|
msgstr "确认密码"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:160
|
#: src/guiPasswordChange.cpp:153
|
||||||
msgid "Change"
|
msgid "Change"
|
||||||
msgstr "更改"
|
msgstr "更改"
|
||||||
|
|
||||||
#: src/guiPasswordChange.cpp:169
|
#: src/guiPasswordChange.cpp:162
|
||||||
msgid "Passwords do not match!"
|
msgid "Passwords do not match!"
|
||||||
msgstr "密码不匹配!"
|
msgstr "密码不匹配!"
|
||||||
|
|
||||||
|
@ -641,11 +668,11 @@ msgstr ""
|
||||||
"鼠标滚轮: 选择物品\n"
|
"鼠标滚轮: 选择物品\n"
|
||||||
"T: 聊天\n"
|
"T: 聊天\n"
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:108
|
#: src/guiVolumeChange.cpp:107
|
||||||
msgid "Sound Volume: "
|
msgid "Sound Volume: "
|
||||||
msgstr "音量: "
|
msgstr "音量: "
|
||||||
|
|
||||||
#: src/guiVolumeChange.cpp:122
|
#: src/guiVolumeChange.cpp:121
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "退出"
|
msgstr "退出"
|
||||||
|
|
||||||
|
@ -937,77 +964,43 @@ msgstr "PA1键"
|
||||||
msgid "Zoom"
|
msgid "Zoom"
|
||||||
msgstr "缩放"
|
msgstr "缩放"
|
||||||
|
|
||||||
#: src/main.cpp:1411
|
#: src/main.cpp:1472
|
||||||
msgid "needs_fallback_font"
|
msgid "needs_fallback_font"
|
||||||
msgstr "yes"
|
msgstr "yes"
|
||||||
|
|
||||||
#: src/main.cpp:1486
|
#: src/main.cpp:1547
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "主菜单"
|
msgstr "主菜单"
|
||||||
|
|
||||||
#: src/main.cpp:1662
|
#: src/main.cpp:1723
|
||||||
msgid "No world selected and no address provided. Nothing to do."
|
msgid "No world selected and no address provided. Nothing to do."
|
||||||
msgstr "没有选择世界或提供地址。未执行操作。"
|
msgstr "没有选择世界或提供地址。未执行操作。"
|
||||||
|
|
||||||
#: src/main.cpp:1670
|
#: src/main.cpp:1731
|
||||||
msgid "Could not find or load game \""
|
msgid "Could not find or load game \""
|
||||||
msgstr "无法找到或载入游戏模式“"
|
msgstr "无法找到或载入游戏模式“"
|
||||||
|
|
||||||
#: src/main.cpp:1684
|
#: src/main.cpp:1745
|
||||||
msgid "Invalid gamespec."
|
msgid "Invalid gamespec."
|
||||||
msgstr "非法游戏模式规格。"
|
msgstr "非法游戏模式规格。"
|
||||||
|
|
||||||
#: src/main.cpp:1729
|
#: src/main.cpp:1790
|
||||||
msgid "Connection error (timed out?)"
|
msgid "Connection error (timed out?)"
|
||||||
msgstr "连接出错(超时?)"
|
msgstr "连接出错(超时?)"
|
||||||
|
|
||||||
#~ msgid "is required by:"
|
#~ msgid ""
|
||||||
#~ msgstr "被需要:"
|
#~ "Warning: Some mods are not configured yet.\n"
|
||||||
|
#~ "They will be enabled by default when you save the configuration. "
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "警告:一些MOD仍未设定。\n"
|
||||||
|
#~ "它们会在你保存配置的时候自动启用。 "
|
||||||
|
|
||||||
#~ msgid "Configuration saved. "
|
#~ msgid ""
|
||||||
#~ msgstr "配置已保存。 "
|
#~ "Warning: Some configured mods are missing.\n"
|
||||||
|
#~ "Their setting will be removed when you save the configuration. "
|
||||||
#~ msgid "Warning: Configuration not consistent. "
|
#~ msgstr ""
|
||||||
#~ msgstr "警告:配置不一致。 "
|
#~ "警告:缺少一些设定了的MOD。\n"
|
||||||
|
#~ "它们的设置会在你保存配置的时候被移除。 "
|
||||||
#~ msgid "Cannot create world: Name contains invalid characters"
|
|
||||||
#~ msgstr "无法创建世界:名字包含非法字符"
|
|
||||||
|
|
||||||
#~ msgid "Multiplayer"
|
|
||||||
#~ msgstr "多人游戏"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "高级联机设置"
|
|
||||||
|
|
||||||
#~ msgid "Show Public"
|
|
||||||
#~ msgstr "显示公共"
|
|
||||||
|
|
||||||
#~ msgid "Show Favorites"
|
|
||||||
#~ msgstr "显示最爱"
|
|
||||||
|
|
||||||
#~ msgid "Leave address blank to start a local server."
|
|
||||||
#~ msgstr "地址栏留空可启动本地服务器。"
|
|
||||||
|
|
||||||
#~ msgid "Create world"
|
|
||||||
#~ msgstr "创造世界"
|
|
||||||
|
|
||||||
#~ msgid "Address required."
|
|
||||||
#~ msgstr "需要地址。"
|
|
||||||
|
|
||||||
#~ msgid "Cannot delete world: Nothing selected"
|
|
||||||
#~ msgstr "无法删除世界:没有选择世界"
|
|
||||||
|
|
||||||
#~ msgid "Files to be deleted"
|
|
||||||
#~ msgstr "将被删除的文件"
|
|
||||||
|
|
||||||
#~ msgid "Cannot create world: No games found"
|
|
||||||
#~ msgstr "无法创造世界:未找到游戏模式"
|
|
||||||
|
|
||||||
#~ msgid "Cannot configure world: Nothing selected"
|
|
||||||
#~ msgstr "无法配置世界:没有选择世界"
|
|
||||||
|
|
||||||
#~ msgid "Failed to delete all world files"
|
|
||||||
#~ msgstr "无法删除所有该世界的文件"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Default Controls:\n"
|
#~ "Default Controls:\n"
|
||||||
|
@ -1035,16 +1028,56 @@ msgstr "连接出错(超时?)"
|
||||||
#~ "ESC:菜单\n"
|
#~ "ESC:菜单\n"
|
||||||
#~ "T:聊天\n"
|
#~ "T:聊天\n"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Failed to delete all world files"
|
||||||
#~ "Warning: Some configured mods are missing.\n"
|
#~ msgstr "无法删除所有该世界的文件"
|
||||||
#~ "Their setting will be removed when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "警告:缺少一些设定了的MOD。\n"
|
|
||||||
#~ "它们的设置会在你保存配置的时候被移除。 "
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid "Cannot configure world: Nothing selected"
|
||||||
#~ "Warning: Some mods are not configured yet.\n"
|
#~ msgstr "无法配置世界:没有选择世界"
|
||||||
#~ "They will be enabled by default when you save the configuration. "
|
|
||||||
#~ msgstr ""
|
#~ msgid "Cannot create world: No games found"
|
||||||
#~ "警告:一些MOD仍未设定。\n"
|
#~ msgstr "无法创造世界:未找到游戏模式"
|
||||||
#~ "它们会在你保存配置的时候自动启用。 "
|
|
||||||
|
#~ msgid "Files to be deleted"
|
||||||
|
#~ msgstr "将被删除的文件"
|
||||||
|
|
||||||
|
#~ msgid "Cannot delete world: Nothing selected"
|
||||||
|
#~ msgstr "无法删除世界:没有选择世界"
|
||||||
|
|
||||||
|
#~ msgid "Address required."
|
||||||
|
#~ msgstr "需要地址。"
|
||||||
|
|
||||||
|
#~ msgid "Create world"
|
||||||
|
#~ msgstr "创造世界"
|
||||||
|
|
||||||
|
#~ msgid "Leave address blank to start a local server."
|
||||||
|
#~ msgstr "地址栏留空可启动本地服务器。"
|
||||||
|
|
||||||
|
#~ msgid "Show Favorites"
|
||||||
|
#~ msgstr "显示最爱"
|
||||||
|
|
||||||
|
#~ msgid "Show Public"
|
||||||
|
#~ msgstr "显示公共"
|
||||||
|
|
||||||
|
#~ msgid "Advanced"
|
||||||
|
#~ msgstr "高级联机设置"
|
||||||
|
|
||||||
|
#~ msgid "Multiplayer"
|
||||||
|
#~ msgstr "多人游戏"
|
||||||
|
|
||||||
|
#~ msgid "Cannot create world: Name contains invalid characters"
|
||||||
|
#~ msgstr "无法创建世界:名字包含非法字符"
|
||||||
|
|
||||||
|
#~ msgid "Warning: Configuration not consistent. "
|
||||||
|
#~ msgstr "警告:配置不一致。 "
|
||||||
|
|
||||||
|
#~ msgid "Configuration saved. "
|
||||||
|
#~ msgstr "配置已保存。 "
|
||||||
|
|
||||||
|
#~ msgid "is required by:"
|
||||||
|
#~ msgstr "被需要:"
|
||||||
|
|
||||||
|
#~ msgid "Left click: Move all items, Right click: Move single item"
|
||||||
|
#~ msgstr "左键:移动所有物品,右键:移动单个物品"
|
||||||
|
|
||||||
|
#~ msgid "Download"
|
||||||
|
#~ msgstr "下载"
|
||||||
|
|
|
@ -187,8 +187,10 @@ find_path(LUA_INCLUDE_DIR luajit.h
|
||||||
message (STATUS "LuaJIT library: ${LUA_LIBRARY}")
|
message (STATUS "LuaJIT library: ${LUA_LIBRARY}")
|
||||||
message (STATUS "LuaJIT headers: ${LUA_INCLUDE_DIR}")
|
message (STATUS "LuaJIT headers: ${LUA_INCLUDE_DIR}")
|
||||||
|
|
||||||
if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
|
set(USE_LUAJIT 0)
|
||||||
|
if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
|
||||||
message (STATUS "LuaJIT found.")
|
message (STATUS "LuaJIT found.")
|
||||||
|
set(USE_LUAJIT 1)
|
||||||
else(LUA_LIBRARY AND LUA_INCLUDE_DIR)
|
else(LUA_LIBRARY AND LUA_INCLUDE_DIR)
|
||||||
message (STATUS "LuaJIT not found, using bundled Lua.")
|
message (STATUS "LuaJIT not found, using bundled Lua.")
|
||||||
set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
|
set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
|
||||||
|
@ -223,11 +225,22 @@ configure_file(
|
||||||
"${PROJECT_BINARY_DIR}/cmake_config.h"
|
"${PROJECT_BINARY_DIR}/cmake_config.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Add a target that always rebuilds cmake_config_githash.h
|
||||||
|
add_custom_target(GenerateVersion
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D "GENERATE_VERSION_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
|
-D "GENERATE_VERSION_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
|
-D "VERSION_STRING=${VERSION_STRING}"
|
||||||
|
-D "VERSION_EXTRA=${VERSION_EXTRA}"
|
||||||
|
-P "${CMAKE_SOURCE_DIR}/cmake/Modules/GenerateVersion.cmake"
|
||||||
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
|
||||||
add_subdirectory(jthread)
|
add_subdirectory(jthread)
|
||||||
add_subdirectory(script)
|
add_subdirectory(script)
|
||||||
add_subdirectory(util)
|
add_subdirectory(util)
|
||||||
|
|
||||||
set(common_SRCS
|
set(common_SRCS
|
||||||
|
version.cpp
|
||||||
rollback_interface.cpp
|
rollback_interface.cpp
|
||||||
rollback.cpp
|
rollback.cpp
|
||||||
genericobject.cpp
|
genericobject.cpp
|
||||||
|
@ -293,6 +306,8 @@ set(common_SRCS
|
||||||
serverlist.cpp
|
serverlist.cpp
|
||||||
pathfinder.cpp
|
pathfinder.cpp
|
||||||
convert_json.cpp
|
convert_json.cpp
|
||||||
|
gettext.cpp
|
||||||
|
httpfetch.cpp
|
||||||
${JTHREAD_SRCS}
|
${JTHREAD_SRCS}
|
||||||
${common_SCRIPT_SRCS}
|
${common_SCRIPT_SRCS}
|
||||||
${UTIL_SRCS}
|
${UTIL_SRCS}
|
||||||
|
@ -345,6 +360,7 @@ set(minetest_SRCS
|
||||||
guiDeathScreen.cpp
|
guiDeathScreen.cpp
|
||||||
guiChatConsole.cpp
|
guiChatConsole.cpp
|
||||||
client.cpp
|
client.cpp
|
||||||
|
clientmedia.cpp
|
||||||
filecache.cpp
|
filecache.cpp
|
||||||
tile.cpp
|
tile.cpp
|
||||||
shader.cpp
|
shader.cpp
|
||||||
|
@ -404,6 +420,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin")
|
||||||
|
|
||||||
if(BUILD_CLIENT)
|
if(BUILD_CLIENT)
|
||||||
add_executable(${PROJECT_NAME} ${minetest_SRCS})
|
add_executable(${PROJECT_NAME} ${minetest_SRCS})
|
||||||
|
add_dependencies(${PROJECT_NAME} GenerateVersion)
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
${PROJECT_NAME}
|
${PROJECT_NAME}
|
||||||
${ZLIB_LIBRARIES}
|
${ZLIB_LIBRARIES}
|
||||||
|
@ -442,6 +459,7 @@ endif(BUILD_CLIENT)
|
||||||
|
|
||||||
if(BUILD_SERVER)
|
if(BUILD_SERVER)
|
||||||
add_executable(${PROJECT_NAME}server ${minetestserver_SRCS})
|
add_executable(${PROJECT_NAME}server ${minetestserver_SRCS})
|
||||||
|
add_dependencies(${PROJECT_NAME}server GenerateVersion)
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
${PROJECT_NAME}server
|
${PROJECT_NAME}server
|
||||||
${ZLIB_LIBRARIES}
|
${ZLIB_LIBRARIES}
|
||||||
|
@ -484,7 +502,7 @@ if(MSVC)
|
||||||
# Flags for C files (sqlite)
|
# Flags for C files (sqlite)
|
||||||
# /MT = Link statically with standard library stuff
|
# /MT = Link statically with standard library stuff
|
||||||
set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT")
|
set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT")
|
||||||
|
|
||||||
if(BUILD_SERVER)
|
if(BUILD_SERVER)
|
||||||
set_target_properties(${PROJECT_NAME}server PROPERTIES
|
set_target_properties(${PROJECT_NAME}server PROPERTIES
|
||||||
COMPILE_DEFINITIONS "SERVER")
|
COMPILE_DEFINITIONS "SERVER")
|
||||||
|
@ -492,13 +510,13 @@ if(MSVC)
|
||||||
|
|
||||||
else()
|
else()
|
||||||
# Probably GCC
|
# Probably GCC
|
||||||
|
|
||||||
if(WARN_ALL)
|
if(WARN_ALL)
|
||||||
set(RELEASE_WARNING_FLAGS "-Wall")
|
set(RELEASE_WARNING_FLAGS "-Wall")
|
||||||
else()
|
else()
|
||||||
set(RELEASE_WARNING_FLAGS "")
|
set(RELEASE_WARNING_FLAGS "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
if(NOT APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wno-unused-but-set-variable" HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
|
CHECK_CXX_COMPILER_FLAG("-Wno-unused-but-set-variable" HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
|
||||||
if(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
|
if(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
|
||||||
|
@ -521,7 +539,7 @@ else()
|
||||||
if(USE_GPROF)
|
if(USE_GPROF)
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_SERVER)
|
if(BUILD_SERVER)
|
||||||
set_target_properties(${PROJECT_NAME}server PROPERTIES
|
set_target_properties(${PROJECT_NAME}server PROPERTIES
|
||||||
COMPILE_DEFINITIONS "SERVER")
|
COMPILE_DEFINITIONS "SERVER")
|
||||||
|
|
|
@ -31,7 +31,6 @@ BanManager::BanManager(const std::string &banfilepath):
|
||||||
m_banfilepath(banfilepath),
|
m_banfilepath(banfilepath),
|
||||||
m_modified(false)
|
m_modified(false)
|
||||||
{
|
{
|
||||||
m_mutex.Init();
|
|
||||||
try{
|
try{
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "util/numeric.h"
|
#include "util/numeric.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "util/mathconstants.h"
|
||||||
|
|
||||||
NoiseParams nparams_biome_def_heat =
|
NoiseParams nparams_biome_def_heat =
|
||||||
{50, 50, v3f(500.0, 500.0, 500.0), 5349, 3, 0.70};
|
{50, 50, v3f(500.0, 500.0, 500.0), 5349, 3, 0.70};
|
||||||
|
|
|
@ -110,9 +110,21 @@ void CaveV6::makeCave(v3s16 nmin, v3s16 nmax, int max_stone_height) {
|
||||||
(float)(ps->next() % ar.Z) + 0.5
|
(float)(ps->next() % ar.Z) + 0.5
|
||||||
);
|
);
|
||||||
|
|
||||||
|
int notifytype = large_cave ? GENNOTIFY_LARGECAVE_BEGIN : GENNOTIFY_CAVE_BEGIN;
|
||||||
|
if (mg->gennotify & (1 << notifytype)) {
|
||||||
|
std::vector <v3s16> *nvec = mg->gen_notifications[notifytype];
|
||||||
|
nvec->push_back(v3s16(of.X + orp.X, of.Y + orp.Y, of.Z + orp.Z));
|
||||||
|
}
|
||||||
|
|
||||||
// Generate some tunnel starting from orp
|
// Generate some tunnel starting from orp
|
||||||
for (u16 j = 0; j < tunnel_routepoints; j++)
|
for (u16 j = 0; j < tunnel_routepoints; j++)
|
||||||
makeTunnel(j % dswitchint == 0);
|
makeTunnel(j % dswitchint == 0);
|
||||||
|
|
||||||
|
notifytype = large_cave ? GENNOTIFY_LARGECAVE_END : GENNOTIFY_CAVE_END;
|
||||||
|
if (mg->gennotify & (1 << notifytype)) {
|
||||||
|
std::vector <v3s16> *nvec = mg->gen_notifications[notifytype];
|
||||||
|
nvec->push_back(v3s16(of.X + orp.X, of.Y + orp.Y, of.Z + orp.Z));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -236,6 +248,9 @@ void CaveV6::carveRoute(v3f vec, float f, bool randomize_xz) {
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
u32 i = vm->m_area.index(p);
|
u32 i = vm->m_area.index(p);
|
||||||
|
content_t c = vm->m_data[i].getContent();
|
||||||
|
if (!ndef->get(c).is_ground_content)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (large_cave) {
|
if (large_cave) {
|
||||||
int full_ymin = node_min.Y - MAP_BLOCKSIZE;
|
int full_ymin = node_min.Y - MAP_BLOCKSIZE;
|
||||||
|
@ -250,7 +265,6 @@ void CaveV6::carveRoute(v3f vec, float f, bool randomize_xz) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Don't replace air or water or lava or ignore
|
// Don't replace air or water or lava or ignore
|
||||||
content_t c = vm->m_data[i].getContent();
|
|
||||||
if (c == CONTENT_IGNORE || c == CONTENT_AIR ||
|
if (c == CONTENT_IGNORE || c == CONTENT_AIR ||
|
||||||
c == c_water_source || c == c_lava_source)
|
c == c_water_source || c == c_lava_source)
|
||||||
continue;
|
continue;
|
||||||
|
@ -345,9 +359,21 @@ void CaveV7::makeCave(v3s16 nmin, v3s16 nmax, int max_stone_height) {
|
||||||
(float)(ps->next() % ar.Z) + 0.5
|
(float)(ps->next() % ar.Z) + 0.5
|
||||||
);
|
);
|
||||||
|
|
||||||
|
int notifytype = large_cave ? GENNOTIFY_LARGECAVE_BEGIN : GENNOTIFY_CAVE_BEGIN;
|
||||||
|
if (mg->gennotify & (1 << notifytype)) {
|
||||||
|
std::vector <v3s16> *nvec = mg->gen_notifications[notifytype];
|
||||||
|
nvec->push_back(v3s16(of.X + orp.X, of.Y + orp.Y, of.Z + orp.Z));
|
||||||
|
}
|
||||||
|
|
||||||
// Generate some tunnel starting from orp
|
// Generate some tunnel starting from orp
|
||||||
for (u16 j = 0; j < tunnel_routepoints; j++)
|
for (u16 j = 0; j < tunnel_routepoints; j++)
|
||||||
makeTunnel(j % dswitchint == 0);
|
makeTunnel(j % dswitchint == 0);
|
||||||
|
|
||||||
|
notifytype = large_cave ? GENNOTIFY_LARGECAVE_END : GENNOTIFY_CAVE_END;
|
||||||
|
if (mg->gennotify & (1 << notifytype)) {
|
||||||
|
std::vector <v3s16> *nvec = mg->gen_notifications[notifytype];
|
||||||
|
nvec->push_back(v3s16(of.X + orp.X, of.Y + orp.Y, of.Z + orp.Z));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -516,7 +542,8 @@ void CaveV7::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
|
||||||
v3s16 p(cp.X + x0, cp.Y + y0, cp.Z + z0);
|
v3s16 p(cp.X + x0, cp.Y + y0, cp.Z + z0);
|
||||||
p += of;
|
p += of;
|
||||||
|
|
||||||
if (!is_ravine && mg->heightmap && should_make_cave_hole) {
|
if (!is_ravine && mg->heightmap && should_make_cave_hole &&
|
||||||
|
p.X <= node_max.X && p.Z <= node_max.Z) {
|
||||||
int maplen = node_max.X - node_min.X + 1;
|
int maplen = node_max.X - node_min.X + 1;
|
||||||
int idx = (p.Z - node_min.Z) * maplen + (p.X - node_min.X);
|
int idx = (p.Z - node_min.Z) * maplen + (p.X - node_min.X);
|
||||||
if (p.Y >= mg->heightmap[idx] - 2)
|
if (p.Y >= mg->heightmap[idx] - 2)
|
||||||
|
@ -530,8 +557,8 @@ void CaveV7::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
|
||||||
|
|
||||||
// Don't replace air, water, lava, or ice
|
// Don't replace air, water, lava, or ice
|
||||||
content_t c = vm->m_data[i].getContent();
|
content_t c = vm->m_data[i].getContent();
|
||||||
if (c == CONTENT_AIR || c == c_water_source ||
|
if (!ndef->get(c).is_ground_content || c == CONTENT_AIR ||
|
||||||
c == c_lava_source || c == c_ice)
|
c == c_water_source || c == c_lava_source || c == c_ice)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (large_cave) {
|
if (large_cave) {
|
||||||
|
|
|
@ -199,7 +199,7 @@ void SGUITTGlyph::unload()
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
|
|
||||||
CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias, const bool transparency)
|
CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias, const bool transparency, const u32 shadow, const u32 shadow_alpha)
|
||||||
{
|
{
|
||||||
if (!c_libraryLoaded)
|
if (!c_libraryLoaded)
|
||||||
{
|
{
|
||||||
|
@ -216,6 +216,9 @@ CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filen
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
font->shadow_offset = shadow;
|
||||||
|
font->shadow_alpha = shadow_alpha;
|
||||||
|
|
||||||
return font;
|
return font;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -625,6 +628,14 @@ void CGUITTFont::draw(const core::stringw& text, const core::rect<s32>& position
|
||||||
CGUITTGlyphPage* page = n->getValue();
|
CGUITTGlyphPage* page = n->getValue();
|
||||||
|
|
||||||
if (!use_transparency) color.color |= 0xff000000;
|
if (!use_transparency) color.color |= 0xff000000;
|
||||||
|
|
||||||
|
if (shadow_offset) {
|
||||||
|
for (size_t i = 0; i < page->render_positions.size(); ++i)
|
||||||
|
page->render_positions[i] += core::vector2di(shadow_offset, shadow_offset);
|
||||||
|
Driver->draw2DImageBatch(page->texture, page->render_positions, page->render_source_rects, clip, video::SColor(shadow_alpha,0,0,0), true);
|
||||||
|
for (size_t i = 0; i < page->render_positions.size(); ++i)
|
||||||
|
page->render_positions[i] -= core::vector2di(shadow_offset, shadow_offset);
|
||||||
|
}
|
||||||
Driver->draw2DImageBatch(page->texture, page->render_positions, page->render_source_rects, clip, color, true);
|
Driver->draw2DImageBatch(page->texture, page->render_positions, page->render_source_rects, clip, color, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -207,7 +207,7 @@ namespace gui
|
||||||
//! \param antialias set the use_monochrome (opposite to antialias) flag
|
//! \param antialias set the use_monochrome (opposite to antialias) flag
|
||||||
//! \param transparency set the use_transparency flag
|
//! \param transparency set the use_transparency flag
|
||||||
//! \return Returns a pointer to a CGUITTFont. Will return 0 if the font failed to load.
|
//! \return Returns a pointer to a CGUITTFont. Will return 0 if the font failed to load.
|
||||||
static CGUITTFont* createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
static CGUITTFont* createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true, const u32 shadow = 0, const u32 shadow_alpha = 255);
|
||||||
static CGUITTFont* createTTFont(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
static CGUITTFont* createTTFont(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
||||||
static CGUITTFont* create(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
static CGUITTFont* create(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
||||||
static CGUITTFont* create(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
static CGUITTFont* create(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
||||||
|
@ -369,6 +369,8 @@ namespace gui
|
||||||
s32 GlobalKerningWidth;
|
s32 GlobalKerningWidth;
|
||||||
s32 GlobalKerningHeight;
|
s32 GlobalKerningHeight;
|
||||||
core::ustring Invisible;
|
core::ustring Invisible;
|
||||||
|
u32 shadow_offset;
|
||||||
|
u32 shadow_alpha;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace gui
|
} // end namespace gui
|
||||||
|
|
|
@ -205,6 +205,10 @@ inline core::array<u8> getUnicodeBOM(EUTF_ENCODE mode)
|
||||||
case EUTFE_UTF32_LE:
|
case EUTFE_UTF32_LE:
|
||||||
COPY_ARRAY(BOM_ENCODE_UTF32_LE, BOM_ENCODE_UTF32_LEN);
|
COPY_ARRAY(BOM_ENCODE_UTF32_LE, BOM_ENCODE_UTF32_LEN);
|
||||||
break;
|
break;
|
||||||
|
case EUTFE_NONE:
|
||||||
|
// TODO sapier: fixed warning only,
|
||||||
|
// don't know if something needs to be done here
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -257,7 +261,7 @@ public:
|
||||||
_set(c);
|
_set(c);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Increments the value by 1.
|
//! Increments the value by 1.
|
||||||
//! \return Myself.
|
//! \return Myself.
|
||||||
_ustring16_iterator_access& operator++()
|
_ustring16_iterator_access& operator++()
|
||||||
|
@ -392,7 +396,7 @@ public:
|
||||||
return unicode::toUTF32(a[pos], a[pos + 1]);
|
return unicode::toUTF32(a[pos], a[pos + 1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Sets a uchar32_t at our current position.
|
//! Sets a uchar32_t at our current position.
|
||||||
void _set(uchar32_t c)
|
void _set(uchar32_t c)
|
||||||
{
|
{
|
||||||
|
@ -707,7 +711,6 @@ public:
|
||||||
//! Moves the iterator to the end of the string.
|
//! Moves the iterator to the end of the string.
|
||||||
void toEnd()
|
void toEnd()
|
||||||
{
|
{
|
||||||
const uchar16_t* a = ref->c_str();
|
|
||||||
pos = ref->size_raw();
|
pos = ref->size_raw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -732,12 +735,13 @@ public:
|
||||||
typedef typename _Base::const_pointer const_pointer;
|
typedef typename _Base::const_pointer const_pointer;
|
||||||
typedef typename _Base::const_reference const_reference;
|
typedef typename _Base::const_reference const_reference;
|
||||||
|
|
||||||
|
|
||||||
typedef typename _Base::value_type value_type;
|
typedef typename _Base::value_type value_type;
|
||||||
typedef typename _Base::difference_type difference_type;
|
typedef typename _Base::difference_type difference_type;
|
||||||
typedef typename _Base::distance_type distance_type;
|
typedef typename _Base::distance_type distance_type;
|
||||||
typedef access pointer;
|
typedef access pointer;
|
||||||
typedef access reference;
|
typedef access reference;
|
||||||
|
|
||||||
using _Base::pos;
|
using _Base::pos;
|
||||||
using _Base::ref;
|
using _Base::ref;
|
||||||
|
|
||||||
|
@ -2096,7 +2100,7 @@ public:
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//! Appends a number to this ustring16.
|
//! Appends a number to this ustring16.
|
||||||
//! \param c Number to append.
|
//! \param c Number to append.
|
||||||
//! \return A reference to our current string.
|
//! \return A reference to our current string.
|
||||||
|
@ -2958,7 +2962,7 @@ public:
|
||||||
if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian)
|
if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian)
|
||||||
{
|
{
|
||||||
for (u32 i = 0; i <= used; ++i)
|
for (u32 i = 0; i <= used; ++i)
|
||||||
*ptr++ = unicode::swapEndian16(*ptr);
|
ptr[i] = unicode::swapEndian16(ptr[i]);
|
||||||
}
|
}
|
||||||
ret.set_used(used + (addBOM ? unicode::BOM_UTF16_LEN : 0));
|
ret.set_used(used + (addBOM ? unicode::BOM_UTF16_LEN : 0));
|
||||||
ret.push_back(0);
|
ret.push_back(0);
|
||||||
|
|
352
src/client.cpp
352
src/client.cpp
|
@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
#include "clientserver.h"
|
#include "clientserver.h"
|
||||||
#include "jthread/jmutexautolock.h"
|
#include "jthread/jmutexautolock.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
@ -37,26 +38,18 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "itemdef.h"
|
#include "itemdef.h"
|
||||||
#include "shader.h"
|
#include "shader.h"
|
||||||
#include <IFileSystem.h>
|
#include <IFileSystem.h>
|
||||||
#include "sha1.h"
|
|
||||||
#include "base64.h"
|
#include "base64.h"
|
||||||
#include "clientmap.h"
|
#include "clientmap.h"
|
||||||
#include "filecache.h"
|
#include "clientmedia.h"
|
||||||
#include "sound.h"
|
#include "sound.h"
|
||||||
#include "util/string.h"
|
#include "util/string.h"
|
||||||
#include "hex.h"
|
|
||||||
#include "IMeshCache.h"
|
#include "IMeshCache.h"
|
||||||
|
#include "serialization.h"
|
||||||
#include "util/serialize.h"
|
#include "util/serialize.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "util/directiontables.h"
|
#include "util/directiontables.h"
|
||||||
|
#include "util/pointedthing.h"
|
||||||
#if USE_CURL
|
#include "version.h"
|
||||||
#include <curl/curl.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static std::string getMediaCacheDir()
|
|
||||||
{
|
|
||||||
return porting::path_user + DIR_DELIM + "cache" + DIR_DELIM + "media";
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
QueuedMeshUpdate
|
QueuedMeshUpdate
|
||||||
|
@ -81,7 +74,6 @@ QueuedMeshUpdate::~QueuedMeshUpdate()
|
||||||
|
|
||||||
MeshUpdateQueue::MeshUpdateQueue()
|
MeshUpdateQueue::MeshUpdateQueue()
|
||||||
{
|
{
|
||||||
m_mutex.Init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MeshUpdateQueue::~MeshUpdateQueue()
|
MeshUpdateQueue::~MeshUpdateQueue()
|
||||||
|
@ -176,7 +168,7 @@ void * MeshUpdateThread::Thread()
|
||||||
|
|
||||||
BEGIN_DEBUG_EXCEPTION_HANDLER
|
BEGIN_DEBUG_EXCEPTION_HANDLER
|
||||||
|
|
||||||
while(getRun())
|
while(!StopRequested())
|
||||||
{
|
{
|
||||||
/*// Wait for output queue to flush.
|
/*// Wait for output queue to flush.
|
||||||
// Allow 2 in queue, this makes less frametime jitter.
|
// Allow 2 in queue, this makes less frametime jitter.
|
||||||
|
@ -222,45 +214,9 @@ void * MeshUpdateThread::Thread()
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void * MediaFetchThread::Thread()
|
/*
|
||||||
{
|
Client
|
||||||
ThreadStarted();
|
*/
|
||||||
|
|
||||||
log_register_thread("MediaFetchThread");
|
|
||||||
|
|
||||||
DSTACK(__FUNCTION_NAME);
|
|
||||||
|
|
||||||
BEGIN_DEBUG_EXCEPTION_HANDLER
|
|
||||||
|
|
||||||
#if USE_CURL
|
|
||||||
CURL *curl;
|
|
||||||
CURLcode res;
|
|
||||||
for (std::list<MediaRequest>::iterator i = m_file_requests.begin();
|
|
||||||
i != m_file_requests.end(); ++i) {
|
|
||||||
curl = curl_easy_init();
|
|
||||||
assert(curl);
|
|
||||||
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
|
|
||||||
curl_easy_setopt(curl, CURLOPT_URL, (m_remote_url + i->name).c_str());
|
|
||||||
curl_easy_setopt(curl, CURLOPT_FAILONERROR, true);
|
|
||||||
std::ostringstream stream;
|
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_data);
|
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &stream);
|
|
||||||
res = curl_easy_perform(curl);
|
|
||||||
if (res == CURLE_OK) {
|
|
||||||
std::string data = stream.str();
|
|
||||||
m_file_data.push_back(make_pair(i->name, data));
|
|
||||||
} else {
|
|
||||||
m_failed.push_back(*i);
|
|
||||||
infostream << "cURL request failed for " << i->name << " (" << curl_easy_strerror(res) << ")"<< std::endl;
|
|
||||||
}
|
|
||||||
curl_easy_cleanup(curl);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_DEBUG_EXCEPTION_HANDLER(errorstream)
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Client::Client(
|
Client::Client(
|
||||||
IrrlichtDevice *device,
|
IrrlichtDevice *device,
|
||||||
|
@ -302,12 +258,9 @@ Client::Client(
|
||||||
m_map_seed(0),
|
m_map_seed(0),
|
||||||
m_password(password),
|
m_password(password),
|
||||||
m_access_denied(false),
|
m_access_denied(false),
|
||||||
m_media_cache(getMediaCacheDir()),
|
|
||||||
m_media_receive_started(false),
|
|
||||||
m_media_count(0),
|
|
||||||
m_media_received_count(0),
|
|
||||||
m_itemdef_received(false),
|
m_itemdef_received(false),
|
||||||
m_nodedef_received(false),
|
m_nodedef_received(false),
|
||||||
|
m_media_downloader(new ClientMediaDownloader()),
|
||||||
m_time_of_day_set(false),
|
m_time_of_day_set(false),
|
||||||
m_last_time_of_day_f(-1),
|
m_last_time_of_day_f(-1),
|
||||||
m_time_of_day_update_timer(0),
|
m_time_of_day_update_timer(0),
|
||||||
|
@ -331,9 +284,6 @@ Client::Client(
|
||||||
|
|
||||||
m_env.addPlayer(player);
|
m_env.addPlayer(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < g_settings->getU16("media_fetch_threads"); ++i)
|
|
||||||
m_media_fetch_threads.push_back(new MediaFetchThread(this));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Client::~Client()
|
Client::~Client()
|
||||||
|
@ -343,9 +293,8 @@ Client::~Client()
|
||||||
m_con.Disconnect();
|
m_con.Disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_mesh_update_thread.setRun(false);
|
m_mesh_update_thread.Stop();
|
||||||
while(m_mesh_update_thread.IsRunning())
|
m_mesh_update_thread.Wait();
|
||||||
sleep_ms(100);
|
|
||||||
while(!m_mesh_update_thread.m_queue_out.empty()) {
|
while(!m_mesh_update_thread.m_queue_out.empty()) {
|
||||||
MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_front();
|
MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_front();
|
||||||
delete r.mesh;
|
delete r.mesh;
|
||||||
|
@ -363,10 +312,6 @@ Client::~Client()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (std::list<MediaFetchThread*>::iterator i = m_media_fetch_threads.begin();
|
|
||||||
i != m_media_fetch_threads.end(); ++i)
|
|
||||||
delete *i;
|
|
||||||
|
|
||||||
// cleanup 3d model meshes on client shutdown
|
// cleanup 3d model meshes on client shutdown
|
||||||
while (m_device->getSceneManager()->getMeshCache()->getMeshCount() != 0) {
|
while (m_device->getSceneManager()->getMeshCache()->getMeshCount() != 0) {
|
||||||
scene::IAnimatedMesh * mesh =
|
scene::IAnimatedMesh * mesh =
|
||||||
|
@ -472,7 +417,7 @@ void Client::step(float dtime)
|
||||||
|
|
||||||
core::list<v3s16> deleted_blocks;
|
core::list<v3s16> deleted_blocks;
|
||||||
|
|
||||||
float delete_unused_sectors_timeout =
|
float delete_unused_sectors_timeout =
|
||||||
g_settings->getFloat("client_delete_unused_sectors_timeout");
|
g_settings->getFloat("client_delete_unused_sectors_timeout");
|
||||||
|
|
||||||
// Delete sector blocks
|
// Delete sector blocks
|
||||||
|
@ -796,57 +741,11 @@ void Client::step(float dtime)
|
||||||
/*
|
/*
|
||||||
Load fetched media
|
Load fetched media
|
||||||
*/
|
*/
|
||||||
if (m_media_receive_started) {
|
if (m_media_downloader && m_media_downloader->isStarted()) {
|
||||||
bool all_stopped = true;
|
m_media_downloader->step(this);
|
||||||
for (std::list<MediaFetchThread*>::iterator thread = m_media_fetch_threads.begin();
|
if (m_media_downloader->isDone()) {
|
||||||
thread != m_media_fetch_threads.end(); ++thread) {
|
delete m_media_downloader;
|
||||||
all_stopped &= !(*thread)->IsRunning();
|
m_media_downloader = NULL;
|
||||||
while (!(*thread)->m_file_data.empty()) {
|
|
||||||
std::pair <std::string, std::string> out = (*thread)->m_file_data.pop_front();
|
|
||||||
if(m_media_received_count < m_media_count)
|
|
||||||
m_media_received_count++;
|
|
||||||
|
|
||||||
bool success = loadMedia(out.second, out.first);
|
|
||||||
if(success){
|
|
||||||
verbosestream<<"Client: Loaded received media: "
|
|
||||||
<<"\""<<out.first<<"\". Caching."<<std::endl;
|
|
||||||
} else{
|
|
||||||
infostream<<"Client: Failed to load received media: "
|
|
||||||
<<"\""<<out.first<<"\". Not caching."<<std::endl;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool did = fs::CreateAllDirs(getMediaCacheDir());
|
|
||||||
if(!did){
|
|
||||||
errorstream<<"Could not create media cache directory"
|
|
||||||
<<std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
std::map<std::string, std::string>::iterator n;
|
|
||||||
n = m_media_name_sha1_map.find(out.first);
|
|
||||||
if(n == m_media_name_sha1_map.end())
|
|
||||||
errorstream<<"The server sent a file that has not "
|
|
||||||
<<"been announced."<<std::endl;
|
|
||||||
else
|
|
||||||
m_media_cache.update_sha1(out.second);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (all_stopped) {
|
|
||||||
std::list<MediaRequest> fetch_failed;
|
|
||||||
for (std::list<MediaFetchThread*>::iterator thread = m_media_fetch_threads.begin();
|
|
||||||
thread != m_media_fetch_threads.end(); ++thread) {
|
|
||||||
for (std::list<MediaRequest>::iterator request = (*thread)->m_failed.begin();
|
|
||||||
request != (*thread)->m_failed.end(); ++request)
|
|
||||||
fetch_failed.push_back(*request);
|
|
||||||
(*thread)->m_failed.clear();
|
|
||||||
}
|
|
||||||
if (fetch_failed.size() > 0) {
|
|
||||||
infostream << "Failed to remote-fetch " << fetch_failed.size() << " files. "
|
|
||||||
<< "Requesting them the usual way." << std::endl;
|
|
||||||
request_media(fetch_failed);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1047,15 +946,15 @@ void Client::deletingPeer(con::Peer *peer, bool timeout)
|
||||||
string name
|
string name
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
void Client::request_media(const std::list<MediaRequest> &file_requests)
|
void Client::request_media(const std::list<std::string> &file_requests)
|
||||||
{
|
{
|
||||||
std::ostringstream os(std::ios_base::binary);
|
std::ostringstream os(std::ios_base::binary);
|
||||||
writeU16(os, TOSERVER_REQUEST_MEDIA);
|
writeU16(os, TOSERVER_REQUEST_MEDIA);
|
||||||
writeU16(os, file_requests.size());
|
writeU16(os, file_requests.size());
|
||||||
|
|
||||||
for(std::list<MediaRequest>::const_iterator i = file_requests.begin();
|
for(std::list<std::string>::const_iterator i = file_requests.begin();
|
||||||
i != file_requests.end(); ++i) {
|
i != file_requests.end(); ++i) {
|
||||||
os<<serializeString(i->name);
|
os<<serializeString(*i);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make data buffer
|
// Make data buffer
|
||||||
|
@ -1067,6 +966,19 @@ void Client::request_media(const std::list<MediaRequest> &file_requests)
|
||||||
<<file_requests.size()<<" files)"<<std::endl;
|
<<file_requests.size()<<" files)"<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Client::received_media()
|
||||||
|
{
|
||||||
|
// notify server we received everything
|
||||||
|
std::ostringstream os(std::ios_base::binary);
|
||||||
|
writeU16(os, TOSERVER_RECEIVED_MEDIA);
|
||||||
|
std::string s = os.str();
|
||||||
|
SharedBuffer<u8> data((u8*)s.c_str(), s.size());
|
||||||
|
// Send as reliable
|
||||||
|
Send(0, data, true);
|
||||||
|
infostream<<"Client: Notifying server that we received all media"
|
||||||
|
<<std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
void Client::ReceiveAll()
|
void Client::ReceiveAll()
|
||||||
{
|
{
|
||||||
DSTACK(__FUNCTION_NAME);
|
DSTACK(__FUNCTION_NAME);
|
||||||
|
@ -1260,7 +1172,13 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||||
MapNode n;
|
MapNode n;
|
||||||
n.deSerialize(&data[8], ser_version);
|
n.deSerialize(&data[8], ser_version);
|
||||||
|
|
||||||
addNode(p, n);
|
bool remove_metadata = true;
|
||||||
|
u32 index = 8 + MapNode::serializedLength(ser_version);
|
||||||
|
if ((datasize >= index+1) && data[index]){
|
||||||
|
remove_metadata = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
addNode(p, n, remove_metadata);
|
||||||
}
|
}
|
||||||
else if(command == TOCLIENT_BLOCKDATA)
|
else if(command == TOCLIENT_BLOCKDATA)
|
||||||
{
|
{
|
||||||
|
@ -1653,96 +1571,54 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||||
std::string datastring((char*)&data[2], datasize-2);
|
std::string datastring((char*)&data[2], datasize-2);
|
||||||
std::istringstream is(datastring, std::ios_base::binary);
|
std::istringstream is(datastring, std::ios_base::binary);
|
||||||
|
|
||||||
// Mesh update thread must be stopped while
|
|
||||||
// updating content definitions
|
|
||||||
assert(!m_mesh_update_thread.IsRunning());
|
|
||||||
|
|
||||||
int num_files = readU16(is);
|
int num_files = readU16(is);
|
||||||
|
|
||||||
infostream<<"Client: Received media announcement: packet size: "
|
infostream<<"Client: Received media announcement: packet size: "
|
||||||
<<datasize<<std::endl;
|
<<datasize<<std::endl;
|
||||||
|
|
||||||
std::list<MediaRequest> file_requests;
|
if (m_media_downloader == NULL ||
|
||||||
|
m_media_downloader->isStarted()) {
|
||||||
|
const char *problem = m_media_downloader ?
|
||||||
|
"we already saw another announcement" :
|
||||||
|
"all media has been received already";
|
||||||
|
errorstream<<"Client: Received media announcement but "
|
||||||
|
<<problem<<"! "
|
||||||
|
<<" files="<<num_files
|
||||||
|
<<" size="<<datasize<<std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mesh update thread must be stopped while
|
||||||
|
// updating content definitions
|
||||||
|
assert(!m_mesh_update_thread.IsRunning());
|
||||||
|
|
||||||
for(int i=0; i<num_files; i++)
|
for(int i=0; i<num_files; i++)
|
||||||
{
|
{
|
||||||
//read file from cache
|
|
||||||
std::string name = deSerializeString(is);
|
std::string name = deSerializeString(is);
|
||||||
std::string sha1_base64 = deSerializeString(is);
|
std::string sha1_base64 = deSerializeString(is);
|
||||||
|
|
||||||
// if name contains illegal characters, ignore the file
|
|
||||||
if(!string_allowed(name, TEXTURENAME_ALLOWED_CHARS)){
|
|
||||||
errorstream<<"Client: ignoring illegal file name "
|
|
||||||
<<"sent by server: \""<<name<<"\""<<std::endl;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string sha1_raw = base64_decode(sha1_base64);
|
std::string sha1_raw = base64_decode(sha1_base64);
|
||||||
std::string sha1_hex = hex_encode(sha1_raw);
|
m_media_downloader->addFile(name, sha1_raw);
|
||||||
std::ostringstream tmp_os(std::ios_base::binary);
|
|
||||||
bool found_in_cache = m_media_cache.load_sha1(sha1_raw, tmp_os);
|
|
||||||
m_media_name_sha1_map[name] = sha1_raw;
|
|
||||||
|
|
||||||
// If found in cache, try to load it from there
|
|
||||||
if(found_in_cache)
|
|
||||||
{
|
|
||||||
bool success = loadMedia(tmp_os.str(), name);
|
|
||||||
if(success){
|
|
||||||
verbosestream<<"Client: Loaded cached media: "
|
|
||||||
<<sha1_hex<<" \""<<name<<"\""<<std::endl;
|
|
||||||
continue;
|
|
||||||
} else{
|
|
||||||
infostream<<"Client: Failed to load cached media: "
|
|
||||||
<<sha1_hex<<" \""<<name<<"\""<<std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Didn't load from cache; queue it to be requested
|
|
||||||
verbosestream<<"Client: Adding file to request list: \""
|
|
||||||
<<sha1_hex<<" \""<<name<<"\""<<std::endl;
|
|
||||||
file_requests.push_back(MediaRequest(name));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string remote_media = "";
|
std::vector<std::string> remote_media;
|
||||||
try {
|
try {
|
||||||
remote_media = deSerializeString(is);
|
Strfnd sf(deSerializeString(is));
|
||||||
|
while(!sf.atend()) {
|
||||||
|
std::string baseurl = trim(sf.next(","));
|
||||||
|
if(baseurl != "")
|
||||||
|
m_media_downloader->addRemoteServer(baseurl);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch(SerializationError) {
|
catch(SerializationError) {
|
||||||
// not supported by server or turned off
|
// not supported by server or turned off
|
||||||
}
|
}
|
||||||
|
|
||||||
m_media_count = file_requests.size();
|
m_media_downloader->step(this);
|
||||||
m_media_receive_started = true;
|
if (m_media_downloader->isDone()) {
|
||||||
|
// might be done already if all media is in the cache
|
||||||
if (remote_media == "" || !USE_CURL) {
|
delete m_media_downloader;
|
||||||
request_media(file_requests);
|
m_media_downloader = NULL;
|
||||||
} else {
|
|
||||||
#if USE_CURL
|
|
||||||
std::list<MediaFetchThread*>::iterator cur = m_media_fetch_threads.begin();
|
|
||||||
for(std::list<MediaRequest>::iterator i = file_requests.begin();
|
|
||||||
i != file_requests.end(); ++i) {
|
|
||||||
(*cur)->m_file_requests.push_back(*i);
|
|
||||||
cur++;
|
|
||||||
if (cur == m_media_fetch_threads.end())
|
|
||||||
cur = m_media_fetch_threads.begin();
|
|
||||||
}
|
|
||||||
for (std::list<MediaFetchThread*>::iterator i = m_media_fetch_threads.begin();
|
|
||||||
i != m_media_fetch_threads.end(); ++i) {
|
|
||||||
(*i)->m_remote_url = remote_media;
|
|
||||||
(*i)->Start();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// notify server we received everything
|
|
||||||
std::ostringstream os(std::ios_base::binary);
|
|
||||||
writeU16(os, TOSERVER_RECEIVED_MEDIA);
|
|
||||||
std::string s = os.str();
|
|
||||||
SharedBuffer<u8> data((u8*)s.c_str(), s.size());
|
|
||||||
// Send as reliable
|
|
||||||
Send(0, data, true);
|
|
||||||
}
|
}
|
||||||
ClientEvent event;
|
|
||||||
event.type = CE_TEXTURES_UPDATED;
|
|
||||||
m_client_event_queue.push_back(event);
|
|
||||||
}
|
}
|
||||||
else if(command == TOCLIENT_MEDIA)
|
else if(command == TOCLIENT_MEDIA)
|
||||||
{
|
{
|
||||||
|
@ -1768,67 +1644,37 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||||
<<num_bunches<<" files="<<num_files
|
<<num_bunches<<" files="<<num_files
|
||||||
<<" size="<<datasize<<std::endl;
|
<<" size="<<datasize<<std::endl;
|
||||||
|
|
||||||
// Check total and received media count
|
if (num_files == 0)
|
||||||
assert(m_media_received_count <= m_media_count);
|
return;
|
||||||
if (num_files > m_media_count - m_media_received_count) {
|
|
||||||
errorstream<<"Client: Received more files than requested:"
|
if (m_media_downloader == NULL ||
|
||||||
<<" total count="<<m_media_count
|
!m_media_downloader->isStarted()) {
|
||||||
<<" total received="<<m_media_received_count
|
const char *problem = m_media_downloader ?
|
||||||
|
"media has not been requested" :
|
||||||
|
"all media has been received already";
|
||||||
|
errorstream<<"Client: Received media but "
|
||||||
|
<<problem<<"! "
|
||||||
<<" bunch "<<bunch_i<<"/"<<num_bunches
|
<<" bunch "<<bunch_i<<"/"<<num_bunches
|
||||||
<<" files="<<num_files
|
<<" files="<<num_files
|
||||||
<<" size="<<datasize<<std::endl;
|
<<" size="<<datasize<<std::endl;
|
||||||
num_files = m_media_count - m_media_received_count;
|
|
||||||
}
|
|
||||||
if (num_files == 0)
|
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Mesh update thread must be stopped while
|
// Mesh update thread must be stopped while
|
||||||
// updating content definitions
|
// updating content definitions
|
||||||
assert(!m_mesh_update_thread.IsRunning());
|
assert(!m_mesh_update_thread.IsRunning());
|
||||||
|
|
||||||
for(u32 i=0; i<num_files; i++){
|
for(u32 i=0; i<num_files; i++){
|
||||||
assert(m_media_received_count < m_media_count);
|
|
||||||
m_media_received_count++;
|
|
||||||
std::string name = deSerializeString(is);
|
std::string name = deSerializeString(is);
|
||||||
std::string data = deSerializeLongString(is);
|
std::string data = deSerializeLongString(is);
|
||||||
|
m_media_downloader->conventionalTransferDone(
|
||||||
// if name contains illegal characters, ignore the file
|
name, data, this);
|
||||||
if(!string_allowed(name, TEXTURENAME_ALLOWED_CHARS)){
|
|
||||||
errorstream<<"Client: ignoring illegal file name "
|
|
||||||
<<"sent by server: \""<<name<<"\""<<std::endl;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool success = loadMedia(data, name);
|
|
||||||
if(success){
|
|
||||||
verbosestream<<"Client: Loaded received media: "
|
|
||||||
<<"\""<<name<<"\". Caching."<<std::endl;
|
|
||||||
} else{
|
|
||||||
infostream<<"Client: Failed to load received media: "
|
|
||||||
<<"\""<<name<<"\". Not caching."<<std::endl;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool did = fs::CreateAllDirs(getMediaCacheDir());
|
|
||||||
if(!did){
|
|
||||||
errorstream<<"Could not create media cache directory"
|
|
||||||
<<std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
std::map<std::string, std::string>::iterator n;
|
|
||||||
n = m_media_name_sha1_map.find(name);
|
|
||||||
if(n == m_media_name_sha1_map.end())
|
|
||||||
errorstream<<"The server sent a file that has not "
|
|
||||||
<<"been announced."<<std::endl;
|
|
||||||
else
|
|
||||||
m_media_cache.update_sha1(data);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ClientEvent event;
|
if (m_media_downloader->isDone()) {
|
||||||
event.type = CE_TEXTURES_UPDATED;
|
delete m_media_downloader;
|
||||||
m_client_event_queue.push_back(event);
|
m_media_downloader = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(command == TOCLIENT_TOOLDEF)
|
else if(command == TOCLIENT_TOOLDEF)
|
||||||
{
|
{
|
||||||
|
@ -2118,7 +1964,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||||
m_client_event_queue.push_back(event);
|
m_client_event_queue.push_back(event);
|
||||||
}
|
}
|
||||||
else if(command == TOCLIENT_HUDCHANGE)
|
else if(command == TOCLIENT_HUDCHANGE)
|
||||||
{
|
{
|
||||||
std::string sdata;
|
std::string sdata;
|
||||||
v2f v2fdata;
|
v2f v2fdata;
|
||||||
u32 intdata = 0;
|
u32 intdata = 0;
|
||||||
|
@ -2147,7 +1993,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||||
m_client_event_queue.push_back(event);
|
m_client_event_queue.push_back(event);
|
||||||
}
|
}
|
||||||
else if(command == TOCLIENT_HUD_SET_FLAGS)
|
else if(command == TOCLIENT_HUD_SET_FLAGS)
|
||||||
{
|
{
|
||||||
std::string datastring((char *)&data[2], datasize - 2);
|
std::string datastring((char *)&data[2], datasize - 2);
|
||||||
std::istringstream is(datastring, std::ios_base::binary);
|
std::istringstream is(datastring, std::ios_base::binary);
|
||||||
|
|
||||||
|
@ -2256,7 +2102,7 @@ void Client::sendNodemetaFields(v3s16 p, const std::string &formname,
|
||||||
Send(0, data, true);
|
Send(0, data, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::sendInventoryFields(const std::string &formname,
|
void Client::sendInventoryFields(const std::string &formname,
|
||||||
const std::map<std::string, std::string> &fields)
|
const std::map<std::string, std::string> &fields)
|
||||||
{
|
{
|
||||||
std::ostringstream os(std::ios_base::binary);
|
std::ostringstream os(std::ios_base::binary);
|
||||||
|
@ -2460,7 +2306,7 @@ void Client::sendPlayerPos()
|
||||||
writeV3S32(&data[2], position);
|
writeV3S32(&data[2], position);
|
||||||
writeV3S32(&data[2+12], speed);
|
writeV3S32(&data[2+12], speed);
|
||||||
writeS32(&data[2+12+12], pitch);
|
writeS32(&data[2+12+12], pitch);
|
||||||
writeS32(&data[2+12+12+4], yaw);
|
writeS32(&data[2+12+12+4], yaw);
|
||||||
writeU32(&data[2+12+12+4+4], keyPressed);
|
writeU32(&data[2+12+12+4+4], keyPressed);
|
||||||
// Send as unreliable
|
// Send as unreliable
|
||||||
Send(0, data, false);
|
Send(0, data, false);
|
||||||
|
@ -2512,7 +2358,7 @@ void Client::removeNode(v3s16 p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::addNode(v3s16 p, MapNode n)
|
void Client::addNode(v3s16 p, MapNode n, bool remove_metadata)
|
||||||
{
|
{
|
||||||
TimeTaker timer1("Client::addNode()");
|
TimeTaker timer1("Client::addNode()");
|
||||||
|
|
||||||
|
@ -2521,7 +2367,7 @@ void Client::addNode(v3s16 p, MapNode n)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//TimeTaker timer3("Client::addNode(): addNodeAndUpdate");
|
//TimeTaker timer3("Client::addNode(): addNodeAndUpdate");
|
||||||
m_env.getMap().addNodeAndUpdate(p, n, modified_blocks);
|
m_env.getMap().addNodeAndUpdate(p, n, modified_blocks, remove_metadata);
|
||||||
}
|
}
|
||||||
catch(InvalidPositionException &e)
|
catch(InvalidPositionException &e)
|
||||||
{}
|
{}
|
||||||
|
@ -2878,6 +2724,14 @@ ClientEvent Client::getClientEvent()
|
||||||
return m_client_event_queue.pop_front();
|
return m_client_event_queue.pop_front();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Client::mediaReceiveProgress()
|
||||||
|
{
|
||||||
|
if (m_media_downloader)
|
||||||
|
return m_media_downloader->getProgress();
|
||||||
|
else
|
||||||
|
return 1.0; // downloader only exists when not yet done
|
||||||
|
}
|
||||||
|
|
||||||
void draw_load_screen(const std::wstring &text,
|
void draw_load_screen(const std::wstring &text,
|
||||||
IrrlichtDevice* device, gui::IGUIFont* font,
|
IrrlichtDevice* device, gui::IGUIFont* font,
|
||||||
float dtime=0 ,int percent=0, bool clouds=true);
|
float dtime=0 ,int percent=0, bool clouds=true);
|
||||||
|
@ -2886,12 +2740,8 @@ void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
|
||||||
infostream<<"Client::afterContentReceived() started"<<std::endl;
|
infostream<<"Client::afterContentReceived() started"<<std::endl;
|
||||||
assert(m_itemdef_received);
|
assert(m_itemdef_received);
|
||||||
assert(m_nodedef_received);
|
assert(m_nodedef_received);
|
||||||
assert(texturesReceived());
|
assert(mediaReceived());
|
||||||
|
|
||||||
// remove the information about which checksum each texture
|
|
||||||
// ought to have
|
|
||||||
m_media_name_sha1_map.clear();
|
|
||||||
|
|
||||||
// Rebuild inherited images and recreate textures
|
// Rebuild inherited images and recreate textures
|
||||||
infostream<<"- Rebuilding images and textures"<<std::endl;
|
infostream<<"- Rebuilding images and textures"<<std::endl;
|
||||||
m_tsrc->rebuildImagesAndTextures();
|
m_tsrc->rebuildImagesAndTextures();
|
||||||
|
|
71
src/client.h
71
src/client.h
|
@ -31,32 +31,21 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "clientobject.h"
|
#include "clientobject.h"
|
||||||
#include "gamedef.h"
|
#include "gamedef.h"
|
||||||
#include "inventorymanager.h"
|
#include "inventorymanager.h"
|
||||||
#include "filecache.h"
|
|
||||||
#include "localplayer.h"
|
#include "localplayer.h"
|
||||||
#include "server.h"
|
#include "hud.h"
|
||||||
#include "particles.h"
|
#include "particles.h"
|
||||||
#include "util/pointedthing.h"
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
struct MeshMakeData;
|
struct MeshMakeData;
|
||||||
class MapBlockMesh;
|
class MapBlockMesh;
|
||||||
class IGameDef;
|
|
||||||
class IWritableTextureSource;
|
class IWritableTextureSource;
|
||||||
class IWritableShaderSource;
|
class IWritableShaderSource;
|
||||||
class IWritableItemDefManager;
|
class IWritableItemDefManager;
|
||||||
class IWritableNodeDefManager;
|
class IWritableNodeDefManager;
|
||||||
//class IWritableCraftDefManager;
|
//class IWritableCraftDefManager;
|
||||||
class ClientEnvironment;
|
class ClientMediaDownloader;
|
||||||
struct MapDrawControl;
|
struct MapDrawControl;
|
||||||
class MtEventManager;
|
class MtEventManager;
|
||||||
|
struct PointedThing;
|
||||||
class ClientNotReadyException : public BaseException
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ClientNotReadyException(const char *s):
|
|
||||||
BaseException(s)
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct QueuedMeshUpdate
|
struct QueuedMeshUpdate
|
||||||
{
|
{
|
||||||
|
@ -114,7 +103,7 @@ struct MeshUpdateResult
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class MeshUpdateThread : public SimpleThread
|
class MeshUpdateThread : public JThread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -132,31 +121,12 @@ public:
|
||||||
IGameDef *m_gamedef;
|
IGameDef *m_gamedef;
|
||||||
};
|
};
|
||||||
|
|
||||||
class MediaFetchThread : public SimpleThread
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
MediaFetchThread(IGameDef *gamedef):
|
|
||||||
m_gamedef(gamedef)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void * Thread();
|
|
||||||
|
|
||||||
std::list<MediaRequest> m_file_requests;
|
|
||||||
MutexedQueue<std::pair<std::string, std::string> > m_file_data;
|
|
||||||
std::list<MediaRequest> m_failed;
|
|
||||||
std::string m_remote_url;
|
|
||||||
IGameDef *m_gamedef;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum ClientEventType
|
enum ClientEventType
|
||||||
{
|
{
|
||||||
CE_NONE,
|
CE_NONE,
|
||||||
CE_PLAYER_DAMAGE,
|
CE_PLAYER_DAMAGE,
|
||||||
CE_PLAYER_FORCE_MOVE,
|
CE_PLAYER_FORCE_MOVE,
|
||||||
CE_DEATHSCREEN,
|
CE_DEATHSCREEN,
|
||||||
CE_TEXTURES_UPDATED,
|
|
||||||
CE_SHOW_FORMSPEC,
|
CE_SHOW_FORMSPEC,
|
||||||
CE_SPAWN_PARTICLE,
|
CE_SPAWN_PARTICLE,
|
||||||
CE_ADD_PARTICLESPAWNER,
|
CE_ADD_PARTICLESPAWNER,
|
||||||
|
@ -365,7 +335,7 @@ public:
|
||||||
|
|
||||||
// Causes urgent mesh updates (unlike Map::add/removeNodeWithEvent)
|
// Causes urgent mesh updates (unlike Map::add/removeNodeWithEvent)
|
||||||
void removeNode(v3s16 p);
|
void removeNode(v3s16 p);
|
||||||
void addNode(v3s16 p, MapNode n);
|
void addNode(v3s16 p, MapNode n, bool remove_metadata = true);
|
||||||
|
|
||||||
void setPlayerControl(PlayerControl &control);
|
void setPlayerControl(PlayerControl &control);
|
||||||
|
|
||||||
|
@ -426,19 +396,15 @@ public:
|
||||||
std::wstring accessDeniedReason()
|
std::wstring accessDeniedReason()
|
||||||
{ return m_access_denied_reason; }
|
{ return m_access_denied_reason; }
|
||||||
|
|
||||||
float mediaReceiveProgress()
|
|
||||||
{
|
|
||||||
if (!m_media_receive_started) return 0;
|
|
||||||
return 1.0 * m_media_received_count / m_media_count;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool texturesReceived()
|
|
||||||
{ return m_media_receive_started && m_media_received_count == m_media_count; }
|
|
||||||
bool itemdefReceived()
|
bool itemdefReceived()
|
||||||
{ return m_itemdef_received; }
|
{ return m_itemdef_received; }
|
||||||
bool nodedefReceived()
|
bool nodedefReceived()
|
||||||
{ return m_nodedef_received; }
|
{ return m_nodedef_received; }
|
||||||
|
bool mediaReceived()
|
||||||
|
{ return m_media_downloader == NULL; }
|
||||||
|
|
||||||
|
float mediaReceiveProgress();
|
||||||
|
|
||||||
void afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font);
|
void afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font);
|
||||||
|
|
||||||
float getRTT(void);
|
float getRTT(void);
|
||||||
|
@ -455,12 +421,15 @@ public:
|
||||||
virtual bool checkLocalPrivilege(const std::string &priv)
|
virtual bool checkLocalPrivilege(const std::string &priv)
|
||||||
{ return checkPrivilege(priv); }
|
{ return checkPrivilege(priv); }
|
||||||
|
|
||||||
private:
|
// The following set of functions is used by ClientMediaDownloader
|
||||||
|
|
||||||
// Insert a media file appropriately into the appropriate manager
|
// Insert a media file appropriately into the appropriate manager
|
||||||
bool loadMedia(const std::string &data, const std::string &filename);
|
bool loadMedia(const std::string &data, const std::string &filename);
|
||||||
|
// Send a request for conventional media transfer
|
||||||
|
void request_media(const std::list<std::string> &file_requests);
|
||||||
|
// Send a notification that no conventional media transfer is needed
|
||||||
|
void received_media();
|
||||||
|
|
||||||
void request_media(const std::list<MediaRequest> &file_requests);
|
private:
|
||||||
|
|
||||||
// Virtual methods from con::PeerHandler
|
// Virtual methods from con::PeerHandler
|
||||||
void peerAdded(con::Peer *peer);
|
void peerAdded(con::Peer *peer);
|
||||||
|
@ -488,7 +457,6 @@ private:
|
||||||
MtEventManager *m_event;
|
MtEventManager *m_event;
|
||||||
|
|
||||||
MeshUpdateThread m_mesh_update_thread;
|
MeshUpdateThread m_mesh_update_thread;
|
||||||
std::list<MediaFetchThread*> m_media_fetch_threads;
|
|
||||||
ClientEnvironment m_env;
|
ClientEnvironment m_env;
|
||||||
con::Connection m_con;
|
con::Connection m_con;
|
||||||
IrrlichtDevice *m_device;
|
IrrlichtDevice *m_device;
|
||||||
|
@ -514,14 +482,9 @@ private:
|
||||||
bool m_access_denied;
|
bool m_access_denied;
|
||||||
std::wstring m_access_denied_reason;
|
std::wstring m_access_denied_reason;
|
||||||
Queue<ClientEvent> m_client_event_queue;
|
Queue<ClientEvent> m_client_event_queue;
|
||||||
FileCache m_media_cache;
|
|
||||||
// Mapping from media file name to SHA1 checksum
|
|
||||||
std::map<std::string, std::string> m_media_name_sha1_map;
|
|
||||||
bool m_media_receive_started;
|
|
||||||
u32 m_media_count;
|
|
||||||
u32 m_media_received_count;
|
|
||||||
bool m_itemdef_received;
|
bool m_itemdef_received;
|
||||||
bool m_nodedef_received;
|
bool m_nodedef_received;
|
||||||
|
ClientMediaDownloader *m_media_downloader;
|
||||||
|
|
||||||
// time_of_day speed approximation for old protocol
|
// time_of_day speed approximation for old protocol
|
||||||
bool m_time_of_day_set;
|
bool m_time_of_day_set;
|
||||||
|
|
|
@ -50,9 +50,6 @@ ClientMap::ClientMap(
|
||||||
m_camera_direction(0,0,1),
|
m_camera_direction(0,0,1),
|
||||||
m_camera_fov(M_PI)
|
m_camera_fov(M_PI)
|
||||||
{
|
{
|
||||||
m_camera_mutex.Init();
|
|
||||||
assert(m_camera_mutex.IsInitialized());
|
|
||||||
|
|
||||||
m_box = core::aabbox3d<f32>(-BS*1000000,-BS*1000000,-BS*1000000,
|
m_box = core::aabbox3d<f32>(-BS*1000000,-BS*1000000,-BS*1000000,
|
||||||
BS*1000000,BS*1000000,BS*1000000);
|
BS*1000000,BS*1000000,BS*1000000);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,656 @@
|
||||||
|
/*
|
||||||
|
Minetest
|
||||||
|
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "clientmedia.h"
|
||||||
|
#include "httpfetch.h"
|
||||||
|
#include "client.h"
|
||||||
|
#include "clientserver.h"
|
||||||
|
#include "filecache.h"
|
||||||
|
#include "hex.h"
|
||||||
|
#include "sha1.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "porting.h"
|
||||||
|
#include "settings.h"
|
||||||
|
#include "main.h"
|
||||||
|
#include "util/serialize.h"
|
||||||
|
#include "util/string.h"
|
||||||
|
|
||||||
|
static std::string getMediaCacheDir()
|
||||||
|
{
|
||||||
|
return porting::path_user + DIR_DELIM + "cache" + DIR_DELIM + "media";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
ClientMediaDownloader
|
||||||
|
*/
|
||||||
|
|
||||||
|
ClientMediaDownloader::ClientMediaDownloader():
|
||||||
|
m_media_cache(getMediaCacheDir())
|
||||||
|
{
|
||||||
|
m_initial_step_done = false;
|
||||||
|
m_name_bound = ""; // works because "" is an invalid file name
|
||||||
|
m_uncached_count = 0;
|
||||||
|
m_uncached_received_count = 0;
|
||||||
|
m_httpfetch_caller = HTTPFETCH_DISCARD;
|
||||||
|
m_httpfetch_active = 0;
|
||||||
|
m_httpfetch_active_limit = 0;
|
||||||
|
m_httpfetch_next_id = 0;
|
||||||
|
m_httpfetch_timeout = 0;
|
||||||
|
m_outstanding_hash_sets = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ClientMediaDownloader::~ClientMediaDownloader()
|
||||||
|
{
|
||||||
|
if (m_httpfetch_caller != HTTPFETCH_DISCARD)
|
||||||
|
httpfetch_caller_free(m_httpfetch_caller);
|
||||||
|
|
||||||
|
for (std::map<std::string, FileStatus*>::iterator it = m_files.begin();
|
||||||
|
it != m_files.end(); ++it)
|
||||||
|
delete it->second;
|
||||||
|
|
||||||
|
for (u32 i = 0; i < m_remotes.size(); ++i)
|
||||||
|
delete m_remotes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::addFile(std::string name, std::string sha1)
|
||||||
|
{
|
||||||
|
assert(!m_initial_step_done);
|
||||||
|
|
||||||
|
// if name was already announced, ignore the new announcement
|
||||||
|
if (m_files.count(name) != 0) {
|
||||||
|
errorstream << "Client: ignoring duplicate media announcement "
|
||||||
|
<< "sent by server: \"" << name << "\""
|
||||||
|
<< std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if name is empty or contains illegal characters, ignore the file
|
||||||
|
if (name.empty() || !string_allowed(name, TEXTURENAME_ALLOWED_CHARS)) {
|
||||||
|
errorstream << "Client: ignoring illegal file name "
|
||||||
|
<< "sent by server: \"" << name << "\""
|
||||||
|
<< std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// length of sha1 must be exactly 20 (160 bits), else ignore the file
|
||||||
|
if (sha1.size() != 20) {
|
||||||
|
errorstream << "Client: ignoring illegal SHA1 sent by server: "
|
||||||
|
<< hex_encode(sha1) << " \"" << name << "\""
|
||||||
|
<< std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FileStatus *filestatus = new FileStatus;
|
||||||
|
filestatus->received = false;
|
||||||
|
filestatus->sha1 = sha1;
|
||||||
|
filestatus->current_remote = -1;
|
||||||
|
m_files.insert(std::make_pair(name, filestatus));
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::addRemoteServer(std::string baseurl)
|
||||||
|
{
|
||||||
|
assert(!m_initial_step_done);
|
||||||
|
|
||||||
|
#ifdef USE_CURL
|
||||||
|
|
||||||
|
infostream << "Client: Adding remote server \""
|
||||||
|
<< baseurl << "\" for media download" << std::endl;
|
||||||
|
|
||||||
|
RemoteServerStatus *remote = new RemoteServerStatus;
|
||||||
|
remote->baseurl = baseurl;
|
||||||
|
remote->active_count = 0;
|
||||||
|
remote->request_by_filename = false;
|
||||||
|
m_remotes.push_back(remote);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
infostream << "Client: Ignoring remote server \""
|
||||||
|
<< baseurl << "\" because cURL support is not compiled in"
|
||||||
|
<< std::endl;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::step(Client *client)
|
||||||
|
{
|
||||||
|
if (!m_initial_step_done) {
|
||||||
|
initialStep(client);
|
||||||
|
m_initial_step_done = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remote media: check for completion of fetches
|
||||||
|
if (m_httpfetch_active) {
|
||||||
|
bool fetched_something = false;
|
||||||
|
HTTPFetchResult fetchresult;
|
||||||
|
|
||||||
|
while (httpfetch_async_get(m_httpfetch_caller, fetchresult)) {
|
||||||
|
m_httpfetch_active--;
|
||||||
|
fetched_something = true;
|
||||||
|
|
||||||
|
// Is this a hashset (index.mth) or a media file?
|
||||||
|
if (fetchresult.request_id < m_remotes.size())
|
||||||
|
remoteHashSetReceived(fetchresult);
|
||||||
|
else
|
||||||
|
remoteMediaReceived(fetchresult, client);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fetched_something)
|
||||||
|
startRemoteMediaTransfers();
|
||||||
|
|
||||||
|
// Did all remote transfers end and no new ones can be started?
|
||||||
|
// If so, request still missing files from the minetest server
|
||||||
|
// (Or report that we have all files.)
|
||||||
|
if (m_httpfetch_active == 0) {
|
||||||
|
if (m_uncached_received_count < m_uncached_count) {
|
||||||
|
infostream << "Client: Failed to remote-fetch "
|
||||||
|
<< (m_uncached_count-m_uncached_received_count)
|
||||||
|
<< " files. Requesting them"
|
||||||
|
<< " the usual way." << std::endl;
|
||||||
|
}
|
||||||
|
startConventionalTransfers(client);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::initialStep(Client *client)
|
||||||
|
{
|
||||||
|
// Check media cache
|
||||||
|
m_uncached_count = m_files.size();
|
||||||
|
for (std::map<std::string, FileStatus*>::iterator
|
||||||
|
it = m_files.begin();
|
||||||
|
it != m_files.end(); ++it) {
|
||||||
|
std::string name = it->first;
|
||||||
|
FileStatus *filestatus = it->second;
|
||||||
|
const std::string &sha1 = filestatus->sha1;
|
||||||
|
|
||||||
|
std::ostringstream tmp_os(std::ios_base::binary);
|
||||||
|
bool found_in_cache = m_media_cache.load(hex_encode(sha1), tmp_os);
|
||||||
|
|
||||||
|
// If found in cache, try to load it from there
|
||||||
|
if (found_in_cache) {
|
||||||
|
bool success = checkAndLoad(name, sha1,
|
||||||
|
tmp_os.str(), true, client);
|
||||||
|
if (success) {
|
||||||
|
filestatus->received = true;
|
||||||
|
m_uncached_count--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(m_uncached_received_count == 0);
|
||||||
|
|
||||||
|
// Create the media cache dir if we are likely to write to it
|
||||||
|
if (m_uncached_count != 0) {
|
||||||
|
bool did = fs::CreateAllDirs(getMediaCacheDir());
|
||||||
|
if (!did) {
|
||||||
|
errorstream << "Client: "
|
||||||
|
<< "Could not create media cache directory: "
|
||||||
|
<< getMediaCacheDir()
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we found all files in the cache, report this fact to the server.
|
||||||
|
// If the server reported no remote servers, immediately start
|
||||||
|
// conventional transfers. Note: if cURL support is not compiled in,
|
||||||
|
// m_remotes is always empty, so "!USE_CURL" is redundant but may
|
||||||
|
// reduce the size of the compiled code
|
||||||
|
if (!USE_CURL || m_uncached_count == 0 || m_remotes.empty()) {
|
||||||
|
startConventionalTransfers(client);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Otherwise start off by requesting each server's sha1 set
|
||||||
|
|
||||||
|
// This is the first time we use httpfetch, so alloc a caller ID
|
||||||
|
m_httpfetch_caller = httpfetch_caller_alloc();
|
||||||
|
m_httpfetch_timeout = g_settings->getS32("curl_timeout");
|
||||||
|
|
||||||
|
// Set the active fetch limit to curl_parallel_limit or 84,
|
||||||
|
// whichever is greater. This gives us some leeway so that
|
||||||
|
// inefficiencies in communicating with the httpfetch thread
|
||||||
|
// don't slow down fetches too much. (We still want some limit
|
||||||
|
// so that when the first remote server returns its hash set,
|
||||||
|
// not all files are requested from that server immediately.)
|
||||||
|
// One such inefficiency is that ClientMediaDownloader::step()
|
||||||
|
// is only called a couple times per second, while httpfetch
|
||||||
|
// might return responses much faster than that.
|
||||||
|
// Note that httpfetch strictly enforces curl_parallel_limit
|
||||||
|
// but at no inter-thread communication cost. This however
|
||||||
|
// doesn't help with the aforementioned inefficiencies.
|
||||||
|
// The signifance of 84 is that it is 2*6*9 in base 13.
|
||||||
|
m_httpfetch_active_limit = g_settings->getS32("curl_parallel_limit");
|
||||||
|
m_httpfetch_active_limit = MYMAX(m_httpfetch_active_limit, 84);
|
||||||
|
|
||||||
|
// Write a list of hashes that we need. This will be POSTed
|
||||||
|
// to the server using Content-Type: application/octet-stream
|
||||||
|
std::string required_hash_set = serializeRequiredHashSet();
|
||||||
|
|
||||||
|
// minor fixme: this loop ignores m_httpfetch_active_limit
|
||||||
|
|
||||||
|
// another minor fixme, unlikely to matter in normal usage:
|
||||||
|
// these index.mth fetches do (however) count against
|
||||||
|
// m_httpfetch_active_limit when starting actual media file
|
||||||
|
// requests, so if there are lots of remote servers that are
|
||||||
|
// not responding, those will stall new media file transfers.
|
||||||
|
|
||||||
|
for (u32 i = 0; i < m_remotes.size(); ++i) {
|
||||||
|
assert(m_httpfetch_next_id == i);
|
||||||
|
|
||||||
|
RemoteServerStatus *remote = m_remotes[i];
|
||||||
|
actionstream << "Client: Contacting remote server \""
|
||||||
|
<< remote->baseurl << "\"" << std::endl;
|
||||||
|
|
||||||
|
HTTPFetchRequest fetchrequest;
|
||||||
|
fetchrequest.url =
|
||||||
|
remote->baseurl + MTHASHSET_FILE_NAME;
|
||||||
|
fetchrequest.caller = m_httpfetch_caller;
|
||||||
|
fetchrequest.request_id = m_httpfetch_next_id; // == i
|
||||||
|
fetchrequest.timeout = m_httpfetch_timeout;
|
||||||
|
fetchrequest.connect_timeout = m_httpfetch_timeout;
|
||||||
|
fetchrequest.post_fields = required_hash_set;
|
||||||
|
fetchrequest.extra_headers.push_back(
|
||||||
|
"Content-Type: application/octet-stream");
|
||||||
|
httpfetch_async(fetchrequest);
|
||||||
|
|
||||||
|
m_httpfetch_active++;
|
||||||
|
m_httpfetch_next_id++;
|
||||||
|
m_outstanding_hash_sets++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::remoteHashSetReceived(
|
||||||
|
const HTTPFetchResult &fetchresult)
|
||||||
|
{
|
||||||
|
u32 remote_id = fetchresult.request_id;
|
||||||
|
assert(remote_id < m_remotes.size());
|
||||||
|
RemoteServerStatus *remote = m_remotes[remote_id];
|
||||||
|
|
||||||
|
m_outstanding_hash_sets--;
|
||||||
|
|
||||||
|
if (fetchresult.succeeded) {
|
||||||
|
try {
|
||||||
|
// Server sent a list of file hashes that are
|
||||||
|
// available on it, try to parse the list
|
||||||
|
|
||||||
|
std::set<std::string> sha1_set;
|
||||||
|
deSerializeHashSet(fetchresult.data, sha1_set);
|
||||||
|
|
||||||
|
// Parsing succeeded: For every file that is
|
||||||
|
// available on this server, add this server
|
||||||
|
// to the available_remotes array
|
||||||
|
|
||||||
|
for(std::map<std::string, FileStatus*>::iterator
|
||||||
|
it = m_files.upper_bound(m_name_bound);
|
||||||
|
it != m_files.end(); ++it) {
|
||||||
|
FileStatus *f = it->second;
|
||||||
|
if (!f->received && sha1_set.count(f->sha1))
|
||||||
|
f->available_remotes.push_back(remote_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SerializationError &e) {
|
||||||
|
infostream << "Client: Remote server \""
|
||||||
|
<< remote->baseurl << "\" sent invalid hash set: "
|
||||||
|
<< e.what() << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// For compatibility: If index.mth is not found, assume that the
|
||||||
|
// server contains files named like the original files (not their sha1)
|
||||||
|
|
||||||
|
if (!fetchresult.succeeded && !fetchresult.timeout &&
|
||||||
|
fetchresult.response_code == 404) {
|
||||||
|
infostream << "Client: Enabling compatibility mode for remote "
|
||||||
|
<< "server \"" << remote->baseurl << "\"" << std::endl;
|
||||||
|
remote->request_by_filename = true;
|
||||||
|
|
||||||
|
// Assume every file is available on this server
|
||||||
|
|
||||||
|
for(std::map<std::string, FileStatus*>::iterator
|
||||||
|
it = m_files.upper_bound(m_name_bound);
|
||||||
|
it != m_files.end(); ++it) {
|
||||||
|
FileStatus *f = it->second;
|
||||||
|
if (!f->received)
|
||||||
|
f->available_remotes.push_back(remote_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::remoteMediaReceived(
|
||||||
|
const HTTPFetchResult &fetchresult,
|
||||||
|
Client *client)
|
||||||
|
{
|
||||||
|
// Some remote server sent us a file.
|
||||||
|
// -> decrement number of active fetches
|
||||||
|
// -> mark file as received if fetch succeeded
|
||||||
|
// -> try to load media
|
||||||
|
|
||||||
|
std::string name;
|
||||||
|
{
|
||||||
|
std::map<unsigned long, std::string>::iterator it =
|
||||||
|
m_remote_file_transfers.find(fetchresult.request_id);
|
||||||
|
assert(it != m_remote_file_transfers.end());
|
||||||
|
name = it->second;
|
||||||
|
m_remote_file_transfers.erase(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(m_files.count(name) != 0);
|
||||||
|
|
||||||
|
FileStatus *filestatus = m_files[name];
|
||||||
|
assert(!filestatus->received);
|
||||||
|
assert(filestatus->current_remote >= 0);
|
||||||
|
|
||||||
|
RemoteServerStatus *remote = m_remotes[filestatus->current_remote];
|
||||||
|
|
||||||
|
filestatus->current_remote = -1;
|
||||||
|
remote->active_count--;
|
||||||
|
|
||||||
|
// If fetch succeeded, try to load media file
|
||||||
|
|
||||||
|
if (fetchresult.succeeded) {
|
||||||
|
bool success = checkAndLoad(name, filestatus->sha1,
|
||||||
|
fetchresult.data, false, client);
|
||||||
|
if (success) {
|
||||||
|
filestatus->received = true;
|
||||||
|
assert(m_uncached_received_count < m_uncached_count);
|
||||||
|
m_uncached_received_count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 ClientMediaDownloader::selectRemoteServer(FileStatus *filestatus)
|
||||||
|
{
|
||||||
|
assert(filestatus != NULL);
|
||||||
|
assert(!filestatus->received);
|
||||||
|
assert(filestatus->current_remote < 0);
|
||||||
|
|
||||||
|
if (filestatus->available_remotes.empty())
|
||||||
|
return -1;
|
||||||
|
else {
|
||||||
|
// Of all servers that claim to provide the file (and haven't
|
||||||
|
// been unsuccessfully tried before), find the one with the
|
||||||
|
// smallest number of currently active transfers
|
||||||
|
|
||||||
|
s32 best = 0;
|
||||||
|
s32 best_remote_id = filestatus->available_remotes[best];
|
||||||
|
s32 best_active_count = m_remotes[best_remote_id]->active_count;
|
||||||
|
|
||||||
|
for (u32 i = 1; i < filestatus->available_remotes.size(); ++i) {
|
||||||
|
s32 remote_id = filestatus->available_remotes[i];
|
||||||
|
s32 active_count = m_remotes[remote_id]->active_count;
|
||||||
|
if (active_count < best_active_count) {
|
||||||
|
best = i;
|
||||||
|
best_remote_id = remote_id;
|
||||||
|
best_active_count = active_count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
filestatus->available_remotes.erase(
|
||||||
|
filestatus->available_remotes.begin() + best);
|
||||||
|
|
||||||
|
return best_remote_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::startRemoteMediaTransfers()
|
||||||
|
{
|
||||||
|
bool changing_name_bound = true;
|
||||||
|
|
||||||
|
for (std::map<std::string, FileStatus*>::iterator
|
||||||
|
files_iter = m_files.upper_bound(m_name_bound);
|
||||||
|
files_iter != m_files.end(); ++files_iter) {
|
||||||
|
|
||||||
|
// Abort if active fetch limit is exceeded
|
||||||
|
if (m_httpfetch_active >= m_httpfetch_active_limit)
|
||||||
|
break;
|
||||||
|
|
||||||
|
const std::string &name = files_iter->first;
|
||||||
|
FileStatus *filestatus = files_iter->second;
|
||||||
|
|
||||||
|
if (!filestatus->received && filestatus->current_remote < 0) {
|
||||||
|
// File has not been received yet and is not currently
|
||||||
|
// being transferred. Choose a server for it.
|
||||||
|
s32 remote_id = selectRemoteServer(filestatus);
|
||||||
|
if (remote_id >= 0) {
|
||||||
|
// Found a server, so start fetching
|
||||||
|
RemoteServerStatus *remote =
|
||||||
|
m_remotes[remote_id];
|
||||||
|
|
||||||
|
std::string url = remote->baseurl +
|
||||||
|
(remote->request_by_filename ? name :
|
||||||
|
hex_encode(filestatus->sha1));
|
||||||
|
verbosestream << "Client: "
|
||||||
|
<< "Requesting remote media file "
|
||||||
|
<< "\"" << name << "\" "
|
||||||
|
<< "\"" << url << "\"" << std::endl;
|
||||||
|
|
||||||
|
HTTPFetchRequest fetchrequest;
|
||||||
|
fetchrequest.url = url;
|
||||||
|
fetchrequest.caller = m_httpfetch_caller;
|
||||||
|
fetchrequest.request_id = m_httpfetch_next_id;
|
||||||
|
fetchrequest.timeout = 0; // no data timeout!
|
||||||
|
fetchrequest.connect_timeout =
|
||||||
|
m_httpfetch_timeout;
|
||||||
|
httpfetch_async(fetchrequest);
|
||||||
|
|
||||||
|
m_remote_file_transfers.insert(std::make_pair(
|
||||||
|
m_httpfetch_next_id,
|
||||||
|
name));
|
||||||
|
|
||||||
|
filestatus->current_remote = remote_id;
|
||||||
|
remote->active_count++;
|
||||||
|
m_httpfetch_active++;
|
||||||
|
m_httpfetch_next_id++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filestatus->received ||
|
||||||
|
(filestatus->current_remote < 0 &&
|
||||||
|
!m_outstanding_hash_sets)) {
|
||||||
|
// If we arrive here, we conclusively know that we
|
||||||
|
// won't fetch this file from a remote server in the
|
||||||
|
// future. So update the name bound if possible.
|
||||||
|
if (changing_name_bound)
|
||||||
|
m_name_bound = name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
changing_name_bound = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::startConventionalTransfers(Client *client)
|
||||||
|
{
|
||||||
|
assert(m_httpfetch_active == 0);
|
||||||
|
|
||||||
|
if (m_uncached_received_count == m_uncached_count) {
|
||||||
|
// In this case all media was found in the cache or
|
||||||
|
// has been downloaded from some remote server;
|
||||||
|
// report this fact to the server
|
||||||
|
client->received_media();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Some media files have not been received yet, use the
|
||||||
|
// conventional slow method (minetest protocol) to get them
|
||||||
|
std::list<std::string> file_requests;
|
||||||
|
for (std::map<std::string, FileStatus*>::iterator
|
||||||
|
it = m_files.begin();
|
||||||
|
it != m_files.end(); ++it) {
|
||||||
|
if (!it->second->received)
|
||||||
|
file_requests.push_back(it->first);
|
||||||
|
}
|
||||||
|
assert((s32) file_requests.size() ==
|
||||||
|
m_uncached_count - m_uncached_received_count);
|
||||||
|
client->request_media(file_requests);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::conventionalTransferDone(
|
||||||
|
const std::string &name,
|
||||||
|
const std::string &data,
|
||||||
|
Client *client)
|
||||||
|
{
|
||||||
|
// Check that file was announced
|
||||||
|
std::map<std::string, FileStatus*>::iterator
|
||||||
|
file_iter = m_files.find(name);
|
||||||
|
if (file_iter == m_files.end()) {
|
||||||
|
errorstream << "Client: server sent media file that was"
|
||||||
|
<< "not announced, ignoring it: \"" << name << "\""
|
||||||
|
<< std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
FileStatus *filestatus = file_iter->second;
|
||||||
|
assert(filestatus != NULL);
|
||||||
|
|
||||||
|
// Check that file hasn't already been received
|
||||||
|
if (filestatus->received) {
|
||||||
|
errorstream << "Client: server sent media file that we already"
|
||||||
|
<< "received, ignoring it: \"" << name << "\""
|
||||||
|
<< std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mark file as received, regardless of whether loading it works and
|
||||||
|
// whether the checksum matches (because at this point there is no
|
||||||
|
// other server that could send a replacement)
|
||||||
|
filestatus->received = true;
|
||||||
|
assert(m_uncached_received_count < m_uncached_count);
|
||||||
|
m_uncached_received_count++;
|
||||||
|
|
||||||
|
// Check that received file matches announced checksum
|
||||||
|
// If so, load it
|
||||||
|
checkAndLoad(name, filestatus->sha1, data, false, client);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ClientMediaDownloader::checkAndLoad(
|
||||||
|
const std::string &name, const std::string &sha1,
|
||||||
|
const std::string &data, bool is_from_cache, Client *client)
|
||||||
|
{
|
||||||
|
const char *cached_or_received = is_from_cache ? "cached" : "received";
|
||||||
|
const char *cached_or_received_uc = is_from_cache ? "Cached" : "Received";
|
||||||
|
std::string sha1_hex = hex_encode(sha1);
|
||||||
|
|
||||||
|
// Compute actual checksum of data
|
||||||
|
std::string data_sha1;
|
||||||
|
{
|
||||||
|
SHA1 data_sha1_calculator;
|
||||||
|
data_sha1_calculator.addBytes(data.c_str(), data.size());
|
||||||
|
unsigned char *data_tmpdigest = data_sha1_calculator.getDigest();
|
||||||
|
data_sha1.assign((char*) data_tmpdigest, 20);
|
||||||
|
free(data_tmpdigest);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that received file matches announced checksum
|
||||||
|
if (data_sha1 != sha1) {
|
||||||
|
std::string data_sha1_hex = hex_encode(data_sha1);
|
||||||
|
infostream << "Client: "
|
||||||
|
<< cached_or_received_uc << " media file "
|
||||||
|
<< sha1_hex << " \"" << name << "\" "
|
||||||
|
<< "mismatches actual checksum " << data_sha1_hex
|
||||||
|
<< std::endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Checksum is ok, try loading the file
|
||||||
|
bool success = client->loadMedia(data, name);
|
||||||
|
if (!success) {
|
||||||
|
infostream << "Client: "
|
||||||
|
<< "Failed to load " << cached_or_received << " media: "
|
||||||
|
<< sha1_hex << " \"" << name << "\""
|
||||||
|
<< std::endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
verbosestream << "Client: "
|
||||||
|
<< "Loaded " << cached_or_received << " media: "
|
||||||
|
<< sha1_hex << " \"" << name << "\""
|
||||||
|
<< std::endl;
|
||||||
|
|
||||||
|
// Update cache (unless we just loaded the file from the cache)
|
||||||
|
if (!is_from_cache)
|
||||||
|
m_media_cache.update(sha1_hex, data);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Minetest Hashset File Format
|
||||||
|
|
||||||
|
All values are stored in big-endian byte order.
|
||||||
|
[u32] signature: 'MTHS'
|
||||||
|
[u16] version: 1
|
||||||
|
For each hash in set:
|
||||||
|
[u8*20] SHA1 hash
|
||||||
|
|
||||||
|
Version changes:
|
||||||
|
1 - Initial version
|
||||||
|
*/
|
||||||
|
|
||||||
|
std::string ClientMediaDownloader::serializeRequiredHashSet()
|
||||||
|
{
|
||||||
|
std::ostringstream os(std::ios::binary);
|
||||||
|
|
||||||
|
writeU32(os, MTHASHSET_FILE_SIGNATURE); // signature
|
||||||
|
writeU16(os, 1); // version
|
||||||
|
|
||||||
|
// Write list of hashes of files that have not been
|
||||||
|
// received (found in cache) yet
|
||||||
|
for (std::map<std::string, FileStatus*>::iterator
|
||||||
|
it = m_files.begin();
|
||||||
|
it != m_files.end(); ++it) {
|
||||||
|
if (!it->second->received) {
|
||||||
|
assert(it->second->sha1.size() == 20);
|
||||||
|
os << it->second->sha1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return os.str();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientMediaDownloader::deSerializeHashSet(const std::string &data,
|
||||||
|
std::set<std::string> &result)
|
||||||
|
{
|
||||||
|
if (data.size() < 6 || data.size() % 20 != 6) {
|
||||||
|
throw SerializationError(
|
||||||
|
"ClientMediaDownloader::deSerializeHashSet: "
|
||||||
|
"invalid hash set file size");
|
||||||
|
}
|
||||||
|
|
||||||
|
const u8 *data_cstr = (const u8*) data.c_str();
|
||||||
|
|
||||||
|
u32 signature = readU32(&data_cstr[0]);
|
||||||
|
if (signature != MTHASHSET_FILE_SIGNATURE) {
|
||||||
|
throw SerializationError(
|
||||||
|
"ClientMediaDownloader::deSerializeHashSet: "
|
||||||
|
"invalid hash set file signature");
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 version = readU16(&data_cstr[4]);
|
||||||
|
if (version != 1) {
|
||||||
|
throw SerializationError(
|
||||||
|
"ClientMediaDownloader::deSerializeHashSet: "
|
||||||
|
"unsupported hash set file version");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (u32 pos = 6; pos < data.size(); pos += 20) {
|
||||||
|
result.insert(data.substr(pos, 20));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,150 @@
|
||||||
|
/*
|
||||||
|
Minetest
|
||||||
|
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CLIENTMEDIA_HEADER
|
||||||
|
#define CLIENTMEDIA_HEADER
|
||||||
|
|
||||||
|
#include "irrlichttypes.h"
|
||||||
|
#include "filecache.h"
|
||||||
|
#include <ostream>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
class Client;
|
||||||
|
struct HTTPFetchResult;
|
||||||
|
|
||||||
|
#define MTHASHSET_FILE_SIGNATURE 0x4d544853 // 'MTHS'
|
||||||
|
#define MTHASHSET_FILE_NAME "index.mth"
|
||||||
|
|
||||||
|
class ClientMediaDownloader
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ClientMediaDownloader();
|
||||||
|
~ClientMediaDownloader();
|
||||||
|
|
||||||
|
float getProgress() const {
|
||||||
|
if (m_uncached_count >= 1)
|
||||||
|
return 1.0 * m_uncached_received_count /
|
||||||
|
m_uncached_count;
|
||||||
|
else
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isStarted() const {
|
||||||
|
return m_initial_step_done;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If this returns true, the downloader is done and can be deleted
|
||||||
|
bool isDone() const {
|
||||||
|
return m_initial_step_done &&
|
||||||
|
m_uncached_received_count == m_uncached_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a file to the list of required file (but don't fetch it yet)
|
||||||
|
void addFile(std::string name, std::string sha1);
|
||||||
|
|
||||||
|
// Add a remote server to the list; ignored if not built with cURL
|
||||||
|
void addRemoteServer(std::string baseurl);
|
||||||
|
|
||||||
|
// Steps the media downloader:
|
||||||
|
// - May load media into client by calling client->loadMedia()
|
||||||
|
// - May check media cache for files
|
||||||
|
// - May add files to media cache
|
||||||
|
// - May start remote transfers by calling httpfetch_async
|
||||||
|
// - May check for completion of current remote transfers
|
||||||
|
// - May start conventional transfers by calling client->request_media()
|
||||||
|
// - May inform server that all media has been loaded
|
||||||
|
// by calling client->received_media()
|
||||||
|
// After step has been called once, don't call addFile/addRemoteServer.
|
||||||
|
void step(Client *client);
|
||||||
|
|
||||||
|
// Must be called for each file received through TOCLIENT_MEDIA
|
||||||
|
void conventionalTransferDone(
|
||||||
|
const std::string &name,
|
||||||
|
const std::string &data,
|
||||||
|
Client *client);
|
||||||
|
|
||||||
|
private:
|
||||||
|
struct FileStatus {
|
||||||
|
bool received;
|
||||||
|
std::string sha1;
|
||||||
|
s32 current_remote;
|
||||||
|
std::vector<s32> available_remotes;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct RemoteServerStatus {
|
||||||
|
std::string baseurl;
|
||||||
|
s32 active_count;
|
||||||
|
bool request_by_filename;
|
||||||
|
};
|
||||||
|
|
||||||
|
void initialStep(Client *client);
|
||||||
|
void remoteHashSetReceived(const HTTPFetchResult &fetchresult);
|
||||||
|
void remoteMediaReceived(const HTTPFetchResult &fetchresult,
|
||||||
|
Client *client);
|
||||||
|
s32 selectRemoteServer(FileStatus *filestatus);
|
||||||
|
void startRemoteMediaTransfers();
|
||||||
|
void startConventionalTransfers(Client *client);
|
||||||
|
|
||||||
|
bool checkAndLoad(const std::string &name, const std::string &sha1,
|
||||||
|
const std::string &data, bool is_from_cache,
|
||||||
|
Client *client);
|
||||||
|
|
||||||
|
std::string serializeRequiredHashSet();
|
||||||
|
static void deSerializeHashSet(const std::string &data,
|
||||||
|
std::set<std::string> &result);
|
||||||
|
|
||||||
|
// Maps filename to file status
|
||||||
|
std::map<std::string, FileStatus*> m_files;
|
||||||
|
|
||||||
|
// Array of remote media servers
|
||||||
|
std::vector<RemoteServerStatus*> m_remotes;
|
||||||
|
|
||||||
|
// Filesystem-based media cache
|
||||||
|
FileCache m_media_cache;
|
||||||
|
|
||||||
|
// Has an attempt been made to load media files from the file cache?
|
||||||
|
// Have hash sets been requested from remote servers?
|
||||||
|
bool m_initial_step_done;
|
||||||
|
|
||||||
|
// Total number of media files to load
|
||||||
|
s32 m_uncached_count;
|
||||||
|
|
||||||
|
// Number of media files that have been received
|
||||||
|
s32 m_uncached_received_count;
|
||||||
|
|
||||||
|
// Status of remote transfers
|
||||||
|
unsigned long m_httpfetch_caller;
|
||||||
|
unsigned long m_httpfetch_next_id;
|
||||||
|
long m_httpfetch_timeout;
|
||||||
|
s32 m_httpfetch_active;
|
||||||
|
s32 m_httpfetch_active_limit;
|
||||||
|
s32 m_outstanding_hash_sets;
|
||||||
|
std::map<unsigned long, std::string> m_remote_file_transfers;
|
||||||
|
|
||||||
|
// All files up to this name have either been received from a
|
||||||
|
// remote server or failed on all remote servers, so those files
|
||||||
|
// don't need to be looked at again
|
||||||
|
// (use m_files.upper_bound(m_name_bound) to get an iterator)
|
||||||
|
std::string m_name_bound;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // !CLIENTMEDIA_HEADER
|
|
@ -102,7 +102,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
added to object properties
|
added to object properties
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define LATEST_PROTOCOL_VERSION 21
|
#define LATEST_PROTOCOL_VERSION 22
|
||||||
|
|
||||||
// Server's supported network protocol range
|
// Server's supported network protocol range
|
||||||
#define SERVER_PROTOCOL_VERSION_MIN 13
|
#define SERVER_PROTOCOL_VERSION_MIN 13
|
||||||
|
@ -139,6 +139,12 @@ enum ToClientCommand
|
||||||
|
|
||||||
TOCLIENT_BLOCKDATA = 0x20, //TODO: Multiple blocks
|
TOCLIENT_BLOCKDATA = 0x20, //TODO: Multiple blocks
|
||||||
TOCLIENT_ADDNODE = 0x21,
|
TOCLIENT_ADDNODE = 0x21,
|
||||||
|
/*
|
||||||
|
u16 command
|
||||||
|
v3s16 position
|
||||||
|
serialized mapnode
|
||||||
|
u8 keep_metadata // Added in protocol version 22
|
||||||
|
*/
|
||||||
TOCLIENT_REMOVENODE = 0x22,
|
TOCLIENT_REMOVENODE = 0x22,
|
||||||
|
|
||||||
TOCLIENT_PLAYERPOS = 0x23, // Obsolete
|
TOCLIENT_PLAYERPOS = 0x23, // Obsolete
|
||||||
|
|
|
@ -12,13 +12,14 @@
|
||||||
#define CMAKE_USE_FREETYPE @USE_FREETYPE@
|
#define CMAKE_USE_FREETYPE @USE_FREETYPE@
|
||||||
#define CMAKE_STATIC_SHAREDIR "@SHAREDIR@"
|
#define CMAKE_STATIC_SHAREDIR "@SHAREDIR@"
|
||||||
#define CMAKE_USE_LEVELDB @USE_LEVELDB@
|
#define CMAKE_USE_LEVELDB @USE_LEVELDB@
|
||||||
|
#define CMAKE_USE_LUAJIT @USE_LUAJIT@
|
||||||
|
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
#define CMAKE_BUILD_TYPE "Release"
|
#define CMAKE_BUILD_TYPE "Release"
|
||||||
#else
|
#else
|
||||||
#define CMAKE_BUILD_TYPE "Debug"
|
#define CMAKE_BUILD_TYPE "Debug"
|
||||||
#endif
|
#endif
|
||||||
#define CMAKE_BUILD_INFO "VER=@VERSION_STRING@ BUILD_TYPE="CMAKE_BUILD_TYPE" RUN_IN_PLACE=@RUN_IN_PLACE@ USE_GETTEXT=@USE_GETTEXT@ USE_SOUND=@USE_SOUND@ STATIC_SHAREDIR=@SHAREDIR@"
|
#define CMAKE_BUILD_INFO "BUILD_TYPE="CMAKE_BUILD_TYPE" RUN_IN_PLACE=@RUN_IN_PLACE@ USE_GETTEXT=@USE_GETTEXT@ USE_SOUND=@USE_SOUND@ USE_CURL=@USE_CURL@ USE_FREETYPE=@USE_FREETYPE@ USE_LUAJIT=@USE_LUAJIT@ STATIC_SHAREDIR=@SHAREDIR@"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
// Filled in by the build system
|
||||||
|
// Separated from cmake_config.h to avoid excessive rebuilds on every commit
|
||||||
|
|
||||||
|
#ifndef CMAKE_CONFIG_GITHASH_H
|
||||||
|
#define CMAKE_CONFIG_GITHASH_H
|
||||||
|
|
||||||
|
#define CMAKE_VERSION_GITHASH "@VERSION_GITHASH@"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -7,22 +7,19 @@
|
||||||
#define CONFIG_H
|
#define CONFIG_H
|
||||||
|
|
||||||
#define PROJECT_NAME "Minetest"
|
#define PROJECT_NAME "Minetest"
|
||||||
#define VERSION_STRING "unknown"
|
|
||||||
#define RUN_IN_PLACE 0
|
#define RUN_IN_PLACE 0
|
||||||
#define USE_GETTEXT 0
|
#define USE_GETTEXT 0
|
||||||
#define USE_SOUND 0
|
#define USE_SOUND 0
|
||||||
#define USE_CURL 0
|
#define USE_CURL 0
|
||||||
#define USE_FREETYPE 0
|
#define USE_FREETYPE 0
|
||||||
#define STATIC_SHAREDIR ""
|
#define STATIC_SHAREDIR ""
|
||||||
#define BUILD_INFO "non-cmake"
|
|
||||||
#define USE_LEVELDB 0
|
#define USE_LEVELDB 0
|
||||||
|
#define USE_LUAJIT 0
|
||||||
|
|
||||||
#ifdef USE_CMAKE_CONFIG_H
|
#ifdef USE_CMAKE_CONFIG_H
|
||||||
#include "cmake_config.h"
|
#include "cmake_config.h"
|
||||||
#undef PROJECT_NAME
|
#undef PROJECT_NAME
|
||||||
#define PROJECT_NAME CMAKE_PROJECT_NAME
|
#define PROJECT_NAME CMAKE_PROJECT_NAME
|
||||||
#undef VERSION_STRING
|
|
||||||
#define VERSION_STRING CMAKE_VERSION_STRING
|
|
||||||
#undef RUN_IN_PLACE
|
#undef RUN_IN_PLACE
|
||||||
#define RUN_IN_PLACE CMAKE_RUN_IN_PLACE
|
#define RUN_IN_PLACE CMAKE_RUN_IN_PLACE
|
||||||
#undef USE_GETTEXT
|
#undef USE_GETTEXT
|
||||||
|
@ -35,10 +32,10 @@
|
||||||
#define USE_FREETYPE CMAKE_USE_FREETYPE
|
#define USE_FREETYPE CMAKE_USE_FREETYPE
|
||||||
#undef STATIC_SHAREDIR
|
#undef STATIC_SHAREDIR
|
||||||
#define STATIC_SHAREDIR CMAKE_STATIC_SHAREDIR
|
#define STATIC_SHAREDIR CMAKE_STATIC_SHAREDIR
|
||||||
#undef BUILD_INFO
|
|
||||||
#define BUILD_INFO CMAKE_BUILD_INFO
|
|
||||||
#undef USE_LEVELDB
|
#undef USE_LEVELDB
|
||||||
#define USE_LEVELDB CMAKE_USE_LEVELDB
|
#define USE_LEVELDB CMAKE_USE_LEVELDB
|
||||||
|
#undef USE_LUAJIT
|
||||||
|
#define USE_LUAJIT CMAKE_USE_LUAJIT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -556,7 +556,7 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout,
|
||||||
|
|
||||||
Connection::~Connection()
|
Connection::~Connection()
|
||||||
{
|
{
|
||||||
stop();
|
Stop();
|
||||||
// Delete peers
|
// Delete peers
|
||||||
for(std::map<u16, Peer*>::iterator
|
for(std::map<u16, Peer*>::iterator
|
||||||
j = m_peers.begin();
|
j = m_peers.begin();
|
||||||
|
@ -578,7 +578,7 @@ void * Connection::Thread()
|
||||||
u32 curtime = porting::getTimeMs();
|
u32 curtime = porting::getTimeMs();
|
||||||
u32 lasttime = curtime;
|
u32 lasttime = curtime;
|
||||||
|
|
||||||
while(getRun())
|
while(!StopRequested())
|
||||||
{
|
{
|
||||||
BEGIN_DEBUG_EXCEPTION_HANDLER
|
BEGIN_DEBUG_EXCEPTION_HANDLER
|
||||||
|
|
||||||
|
|
|
@ -450,11 +450,11 @@ struct ConnectionEvent
|
||||||
return "CONNEVENT_NONE";
|
return "CONNEVENT_NONE";
|
||||||
case CONNEVENT_DATA_RECEIVED:
|
case CONNEVENT_DATA_RECEIVED:
|
||||||
return "CONNEVENT_DATA_RECEIVED";
|
return "CONNEVENT_DATA_RECEIVED";
|
||||||
case CONNEVENT_PEER_ADDED:
|
case CONNEVENT_PEER_ADDED:
|
||||||
return "CONNEVENT_PEER_ADDED";
|
return "CONNEVENT_PEER_ADDED";
|
||||||
case CONNEVENT_PEER_REMOVED:
|
case CONNEVENT_PEER_REMOVED:
|
||||||
return "CONNEVENT_PEER_REMOVED";
|
return "CONNEVENT_PEER_REMOVED";
|
||||||
case CONNEVENT_BIND_FAILED:
|
case CONNEVENT_BIND_FAILED:
|
||||||
return "CONNEVENT_BIND_FAILED";
|
return "CONNEVENT_BIND_FAILED";
|
||||||
}
|
}
|
||||||
return "Invalid ConnectionEvent";
|
return "Invalid ConnectionEvent";
|
||||||
|
@ -544,7 +544,7 @@ struct ConnectionCommand
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class Connection: public SimpleThread
|
class Connection: public JThread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Connection(u32 protocol_id, u32 max_packet_size, float timeout, bool ipv6);
|
Connection(u32 protocol_id, u32 max_packet_size, float timeout, bool ipv6);
|
||||||
|
|
|
@ -25,7 +25,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "content_sao.h"
|
#include "content_sao.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "mapblock.h" // For getNodeBlockPos
|
#include "mapblock.h" // For getNodeBlockPos
|
||||||
#include "treegen.h" // For treegen::make_tree
|
|
||||||
#include "main.h" // for g_settings
|
#include "main.h" // for g_settings
|
||||||
#include "map.h"
|
#include "map.h"
|
||||||
#include "scripting_game.h"
|
#include "scripting_game.h"
|
||||||
|
@ -33,141 +32,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
|
#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
|
||||||
|
|
||||||
class GrowGrassABM : public ActiveBlockModifier
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
public:
|
|
||||||
virtual std::set<std::string> getTriggerContents()
|
|
||||||
{
|
|
||||||
std::set<std::string> s;
|
|
||||||
s.insert("mapgen_dirt");
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
virtual float getTriggerInterval()
|
|
||||||
{ return 2.0; }
|
|
||||||
virtual u32 getTriggerChance()
|
|
||||||
{ return 200; }
|
|
||||||
virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n)
|
|
||||||
{
|
|
||||||
INodeDefManager *ndef = env->getGameDef()->ndef();
|
|
||||||
ServerMap *map = &env->getServerMap();
|
|
||||||
|
|
||||||
MapNode n_top = map->getNodeNoEx(p+v3s16(0,1,0));
|
|
||||||
content_t c_snow = ndef->getId("snow");
|
|
||||||
if(ndef->get(n_top).light_propagates &&
|
|
||||||
!ndef->get(n_top).isLiquid() &&
|
|
||||||
n_top.getLightBlend(env->getDayNightRatio(), ndef) >= 13)
|
|
||||||
{
|
|
||||||
if(c_snow != CONTENT_IGNORE && n_top.getContent() == c_snow)
|
|
||||||
n.setContent(ndef->getId("dirt_with_snow"));
|
|
||||||
else
|
|
||||||
n.setContent(ndef->getId("mapgen_dirt_with_grass"));
|
|
||||||
map->addNodeWithEvent(p, n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class RemoveGrassABM : public ActiveBlockModifier
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
public:
|
|
||||||
virtual std::set<std::string> getTriggerContents()
|
|
||||||
{
|
|
||||||
std::set<std::string> s;
|
|
||||||
s.insert("mapgen_dirt_with_grass");
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
virtual float getTriggerInterval()
|
|
||||||
{ return 2.0; }
|
|
||||||
virtual u32 getTriggerChance()
|
|
||||||
{ return 20; }
|
|
||||||
virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n)
|
|
||||||
{
|
|
||||||
INodeDefManager *ndef = env->getGameDef()->ndef();
|
|
||||||
ServerMap *map = &env->getServerMap();
|
|
||||||
|
|
||||||
MapNode n_top = map->getNodeNoEx(p+v3s16(0,1,0));
|
|
||||||
if((!ndef->get(n_top).light_propagates &&
|
|
||||||
n_top.getContent() != CONTENT_IGNORE) ||
|
|
||||||
ndef->get(n_top).isLiquid())
|
|
||||||
{
|
|
||||||
n.setContent(ndef->getId("mapgen_dirt"));
|
|
||||||
map->addNodeWithEvent(p, n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class MakeTreesFromSaplingsABM : public ActiveBlockModifier
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
content_t c_junglesapling;
|
|
||||||
|
|
||||||
public:
|
|
||||||
MakeTreesFromSaplingsABM(ServerEnvironment *env, INodeDefManager *nodemgr) {
|
|
||||||
c_junglesapling = nodemgr->getId("junglesapling");
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual std::set<std::string> getTriggerContents()
|
|
||||||
{
|
|
||||||
std::set<std::string> s;
|
|
||||||
s.insert("sapling");
|
|
||||||
s.insert("junglesapling");
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
virtual float getTriggerInterval()
|
|
||||||
{ return 10.0; }
|
|
||||||
virtual u32 getTriggerChance()
|
|
||||||
{ return 50; }
|
|
||||||
virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n,
|
|
||||||
u32 active_object_count, u32 active_object_count_wider)
|
|
||||||
{
|
|
||||||
INodeDefManager *ndef = env->getGameDef()->ndef();
|
|
||||||
ServerMap *map = &env->getServerMap();
|
|
||||||
|
|
||||||
MapNode n_below = map->getNodeNoEx(p - v3s16(0, 1, 0));
|
|
||||||
if (!((ItemGroupList) ndef->get(n_below).groups)["soil"])
|
|
||||||
return;
|
|
||||||
|
|
||||||
bool is_jungle_tree = n.getContent() == c_junglesapling;
|
|
||||||
|
|
||||||
actionstream <<"A " << (is_jungle_tree ? "jungle " : "")
|
|
||||||
<< "sapling grows into a tree at "
|
|
||||||
<< PP(p) << std::endl;
|
|
||||||
|
|
||||||
std::map<v3s16, MapBlock*> modified_blocks;
|
|
||||||
v3s16 tree_p = p;
|
|
||||||
ManualMapVoxelManipulator vmanip(map);
|
|
||||||
v3s16 tree_blockp = getNodeBlockPos(tree_p);
|
|
||||||
vmanip.initialEmerge(tree_blockp - v3s16(1,1,1), tree_blockp + v3s16(1,1,1));
|
|
||||||
|
|
||||||
if (is_jungle_tree) {
|
|
||||||
treegen::make_jungletree(vmanip, tree_p, ndef, myrand());
|
|
||||||
} else {
|
|
||||||
bool is_apple_tree = myrand() % 4 == 0;
|
|
||||||
treegen::make_tree(vmanip, tree_p, is_apple_tree, ndef, myrand());
|
|
||||||
}
|
|
||||||
|
|
||||||
vmanip.blitBackAll(&modified_blocks);
|
|
||||||
|
|
||||||
// update lighting
|
|
||||||
std::map<v3s16, MapBlock*> lighting_modified_blocks;
|
|
||||||
lighting_modified_blocks.insert(modified_blocks.begin(), modified_blocks.end());
|
|
||||||
map->updateLighting(lighting_modified_blocks, modified_blocks);
|
|
||||||
|
|
||||||
// Send a MEET_OTHER event
|
|
||||||
MapEditEvent event;
|
|
||||||
event.type = MEET_OTHER;
|
|
||||||
// event.modified_blocks.insert(modified_blocks.begin(), modified_blocks.end());
|
|
||||||
for(std::map<v3s16, MapBlock*>::iterator
|
|
||||||
i = modified_blocks.begin();
|
|
||||||
i != modified_blocks.end(); ++i)
|
|
||||||
{
|
|
||||||
event.modified_blocks.insert(i->first);
|
|
||||||
}
|
|
||||||
map->dispatchEvent(&event);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class LiquidFlowABM : public ActiveBlockModifier {
|
class LiquidFlowABM : public ActiveBlockModifier {
|
||||||
private:
|
private:
|
||||||
std::set<std::string> contents;
|
std::set<std::string> contents;
|
||||||
|
@ -209,7 +73,7 @@ class LiquidDropABM : public ActiveBlockModifier {
|
||||||
{ return contents; }
|
{ return contents; }
|
||||||
virtual std::set<std::string> getRequiredNeighbors() {
|
virtual std::set<std::string> getRequiredNeighbors() {
|
||||||
std::set<std::string> neighbors;
|
std::set<std::string> neighbors;
|
||||||
neighbors.insert("mapgen_air");
|
neighbors.insert("air");
|
||||||
return neighbors;
|
return neighbors;
|
||||||
}
|
}
|
||||||
virtual float getTriggerInterval()
|
virtual float getTriggerInterval()
|
||||||
|
@ -241,7 +105,7 @@ class LiquidFreeze : public ActiveBlockModifier {
|
||||||
}
|
}
|
||||||
virtual std::set<std::string> getRequiredNeighbors() {
|
virtual std::set<std::string> getRequiredNeighbors() {
|
||||||
std::set<std::string> s;
|
std::set<std::string> s;
|
||||||
s.insert("mapgen_air");
|
s.insert("air");
|
||||||
s.insert("group:melts");
|
s.insert("group:melts");
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
@ -303,7 +167,7 @@ class LiquidMeltWeather : public ActiveBlockModifier {
|
||||||
}
|
}
|
||||||
virtual std::set<std::string> getRequiredNeighbors() {
|
virtual std::set<std::string> getRequiredNeighbors() {
|
||||||
std::set<std::string> s;
|
std::set<std::string> s;
|
||||||
s.insert("mapgen_air");
|
s.insert("air");
|
||||||
s.insert("group:freezes");
|
s.insert("group:freezes");
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
@ -370,9 +234,6 @@ class LiquidMeltAround : public LiquidMeltHot {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void add_legacy_abms(ServerEnvironment *env, INodeDefManager *nodedef) {
|
void add_legacy_abms(ServerEnvironment *env, INodeDefManager *nodedef) {
|
||||||
env->addActiveBlockModifier(new GrowGrassABM());
|
|
||||||
env->addActiveBlockModifier(new RemoveGrassABM());
|
|
||||||
env->addActiveBlockModifier(new MakeTreesFromSaplingsABM(env, nodedef));
|
|
||||||
if (g_settings->getBool("liquid_finite")) {
|
if (g_settings->getBool("liquid_finite")) {
|
||||||
env->addActiveBlockModifier(new LiquidFlowABM(env, nodedef));
|
env->addActiveBlockModifier(new LiquidFlowABM(env, nodedef));
|
||||||
env->addActiveBlockModifier(new LiquidDropABM(env, nodedef));
|
env->addActiveBlockModifier(new LiquidDropABM(env, nodedef));
|
||||||
|
|
|
@ -1649,6 +1649,8 @@ public:
|
||||||
m_acceleration = readV3F1000(is);
|
m_acceleration = readV3F1000(is);
|
||||||
if(fabs(m_prop.automatic_rotate) < 0.001)
|
if(fabs(m_prop.automatic_rotate) < 0.001)
|
||||||
m_yaw = readF1000(is);
|
m_yaw = readF1000(is);
|
||||||
|
else
|
||||||
|
readF1000(is);
|
||||||
bool do_interpolate = readU8(is);
|
bool do_interpolate = readU8(is);
|
||||||
bool is_end_position = readU8(is);
|
bool is_end_position = readU8(is);
|
||||||
float update_interval = readF1000(is);
|
float update_interval = readF1000(is);
|
||||||
|
@ -1693,12 +1695,18 @@ public:
|
||||||
float override_speed = readF1000(is);
|
float override_speed = readF1000(is);
|
||||||
float override_jump = readF1000(is);
|
float override_jump = readF1000(is);
|
||||||
float override_gravity = readF1000(is);
|
float override_gravity = readF1000(is);
|
||||||
|
// these are sent inverted so we get true when the server sends nothing
|
||||||
|
bool sneak = !readU8(is);
|
||||||
|
bool sneak_glitch = !readU8(is);
|
||||||
|
|
||||||
if(m_is_local_player)
|
if(m_is_local_player)
|
||||||
{
|
{
|
||||||
LocalPlayer *player = m_env->getLocalPlayer();
|
LocalPlayer *player = m_env->getLocalPlayer();
|
||||||
player->physics_override_speed = override_speed;
|
player->physics_override_speed = override_speed;
|
||||||
player->physics_override_jump = override_jump;
|
player->physics_override_jump = override_jump;
|
||||||
player->physics_override_gravity = override_gravity;
|
player->physics_override_gravity = override_gravity;
|
||||||
|
player->physics_override_sneak = sneak;
|
||||||
|
player->physics_override_sneak_glitch = sneak_glitch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(cmd == GENERIC_CMD_SET_ANIMATION)
|
else if(cmd == GENERIC_CMD_SET_ANIMATION)
|
||||||
|
|
|
@ -395,7 +395,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
||||||
l = getInteriorLight(n, 0, data);
|
l = getInteriorLight(n, 0, data);
|
||||||
video::SColor c = MapBlock_LightColor(f.alpha, l, decode_light(f.light_source));
|
video::SColor c = MapBlock_LightColor(f.alpha, l, decode_light(f.light_source));
|
||||||
|
|
||||||
u8 range = rangelim(nodedef->get(c_flowing).liquid_range, 0, 8);
|
u8 range = rangelim(nodedef->get(c_flowing).liquid_range, 1, 8);
|
||||||
|
|
||||||
// Neighbor liquid levels (key = relative position)
|
// Neighbor liquid levels (key = relative position)
|
||||||
// Includes current node
|
// Includes current node
|
||||||
|
@ -429,7 +429,11 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
||||||
if(n2.getContent() == c_source)
|
if(n2.getContent() == c_source)
|
||||||
level = (-0.5+node_liquid_level) * BS;
|
level = (-0.5+node_liquid_level) * BS;
|
||||||
else if(n2.getContent() == c_flowing){
|
else if(n2.getContent() == c_flowing){
|
||||||
u8 liquid_level = (n2.param2&LIQUID_LEVEL_MASK) - (LIQUID_LEVEL_MAX+1-range);
|
u8 liquid_level = (n2.param2&LIQUID_LEVEL_MASK);
|
||||||
|
if (liquid_level <= LIQUID_LEVEL_MAX+1-range)
|
||||||
|
liquid_level = 0;
|
||||||
|
else
|
||||||
|
liquid_level -= (LIQUID_LEVEL_MAX+1-range);
|
||||||
level = (-0.5 + ((float)liquid_level+ 0.5) / (float)range * node_liquid_level) * BS;
|
level = (-0.5 + ((float)liquid_level+ 0.5) / (float)range * node_liquid_level) * BS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -908,13 +912,14 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
||||||
u16 l = getInteriorLight(n, 1, data);
|
u16 l = getInteriorLight(n, 1, data);
|
||||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||||
|
|
||||||
|
float s = BS/2*f.visual_scale;
|
||||||
// Wall at X+ of node
|
// Wall at X+ of node
|
||||||
video::S3DVertex vertices[4] =
|
video::S3DVertex vertices[4] =
|
||||||
{
|
{
|
||||||
video::S3DVertex(-BS/2,-BS/2,0, 0,0,0, c, 0,1),
|
video::S3DVertex(-s,-s,0, 0,0,0, c, 0,1),
|
||||||
video::S3DVertex(BS/2,-BS/2,0, 0,0,0, c, 1,1),
|
video::S3DVertex( s,-s,0, 0,0,0, c, 1,1),
|
||||||
video::S3DVertex(BS/2,BS/2,0, 0,0,0, c, 1,0),
|
video::S3DVertex( s, s,0, 0,0,0, c, 1,0),
|
||||||
video::S3DVertex(-BS/2,BS/2,0, 0,0,0, c, 0,0),
|
video::S3DVertex(-s, s,0, 0,0,0, c, 0,0),
|
||||||
};
|
};
|
||||||
|
|
||||||
for(s32 i=0; i<4; i++)
|
for(s32 i=0; i<4; i++)
|
||||||
|
@ -949,13 +954,14 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
||||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||||
|
|
||||||
float d = (float)BS/16;
|
float d = (float)BS/16;
|
||||||
|
float s = BS/2*f.visual_scale;
|
||||||
// Wall at X+ of node
|
// Wall at X+ of node
|
||||||
video::S3DVertex vertices[4] =
|
video::S3DVertex vertices[4] =
|
||||||
{
|
{
|
||||||
video::S3DVertex(BS/2-d,BS/2,BS/2, 0,0,0, c, 0,0),
|
video::S3DVertex(BS/2-d, s, s, 0,0,0, c, 0,0),
|
||||||
video::S3DVertex(BS/2-d,BS/2,-BS/2, 0,0,0, c, 1,0),
|
video::S3DVertex(BS/2-d, s, -s, 0,0,0, c, 1,0),
|
||||||
video::S3DVertex(BS/2-d,-BS/2,-BS/2, 0,0,0, c, 1,1),
|
video::S3DVertex(BS/2-d, -s, -s, 0,0,0, c, 1,1),
|
||||||
video::S3DVertex(BS/2-d,-BS/2,BS/2, 0,0,0, c, 0,1),
|
video::S3DVertex(BS/2-d, -s, s, 0,0,0, c, 0,1),
|
||||||
};
|
};
|
||||||
|
|
||||||
v3s16 dir = n.getWallMountedDir(nodedef);
|
v3s16 dir = n.getWallMountedDir(nodedef);
|
||||||
|
@ -990,16 +996,16 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
||||||
u16 l = getInteriorLight(n, 1, data);
|
u16 l = getInteriorLight(n, 1, data);
|
||||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||||
|
|
||||||
|
float s = BS/2*f.visual_scale;
|
||||||
|
|
||||||
for(u32 j=0; j<2; j++)
|
for(u32 j=0; j<2; j++)
|
||||||
{
|
{
|
||||||
video::S3DVertex vertices[4] =
|
video::S3DVertex vertices[4] =
|
||||||
{
|
{
|
||||||
video::S3DVertex(-BS/2*f.visual_scale,-BS/2,0, 0,0,0, c, 0,1),
|
video::S3DVertex(-s,-BS/2, 0, 0,0,0, c, 0,1),
|
||||||
video::S3DVertex( BS/2*f.visual_scale,-BS/2,0, 0,0,0, c, 1,1),
|
video::S3DVertex( s,-BS/2, 0, 0,0,0, c, 1,1),
|
||||||
video::S3DVertex( BS/2*f.visual_scale,
|
video::S3DVertex( s,-BS/2 + s*2,0, 0,0,0, c, 1,0),
|
||||||
-BS/2 + f.visual_scale*BS,0, 0,0,0, c, 1,0),
|
video::S3DVertex(-s,-BS/2 + s*2,0, 0,0,0, c, 0,0),
|
||||||
video::S3DVertex(-BS/2*f.visual_scale,
|
|
||||||
-BS/2 + f.visual_scale*BS,0, 0,0,0, c, 0,0),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if(j == 0)
|
if(j == 0)
|
||||||
|
|
|
@ -969,6 +969,8 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, Player *player_, u16 peer_id_,
|
||||||
m_physics_override_speed(1),
|
m_physics_override_speed(1),
|
||||||
m_physics_override_jump(1),
|
m_physics_override_jump(1),
|
||||||
m_physics_override_gravity(1),
|
m_physics_override_gravity(1),
|
||||||
|
m_physics_override_sneak(true),
|
||||||
|
m_physics_override_sneak_glitch(true),
|
||||||
m_physics_override_sent(false)
|
m_physics_override_sent(false)
|
||||||
{
|
{
|
||||||
assert(m_player);
|
assert(m_player);
|
||||||
|
@ -1060,7 +1062,9 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version)
|
||||||
os<<serializeLongString(gob_cmd_update_bone_position((*ii).first, (*ii).second.X, (*ii).second.Y)); // m_bone_position.size
|
os<<serializeLongString(gob_cmd_update_bone_position((*ii).first, (*ii).second.X, (*ii).second.Y)); // m_bone_position.size
|
||||||
}
|
}
|
||||||
os<<serializeLongString(gob_cmd_update_attachment(m_attachment_parent_id, m_attachment_bone, m_attachment_position, m_attachment_rotation)); // 4
|
os<<serializeLongString(gob_cmd_update_attachment(m_attachment_parent_id, m_attachment_bone, m_attachment_position, m_attachment_rotation)); // 4
|
||||||
os<<serializeLongString(gob_cmd_update_physics_override(m_physics_override_speed, m_physics_override_jump, m_physics_override_gravity)); // 5
|
os<<serializeLongString(gob_cmd_update_physics_override(m_physics_override_speed,
|
||||||
|
m_physics_override_jump, m_physics_override_gravity, m_physics_override_sneak,
|
||||||
|
m_physics_override_sneak_glitch)); // 5
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1187,7 +1191,9 @@ void PlayerSAO::step(float dtime, bool send_recommended)
|
||||||
|
|
||||||
if(m_physics_override_sent == false){
|
if(m_physics_override_sent == false){
|
||||||
m_physics_override_sent = true;
|
m_physics_override_sent = true;
|
||||||
std::string str = gob_cmd_update_physics_override(m_physics_override_speed, m_physics_override_jump, m_physics_override_gravity);
|
std::string str = gob_cmd_update_physics_override(m_physics_override_speed,
|
||||||
|
m_physics_override_jump, m_physics_override_gravity,
|
||||||
|
m_physics_override_sneak, m_physics_override_sneak_glitch);
|
||||||
// create message and add to list
|
// create message and add to list
|
||||||
ActiveObjectMessage aom(getId(), true, str);
|
ActiveObjectMessage aom(getId(), true, str);
|
||||||
m_messages_out.push_back(aom);
|
m_messages_out.push_back(aom);
|
||||||
|
|
|
@ -330,6 +330,8 @@ public:
|
||||||
float m_physics_override_speed;
|
float m_physics_override_speed;
|
||||||
float m_physics_override_jump;
|
float m_physics_override_jump;
|
||||||
float m_physics_override_gravity;
|
float m_physics_override_gravity;
|
||||||
|
bool m_physics_override_sneak;
|
||||||
|
bool m_physics_override_sneak_glitch;
|
||||||
bool m_physics_override_sent;
|
bool m_physics_override_sent;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -27,57 +27,39 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "main.h" // for g_settings
|
#include "main.h" // for g_settings
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
#include "version.h"
|
||||||
#if USE_CURL
|
#include "httpfetch.h"
|
||||||
#include <curl/curl.h>
|
|
||||||
|
|
||||||
static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
|
|
||||||
{
|
|
||||||
((std::string*)userp)->append((char*)contents, size * nmemb);
|
|
||||||
return size * nmemb;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Json::Value fetchJsonValue(const std::string url,
|
Json::Value fetchJsonValue(const std::string url,
|
||||||
struct curl_slist *chunk) {
|
struct curl_slist *chunk) {
|
||||||
#if USE_CURL
|
#if USE_CURL
|
||||||
std::string liststring;
|
|
||||||
CURL *curl;
|
|
||||||
|
|
||||||
curl = curl_easy_init();
|
HTTPFetchRequest fetchrequest;
|
||||||
if (curl)
|
HTTPFetchResult fetchresult;
|
||||||
{
|
fetchrequest.url = url;
|
||||||
CURLcode res;
|
fetchrequest.useragent = std::string("Minetest ")+minetest_version_hash;
|
||||||
|
fetchrequest.timeout = g_settings->getS32("curl_timeout");
|
||||||
|
fetchrequest.caller = HTTPFETCH_SYNC;
|
||||||
|
|
||||||
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
|
struct curl_slist* runptr = chunk;
|
||||||
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
|
while(runptr) {
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
|
fetchrequest.extra_headers.push_back(runptr->data);
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &liststring);
|
runptr = runptr->next;
|
||||||
curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, g_settings->getS32("curl_timeout"));
|
|
||||||
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS, g_settings->getS32("curl_timeout"));
|
|
||||||
|
|
||||||
if (chunk != 0)
|
|
||||||
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
|
|
||||||
|
|
||||||
res = curl_easy_perform(curl);
|
|
||||||
if (res != CURLE_OK)
|
|
||||||
errorstream<<"Jsonreader: "<< url <<" not found (" << curl_easy_strerror(res) << ")" <<std::endl;
|
|
||||||
curl_easy_cleanup(curl);
|
|
||||||
}
|
}
|
||||||
|
httpfetch_sync(fetchrequest,fetchresult);
|
||||||
|
|
||||||
Json::Value root;
|
if (!fetchresult.succeeded) {
|
||||||
Json::Reader reader;
|
|
||||||
std::istringstream stream(liststring);
|
|
||||||
if (!liststring.size()) {
|
|
||||||
return Json::Value();
|
return Json::Value();
|
||||||
}
|
}
|
||||||
|
Json::Value root;
|
||||||
|
Json::Reader reader;
|
||||||
|
std::istringstream stream(fetchresult.data);
|
||||||
|
|
||||||
if (!reader.parse( stream, root ) )
|
if (!reader.parse( stream, root ) )
|
||||||
{
|
{
|
||||||
errorstream << "URL: " << url << std::endl;
|
errorstream << "URL: " << url << std::endl;
|
||||||
errorstream << "Failed to parse json data " << reader.getFormattedErrorMessages();
|
errorstream << "Failed to parse json data " << reader.getFormattedErrorMessages();
|
||||||
errorstream << "data: \"" << liststring << "\"" << std::endl;
|
errorstream << "data: \"" << fetchresult.data << "\"" << std::endl;
|
||||||
return Json::Value();
|
return Json::Value();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,13 +87,17 @@ std::vector<ModStoreMod> readModStoreList(Json::Value& modlist) {
|
||||||
|
|
||||||
//id
|
//id
|
||||||
if (modlist[i]["id"].asString().size()) {
|
if (modlist[i]["id"].asString().size()) {
|
||||||
const char* id_raw = modlist[i]["id"].asString().c_str();
|
std::string id_raw = modlist[i]["id"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
int numbervalue = strtol(id_raw,&endptr,10);
|
int numbervalue = strtol(id_raw.c_str(),&endptr,10);
|
||||||
|
|
||||||
if ((*id_raw != 0) && (*endptr == 0)) {
|
if ((id_raw != "") && (*endptr == 0)) {
|
||||||
toadd.id = numbervalue;
|
toadd.id = numbervalue;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
errorstream << "readModStoreList: missing id" << std::endl;
|
||||||
|
toadd.valid = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
errorstream << "readModStoreList: missing id" << std::endl;
|
errorstream << "readModStoreList: missing id" << std::endl;
|
||||||
|
@ -163,11 +149,11 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
ModStoreVersionEntry toadd;
|
ModStoreVersionEntry toadd;
|
||||||
|
|
||||||
if (details["version_set"][i]["id"].asString().size()) {
|
if (details["version_set"][i]["id"].asString().size()) {
|
||||||
const char* id_raw = details["version_set"][i]["id"].asString().c_str();
|
std::string id_raw = details["version_set"][i]["id"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
int numbervalue = strtol(id_raw,&endptr,10);
|
int numbervalue = strtol(id_raw.c_str(),&endptr,10);
|
||||||
|
|
||||||
if ((*id_raw != 0) && (*endptr == 0)) {
|
if ((id_raw != "") && (*endptr == 0)) {
|
||||||
toadd.id = numbervalue;
|
toadd.id = numbervalue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -204,7 +190,7 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (retval.versions.size() < 1) {
|
if (retval.versions.size() < 1) {
|
||||||
errorstream << "readModStoreModDetails: not a single version specified!" << std::endl;
|
infostream << "readModStoreModDetails: not a single version specified!" << std::endl;
|
||||||
retval.valid = false;
|
retval.valid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,11 +201,11 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
|
|
||||||
if (details["categories"][i]["id"].asString().size()) {
|
if (details["categories"][i]["id"].asString().size()) {
|
||||||
|
|
||||||
const char* id_raw = details["categories"][i]["id"].asString().c_str();
|
std::string id_raw = details["categories"][i]["id"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
int numbervalue = strtol(id_raw,&endptr,10);
|
int numbervalue = strtol(id_raw.c_str(),&endptr,10);
|
||||||
|
|
||||||
if ((*id_raw != 0) && (*endptr == 0)) {
|
if ((id_raw != "") && (*endptr == 0)) {
|
||||||
toadd.id = numbervalue;
|
toadd.id = numbervalue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -248,11 +234,11 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
if (details["author"].isObject()) {
|
if (details["author"].isObject()) {
|
||||||
if (details["author"]["id"].asString().size()) {
|
if (details["author"]["id"].asString().size()) {
|
||||||
|
|
||||||
const char* id_raw = details["author"]["id"].asString().c_str();
|
std::string id_raw = details["author"]["id"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
int numbervalue = strtol(id_raw,&endptr,10);
|
int numbervalue = strtol(id_raw.c_str(),&endptr,10);
|
||||||
|
|
||||||
if ((*id_raw != 0) && (*endptr == 0)) {
|
if ((id_raw != "") && (*endptr == 0)) {
|
||||||
retval.author.id = numbervalue;
|
retval.author.id = numbervalue;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -282,11 +268,11 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
if (details["license"].isObject()) {
|
if (details["license"].isObject()) {
|
||||||
if (details["license"]["id"].asString().size()) {
|
if (details["license"]["id"].asString().size()) {
|
||||||
|
|
||||||
const char* id_raw = details["license"]["id"].asString().c_str();
|
std::string id_raw = details["license"]["id"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
int numbervalue = strtol(id_raw,&endptr,10);
|
int numbervalue = strtol(id_raw.c_str(),&endptr,10);
|
||||||
|
|
||||||
if ((*id_raw != 0) && (*endptr == 0)) {
|
if ((id_raw != "") && (*endptr == 0)) {
|
||||||
retval.license.id = numbervalue;
|
retval.license.id = numbervalue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -313,11 +299,11 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
if (details["titlepic"].isObject()) {
|
if (details["titlepic"].isObject()) {
|
||||||
if (details["titlepic"]["id"].asString().size()) {
|
if (details["titlepic"]["id"].asString().size()) {
|
||||||
|
|
||||||
const char* id_raw = details["titlepic"]["id"].asString().c_str();
|
std::string id_raw = details["titlepic"]["id"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
int numbervalue = strtol(id_raw,&endptr,10);
|
int numbervalue = strtol(id_raw.c_str(),&endptr,10);
|
||||||
|
|
||||||
if ((*id_raw != 0) && (*endptr == 0)) {
|
if ((id_raw != "") && (*endptr == 0)) {
|
||||||
retval.titlepic.id = numbervalue;
|
retval.titlepic.id = numbervalue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -332,11 +318,11 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
|
|
||||||
if (details["titlepic"]["mod"].asString().size()) {
|
if (details["titlepic"]["mod"].asString().size()) {
|
||||||
|
|
||||||
const char* mod_raw = details["titlepic"]["mod"].asString().c_str();
|
std::string mod_raw = details["titlepic"]["mod"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
int numbervalue = strtol(mod_raw,&endptr,10);
|
int numbervalue = strtol(mod_raw.c_str(),&endptr,10);
|
||||||
|
|
||||||
if ((*mod_raw != 0) && (*endptr == 0)) {
|
if ((mod_raw != "") && (*endptr == 0)) {
|
||||||
retval.titlepic.mod = numbervalue;
|
retval.titlepic.mod = numbervalue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -345,11 +331,11 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
//id
|
//id
|
||||||
if (details["id"].asString().size()) {
|
if (details["id"].asString().size()) {
|
||||||
|
|
||||||
const char* id_raw = details["id"].asString().c_str();
|
std::string id_raw = details["id"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
int numbervalue = strtol(id_raw,&endptr,10);
|
int numbervalue = strtol(id_raw.c_str(),&endptr,10);
|
||||||
|
|
||||||
if ((*id_raw != 0) && (*endptr == 0)) {
|
if ((id_raw != "") && (*endptr == 0)) {
|
||||||
retval.id = numbervalue;
|
retval.id = numbervalue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -389,11 +375,11 @@ ModStoreModDetails readModStoreModDetails(Json::Value& details) {
|
||||||
//value
|
//value
|
||||||
if (details["rating"].asString().size()) {
|
if (details["rating"].asString().size()) {
|
||||||
|
|
||||||
const char* id_raw = details["rating"].asString().c_str();
|
std::string id_raw = details["rating"].asString();
|
||||||
char* endptr = 0;
|
char* endptr = 0;
|
||||||
float numbervalue = strtof(id_raw,&endptr);
|
float numbervalue = strtof(id_raw.c_str(),&endptr);
|
||||||
|
|
||||||
if ((*id_raw != 0) && (*endptr == 0)) {
|
if ((id_raw != "") && (*endptr == 0)) {
|
||||||
retval.rating = numbervalue;
|
retval.rating = numbervalue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,68 +92,82 @@ MapBlock* Database_LevelDB::loadBlock(v3s16 blockpos)
|
||||||
v2s16 p2d(blockpos.X, blockpos.Z);
|
v2s16 p2d(blockpos.X, blockpos.Z);
|
||||||
|
|
||||||
std::string datastr;
|
std::string datastr;
|
||||||
leveldb::Status s = m_database->Get(leveldb::ReadOptions(), i64tos(getBlockAsInteger(blockpos)), &datastr);
|
leveldb::Status s = m_database->Get(leveldb::ReadOptions(),
|
||||||
|
i64tos(getBlockAsInteger(blockpos)), &datastr);
|
||||||
|
if (datastr.length() == 0 && s.ok()) {
|
||||||
|
errorstream << "Blank block data in database (datastr.length() == 0) ("
|
||||||
|
<< blockpos.X << "," << blockpos.Y << "," << blockpos.Z << ")" << std::endl;
|
||||||
|
|
||||||
if(s.ok()) {
|
if (g_settings->getBool("ignore_world_load_errors")) {
|
||||||
/*
|
errorstream << "Ignoring block load error. Duck and cover! "
|
||||||
Make sure sector is loaded
|
<< "(ignore_world_load_errors)" << std::endl;
|
||||||
*/
|
} else {
|
||||||
MapSector *sector = srvmap->createSector(p2d);
|
throw SerializationError("Blank block data in database");
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s.ok()) {
|
||||||
|
/*
|
||||||
|
Make sure sector is loaded
|
||||||
|
*/
|
||||||
|
MapSector *sector = srvmap->createSector(p2d);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
std::istringstream is(datastr, std::ios_base::binary);
|
std::istringstream is(datastr, std::ios_base::binary);
|
||||||
u8 version = SER_FMT_VER_INVALID;
|
u8 version = SER_FMT_VER_INVALID;
|
||||||
is.read((char*)&version, 1);
|
is.read((char *)&version, 1);
|
||||||
|
|
||||||
if(is.fail())
|
if (is.fail())
|
||||||
throw SerializationError("ServerMap::loadBlock(): Failed"
|
throw SerializationError("ServerMap::loadBlock(): Failed"
|
||||||
" to read MapBlock version");
|
" to read MapBlock version");
|
||||||
|
|
||||||
MapBlock *block = NULL;
|
MapBlock *block = NULL;
|
||||||
bool created_new = false;
|
bool created_new = false;
|
||||||
block = sector->getBlockNoCreateNoEx(blockpos.Y);
|
block = sector->getBlockNoCreateNoEx(blockpos.Y);
|
||||||
if(block == NULL)
|
if (block == NULL)
|
||||||
{
|
{
|
||||||
block = sector->createBlankBlockNoInsert(blockpos.Y);
|
block = sector->createBlankBlockNoInsert(blockpos.Y);
|
||||||
created_new = true;
|
created_new = true;
|
||||||
}
|
}
|
||||||
// Read basic data
|
|
||||||
block->deSerialize(is, version, true);
|
|
||||||
// If it's a new block, insert it to the map
|
|
||||||
if(created_new)
|
|
||||||
sector->insertBlock(block);
|
|
||||||
/*
|
|
||||||
Save blocks loaded in old format in new format
|
|
||||||
*/
|
|
||||||
|
|
||||||
//if(version < SER_FMT_VER_HIGHEST || save_after_load)
|
// Read basic data
|
||||||
// Only save if asked to; no need to update version
|
block->deSerialize(is, version, true);
|
||||||
//if(save_after_load)
|
|
||||||
// saveBlock(block);
|
|
||||||
// We just loaded it from, so it's up-to-date.
|
|
||||||
block->resetModified();
|
|
||||||
|
|
||||||
}
|
// If it's a new block, insert it to the map
|
||||||
catch(SerializationError &e)
|
if (created_new)
|
||||||
{
|
sector->insertBlock(block);
|
||||||
errorstream<<"Invalid block data in database"
|
|
||||||
<<" ("<<blockpos.X<<","<<blockpos.Y<<","<<blockpos.Z<<")"
|
|
||||||
<<" (SerializationError): "<<e.what()<<std::endl;
|
|
||||||
// TODO: Block should be marked as invalid in memory so that it is
|
|
||||||
// not touched but the game can run
|
|
||||||
|
|
||||||
if(g_settings->getBool("ignore_world_load_errors")){
|
/*
|
||||||
errorstream<<"Ignoring block load error. Duck and cover! "
|
Save blocks loaded in old format in new format
|
||||||
<<"(ignore_world_load_errors)"<<std::endl;
|
*/
|
||||||
} else {
|
//if(version < SER_FMT_VER_HIGHEST || save_after_load)
|
||||||
throw SerializationError("Invalid block data in database");
|
// Only save if asked to; no need to update version
|
||||||
//assert(0);
|
//if(save_after_load)
|
||||||
}
|
// saveBlock(block);
|
||||||
}
|
// We just loaded it from, so it's up-to-date.
|
||||||
|
block->resetModified();
|
||||||
|
}
|
||||||
|
catch (SerializationError &e)
|
||||||
|
{
|
||||||
|
errorstream << "Invalid block data in database"
|
||||||
|
<< " (" << blockpos.X << "," << blockpos.Y << "," << blockpos.Z
|
||||||
|
<< ") (SerializationError): " << e.what() << std::endl;
|
||||||
|
// TODO: Block should be marked as invalid in memory so that it is
|
||||||
|
// not touched but the game can run
|
||||||
|
|
||||||
return srvmap->getBlockNoCreateNoEx(blockpos); // should not be using this here
|
if (g_settings->getBool("ignore_world_load_errors")) {
|
||||||
}
|
errorstream << "Ignoring block load error. Duck and cover! "
|
||||||
return(NULL);
|
<< "(ignore_world_load_errors)" << std::endl;
|
||||||
|
} else {
|
||||||
|
throw SerializationError("Invalid block data in database");
|
||||||
|
//assert(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return srvmap->getBlockNoCreateNoEx(blockpos); // should not be using this here
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Database_LevelDB::listAllLoadableBlocks(std::list<v3s16> &dst)
|
void Database_LevelDB::listAllLoadableBlocks(std::list<v3s16> &dst)
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue