Skip to content

Commit ba2bdf8

Browse files
authored
technic_cnc: Use client-side translation API (#636)
1 parent d5ff69d commit ba2bdf8

File tree

6 files changed

+154
-208
lines changed

6 files changed

+154
-208
lines changed

technic_cnc/cnc.lua

+6-6
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ if technic_cnc.use_technic then
2929
allow_metadata_inventory_take = technic.machine_inventory_take
3030
allow_metadata_inventory_move = technic.machine_inventory_move
3131
can_dig = technic.machine_can_dig
32-
desc_tr = S("%s CNC Machine"):format("LV")
32+
desc_tr = S("@1 CNC Machine", S("LV"))
3333
else
3434
minetest.register_craft({
3535
output = 'technic:cnc',
@@ -130,9 +130,9 @@ local cnc_formspec =
130130
"image_button[5,4;1,1;technic_cnc_element_t.png;element_t; ]"..
131131
"image_button[6,4;1,1;technic_cnc_element_edge.png;element_edge; ]"..
132132

133-
"label[0, 5.5;"..S("In:").."]"..
133+
"label[0, 5;"..S("In:").."]"..
134134
"list[current_name;src;0.5,5.5;1,1;]"..
135-
"label[4, 5.5;"..S("Out:").."]"..
135+
"label[4, 5;"..S("Out:").."]"..
136136
"list[current_name;dst;5,5.5;4,1;]"..
137137

138138
"list[current_player;main;0,7;8,4;]"..
@@ -221,18 +221,18 @@ local run = function(pos, node)
221221
(not minetest.registered_nodes[result]) or
222222
(not inv:room_for_item("dst", result)) then
223223
technic.swap_node(pos, machine_node)
224-
meta:set_string("infotext", S("%s Idle"):format(machine_name))
224+
meta:set_string("infotext", S("@1 Idle", machine_name))
225225
meta:set_string("cnc_product", "")
226226
meta:set_int("LV_EU_demand", 0)
227227
return
228228
end
229229

230230
if eu_input < demand then
231231
technic.swap_node(pos, machine_node)
232-
meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
232+
meta:set_string("infotext", S("@1 Unpowered", machine_name))
233233
elseif eu_input >= demand then
234234
technic.swap_node(pos, machine_node.."_active")
235-
meta:set_string("infotext", S("%s Active"):format(machine_name))
235+
meta:set_string("infotext", S("@1 Active", machine_name))
236236
meta:set_int("src_time", meta:get_int("src_time") + 1)
237237
if meta:get_int("src_time") >= 3 then -- 3 ticks per output
238238
meta:set_int("src_time", 0)

technic_cnc/cnc_materials.lua

+48-116
Original file line numberDiff line numberDiff line change
@@ -3,129 +3,61 @@
33

44
local S = technic_cnc.getter
55

6-
-- DIRT
7-
-------
8-
technic_cnc.register_all("default:dirt",
9-
{snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
10-
{"default_dirt.png"},
11-
S("Dirt"))
12-
-- (DIRT WITH) GRASS
13-
--------------------
14-
technic_cnc.register_all("default:dirt_with_grass",
15-
{snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
16-
{"default_grass.png"},
17-
S("Grassy dirt"))
18-
-- WOOD
19-
-------
20-
technic_cnc.register_all("default:wood",
21-
{snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
22-
{"default_wood.png"},
23-
S("Wooden"))
24-
-- STONE
25-
--------
26-
technic_cnc.register_all("default:stone",
27-
{cracky=3, not_in_creative_inventory=1},
28-
{"default_stone.png"},
29-
S("Stone"))
30-
-- COBBLE
31-
---------
32-
technic_cnc.register_all("default:cobble",
33-
{cracky=3, not_in_creative_inventory=1},
34-
{"default_cobble.png"},
35-
S("Cobble"))
36-
-- BRICK
37-
--------
38-
technic_cnc.register_all("default:brick",
39-
{cracky=3, not_in_creative_inventory=1},
40-
{"default_brick.png"},
41-
S("Brick"))
42-
43-
-- SANDSTONE
44-
------------
45-
technic_cnc.register_all("default:sandstone",
46-
{crumbly=2, cracky=3, not_in_creative_inventory=1},
47-
{"default_sandstone.png"},
48-
S("Sandstone"))
49-
50-
-- LEAVES
51-
---------
52-
technic_cnc.register_all("default:leaves",
53-
{snappy=2, choppy=2, oddly_breakable_by_hand=3, not_in_creative_inventory=1},
54-
{"default_leaves.png"},
55-
S("Leaves"))
56-
-- TREE
57-
-------
58-
technic_cnc.register_all("default:tree",
59-
{snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, wood=1, not_in_creative_inventory=1},
60-
{"default_tree.png"},
61-
S("Tree"))
62-
63-
-- Bronze
64-
--------
65-
technic_cnc.register_all("default:bronzeblock",
66-
{cracky=1, level=2, not_in_creative_inventory=1},
67-
{"default_bronze_block.png"},
68-
S("Bronze"))
6+
local function register_material(nodename, tiles_override, descr_override)
7+
local ndef = minetest.registered_nodes[nodename]
8+
if not ndef then
9+
return
10+
end
11+
12+
local groups = {
13+
crumbly = ndef.groups.crumbly,
14+
choppy = ndef.groups.choppy,
15+
flammable = ndef.groups.flammable,
16+
level = ndef.groups.level,
17+
snappy = ndef.groups.snappy,
18+
wood = ndef.groups.wood,
19+
oddly_breakable_by_hand = ndef.groups.oddly_breakable_by_hand,
20+
not_in_creative_inventory = 1,
21+
}
22+
local tiles = tiles_override or { ndef.tiles[#ndef.tiles] }
23+
assert(tiles and #tiles == 1, "Unknown tile format in node name=" .. nodename)
24+
25+
technic_cnc.register_all(nodename,
26+
groups,
27+
tiles,
28+
descr_override or ndef.description or "<unknown>"
29+
)
30+
end
6931

32+
register_material("default:dirt")
33+
register_material("default:dirt_with_grass", {"default_grass.png"}, S("Grassy dirt"))
34+
register_material("default:wood", nil, S("Wooden"))
35+
register_material("default:stone")
36+
register_material("default:cobble")
37+
register_material("default:sandstone")
38+
register_material("default:leaves")
39+
register_material("default:tree")
40+
register_material("default:bronzeblock", nil, S("Bronze"))
7041

71-
local steeltex = "default_steel_block.png"
72-
local steelname = "Steel"
42+
local steelname = S("Steel")
7343

7444
if technic_cnc.technic_modpath then
75-
steeltex = "technic_wrought_iron_block.png"
76-
steelname = "Wrought Iron"
77-
78-
-- Stainless Steel
79-
--------
80-
technic_cnc.register_all("technic:stainless_steel_block",
81-
{cracky=1, level=2, not_in_creative_inventory=1},
82-
{"technic_stainless_steel_block.png"},
83-
S("Stainless Steel"))
84-
85-
-- Marble
86-
------------
87-
technic_cnc.register_all("technic:marble",
88-
{cracky=3, not_in_creative_inventory=1},
89-
{"technic_marble.png"},
90-
S("Marble"))
91-
92-
-- Granite
93-
------------
94-
technic_cnc.register_all("technic:granite",
95-
{cracky=1, not_in_creative_inventory=1},
96-
{"technic_granite.png"},
97-
S("Granite"))
98-
99-
-- Blast-resistant concrete
100-
---------------------------
101-
102-
technic_cnc.register_all("technic:blast_resistant_concrete",
103-
{cracky=2, level=2, not_in_creative_inventory=1},
104-
{"technic_blast_resistant_concrete_block.png"},
105-
S("Blast-resistant concrete"))
45+
steelname = S("Wrought Iron")
46+
47+
register_material("technic:stainless_steel_block", nil, S("Stainless Steel"))
48+
register_material("technic:stainless_steel_block")
49+
register_material("technic:marble")
50+
register_material("technic:granite")
51+
register_material("technic:blast_resistant_concrete")
52+
register_material("technic:blast_resistant_concrete")
10653
end
10754

108-
-- STEEL
109-
---------------
110-
technic_cnc.register_all("default:steelblock",
111-
{cracky=1, level=2, not_in_creative_inventory=1},
112-
{steeltex},
113-
S(steelname))
55+
register_material("default:steelblock", nil, steelname)
56+
11457

11558
-- CONCRETE AND CEMENT
11659
----------------------
11760

118-
technic_cnc.register_all("basic_materials:concrete_block",
119-
{cracky=2, level=2, not_in_creative_inventory=1},
120-
{"basic_materials_concrete_block.png"},
121-
S("Concrete"))
122-
123-
technic_cnc.register_all("basic_materials:cement_block",
124-
{cracky=2, level=2, not_in_creative_inventory=1},
125-
{"basic_materials_cement_block.png"},
126-
S("Cement"))
127-
128-
technic_cnc.register_all("basic_materials:brass_block",
129-
{cracky=1, level=2, not_in_creative_inventory=1},
130-
{"basic_materials_brass_block.png"},
131-
S("Brass block"))
61+
register_material("basic_materials:concrete_block")
62+
register_material("basic_materials:cement_block")
63+
register_material("basic_materials:brass_block")

technic_cnc/init.lua

+1-15
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,11 @@ local modpath = minetest.get_modpath("technic_cnc")
33
technic_cnc = {}
44

55
technic_cnc.technic_modpath = minetest.get_modpath("technic")
6+
technic_cnc.getter = minetest.get_translator("technic_cnc")
67

78
technic_cnc.use_technic = technic_cnc.technic_modpath
89
and minetest.settings:get_bool("technic_cnc_use_technic") ~= false
910

10-
if rawget(_G, "intllib") then
11-
technic_cnc.getter = intllib.Getter()
12-
else
13-
-- Intllib copypasta: TODO replace with the client-side translation API
14-
technic_cnc.getter = function(s,a,...)
15-
if a==nil then return s end
16-
a={a,...}
17-
return s:gsub("(@?)@(%(?)(%d+)(%)?)", function(e,o,n,c)
18-
if e==""then
19-
return a[tonumber(n)]..(o==""and c or"")
20-
end
21-
return "@"..o..n..c
22-
end)
23-
end
24-
end
2511

2612
dofile(modpath.."/cnc.lua")
2713
dofile(modpath.."/cnc_api.lua")

technic_cnc/locale/de.txt

-36
This file was deleted.

technic_cnc/locale/technic_cnc.de.tr

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# textdomain: technic_cnc
2+
## CNC
3+
4+
##[ cnc.lua ]##
5+
CNC Machine=CNC-Maschine
6+
@1 CNC Machine=@1 CNC-Maschine
7+
LV=LV
8+
Choose Milling Program:=Wähle das Fräsprogramm aus:
9+
Slim Elements half / normal height:=Schmale halb- / normalhohe Elemente:
10+
In:=Eingabe:
11+
Out:=Ausgabe:
12+
@1 Idle=@1 (wartend)
13+
@1 Unpowered=@1 (unbestromt)
14+
@1 Active=@1 (aktiv)
15+
16+
##[ cnc_api.lua ]##
17+
Stick=Stock
18+
Element End Double=Endelement
19+
Element Cross Double=Kreuzelement
20+
Element T Double=T-Element
21+
Element Edge Double=Eckelement
22+
Element Straight Double=Gerades Element
23+
Element End=Halbes Endelement
24+
Element Cross=Halbes Kreuzelement
25+
Element T=Halbes T-Element
26+
Element Edge=Halbes Eckelement
27+
Element Straight=Halbes Gerades Eleent
28+
Oblate spheroid=Sphärenstück
29+
Sphere=Sphäre
30+
Horizontal Cylinder=Horizontaler Zylinder
31+
Cylinder=Zylinder
32+
Two Curved Edge/Corner Block=Doppelt gekrümmter Eck/-Randblock
33+
One Curved Edge Block=Einfach gekrümmter Eckblock
34+
Spike=Spitze
35+
Pyramid=Pyramide
36+
Slope Upside Down Inner Edge/Corner=Schräge (kopfüber), innere Ecke
37+
Slope Upside Down Outer Edge/Corner=Schräge (kopfüber), äussere Ecke
38+
Slope Inner Edge/Corner=Schräge, innere Ecke
39+
Slope Outer Edge/Corner=Schräge äussere Ecke
40+
Slope Upside Down=Schräge (kopfüber)
41+
Slope Lying=Liegende Schräge
42+
Slope=Schräge
43+
44+
##[ cnc_materials.lua ]##
45+
Grassy dirt=Erde mit Gras
46+
Wooden=Holz
47+
Bronze=Bronze
48+
Steel=Stahl
49+
Wrought Iron=Schmiedeeisen
50+
Stainless Steel=Edelstahl

0 commit comments

Comments
 (0)