From 4ad75c0c4743f46ef434370d9b539499f7c6c70c Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 3 Oct 2014 08:50:58 +0200 Subject: [PATCH] Add I18N support for arrow signs --- mods/arrow_signs/init.lua | 35 ++++++++++++++++++++++------ mods/arrow_signs/locale/template.txt | 23 ++++++++++++++++++ mods/default/init.lua | 2 +- mods/tutorial/init.lua | 3 ++- 4 files changed, 54 insertions(+), 9 deletions(-) diff --git a/mods/arrow_signs/init.lua b/mods/arrow_signs/init.lua index d250cb1..646ba7d 100644 --- a/mods/arrow_signs/init.lua +++ b/mods/arrow_signs/init.lua @@ -1,8 +1,15 @@ --more_signs by addi --Code and Textures are under the CC by-sa 3.0 licence --see: http://creativecommons.org/licenses/by-sa/3.0/ - - + +-- intllib support +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end arrow_signs={} @@ -18,7 +25,7 @@ arrow_signs={} "\" to sign at "..minetest.pos_to_string(pos)) meta:set_string("text", fields.text) text = arrow_signs:create_lines(fields.text) - meta:set_string("infotext", '"'..text..'"') + meta:set_string("infotext", text) i=0 for wort in text:gfind("\n") do i=i+1 @@ -68,7 +75,7 @@ minetest.register_node("arrow_signs:wall_right", { --wall_bottom = --wall_side = }, - groups = {immortal=1,attached_node=1}, + groups = {immortal=1,attached_node=1,arrow_sign=1}, legacy_wallmounted = true, sounds = default.node_sound_defaults(), on_construct = function(pos) @@ -104,7 +111,7 @@ minetest.register_node("arrow_signs:wall_left", { --wall_bottom = --wall_side = }, - groups = {immortal=1,attached_node=1}, + groups = {immortal=1,attached_node=1,arrow_sign=1}, legacy_wallmounted = true, sounds = default.node_sound_defaults(), on_construct = function(pos) @@ -139,7 +146,7 @@ minetest.register_node("arrow_signs:wall_up", { --wall_bottom = --wall_side = }, - groups = {immortal=1,attached_node=1}, + groups = {immortal=1,attached_node=1,arrow_sign=1}, legacy_wallmounted = true, sounds = default.node_sound_defaults(), on_construct = function(pos) @@ -174,7 +181,7 @@ minetest.register_node("arrow_signs:wall_down", { --wall_bottom = --wall_side = }, - groups = {immortal=1,attached_node=1}, + groups = {immortal=1,attached_node=1,arrow_sign=1}, legacy_wallmounted = true, sounds = default.node_sound_defaults(), on_construct = function(pos) @@ -192,3 +199,17 @@ minetest.register_node("arrow_signs:wall_down", { end, }) + +minetest.register_abm( { + nodenames = {"group:arrow_sign"}, + interval = 5, + chance = 1, + action = function(pos, node, active_object_count, active_object_cound_wider) + local meta = minetest.get_meta(pos) + local original = meta:get_string("text") + if(original ~= "") then + meta:set_string("infotext", S(original)) + end + end } +) + diff --git a/mods/arrow_signs/locale/template.txt b/mods/arrow_signs/locale/template.txt index 95e3378..62be87c 100644 --- a/mods/arrow_signs/locale/template.txt +++ b/mods/arrow_signs/locale/template.txt @@ -1,4 +1,27 @@ +# Nodes upwards-pointing sign downwards-pointing sign leftwards-pointing sign rightwards-pointing sign + +# Captions +Ladders section +Swimming and Diving sections +To the Diving section +Diving section +Pointing section +Mining section, Building section (prerequisites: Item and Tools section) +Tutorial Mine (just for fun) +Special Blocks section +To the Using section +To the Items, Tools, Crafting and Smelting house +The Items, Tools, Crafting and Smelting house +Waterfall section +Swimming section, Ladders section +Sneaking section +Health and Damage section +Viscosity section +The Good-Bye Room +Exit +Comestibles room +Smelting room diff --git a/mods/default/init.lua b/mods/default/init.lua index 9a6c8cc..8e74909 100644 --- a/mods/default/init.lua +++ b/mods/default/init.lua @@ -4,7 +4,7 @@ -- The API documentation in here was moved into doc/lua_api.txt -- intllib support -local S, F +local S if (minetest.get_modpath("intllib")) then dofile(minetest.get_modpath("intllib").."/intllib.lua") S = intllib.Getter(minetest.get_current_modname()) diff --git a/mods/tutorial/init.lua b/mods/tutorial/init.lua index a575dcf..399d946 100644 --- a/mods/tutorial/init.lua +++ b/mods/tutorial/init.lua @@ -1,6 +1,7 @@ tutorial = {} -- intllib support +local S if (minetest.get_modpath("intllib")) then dofile(minetest.get_modpath("intllib").."/intllib.lua") S = intllib.Getter(minetest.get_current_modname()) @@ -50,7 +51,7 @@ end function tutorial.convert_newlines(str) if(type(str)~="string") then - return "NO STRING FOUND!!!" + return "ERROR: No string found!" end local function convert(s)