From 5997b4a1886ae626a5f47a7c2a3c77149bde81d3 Mon Sep 17 00:00:00 2001 From: BrunoMine Date: Sun, 19 Aug 2018 00:01:24 -0300 Subject: [PATCH] =?UTF-8?q?Lan=C3=A7amento=20de=20codigo=20inicial?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 165 ++++++++++++++++++++ README.md | 28 +++- depends.txt | 2 + description.txt | 1 + init.lua | 134 ++++++++++++++++ lib/intllib.lua | 45 ++++++ locale/Arquivos para traduzir.txt | 1 + locale/en.mo | Bin 0 -> 440 bytes locale/en.po | 27 ++++ locale/musket.en.tr | 4 + locale/musket.pt.tr | 4 + locale/pt.mo | Bin 0 -> 454 bytes locale/pt.po | 27 ++++ locale/template.pot | 26 ++++ sounds/musket_mosquete.1.ogg | Bin 0 -> 20332 bytes sounds/musket_mosquete.2.ogg | Bin 0 -> 22908 bytes sounds/musket_mosquete.ogg | Bin 0 -> 23832 bytes textures/musket_ammo_mosquete.png | Bin 0 -> 711 bytes textures/musket_ammo_mosquete_na_mao.png | Bin 0 -> 297 bytes textures/musket_mosquete.png | Bin 0 -> 695 bytes textures/musket_mosquete_descarregado.png | Bin 0 -> 664 bytes tools/xgettext.bat | 33 ++++ tools/xgettext.sh | 27 ++++ tradutor.lua | 177 ++++++++++++++++++++++ 24 files changed, 700 insertions(+), 1 deletion(-) create mode 100644 LICENSE create mode 100644 depends.txt create mode 100644 description.txt create mode 100644 init.lua create mode 100644 lib/intllib.lua create mode 100644 locale/Arquivos para traduzir.txt create mode 100644 locale/en.mo create mode 100644 locale/en.po create mode 100644 locale/musket.en.tr create mode 100644 locale/musket.pt.tr create mode 100644 locale/pt.mo create mode 100644 locale/pt.po create mode 100644 locale/template.pot create mode 100644 sounds/musket_mosquete.1.ogg create mode 100644 sounds/musket_mosquete.2.ogg create mode 100644 sounds/musket_mosquete.ogg create mode 100644 textures/musket_ammo_mosquete.png create mode 100644 textures/musket_ammo_mosquete_na_mao.png create mode 100644 textures/musket_mosquete.png create mode 100644 textures/musket_mosquete_descarregado.png create mode 100644 tools/xgettext.bat create mode 100755 tools/xgettext.sh create mode 100644 tradutor.lua diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..65c5ca8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + 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 that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU 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 as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/README.md b/README.md index cb10803..bc92189 100644 --- a/README.md +++ b/README.md @@ -1 +1,27 @@ -musket +# Musket v1.0.0 + +[![download](https://img.shields.io/github/tag/BrunoMine/musket.svg?style=flat-square&label=release)](https://github.com/BrunoMine/musket/archive/master.zip) +[![git](https://img.shields.io/badge/git-project-green.svg?style=flat-square)](https://github.com/BrunoMine/musket) +[![forum](https://img.shields.io/badge/minetest-mod-green.svg?style=flat-square)](https://forum.minetest.net) +[![bower](https://img.shields.io/badge/bower-mod-green.svg?style=flat-square)](https://minetest-bower.herokuapp.com/mods/musket) + +## Descrição +Adicionar o mosquete ao Minetest + +## Requisitos _(Requirements)_ +* Minetest 0.4.17 ou superior +* Mod intllib (opicional) + +## Licença +Veja LICENSE.txt para informações detalhadas da licença LGPL 3.0 + +### Autores do código fonte +Originalmente por BrunoMine, Bruno Borges (LGPL 3.0) + +### Autores de mídias (texturas, modelos and sons) +Todos que não estao listados aqui: +BrunoMine, Bruno Borges (CC BY-SA 3.0) + + + + diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..b86e145 --- /dev/null +++ b/depends.txt @@ -0,0 +1,2 @@ +shooter + diff --git a/description.txt b/description.txt new file mode 100644 index 0000000..4ec54c2 --- /dev/null +++ b/description.txt @@ -0,0 +1 @@ +Adiciona arma mosquetes | Adds musket shooter diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..b29f860 --- /dev/null +++ b/init.lua @@ -0,0 +1,134 @@ +--[[ + Mod Musket para Minetest + Copyright (C) 2018 BrunoMine (https://github.com/BrunoMine) + + Recebeste uma cópia da GNU Lesser General + Public License junto com esse software, + se não, veja em . + + Arma Mosquete + ]] + +-- Tabela Global +musket = {} + +local modpath = minetest.get_modpath("musket") + +dofile(modpath.."/tradutor.lua") + +local S = musket.S + +-- Arma descarregada +minetest.register_craftitem("musket:ammo_mosquete_descarregado", { + description = "Mosquete Descarregado", + inventory_image = "musket_mosquete_descarregado.png", + + on_drop = function(itemstack, dropper, pos) + -- Prints a random number and removes one item from the stack + minetest.chat_send_all(math.random()) + itemstack:take_item() + return itemstack + end, +}) + +-- Munição de Mosquete +minetest.register_craftitem("musket:ammo_mosquete", { + description = S("Munição para Mosquete"), + inventory_image = "musket_ammo_mosquete.png", + wield_image = "musket_ammo_mosquete_na_mao.png", + stack_max = 15, +}) + +-- Mosquete +shooter:register_weapon("musket:mosquete", { + description = S("Mosquete"), + inventory_image = "musket_mosquete.png", + rounds = 1.1, + ammo = "musket:ammo_mosquete", + spec = { + range = 20, + step = 30, + tool_caps = {full_punch_interval=1.2, damage_groups={fleshy=6}}, + groups = {snappy=3, crumbly=3, choppy=3, fleshy=2, oddly_breakable_by_hand=2}, + sound = "musket_mosquete", + particle = "shooter_bullet.png", + }, +}) + +-- Mosquete Descarregado +shooter:register_weapon("musket:mosquete_descarregado", { + description = S("Mosquete"), + inventory_image = "musket_mosquete_descarregado.png", + rounds = 1.1, + ammo = "musket:ammo_mosquete", + spec = { + range = 20, + step = 30, + tool_caps = {full_punch_interval=1.2, damage_groups={fleshy=6}}, + groups = {snappy=3, crumbly=3, choppy=3, fleshy=2, oddly_breakable_by_hand=2}, + sound = "musket_mosquete", + particle = "shooter_bullet.png", + }, +}) + + +-- Ajustes +local old_on_use1 = minetest.registered_tools["musket:mosquete_descarregado"].on_use +do + -- Copiar tabela de definições + local def = {} + for n,d in pairs(minetest.registered_tools["musket:mosquete_descarregado"]) do + def[n] = d + end + -- Mantem a tabela groups separada + def.groups = minetest.deserialize(minetest.serialize(def.groups)) or {} + + -- Altera alguns paremetros + def.groups.not_in_creative_inventory = 1 + + -- Troca o mosquete + def.on_use = function(itemstack, user, pointed_thing) + if old_on_use1 then + itemstack = old_on_use1(itemstack, user, pointed_thing) + end + + -- Verifica se descarregou + if itemstack:get_wear() < 500 then + itemstack:set_name("musket:mosquete") + end + + return itemstack + end + + -- Registra o novo node + minetest.override_item("musket:mosquete_descarregado", {groups=def.groups, on_use=def.on_use}) +end + +local old_on_use2 = minetest.registered_tools["musket:mosquete"].on_use +do + -- Copiar tabela de definições + local def = {} + for n,d in pairs(minetest.registered_tools["musket:mosquete"]) do + def[n] = d + end + -- Mantem a tabela groups separada + def.groups = minetest.deserialize(minetest.serialize(def.groups)) or {} + + -- Altera alguns paremetros + -- Troca o mosquete + def.on_use = function(itemstack, user, pointed_thing) + if old_on_use2 then + itemstack = old_on_use2(itemstack, user, pointed_thing) + end + + -- Verifica se descarregou + if itemstack:get_wear() > 50000 then + itemstack:set_name("musket:mosquete_descarregado") + end + + return itemstack + end + + -- Registra o novo node + minetest.override_item("musket:mosquete", {groups=def.groups, on_use=def.on_use}) +end diff --git a/lib/intllib.lua b/lib/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/lib/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/locale/Arquivos para traduzir.txt b/locale/Arquivos para traduzir.txt new file mode 100644 index 0000000..dd23724 --- /dev/null +++ b/locale/Arquivos para traduzir.txt @@ -0,0 +1 @@ +init.lua diff --git a/locale/en.mo b/locale/en.mo new file mode 100644 index 0000000000000000000000000000000000000000..cc6244e608874a831bcd91f7f7cbf0a543ef0402 GIT binary patch literal 440 zcmYL_OHRWu5Qf83DD2pVw)HddrOw}LAp+SQ@%<1 zOG;}Jjo0!lw<4)uYBXp?waCXm<1fi7t~i_5Vr6u;sT^O!0AKT_2`;(8fO(GVgX4qiGtUc7JaCR2$L@2H)jUH;ke4(U^`g$g-EBGc zg%k#bf#kg+7lUu+uqt>i+HCm5l|~cZBwg?qeTobHhzdGlDAQbI0rMYnW8c9Q3RK)k z6|h)hnj7Y|oYpDbL6dzmR!mRrxTqB`pet3W1174;R)=1jP1A5+u-%Zk2krR-0*1n- OuhY+HX2Q, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-18 22:50-0300\n" +"PO-Revision-Date: 2018-08-18 22:52-0300\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: init.lua +msgid "Munição para Mosquete" +msgstr "Musket Ammo" + +#: init.lua +msgid "Mosquete" +msgstr "Musket" diff --git a/locale/musket.en.tr b/locale/musket.en.tr new file mode 100644 index 0000000..a2513ab --- /dev/null +++ b/locale/musket.en.tr @@ -0,0 +1,4 @@ +### Arquivo gerado por musket apartir de en.po +# textdomain: musket +Musket Ammo=Musket Ammo +Musket=Musket diff --git a/locale/musket.pt.tr b/locale/musket.pt.tr new file mode 100644 index 0000000..6770911 --- /dev/null +++ b/locale/musket.pt.tr @@ -0,0 +1,4 @@ +### Arquivo gerado por musket apartir de pt.po +# textdomain: musket +Musket Ammo=Munição para Mosquete +Musket=Mosquete diff --git a/locale/pt.mo b/locale/pt.mo new file mode 100644 index 0000000000000000000000000000000000000000..228e6a20a5514091e67e84bb1520ed53bf1ff99b GIT binary patch literal 454 zcmaiwzfQw25XQql31wtqVK7WETuD+uQK~GI7FB9QR0YI{X^!A3wS(;-Sa}DY03kMB zqVK`8aA{FHa`I1i{(Sez_Rr4dyF;-->=7r#7BM86xFfa+PV5pB;$Y2j-Y7TvC)JJq zO_|m_8n5-g+DVjos?nm8)Kbj8W*>@GTywV6Q>`XAwlK)y2DK4NM$8>yrL={_6e5T7 zx-gI_lG7^~;j?I(;DTF>Sm5~~cp>;93xeph4PM*x+##1m%?pGK`IP38LDE~f`z_Dy zDrr$#$X+XQvG`(-tC9=ZVdF=x4choR>qEHe(_ESd)X7LFtTiv8uk_SJOjh%)iGvPXl<}ct`!Vy6I?D${tg`O^ GfA|X*%YD}X literal 0 HcmV?d00001 diff --git a/locale/pt.po b/locale/pt.po new file mode 100644 index 0000000..d51d4e3 --- /dev/null +++ b/locale/pt.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-18 22:50-0300\n" +"PO-Revision-Date: 2018-08-18 22:53-0300\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: pt\n" + +#: init.lua +msgid "Munição para Mosquete" +msgstr "Munição para Mosquete" + +#: init.lua +msgid "Mosquete" +msgstr "Mosquete" diff --git a/locale/template.pot b/locale/template.pot new file mode 100644 index 0000000..0e221e3 --- /dev/null +++ b/locale/template.pot @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-18 22:50-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua +msgid "Munição para Mosquete" +msgstr "" + +#: init.lua +msgid "Mosquete" +msgstr "" diff --git a/sounds/musket_mosquete.1.ogg b/sounds/musket_mosquete.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..958cd9b284e069eda3911d43afe3d2c5b720ad64 GIT binary patch literal 20332 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 literal 0 HcmV?d00001 diff --git a/sounds/musket_mosquete.ogg b/sounds/musket_mosquete.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b0aec5ba19713edccfde9c85c9aa4df0ee9fab85 GIT binary patch literal 23832 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 literal 0 HcmV?d00001 diff --git a/textures/musket_ammo_mosquete.png b/textures/musket_ammo_mosquete.png new file mode 100644 index 0000000000000000000000000000000000000000..7491b991e7471d680c299a8381516c98f448bd77 GIT binary patch literal 711 zcmV;&0yzDNP)A!Upl(3ZGsjJ6AB&H$dnH(@78OlMJq%5%IP5fO z7cP8@eTAWYil#{$T-!Tjc5Npu0eTy+WVwlA|DN~v`cL6C{`ZL5et2GgU5WLZX@=agm1U@&+Q$i~4p9r zEQr1EMJS$SnFT0{!uCojq?72#i=4FnFD>;Vg5Y7KanODR1E01J?&X=@j1 z4wPj{x7)R%VXe0T2qB*Af+bDU)Z6C=2L}MPTD!m95}0>!90PE5b=ArR>wuXAAdX|3 zwW)6?WMD!UChxz)Qp18Hh^_wm}o|8H|&ZTjYg5y+6qc3d3bn02*GN#vfFOC zTv~A#iu+a7KI}EO->a$x;g!IMG}T-P;W^{gUOKhDUxBxrw}-c9#^Z5hvTDlM&DuC5 zr3B?n@=si!FP;uyGIH(TCajdIoRR(rL$)aecnn>cqx#b2^02#X_VvMAe&Y3S;z literal 0 HcmV?d00001 diff --git a/textures/musket_mosquete.png b/textures/musket_mosquete.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0894184b233a64d12d827fb9566d42d128f5c6 GIT binary patch literal 695 zcmV;o0!aOdP)vOmlOyJ&25_|dBOz7%jt%-Kz0F69{3zgVR==~oQgz>h(pZVvpKabgH_2wRfyWzp2~;j;Z2*o>LAc;Za0G~*EVgY2 zZpOd>Qc99b8=erm&<1c_kxHV0D67kl|cym?*Gpdp#W4LSeE5NZyEX_jvP2R@rMY# zg<6*7DicBorawO(`fPHtvsvX{pRE_l06?)=)S%atzpp(S`m8dccG3Psdb;r{;FbO* z3vIw};88P{bN?tN6l|mh!elG}eoOKFV9Wr1#b12u0gm;*-(W8c7Ka!OcomN&E3>#O dv%`NC{{ZPvOt_6Z)1m+X002ovPDHLkV1l08F3kV{ literal 0 HcmV?d00001 diff --git a/textures/musket_mosquete_descarregado.png b/textures/musket_mosquete_descarregado.png new file mode 100644 index 0000000000000000000000000000000000000000..1a91e22e3fe415936d45d049782006a9f3b378c4 GIT binary patch literal 664 zcmV;J0%!e+P)h`nSF1+ znOznJ8Dx+_2Kk?o&1TJh=M3#<@XE@HspsRYPq?_Q>l_Ab6A3%8P$-ysK8{p7$FA!( zp<}BlDwPVURLTjOACyoNip8SY6gQCyzMpnE`NgH)fcZ6?g)5j?1Y%K$#q&&0Pwz{j z=ipMQWNKoHnuLurX^ww-M7`0vJ~9MR2dqT&)-s7iBD6%;B`BB6rY5G48Y<_!CVYMk z=Tt%fP;Y=TAT>w@s*pek5qeK_71(?=iPW%h_9>$uA2#6tT5HDRi@p*RXINTV3MCOJ zkiUVE8Y<_XGxp)Z9yowf3axeXT)RZ1G)pd*>nY(YVBxY{qHj}O;k#SVTKisWmk`(SZ6UH7zI`nRnt9#2zaxY&T5EphXYqTAFiEG=MoQUSk`rH_ zbd{)Xw>S=f5W@Ueo;eWQFV8OeuXlUq*Kqy{@SqZX6$mR4`hTEb>1zYfy@mDa5jL=1 yg_qy@ya#OBTd;6Af(CZO|7qqXFmn@~`{56p@M->tWe0Wu0000&2 + exit 1 +) + +set xgettext=%gtprefix%xgettext.exe +set msgmerge=%gtprefix%msgmerge.exe + +md locale > nul 2>&1 +echo Generating template... 1>&2 +echo %xgettext% --from-code=UTF-8 -kS -kNS:1,2 -k_ -o locale/template.pot %* +%xgettext% --from-code=UTF-8 -kS -kNS:1,2 -k_ -o locale/template.pot %* +if %ERRORLEVEL% neq 0 goto done + +cd locale + +for %%f in (*.po) do ( + echo Updating %%f... 1>&2 + %msgmerge% --update %%f template.pot +) + +echo DONE! 1>&2 + +:done diff --git a/tools/xgettext.sh b/tools/xgettext.sh new file mode 100755 index 0000000..1504f42 --- /dev/null +++ b/tools/xgettext.sh @@ -0,0 +1,27 @@ +#! /bin/bash + +me=$(basename "${BASH_SOURCE[0]}"); + +if [[ $# -lt 1 ]]; then + echo "Usage: $me FILE..." >&2; + exit 1; +fi + +mkdir -p locale; +echo "Generating template..." >&2; +xgettext --from-code=UTF-8 \ + --keyword=S \ + --keyword=NS:1,2 \ + --keyword=N_ \ + --add-comments='Translators:' \ + --add-location=file \ + -o locale/template.pot \ + "$@" \ + || exit; + +find locale -name '*.po' -type f | while read -r file; do + echo "Updating $file..." >&2; + msgmerge --update "$file" locale/template.pot; +done + +echo "DONE!" >&2; diff --git a/tradutor.lua b/tradutor.lua new file mode 100644 index 0000000..4ac4e4e --- /dev/null +++ b/tradutor.lua @@ -0,0 +1,177 @@ +--[[ + Mod musket para Minetest + Copyright (C) 2018 BrunoMine (https://github.com/BrunoMine) + + Recebeste uma cópia da GNU Lesser General + Public License junto com esse software, + se não, veja em . + + Sistema de tradução + ]] + +-- Modpath +local modpath = minetest.get_modpath("musket") + +-- Tradução intllib +musket.intllib = {} +musket.intllib.S, musket.intllib.NS = dofile(modpath.."/lib/intllib.lua") + +-- Configura tradutor opicional +musket.S = musket.intllib.S +musket.NS = musket.intllib.NS + +-- +-- Ajustes devido ao bug de tradutor ler apenas traduzir do ingles +-- + +-- Strings para repassar textos em ingles +local pt_to_en = {} + +-- Gera arquivos de tradução musket.*.tr +do + local file_to_tb = function(file) + local msgid = nil + local msgstr = nil + local tb = {} + for line in io.lines(file) do + + -- Iniciando 'msgid' + if string.sub(line, 1, 5) == "msgid" then + + -- Escrever no catalogo a anterior + if msgid ~= nil and msgstr ~= nil then + if msgid ~= "" then + tb[msgid] = msgstr + end + msgid = nil + msgstr = nil + end + + if line == "msgid \"\"" then + msgid = "" + else + msgid = string.sub(line, 8, (string.len(line)-1)) + end + + -- Continuando 'msgid' + elseif string.sub(line, 1, 1) == "\"" and msgstr == nil and msgid ~= nil then + msgid = msgid .. string.sub(line, 2, (string.len(line)-1)) + + -- Iniciando 'msgstr' + elseif string.sub(line, 1, 6) == "msgstr" then + + if line == "msgstr \"\"" then + msgstr = "" + else + msgstr = string.sub(line, 9, (string.len(line)-1)) + end + + -- Continuando 'msgstr' + elseif string.sub(line, 1, 1) == "\"" and msgstr ~= nil then + msgstr = msgstr .. string.sub(line, 2, (string.len(line)-1)) + + end + + + end + + -- Escrever ultima + if msgid ~= nil and msgstr ~= nil then + if msgid ~= "" then + tb[msgid] = msgstr + end + msgid = nil + msgstr = nil + end + + return tb + end + + -- Pegar strings principais en-pt para realizar as trocas + pt_to_en = file_to_tb(modpath.."/locale/en.po") + + --minetest.log("error", "pt_to_en = "..dump(pt_to_en)) + + local list = minetest.get_dir_list(modpath.."/locale") + for _,file in ipairs(list) do + + if string.match(file, "~") == nil then + + -- Traduções ".po" + if string.match(file, ".pot") == nil and string.match(file, ".po") then + + local lang_code = string.gsub(file, ".po", "") + + local pt_to_lang = file_to_tb(modpath.."/locale/"..file) + + -- tabela desejada + local en_to_lang = {} + for pt,en in pairs(pt_to_en) do + en_to_lang[en] = pt_to_lang[pt] + end + + -- Novo arquivo + local new_file = "### Arquivo gerado por musket apartir de "..file.."\n# textdomain: musket\n" + for en,lang in pairs(en_to_lang) do + new_file = new_file .. en .. "=" .. lang .. "\n" + end + -- Escrever arquivo + local saida = io.open(modpath.."/locale/musket."..lang_code..".tr", "w") + saida:write(new_file) + io.close(saida) + end + end + end +end + +-- Ajuste para repassar termos em ingles +local s +if minetest.get_translator ~= nil then + s = minetest.get_translator("musket") +else + s = musket.intllib.S +end + +musket.s = function(...) + local args = { ... } + if pt_to_en[args[1]] ~= nil then + return s(pt_to_en[args[1]], unpack(args, 2)) + end + minetest.log("error", "[musket] String "..dump(args[1]).." nao catalogada") + return s(...) +end + +-- Não troca string caso esteja trabalhando com intllib +if minetest.get_modpath("intllib") ~= nil + and minetest.get_translator == nil +then + musket.s = s +end + +musket.S = function(...) + local args = { ... } + if type(args[1]) == "table" then + local r = {} + for n,a in ipairs(args[1]) do + if n ~= 1 then -- Não traduz o primeiro + table.insert(r, musket.S(a)) + else + table.insert(r, a) + end + end + + return musket.s(unpack(r)) + + elseif type(args[1]) == "string" then + -- Não traduz caso faltem argumentos (devido strings ilustrativas) + return musket.s(...) + + else + return args[1] + end +end + +-- Função que retorna a string inalterada para passar pela checagem +musket.Sfake = function(s) return s end + +