From 270f97a5d817c0c1e175bb7b356f920e52d23317 Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Sat, 21 Nov 2020 18:08:36 +0100 Subject: [PATCH] Improve TA3 terminal, adapt manuals --- COPYING.txt | 28 - basis/mark.lua | 1 + basis/mark2.lua | 2 +- doc/manual_DE.lua | 4 +- doc/manual_EN.lua | 6 +- doc/plans.lua | 2 +- i18n.py | 483 ++++++++++++-- locale/techage.de.tr | 1320 ++++++++++++++++++++++++++------------ locale/template.txt | 1316 ++++++++++++++++++++++++++----------- logic/terminal.lua | 100 ++- manuals/manual_ta3_DE.md | 2 +- manuals/manual_ta3_EN.md | 4 +- 12 files changed, 2341 insertions(+), 927 deletions(-) delete mode 100644 COPYING.txt diff --git a/COPYING.txt b/COPYING.txt deleted file mode 100644 index d3a4dba..0000000 --- a/COPYING.txt +++ /dev/null @@ -1,28 +0,0 @@ -The Techage mod for Minetest is - -Copyright (C) 2019-2020 Joachim Stolberg - -License of source code ----------------------- - -This mod is free software; you can redistribute and/or -modify it under the terms of the GNU General Public License version 3 or later -published by the Free Software Foundation. - -This mod 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 mod; if not, write to the -Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, -Boston, MA 02110-1301, USA. - - -License of media (textures, sounds and documentation) ------------------------------------------------------ - -All textures, sounds and documentation files are licensed under the -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/basis/mark.lua b/basis/mark.lua index 20f2980..538bae7 100644 --- a/basis/mark.lua +++ b/basis/mark.lua @@ -84,6 +84,7 @@ minetest.register_entity(":techage:region_cube", { textures = {"techage_cube_mark.png"}, use_texture_alpha = true, physical = false, + glow = 12, }, on_step = function(self, dtime) if marker_region[self.player_name] == nil then diff --git a/basis/mark2.lua b/basis/mark2.lua index 90dea04..99ac668 100644 --- a/basis/mark2.lua +++ b/basis/mark2.lua @@ -114,7 +114,7 @@ minetest.register_entity(":techage:position_side", { physical = false, visual_size = {x = 1.1, y = 1.1, z = 1.1}, collisionbox = {-0.55,-0.55,-0.55, 0.55,0.55,0.55}, - glow = 8, + glow = 12, }, on_step = function(self, dtime) if marker_region[self.player_name] == nil then diff --git a/doc/manual_DE.lua b/doc/manual_DE.lua index 8597960..a57960e 100644 --- a/doc/manual_DE.lua +++ b/doc/manual_DE.lua @@ -435,6 +435,8 @@ techage.manual_DE.aText = { "\n".. "Der Verteiler besitzt dazu ein Menü mit 4 Filter mit unterschiedlichen Farben\\, entsprechend den 4 Ausgängen. Soll ein Ausgang genutzt werden\\, so muss der entsprechende Filter über die \"on\" Checkbox aktiviert werden. Alle Items\\, die für diesen Filter konfiguriert sind\\, werden über den zugeordneten Ausgang ausgegeben. Wird ein Filter aktiviert\\, ohne das Items konfiguriert werden\\, so sprechen wir hier von einem \"nicht-konfigurierten\"\\, offenen Ausgang.\n".. "\n".. + "*Achtung: Der Verteiler ist an seinen Ausgängen gleichzeitig ein Schieber. Daher niemals die Gegenstände mit einem Schieber aus dem Verteiler ziehen!*\n".. + "\n".. "Für einen nicht-konfigurierten Ausgang gibt es zwei Betriebsarten:\n".. "\n".. "1) Alle Items ausgeben\\, die an keine anderen Ausgängen ausgegeben werden können\\, auch wenn diese blockiert sind.\n".. @@ -961,7 +963,7 @@ techage.manual_DE.aText = { " - 'pub' schalte in den öffentlichen Modus um\n".. " - 'priv' schalte in den privaten Modus um\n".. "\n".. - "Im privaten Modul kann nur der Besitzer selbst Kommandos eingeben oder Tasten nutzen.\n".. + "Im privaten Modus (private) kann das Terminal nur von Spielern verwendet werden\\, die an diesem Ort bauen können\\, also Protection Rechte besitzen. Im öffentlichen Modus (public) können alle Spieler die vorkonfigurierten Tasten verwenden.\n".. "\n".. "\n".. "\n", diff --git a/doc/manual_EN.lua b/doc/manual_EN.lua index de7ddc0..792bd32 100644 --- a/doc/manual_EN.lua +++ b/doc/manual_EN.lua @@ -434,6 +434,8 @@ techage.manual_EN.aText = { "\n".. "The distributor has a menu with 4 filters with different colors\\, corresponding to the 4 outputs. If an output is to be used\\, the corresponding filter must be activated via the \"on\" checkbox. All items that are configured for this filter are output via the assigned output. If a filter is activated without items being configured\\, we are talking about an \"unconfigured\"\\, open output.\n".. "\n".. + "*Attention: The distributor is also a pusher at its output sides. Therefore\\, never pull items out of the distributor with a pusher!*\n".. + "\n".. "There are two operating modes for a non-configured output:\n".. "\n".. "1) Output all items that cannot be output to any other exit\\, even if they are blocked.\n".. @@ -950,7 +952,9 @@ techage.manual_EN.aText = { " - 'pub' switch to public mode\n".. " - 'priv' switch to private mode\n".. "\n".. - "In the private mode\\, only the owner can enter commands himself or use keys.\n".. + "In private mode\\, the terminal can only be used by players who can build at this location\\, i.e. who have protection rights.\n".. + "\n".. + "In public mode\\, all players can use the preconfigured keys.\n".. "\n".. "\n".. "\n", diff --git a/doc/plans.lua b/doc/plans.lua index 3feba0d..2060825 100644 --- a/doc/plans.lua +++ b/doc/plans.lua @@ -185,7 +185,7 @@ local PN270 = {"techage_gaspipe_knee.png^[transformR270", "techage:ta4_pipeS"} techage.ConstructionPlans["ta3_tank"] = { {false, false, false, false, false, false, false, false, false, false}, {false, Tubes, PushR, Tubes, Fillr, Tubes, PushR, Tubes, false, false}, - {false, false, false, false, TANK3, PIPEH, PIPEH, Pump, PIPEH, Tank}, + {false, false, false, false, TANK3, PIPEH, PIPEH, Pump, PIPEH, false}, {false, false, false, false, false, false, false, false, false, false}, } diff --git a/i18n.py b/i18n.py index bc46fb5..335716f 100755 --- a/i18n.py +++ b/i18n.py @@ -1,79 +1,448 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # Script to generate the template file and update the translation files. +# Copy the script into the mod or modpack root folder and run it there. # -# Copyright (C) 2019 Joachim Stolberg +# Copyright (C) 2019 Joachim Stolberg, 2020 FaceDeer, 2020 Louis Royer # LGPLv2.1+ -# -# Copy the script into the mod root folder and adapt the last code lines to you needs. +# +# See https://github.com/minetest-tools/update_translations for +# potential future updates to this script. from __future__ import print_function -import os, fnmatch, re, shutil +import os, fnmatch, re, shutil, errno +from sys import argv as _argv +from sys import stderr as _stderr -pattern_lua = re.compile(r'[ \.=^\t]S\("(.+?)"\)', re.DOTALL) -pattern_tr = re.compile(r'(.+?[^@])=(.+)') +# Running params +params = {"recursive": False, + "help": False, + "mods": False, + "verbose": False, + "folders": [], + "no-old-file": False +} +# Available CLI options +options = {"recursive": ['--recursive', '-r'], + "help": ['--help', '-h'], + "mods": ['--installed-mods'], + "verbose": ['--verbose', '-v'], + "no-old-file": ['--no-old-file'] +} -def gen_template(templ_file, lkeyStrings): - lOut = [] - lkeyStrings.sort() - for s in lkeyStrings: - lOut.append("%s=" % s) - open(templ_file, "wt").write("\n".join(lOut)) +# Strings longer than this will have extra space added between +# them in the translation files to make it easier to distinguish their +# beginnings and endings at a glance +doublespace_threshold = 60 +def set_params_folders(tab: list): + '''Initialize params["folders"] from CLI arguments.''' + # Discarding argument 0 (tool name) + for param in tab[1:]: + stop_param = False + for option in options: + if param in options[option]: + stop_param = True + break + if not stop_param: + params["folders"].append(os.path.abspath(param)) + +def set_params(tab: list): + '''Initialize params from CLI arguments.''' + for option in options: + for option_name in options[option]: + if option_name in tab: + params[option] = True + break + +def print_help(name): + '''Prints some help message.''' + print(f'''SYNOPSIS + {name} [OPTIONS] [PATHS...] +DESCRIPTION + {', '.join(options["help"])} + prints this help message + {', '.join(options["recursive"])} + run on all subfolders of paths given + {', '.join(options["mods"])} + run on locally installed modules + {', '.join(options["no-old-file"])} + do not create *.old files + {', '.join(options["verbose"])} + add output information +''') + + +def main(): + '''Main function''' + set_params(_argv) + set_params_folders(_argv) + if params["help"]: + print_help(_argv[0]) + elif params["recursive"] and params["mods"]: + print("Option --installed-mods is incompatible with --recursive") + else: + # Add recursivity message + print("Running ", end='') + if params["recursive"]: + print("recursively ", end='') + # Running + if params["mods"]: + print(f"on all locally installed modules in {os.path.abspath('~/.minetest/mods/')}") + run_all_subfolders("~/.minetest/mods") + elif len(params["folders"]) >= 2: + print("on folder list:", params["folders"]) + for f in params["folders"]: + if params["recursive"]: + run_all_subfolders(f) + else: + update_folder(f) + elif len(params["folders"]) == 1: + print("on folder", params["folders"][0]) + if params["recursive"]: + run_all_subfolders(params["folders"][0]) + else: + update_folder(params["folders"][0]) + else: + print("on folder", os.path.abspath("./")) + if params["recursive"]: + run_all_subfolders(os.path.abspath("./")) + else: + update_folder(os.path.abspath("./")) + +#group 2 will be the string, groups 1 and 3 will be the delimiters (" or ') +#See https://stackoverflow.com/questions/46967465/regex-match-text-in-either-single-or-double-quote +pattern_lua_s = re.compile(r'[\.=^\t,{\(\s]N?S\(\s*(["\'])((?:\\\1|(?:(?!\1)).)*)(\1)[\s,\)]', re.DOTALL) +pattern_lua_fs = re.compile(r'[\.=^\t,{\(\s]N?FS\(\s*(["\'])((?:\\\1|(?:(?!\1)).)*)(\1)[\s,\)]', re.DOTALL) +pattern_lua_bracketed_s = re.compile(r'[\.=^\t,{\(\s]N?S\(\s*\[\[(.*?)\]\][\s,\)]', re.DOTALL) +pattern_lua_bracketed_fs = re.compile(r'[\.=^\t,{\(\s]N?FS\(\s*\[\[(.*?)\]\][\s,\)]', re.DOTALL) + +# Handles "concatenation" .. " of strings" +pattern_concat = re.compile(r'["\'][\s]*\.\.[\s]*["\']', re.DOTALL) + +pattern_tr = re.compile(r'(.*?[^@])=(.*)') +pattern_name = re.compile(r'^name[ ]*=[ ]*([^ \n]*)') +pattern_tr_filename = re.compile(r'\.tr$') +pattern_po_language_code = re.compile(r'(.*)\.po$') + +#attempt to read the mod's name from the mod.conf file. Returns None on failure +def get_modname(folder): + try: + with open(os.path.join(folder, "mod.conf"), "r", encoding='utf-8') as mod_conf: + for line in mod_conf: + match = pattern_name.match(line) + if match: + return match.group(1) + except FileNotFoundError: + pass + return None + +#If there are already .tr files in /locale, returns a list of their names +def get_existing_tr_files(folder): + out = [] + for root, dirs, files in os.walk(os.path.join(folder, 'locale/')): + for name in files: + if pattern_tr_filename.search(name): + out.append(name) + return out + +# A series of search and replaces that massage a .po file's contents into +# a .tr file's equivalent +def process_po_file(text): + # The first three items are for unused matches + text = re.sub(r'#~ msgid "', "", text) + text = re.sub(r'"\n#~ msgstr ""\n"', "=", text) + text = re.sub(r'"\n#~ msgstr "', "=", text) + # comment lines + text = re.sub(r'#.*\n', "", text) + # converting msg pairs into "=" pairs + text = re.sub(r'msgid "', "", text) + text = re.sub(r'"\nmsgstr ""\n"', "=", text) + text = re.sub(r'"\nmsgstr "', "=", text) + # various line breaks and escape codes + text = re.sub(r'"\n"', "", text) + text = re.sub(r'"\n', "\n", text) + text = re.sub(r'\\"', '"', text) + text = re.sub(r'\\n', '@n', text) + # remove header text + text = re.sub(r'=Project-Id-Version:.*\n', "", text) + # remove double-spaced lines + text = re.sub(r'\n\n', '\n', text) + return text + +# Go through existing .po files and, if a .tr file for that language +# *doesn't* exist, convert it and create it. +# The .tr file that results will subsequently be reprocessed so +# any "no longer used" strings will be preserved. +# Note that "fuzzy" tags will be lost in this process. +def process_po_files(folder, modname): + for root, dirs, files in os.walk(os.path.join(folder, 'locale/')): + for name in files: + code_match = pattern_po_language_code.match(name) + if code_match == None: + continue + language_code = code_match.group(1) + tr_name = modname + "." + language_code + ".tr" + tr_file = os.path.join(root, tr_name) + if os.path.exists(tr_file): + if params["verbose"]: + print(f"{tr_name} already exists, ignoring {name}") + continue + fname = os.path.join(root, name) + with open(fname, "r", encoding='utf-8') as po_file: + if params["verbose"]: + print(f"Importing translations from {name}") + text = process_po_file(po_file.read()) + with open(tr_file, "wt", encoding='utf-8') as tr_out: + tr_out.write(text) + +# from https://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python/600612#600612 +# Creates a directory if it doesn't exist, silently does +# nothing if it already exists +def mkdir_p(path): + try: + os.makedirs(path) + except OSError as exc: # Python >2.5 + if exc.errno == errno.EEXIST and os.path.isdir(path): + pass + else: raise + +# Converts the template dictionary to a text to be written as a file +# dKeyStrings is a dictionary of localized string to source file sets +# dOld is a dictionary of existing translations and comments from +# the previous version of this text +def strings_to_text(dkeyStrings, dOld, mod_name, header_comments): + lOut = [f"# textdomain: {mod_name}\n"] + if header_comments is not None: + lOut.append(header_comments) + + dGroupedBySource = {} + + for key in dkeyStrings: + sourceList = list(dkeyStrings[key]) + sourceList.sort() + sourceString = "\n".join(sourceList) + listForSource = dGroupedBySource.get(sourceString, []) + listForSource.append(key) + dGroupedBySource[sourceString] = listForSource + + lSourceKeys = list(dGroupedBySource.keys()) + lSourceKeys.sort() + for source in lSourceKeys: + localizedStrings = dGroupedBySource[source] + localizedStrings.sort() + lOut.append("") + lOut.append(source) + lOut.append("") + for localizedString in localizedStrings: + val = dOld.get(localizedString, {}) + translation = val.get("translation", "") + comment = val.get("comment") + if len(localizedString) > doublespace_threshold and not lOut[-1] == "": + lOut.append("") + if comment != None: + lOut.append(comment) + lOut.append(f"{localizedString}={translation}") + if len(localizedString) > doublespace_threshold: + lOut.append("") + + + unusedExist = False + for key in dOld: + if key not in dkeyStrings: + val = dOld[key] + translation = val.get("translation") + comment = val.get("comment") + # only keep an unused translation if there was translated + # text or a comment associated with it + if translation != None and (translation != "" or comment): + if not unusedExist: + unusedExist = True + lOut.append("\n\n##### not used anymore #####\n") + if len(key) > doublespace_threshold and not lOut[-1] == "": + lOut.append("") + if comment != None: + lOut.append(comment) + lOut.append(f"{key}={translation}") + if len(key) > doublespace_threshold: + lOut.append("") + return "\n".join(lOut) + '\n' + +# Writes a template.txt file +# dkeyStrings is the dictionary returned by generate_template +def write_template(templ_file, dkeyStrings, mod_name): + # read existing template file to preserve comments + existing_template = import_tr_file(templ_file) + + text = strings_to_text(dkeyStrings, existing_template[0], mod_name, existing_template[2]) + mkdir_p(os.path.dirname(templ_file)) + with open(templ_file, "wt", encoding='utf-8') as template_file: + template_file.write(text) + + +# Gets all translatable strings from a lua file def read_lua_file_strings(lua_file): lOut = [] - text = open(lua_file).read() - for s in pattern_lua.findall(text): - s = re.sub(r'"\.\.\s+"', "", s) - s = re.sub("@[^@=n]", "@@", s) - s = s.replace("\n", "@n") - s = s.replace("\\n", "@n") - s = s.replace("=", "@=") - lOut.append(s) + with open(lua_file, encoding='utf-8') as text_file: + text = text_file.read() + #TODO remove comments here + + text = re.sub(pattern_concat, "", text) + + strings = [] + for s in pattern_lua_s.findall(text): + strings.append(s[1]) + for s in pattern_lua_bracketed_s.findall(text): + strings.append(s) + for s in pattern_lua_fs.findall(text): + strings.append(s[1]) + for s in pattern_lua_bracketed_fs.findall(text): + strings.append(s) + + for s in strings: + s = re.sub(r'"\.\.\s+"', "", s) + s = re.sub("@[^@=0-9]", "@@", s) + s = s.replace('\\"', '"') + s = s.replace("\\'", "'") + s = s.replace("\n", "@n") + s = s.replace("\\n", "@n") + s = s.replace("=", "@=") + lOut.append(s) return lOut -def inport_tr_file(tr_file): +# Gets strings from an existing translation file +# returns both a dictionary of translations +# and the full original source text so that the new text +# can be compared to it for changes. +# Returns also header comments in the third return value. +def import_tr_file(tr_file): dOut = {} + text = None + header_comment = None if os.path.exists(tr_file): - for line in open(tr_file, "r").readlines(): - s = line.strip() - if s == "" or s[0] == "#": - continue - match = pattern_tr.match(s) - if match: - dOut[match.group(1)] = match.group(2) - return dOut + with open(tr_file, "r", encoding='utf-8') as existing_file : + # save the full text to allow for comparison + # of the old version with the new output + text = existing_file.read() + existing_file.seek(0) + # a running record of the current comment block + # we're inside, to allow preceeding multi-line comments + # to be retained for a translation line + latest_comment_block = None + for line in existing_file.readlines(): + line = line.rstrip('\n') + if line[:3] == "###": + if header_comment is None: + # Save header comments + header_comment = latest_comment_block or "" + # Stip textdomain line + tmp_h_c = "" + for l in header_comment.split('\n'): + if not l.startswith("# textdomain:"): + tmp_h_c += l + '\n' + header_comment = tmp_h_c -def generate_template(templ_file): - lOut = [] - for root, dirs, files in os.walk('./'): + # Reset comment block if we hit a header + latest_comment_block = None + continue + if line[:1] == "#": + # Save the comment we're inside + if not latest_comment_block: + latest_comment_block = line + else: + latest_comment_block = latest_comment_block + "\n" + line + continue + match = pattern_tr.match(line) + if match: + # this line is a translated line + outval = {} + outval["translation"] = match.group(2) + if latest_comment_block: + # if there was a comment, record that. + outval["comment"] = latest_comment_block + latest_comment_block = None + dOut[match.group(1)] = outval + return (dOut, text, header_comment) + +# Walks all lua files in the mod folder, collects translatable strings, +# and writes it to a template.txt file +# Returns a dictionary of localized strings to source file sets +# that can be used with the strings_to_text function. +def generate_template(folder, mod_name): + dOut = {} + for root, dirs, files in os.walk(folder): for name in files: if fnmatch.fnmatch(name, "*.lua"): fname = os.path.join(root, name) found = read_lua_file_strings(fname) - print(fname, len(found)) - lOut.extend(found) - lOut = list(set(lOut)) - lOut.sort() - gen_template(templ_file, lOut) - return lOut + if params["verbose"]: + print(f"{fname}: {str(len(found))} translatable strings") -def update_tr_file(lNew, mod_name, tr_file): - lOut = ["# textdomain: %s\n" % mod_name] - if os.path.exists(tr_file): - shutil.copyfile(tr_file, tr_file+".old") - dOld = inport_tr_file(tr_file) - for key in lNew: - val = dOld.get(key, "") - lOut.append("%s=%s" % (key, val)) - lOut.append("##### not used anymore #####") - for key in dOld: - if key not in lNew: - lOut.append("%s=%s" % (key, dOld[key])) - open(tr_file, "w").write("\n".join(lOut)) - -data = generate_template("./locale/template.txt") -update_tr_file(data, "techage", "./locale/techage.de.tr") -#update_tr_file(data, "techage", "./locale/techage.fr.tr") -print("Done.\n") + for s in found: + sources = dOut.get(s, set()) + sources.add(f"### {os.path.basename(fname)} ###") + dOut[s] = sources + + if len(dOut) == 0: + return None + templ_file = os.path.join(folder, "locale/template.txt") + write_template(templ_file, dOut, mod_name) + return dOut + +# Updates an existing .tr file, copying the old one to a ".old" file +# if any changes have happened +# dNew is the data used to generate the template, it has all the +# currently-existing localized strings +def update_tr_file(dNew, mod_name, tr_file): + if params["verbose"]: + print(f"updating {tr_file}") + + tr_import = import_tr_file(tr_file) + dOld = tr_import[0] + textOld = tr_import[1] + + textNew = strings_to_text(dNew, dOld, mod_name, tr_import[2]) + + if textOld and textOld != textNew: + print(f"{tr_file} has changed.") + if not params["no-old-file"]: + shutil.copyfile(tr_file, f"{tr_file}.old") + + with open(tr_file, "w", encoding='utf-8') as new_tr_file: + new_tr_file.write(textNew) + +# Updates translation files for the mod in the given folder +def update_mod(folder): + modname = get_modname(folder) + if modname is not None: + process_po_files(folder, modname) + print(f"Updating translations for {modname}") + data = generate_template(folder, modname) + if data == None: + print(f"No translatable strings found in {modname}") + else: + for tr_file in get_existing_tr_files(folder): + update_tr_file(data, modname, os.path.join(folder, "locale/", tr_file)) + else: + print(f"\033[31mUnable to find modname in folder {folder}.\033[0m", file=_stderr) + exit(1) + +# Determines if the folder being pointed to is a mod or a mod pack +# and then runs update_mod accordingly +def update_folder(folder): + is_modpack = os.path.exists(os.path.join(folder, "modpack.txt")) or os.path.exists(os.path.join(folder, "modpack.conf")) + if is_modpack: + subfolders = [f.path for f in os.scandir(folder) if f.is_dir()] + for subfolder in subfolders: + update_mod(subfolder + "/") + else: + update_mod(folder) + print("Done.") + +def run_all_subfolders(folder): + for modfolder in [f.path for f in os.scandir(folder) if f.is_dir()]: + update_folder(modfolder + "/") + + +main() diff --git a/locale/techage.de.tr b/locale/techage.de.tr index 80bb3d7..f33a388 100644 --- a/locale/techage.de.tr +++ b/locale/techage.de.tr @@ -1,21 +1,70 @@ # textdomain: techage -#### TA3 Terminal ####@n@nSend commands to your machines@nand output text messages from your@nmachines to the Terminal.@n@nCommand syntax:@n cmd @n@nexample: cmd 181 on@n is the number of the node to which the command is sent@n'on' is the command to turn machines/nodes on@nFurther commands can be retrieved by clicking on@nmachines/nodes with the Techage Info Tool.@n@nLocal commands:@n- clear @= clear screen@n- help @= this message@n- pub @= switch to public use@n- priv @= switch to private use@nTo program a user button with a command:@n set @ne.g. 'set 1 ON cmd 123 on'@n= -Accu Box=Akkublock -Active:=Aktiv: -All nodes:=Alle Blöcke: -Allow public access to the chest=Erlaube öffentlichen Zugriff auf die Kiste -Allow public access to the tank=Erlaube öffentlichen Zugriff auf den Tank -Allow public chest access=Erlaube öffentlichen Zugriff -Allow to dig/place Techage power lines nearby power poles=Erlaubt TODO + + +### akkubox.lua ### + +TA3 Accu Box=Akkublock +TA3 Akku Box=TA3 Akku Block + +### akkubox.lua ### +### battery.lua ### + +Load=Ladung + +### akkubox.lua ### +### electrolyzer.lua ### +### fuelcell.lua ### +### generator.lua ### +### heatexchanger2.lua ### +### tiny_generator.lua ### + +Electricity=Strom + +### aluminium.lua ### + Aluminum=Aluminium -Area already loaded or max. number of Forceload Blocks reached!=Bereich bereits geladen oder maximale Anzahl von Forceload Blöcken erreicht! -Ash=Asche +Gibbsite Powder=Gibbsit Pulver +Red Mud=Rotschlamm +Red Mud Barrel=Rotschlamm Fass +Red Mud Canister=Rotschlamm Kanister + +### assemble.lua ### +### firebox_lib.lua ### + +[TA] Area is protected!=[TA] Bereich ist geschützt +[TA] Not enough space!=[TA] Nicht ausreichend Platz! + +### autocrafter.lua ### + Autocrafter=Autocrafter -Axle Power Source=Achsenkraftquelle + +### axle2power.lua ### + +TA2 Power Generator=TA2 Stromgenerator + +TA2 Power Generator: Overload fault?@n(restart with right-click)=TA2 Stromgenerator: Überlastfehler?@n(Neustart mit Rechtsklick) + + +### baborium.lua ### + Baborium Ingot=Baboriumbarren Baborium Lump=Baboriumklumpen Baborium Ore=Baboriumerz + +### barrel.lua ### + +Gas Cylinder Large=Gasflasche groß +Gas Cylinder Small=Gasflasche klein +River Water Barrel=Flusswasserfass +TA Empty Barrel=TA leeres Fass +TA3 Canister=TA3 Kanister +Water=Wasser +Water Barrel=Wasserfass +empty=leer + +### basalt.lua ### + Basalt Cobble=Basaltpflaster Basalt Glass=Basaltglas Basalt Glass 2=Basaltglas 2 @@ -27,399 +76,646 @@ Basalt Gravel=Basaltkies Basalt Stone=Basaltgestein Basalt Stone Block=Basaltsteinblock Basalt Stone Brick=Basaltsteinziegel +Sieved Basalt Gravel=Basaltkies gesiebt + +### battery.lua ### + Battery=Batterie +Coal Equivalents=Kohleeinheiten +Digtron Battery=Digtron Akku + +### bauxit.lua ### + Bauxite Cobblestone=Bauxit Kopfsteinpflaster Bauxite Gravel=Bauxit Kies Bauxite Powder=Bauxit Pulver Bauxite Stone=Bauxit -Biome=Biom -Block configured items for open ports=Blockiere konfigurierte Gegenstände für offene Ausgänge -Build derrick=Errichte Ölturm -Catalyst=Katalysator + +### blackhole.lua ### + +TechAge Black Hole=TechAge Schwarzes Loch +TechAge Black Hole (let items and liquids disappear)=TechAge Schwarzes Loch (Gegenstände und Flüssigkeiten verschwinden) + +### boiler.lua ### + +TA2 Boiler Base=TA2 Boiler unten +TA2 Boiler Top=TA2 Boiler oben + +### boiler_base.lua ### + +TA3 Boiler Base=TA3 Boiler unten + +### boiler_lib.lua ### + +To add water punch@nthe boiler@nwith a water bucket=Um Wasser nachzufüllen,@nschlage mit einem Wassereimer@nauf den Block +Water Boiler=Wasserboiler +water temperature=Wassertemperatur + +### boiler_top.lua ### + +TA3 Boiler Top=TA3 Boiler oben + +### booster.lua ### + +TA3 Booster=TA3 Gebläse + +### button.lua ### + +TA3 Button/Switch=TA3 Taster/Schalter +TA4 Button/Switch=TA4 Schalter/Taster + +### button.lua ### +### cart_detector.lua ### +### detector.lua ### +### lua_logic.lua ### +### mesecons_converter.lua ### +### node_detector.lua ### +### player_detector.lua ### +### repeater.lua ### + +Insert destination node number(s)=Gebe Zielnummer(n) ein + +### button.lua ### +### chest.lua ### +### detector.lua ### +### doorcontroller.lua ### +### mesecons_converter.lua ### +### repeater.lua ### + +Save=Speichern + +### cart_detector.lua ### + +TA3 Cart Detector=TA3 Wagen Detektor + +### cart_detector.lua ### +### node_detector.lua ### + +accept=akzeptieren + +### cart_detector.lua ### +### player_detector.lua ### + +TA3 Player Detector=TA3 Spieler Detektor + +### ceilinglamp.lua ### + +TA Ceiling Lamp=TA Deckenlampe + +### cement.lua ### + Cement Block=Zement Block Cement Powder=Zement Pulver -Coal Equivalents=Kohleeinheiten -Compressed Gravel=Komprimiertes Kies -Configure up to 8 items @nto be pushed by the injector=Konfiguriere bis zu 8 Gegenstände \n die vom Injektor weitergegeben werden sollen -Consum. 1=Konsum. 1 -Consum. 2=Konsum. 2 -Current power:=Strom aktuell: -Depth=Tiefe -Digging depth=Grabungstiefe -Digtron Battery=Digtron Akku + +### charcoalpile.lua ### + Dirt with Ash=Erde mit Asche +TA1 Charcoal=TA1 Holzkohle + +### chest.lua ### + +Allow public access to the chest=Erlaube öffentlichen Zugriff auf die Kiste +Inventory,Pre-Assignment,Config=Inventar,Vorbelegung,Konfiguration +Node label:= Blockbeschriftung: +TA2 Protected Chest=TA2 Gesicherte Kiste +TA3 Protected Chest=TA3 Gesicherte Kiste +TA4 Protected Chest=TA4 Gesicherte Kiste + +### chest_cart.lua ### + +TA Chest Cart=TA Kistenwagen + +### coalburner.lua ### + +Ash=Asche + +### collector.lua ### + +Node number to send the events to=Knotennummer zum Senden der Events +Node numbers to read the states from=Knotennummern zum Lesen der Zustände +Send an event if state is equal or larger than=Senden ein Event wenn Status größer oder gleich als +TA4 State Collector=TA4 Zuständesammler + +### cooking.lua ### + +TA3 Melting=TA3 Schmelzen + +### cooler.lua ### + +TA3 Cooler=TA3 Kühler + +### cylinder.lua ### + +TA2 Cylinder=TA2 Zylinder + +### detector.lua ### + +TA3 Detector=TA3 Detektor +TA4 Detector=TA4 Detektor + +### display.lua ### + Display no: = Display Nr. +TA4 Display=TA4 Display +TA4 Display XL=TA4 Display XL + +### distiller.lua ### + +TA3 Distillation Tower 1=TA3 Destillationsturm 1 +TA3 Distillation Tower 2=TA3 Destillationsturm 2 +TA3 Distillation Tower 3=TA3 Destillationsturm 3 +TA3 Distillation Tower 4=TA3 Destillationsturm 4 +TA3 Distillation Tower Base=TA3 Destillationsturm Basis + +### distributor.lua ### + +Block configured items for open ports=Blockiere konfigurierte Gegenstände für offene Ausgänge Distributor=Verteiler -Doser=Dosierer +High Performance Distributor=Hochleistungs-Verteiler +Input=Einspeisung +blocking mode=Blockiert + +### doorblock.lua ### + +TechAge Door Block=TechAge Türblock + +### doorcontroller.lua ### + +Insert door/gate block number(s)=Gebe Tür-/Tornummer(n) ein +TA3 Door Controller=TA3 Tür Controller + +### doorcontroller.lua ### +### repeater.lua ### + +TA3 Repeater=TA3 Wiederholer + +### drillbox.lua ### + +Build derrick=Errichte Ölturm +Depth=Tiefe Drill Bit=Bohrstange Drill area is protected=Bohrbereich ist geschützt Drill bits missing=Bohrgestänge fehlt -Ele Power Source=Ele Kraftquelle -Electricity=Strom +Oil Drill Box=Ölbohrkiste +Remove derrick=Entferne Ölturm +item output blocked=Ausgang blockiert + +### drive_axle.lua ### + +TA2 Drive Axle=TA2 Antriebsachse + +### electric_cable.lua ### + +TA Electric Cable=TA Stromkabel + +### electrolyzer.lua ### + +TA4 Electrolyzer=TA4 Elektrolyseur +full=voll + +### electrolyzer.lua ### +### power_terminal2.lua ### + Electrolyzer=Eletrolyseur + +### electronic.lua ### + +TA3 Vacuum Tube=TA3 Vakuumröhre +TA4 LEDs=TA4 LEDs +TA4 RAM Chip=RAM Chip +TA4 WLAN Chip=TA4 WLAN Chip +WLAN Chip=WLAN Chip + +### electronic_fab.lua ### + Electronic Fab=Elektronikfabrik -Empty the slots always @nfrom right to left=Speicherplätze von rechts nach links leeren -Energy storage=Engergiespeicher -Energy stored:=Energie gespeichert -Enter=Eingeben +TA2 Ele Fab=TA2 E-Fabrik +TA3 Ele Fab=TA3 E-Fabrik +TA4 Ele Fab=TA4 E-Fabrik + +### epoxy.lua ### + Epoxide Resin=Epoxidharz Epoxide Resin Barrel=Epoxidharz Fass Epoxide Resin Canister=Epoxidharz Kanister + +### explore.lua ### + +Oil=Öl +TA3 Oil Explorer=TA3 Ölexplorer +TA3 Oil Storage=TA3 Öl Speicher +depth=Tiefe + +### filler.lua ### + +Liquid Filler=Einfülltrichter +TA Liquid Filler=TA Einfülltrichter + +### firebox.lua ### + +TA2 Firebox=TA2 Feuerkiste +TA3 Coal Power Station Firebox=TA3 Kohlekraftwerks-Feuerbox +TA3 Furnace Oil Burner=TA3 Ofen-Ölbrenner +TA3 Power Station Firebox=TA3 Kraftwerks-Feuerbox + +### firebox_lib.lua ### + Firebox=Feuerkasten -Flint and Iron=Flint and Iron -Flowing Oil=Fließendes Öl + +### flywheel.lua ### + Flywheel=Schwungrad -Fuel Cell=Brennstoffzelle +TA2 Flywheel=TA2 Schwungrad + +### flywheel.lua ### +### generator.lua ### +### solarcell.lua ### +### source.lua ### + +power=Energie + +### forceload.lua ### + +Area already loaded or max. number of Forceload Blocks reached!=Bereich bereits geladen oder maximale Anzahl von Forceload Blöcken erreicht! + +List of your Forceload Blocks:=Liste der Forceload Blöcke +Priv missing=Rechte fehlen +Punch the block to make the area visible.=Schlage auf den Bock um den Bereich anzuzeigen. +Show all forceload blocks in a 64x64x64 range=Zeige alle Forceload Blöcke im Umkreis von 64x64x64 Blöcken +Techage Forceload Block=Techage Forceload Block +Techage Forceload Tile=Techage Forceload Kachel +loaded=geladen + +### fuel_lib.lua ### + Fuel Menu=Brennstoff Menü -Fuel cell=Brennstoffzelle +To add fuel punch@nthis block@nwith a fuel container=Um Brennstoff nachzufüllen,@nschlage mit einem Kraftstoffbehälter@nauf den Block + +### fuelcell.lua ### + +Fuel Cell=Brennstoffzelle +TA4 Fuel Cell=TA4 Brennstoffzelle + +### fuelcellstack.lua ### + +TA4 Fuel Cell Stack=Brennstoffzellenstapel + +### furnace_top.lua ### + Furnace Top=Ofenoberteil -Gas Cylinder Large=Gasflasche groß -Gas Cylinder Small=Gasflasche klein -Genera. 1=Genera. 1 -Genera. 2=Genera. 2 +Outp=Ergeb. +no fuel or no power=kein Strom oder Brennstoff + +### gateblock.lua ### + +TechAge Gate Block=TechAge Torblock + +### gearbox.lua ### + +TA2 Gearbox=TA2 Getriebeblock + +### generator.lua ### + Generator=Generator -Generators=Generatoren -Gibbsite Powder=Gibbsit Pulver +TA3 Generator=TA3 Generator +TA4 Generator=TA4 Generator +storage empty?=Speicher leer? + +### gravelrinser.lua ### + Gravel Rinser=Kiesspüler +Rinsing=Waschen + +### gravelsieve.lua ### + +Compressed Gravel=Komprimiertes Kies Gravel Sieve=Kiessieb +Sieved Gravel=Gesiebtes Kies +TA1 Gravel Sieve=TA1 Kiessieb +TA2 Gravel Sieve=TA2 Kiessieb +TA3 Gravel Sieve=TA3 Kiessieb +TA4 Gravel Sieve=TA4 Kiessieb + +### grinder.lua ### + Grinder=Mühle Grinding=Mahlen -Heat=Hitze + +### growlight.lua ### + +TA4 LED Grow Light=TA4 LED Pflanzenlampe + +### guide.lua ### + +No plan available=Kein Plan verfügar +Plan=Plan + +### hammer.lua ### + +TA1 Bronze Hammer (smash stone to gravel)=TA1 Bronzehammer (zerschlage Stein zu Kies) +TA1 Diamond Hammer (smash stone to gravel)=TA1 Diamanthammer (zerschlage Stein zu Kies) +TA1 Meridium Hammer (smash stone to gravel)=TA1 Meridiumhammer (zerschlage Stein zu Kies) +TA1 Mese Hammer (smash stone to gravel)=TA1 Mesehammer (zerschlage Stein zu Kies) +TA1 Steel Hammer (smash stone to gravel)=TA1 Stahlhammer (zerschlage Stein zu Kies) +TA1 Stone Hammer (smash stone to gravel)=TA1 Steinhammer (zerschlage Stein zu Kies) + +### heater.lua ### + +TA4 Furnace Heater=TA4 Ofenheizung + +### heatexchanger1.lua ### + +TA4 Heat Exchanger 1=TA4 Wärmetauscher 1 +inlet/pipe error=Einlass/Röhrenfehler +wrong storage diameter=Falscher Wärmespeicher-Durchmesser + +### heatexchanger1.lua ### +### heatexchanger2.lua ### + +did you check the plan?=hast du den Plan geprüft? + +### heatexchanger2.lua ### + Heat Exchanger=Wärmetauscher -Here is not enough water (41x41 m)!=Hier ist nicht genug Wasser (41x41 m)! -Here is not enough wind (A free air space of 41x41x21 m is necessary)!=Hier ist nicht genug Wind (Ein freier Luftraum von 41x41x21 m ist notwendig)! -High Performance Distributor=Hochleistungs-Verteiler -Hole size=Lochgröße +TA4 Heat Exchanger=TA4 Wärmetauscher +TA4 Heat Exchanger 2=TA4 Wärmetauscher 2 +Thermal=Wärme + +### heatexchanger3.lua ### + +TA4 Heat Exchanger 3=TA4 Wärmetauscher 3 + +### hydrogen.lua ### + Hydrogen Cylinder Large=Wasserstoffflasche groß Hydrogen Cylinder Small=Wasserstoffflasche klein -In use:=In Benutzung: -Injector=Injektor -Input=Einspeisung -Insert destination node number(s)=Gebe Zielnummer(n) ein -Insert door/gate block number(s)=Gebe Tür-/Tornummer(n) ein -Intake=Stromaufnahme -Inventory,Pre-Assignment,Config=Inventar,Vorbelegung,Konfiguration +TA4 Hydrogen=TA4 Wasserstoff + +### industriallamp1.lua ### + +TA Industrial Lamp 1=TA Industrielampe 1 + +### industriallamp2.lua ### + +TA Industrial Lamp 2=TA Industrielampe 2 + +### industriallamp3.lua ### + +TA Industrial Lamp 3=TA Industrielampe 3 + +### industriallamp4.lua ### + +TA4 LED Industrial Lamp=TA4 LED Industrielampe + +### inlet.lua ### + +TA4 Pipe Inlet=TA4 Rohrzulauf + +### inverter.lua ### + Inverter=Wechselrichter -Iron Powder=Eisen Pulver -Leave Powder=Laub Pulver -Liquid Filler=Einfülltrichter -Liquid Sampler=Flüssigkeitensammler -Liquid Tank=Flüssigkeitstank -List of your Forceload Blocks:=Liste der Forceload Blöcke -Load=Ladung -Lye=Lauge -Lye Barrel=Lauge Fass -Lye Canister=Lauge Kanister -Max. needed power=Max. benötigter Strom -Maximum power:=Maximalstrom: -Melting Guide=Schmelzführer -Melting Pot active (heat@==Schmelztiegel aktiv (Hitze@= -Melting Pot inactive (heat@==Schmelztiegel inaktiv (Hitze@= -Melting Pot inactive (heat@=0)=Schmelztiegel inaktiv (Hitze@=0) -Menu=Menü -Menu,Recipes=Menü,Rezepte -Meridium Axe=Meridium Axt -Meridium Pickaxe=Meridium Pickel -Meridium Shovel=Meridium Schaufel -Meridium Sword=Meridium Schwert -Nacelle is missing=Die Gondel fehlt -Needle Powder=Nadel Pulver -Network Data=Netzwerkdaten -Never completely empty the slots@nwith the pusher to keep the item assignment=Speicherplätze mit dem Schieber nie ganz@nleeren, um die Item-Zuordnung beizubehalten -No network or active generator available!=Kein Stromnetz oder aktiver Generator verfügbar -No plan available=Kein Plan verfügar -No power grid or running generator!=Kein Stromnetz oder Generator verfügbar! -Node label:= Blockbeschriftung: -Node number to send the events to=Knotennummer zum Senden der Events -Node numbers to read the states from=Knotennummern zum Lesen der Zustände -Node owner=Blockbesitzer -Not suitable position!=Ungeeignete Position! -Number blocks:=Anzahl Blöcke: -Number of all nodes=Anzahl aller Blöcke -Number of power grid blocks=Anzahl der Stromnetz Blöcke -Oil=Öl -Oil Drill Box=Ölbohrkiste -Oil Pumpjack=Ölpumpe -Oil Source=Erdöl -Oil Tank=Öltank -Oil amount=Ölmenge -Optionally configure@nthe pusher with one item=Der Schieber kann optional@nmit einem Gegenstand@nkonfiguriert werden -Outp=Ergeb. -Output=Stromabgabe -Plan=Plan -Plastic Granules=Plastikgranulat -Position=Position -Position temperature=Positionstemperatur Power AC=Wechselstrom Power DC=Gleichstrom -Power Source=Stromquelle -Power grid total=Stromnetz gesammt -Power station=Kraftwerk -Priv missing=Rechte fehlen -Probably too many consumers (=Vermutlich zu viele Verbraucher ( -Propane Cylinder Large=Propangasflasche groß -Propane Cylinder Small=Propangasflasche klein -Pumpjack=Ölpumpe -Punch the block to make the area visible.=Schlage auf den Bock um den Bereich anzuzeigen. -Pusher=Schieber -Quarry=Steinbrecher -Recipe=Rezept -Red Mud=Rotschlamm -Red Mud Barrel=Rotschlamm Fass -Red Mud Canister=Rotschlamm Kanister -Red Stone=Rotstein -Red Stone Block=Rotsteinblock -Red Stone Brick=Rotsteinziegel -Remove derrick=Entferne Ölturm -Rinsing=Waschen -River Water Barrel=Flusswasserfass -Save=Speichern -Select type=Wähle Typ -Send an event if state is equal or larger than=Senden ein Event wenn Status größer oder gleich als -Send signal if nodes have been:=Sende ein Signal falls Blöcke: -Show all forceload blocks in a 64x64x64 range=Zeige alle Forceload Blöcke im Umkreis von 64x64x64 Blöcken -Sieved Basalt Gravel=Basaltkies gesiebt -Sieved Gravel=Gesiebtes Kies -Size=Größe -Solar system=Solaranlage -Start level=Startebene -Start level @= 0@nmeans the same level@nas the quarry is placed=Startebene @= 0@nbedeutet gleiche Ebene@nwie der Steinbrecher -Steam Power Source=Dampfenergiequelle -Storage systems=Speichersysteme -Store=Speichern -Switched to private use!=Zur privaten Nutzung umgeschaltet -Switched to public use!=Zur öffentlichen Nutzung umgeschaltet -Syntax error, try help=Syntax Fehler, nutze help -TA Ceiling Lamp=TA Deckenlampe -TA Chest Cart=TA Kistenwagen -TA Electric Cable=TA Stromkabel +TA4 Solar Inverter=TA4 Solar Wechselrichter + +### junctionbox.lua ### + TA Electric Junction Box=TA Verteilerdose -TA Empty Barrel=TA leeres Fass -TA Industrial Lamp 1=TA Industrielampe 1 -TA Industrial Lamp 2=TA Industrielampe 2 -TA Industrial Lamp 3=TA Industrielampe 3 -TA Junction Pipe=TA Leitungskupplung -TA Lamp=TA Lampe + +### lampholder.lua ### + TA Lamp Holder Acacia=TA Lampenhalter Akazie TA Lamp Holder Apple=TA Lampenhalter Apfel TA Lamp Holder Aspen=TA Lampenhalter Espe TA Lamp Holder Copper=TA Lampenhalter Kupfer TA Lamp Holder Gold=TA Lampenhalter Gold TA Lamp Holder White=TA Lampenhalter Weiß -TA Liquid Filler=TA Einfülltrichter + +### lib.lua ### +### sensorchest.lua ### + +connected with=verbunden mit + +### lighter.lua ### + +TA1 Lighter=TA1 Anzünder + +### liquid_lib.lua ### + +Allow public access to the tank=Erlaube öffentlichen Zugriff auf den Tank +Liquid Tank=Flüssigkeitstank +To add liquids punch@nthe tank@nwith a liquid container=Um Flüssigkeit nachzufüllen,@nschlage mit einem Flüssigkeitsbehälter@nauf den Block + +### liquid_pipe.lua ### + +TA Junction Pipe=TA Leitungskupplung TA Pipe=TA Leitung (Flüssigkeiten) + +### liquidsampler.lua ### + +Liquid Sampler=Flüssigkeitensammler + +### liquidsampler.lua ### +### waterpump.lua ### + +no usable water=Kein brauchbares Wasser + +### lua_logic.lua ### + +TA3 Logic Block=TA3 Logikblock +Update=Update + +### lua_logic.lua ### +### power_terminal2.lua ### + +Store=Speichern + +### lye.lua ### + +Lye=Lauge +Lye Barrel=Lauge Fass +Lye Canister=Lauge Kanister + +### meltingpot.lua ### + +Heat=Hitze +Melting Guide=Schmelzführer +Melting Pot active (heat@==Schmelztiegel aktiv (Hitze@= +Melting Pot inactive (heat@==Schmelztiegel inaktiv (Hitze@= +Melting Pot inactive (heat@=0)=Schmelztiegel inaktiv (Hitze@=0) +Menu=Menü +Menu,Recipes=Menü,Rezepte +TA1 Burning=TA1 Brennen +TA1 Melting=TA1 Schmelzen +TA1 Melting Pot=TA1 Schmelztiegel + +### meltingpot.lua ### +### repairkit.lua ### + +Time=Zeit + +### meridium.lua ### + +Meridium Axe=Meridium Axt +Meridium Pickaxe=Meridium Pickel +Meridium Shovel=Meridium Schaufel +Meridium Sword=Meridium Schwert + +### mesecons_converter.lua ### + +TA3 Mesecons Converter=TA3 Mesecons Konverter + +### minicell.lua ### + +TA4 Streetlamp Solar Cell=TA4 Straßenlampen-Solarzelle + +### node_detector.lua ### + +Send signal if nodes have been:=Sende ein Signal falls Blöcke: +TA3 Node Detector=TA3 Block Detektor +added=hinzugefügt wird +added or removed=hinzugefügt oder entfernt wird +removed=entfernt + +### nodes.lua ### + +TechAge Gravel=TechAge Kies + +### oil.lua ### + +Flowing Oil=Fließendes Öl +Oil Source=Erdöl +TA3 Oil Barrel=TA3 Ölfass +TA3 Oil Canister=TA3 Erdölkanister + +### oilfirebox.lua ### + +TA3 Power Station Oil Burner=TA3 Kraftwerks-Ölbrenner + +### petroleum.lua ### + +Propane Cylinder Large=Propangasflasche groß +Propane Cylinder Small=Propangasflasche klein +TA3 Bitumen=TA3 Bitumen +TA3 Bitumen Barrel=TA3 Bitumenfass +TA3 Bitumen Canister=TA3 Bitumenkanister +TA3 Fuel Oil=TA3 Schweröl +TA3 Fuel Oil Barrel=TA3 Schwerölfass +TA3 Fuel Oil Canister=TA3 Schwerölkanister +TA3 Gasoline=TA3 Benzin +TA3 Gasoline Barrel=TA3 Benzinfass +TA3 Gasoline Canister=TA3 Benzinkanister +TA3 Naphtha=TA3 Naphtha +TA3 Naphtha Barrel=TA3 Naphtha-Fass +TA3 Naphtha Canister=TA3 Naphtha-Kanister +TA3 Propane=TA3 Propan + +### pillar.lua ### + +TA4 Pillar=TA4 Säule + +### pipe_wall_entry.lua ### + +TA3 Pipe Wall Entry=TA3 Rohr/Wanddurchbruch + +### pipe_wrench.lua ### + +TA3 Drill Pipe Wrench=TA3 Bohrgestängezange + +### plastic.lua ### + +Plastic Granules=Plastikgranulat + +### player_detector.lua ### + +TA4 Player Detector=TA4 Spieler Detektor + +### powder.lua ### + +Iron Powder=Eisen Pulver +Leave Powder=Laub Pulver +Needle Powder=Nadel Pulver + +### power2axle.lua ### + +TA3 Electric Motor=TA3 Elektromotor + +TA3 Electric Motor: Overload fault?@n(restart with right-click)=TA3 Elektromotor: Überlastfehler?@n(Neustart mit Rechtsklick) + + +### power_line.lua ### + TA Power Line=TA Stromleitung TA Power Pole=TA Strommast TA Power Pole Top (for up to 6 connections)=TA Strommastkopf (für bis zu 6 Verbindungen) TA Power Pole Top 2 (for landlines)=TA Strommastkopf 2 (für Überlandleitungen) -TA Power Switch=TA Stromschalter -TA Power Switch Box=TA Stromschalterbox -TA Power Switch Small=TA Stromschalter klein -TA Street Lamp=TA Straßenlampe -TA Tank Cart=TA Tankwagen -TA Valve=TA Ventil -TA1 Bronze Hammer (smash stone to gravel)=TA1 Bronzehammer (zerschlage Stein zu Kies) -TA1 Burning=TA1 Brennen -TA1 Charcoal=TA1 Holzkohle -TA1 Diamond Hammer (smash stone to gravel)=TA1 Diamanthammer (zerschlage Stein zu Kies) -TA1 Gravel Sieve=TA1 Kiessieb -TA1 Iron Ingot=TA1 Eisenbarren -TA1 Lighter=TA1 Anzünder -TA1 Melting=TA1 Schmelzen -TA1 Melting Pot=TA1 Schmelztiegel -TA1 Meridium Hammer (smash stone to gravel)=TA1 Meridiumhammer (zerschlage Stein zu Kies) -TA1 Mese Hammer (smash stone to gravel)=TA1 Mesehammer (zerschlage Stein zu Kies) -TA1 Steel Hammer (smash stone to gravel)=TA1 Stahlhammer (zerschlage Stein zu Kies) -TA1 Stone Hammer (smash stone to gravel)=TA1 Steinhammer (zerschlage Stein zu Kies) -TA2 Boiler Base=TA2 Boiler unten -TA2 Boiler Top=TA2 Boiler oben -TA2 Cylinder=TA2 Zylinder -TA2 Drive Axle=TA2 Antriebsachse -TA2 Ele Fab=TA2 E-Fabrik -TA2 Firebox=TA2 Feuerkiste -TA2 Flywheel=TA2 Schwungrad -TA2 Gearbox=TA2 Getriebeblock -TA2 Generator=TA2 Generator -TA2 Gravel Sieve=TA2 Kiessieb -TA2 Power Generator=TA2 Stromgenerator -TA2 Power Generator: Overload fault?@n(restart with right-click)=TA2 Stromgenerator: Überlastfehler?@n(Neustart mit Rechtsklick) -TA2 Protected Chest=TA2 Gesicherte Kiste -TA2 Steam Pipe=TA2 Dampfleitung -TA3 Accu Box=Akkublock -TA3 Akku Box=TA3 Akku Block -TA3 Bitumen=TA3 Bitumen -TA3 Bitumen Barrel=TA3 Bitumenfass -TA3 Bitumen Canister=TA3 Bitumenkanister -TA3 Boiler Base=TA3 Boiler unten -TA3 Boiler Top=TA3 Boiler oben -TA3 Booster=TA3 Gebläse -TA3 Button/Switch=TA3 Taster/Schalter -TA3 Canister=TA3 Kanister -TA3 Cart Detector=TA3 Wagen Detektor -TA3 Coal Power Station Firebox=TA3 Kohlekraftwerks-Feuerbox -TA3 Cooler=TA3 Kühler -TA3 Derrick=TA3 Bohrturm -TA3 Detector=TA3 Detektor -TA3 Distillation Tower 1=TA3 Destillationsturm 1 -TA3 Distillation Tower 2=TA3 Destillationsturm 2 -TA3 Distillation Tower 3=TA3 Destillationsturm 3 -TA3 Distillation Tower 4=TA3 Destillationsturm 4 -TA3 Distillation Tower Base=TA3 Destillationsturm Basis -TA3 Door Controller=TA3 Tür Controller -TA3 Drill Pipe=TA3 Bohrgestänge -TA3 Drill Pipe Wrench=TA3 Bohrgestängezange -TA3 Ele Fab=TA3 E-Fabrik -TA3 Electric Motor=TA3 Elektromotor -TA3 Electric Motor: Overload fault?@n(restart with right-click)=TA3 Elektromotor: Überlastfehler?@n(Neustart mit Rechtsklick) -TA3 Fuel Oil=TA3 Schweröl -TA3 Fuel Oil Barrel=TA3 Schwerölfass -TA3 Fuel Oil Canister=TA3 Schwerölkanister -TA3 Furnace Oil Burner=TA3 Ofen-Ölbrenner -TA3 Gasoline=TA3 Benzin -TA3 Gasoline Barrel=TA3 Benzinfass -TA3 Gasoline Canister=TA3 Benzinkanister -TA3 Generator=TA3 Generator -TA3 Gravel Sieve=TA3 Kiessieb -TA3 Logic Block=TA3 Logikblock -TA3 Melting=TA3 Schmelzen -TA3 Mesecons Converter=TA3 Mesecons Konverter -TA3 Naphtha=TA3 Naphtha -TA3 Naphtha Barrel=TA3 Naphtha-Fass -TA3 Naphtha Canister=TA3 Naphtha-Kanister -TA3 Node Detector=TA3 Block Detektor -TA3 Oil Barrel=TA3 Ölfass -TA3 Oil Canister=TA3 Erdölkanister -TA3 Oil Explorer=TA3 Ölexplorer -TA3 Oil Reboiler=TA3 Aufkocher -TA3 Oil Reboiler: blocked=TA3 Aufkocher: blockiert -TA3 Oil Storage=TA3 Öl Speicher -TA3 Pipe Wall Entry=TA3 Rohr/Wanddurchbruch -TA3 Player Detector=TA3 Spieler Detektor -TA3 Power Station Firebox=TA3 Kraftwerks-Feuerbox -TA3 Power Station Oil Burner=TA3 Kraftwerks-Ölbrenner -TA3 Power Terminal=TA3 Strom Terminal + +### power_terminal.lua ### + +Active:=Aktiv: +All nodes:=Alle Blöcke: +Consum. 1=Konsum. 1 +Consum. 2=Konsum. 2 +Genera. 1=Genera. 1 +Genera. 2=Genera. 2 +In use:=In Benutzung: +No network or active generator available!=Kein Stromnetz oder aktiver Generator verfügbar +Number of all nodes=Anzahl aller Blöcke TA3 Power Terminal Old=TA3 Strom Terminal Alt -TA3 Propane=TA3 Propan -TA3 Protected Chest=TA3 Gesicherte Kiste -TA3 Pump=TA3 Pumpe -TA3 Repeater=TA3 Wiederholer -TA3 Sequencer=TA3 Sequenzer -TA3 Silo=TA3 Silo -TA3 Tank=TA3 Tank -TA3 Terminal=TA3 Terminal -TA3 Timer=TA3 Timer -TA3 Tiny Power Generator=TA3 Kleiner Stromgenerator -TA3 Turbine=TA3 Turbine -TA3 Vacuum Tube=TA3 Vakuumröhre -TA3 Valve closed=TA3 Ventil zu -TA3 Valve open=TA3 Ventil offen -TA4 8x2000 Chest=TA4 8x2000 Kiste -TA4 Button/Switch=TA4 Schalter/Taster -TA4 Carbon Fiber=TA4 Kohlefaser -TA4 Derrick=TA4 Bohrturm -TA4 Detector=TA4 Detektor -TA4 Display=TA4 Display -TA4 Display XL=TA4 Display XL -TA4 Doser=TA4 Dosierer -TA4 Ele Fab=TA4 E-Fabrik -TA4 Electrolyzer=TA4 Elektrolyseur -TA4 Fuel Cell=TA4 Brennstoffzelle -TA4 Fuel Cell Stack=Brennstoffzellenstapel -TA4 Furnace Heater=TA4 Ofenheizung -TA4 Generator=TA4 Generator -TA4 Gravel Sieve=TA4 Kiessieb -TA4 Heat Exchanger=TA4 Wärmetauscher -TA4 Heat Exchanger 1=TA4 Wärmetauscher 1 -TA4 Heat Exchanger 2=TA4 Wärmetauscher 2 -TA4 Heat Exchanger 3=TA4 Wärmetauscher 3 -TA4 Hydrogen=TA4 Wasserstoff -TA4 LED Grow Light=TA4 LED Pflanzenlampe -TA4 LED Industrial Lamp=TA4 LED Industrielampe -TA4 LED Street Lamp=TA4 LED Straßenlampe -TA4 LED Street Lamp Arm=TA4 LED Lampenarm -TA4 LED Street Lamp Pole=TA4 LED Lampenmast -TA4 LEDs=TA4 LEDs -TA4 Liquid Filter Filler=TA4 Flüssigkeitsfilter Einfüllstutzen -TA4 Liquid Filter Sink=TA4 Flüssigkeitsfilter Abfluss -TA4 Low Power Box=TA4 Niederspannungsverteilerbox -TA4 Low Power Cable=TA4 Niederspannungskabel -TA4 Pillar=TA4 Säule -TA4 Pipe Inlet=TA4 Rohrzulauf -TA4 Player Detector=TA4 Spieler Detektor -TA4 Protected Chest=TA4 Gesicherte Kiste -TA4 Pump=TA4 Pumpe -TA4 RAM Chip=RAM Chip -TA4 Reactor=TA4 Reaktor -TA4 Reactor Base=TA4 Reaktor Sockel -TA4 Reactor Filler Pipe=TA4 Reaktor Einfüllstutzen -TA4 Reactor Stand=TA4 Reaktor Ständer -TA4 Rotor Blade=TA4 Rotorblatt -TA4 Sensor Chest=Sensorkiste -TA4 Silicon Wafer=TA4 Silizium-Wafer -TA4 Silo=Silo -TA4 Solar Carrier Module=TA4 Solar Trägermodul -TA4 Solar Carrier Module B=TA4 Solar Trägermodul U -TA4 Solar Carrier Module T=TA4 Solar Trägermodul O -TA4 Solar Inverter=TA4 Solar Wechselrichter -TA4 Solar Module=TA4 Solarmodul -TA4 State Collector=TA4 Zuständesammler -TA4 Streetlamp Solar Cell=TA4 Straßenlampen-Solarzelle -TA4 Tank=TA4 Tank -TA4 Turbine=TA4 Turbine -TA4 WLAN Chip=TA4 WLAN Chip -TA4 Water Pump=Wasserpumpe -TA4 Wind Turbine=TA4 Windkraftanlage -TA4 Wind Turbine Nacelle=TA4 Windkraftanlagengondel -TA4 Wind Turbine Signal Lamp=TA4 Windkraftanlagenlampe -TechAge Black Hole=TechAge Schwarzes Loch -TechAge Black Hole (let items and liquids disappear)=TechAge Schwarzes Loch (Gegenstände und Flüssigkeiten verschwinden) -TechAge Door Block=TechAge Türblock -TechAge Gate Block=TechAge Torblock -TechAge Gravel=TechAge Kies -TechAge Info Tool (use @= read status info)=TechAge Info Werkzeug -TechAge Programmer (right @= read number, left @= write numbers)=TechAge Programmer (rechts @= lese Nummer, links @= schreibe Nummern) -TechAge Repair Kit=TechAge Reparaturset -TechAge Signal Lamp=TechAge Signallampe -TechAge Signal Lamp (can be colored)=TechAge Signallampe (kann gefärbt werden) -TechAge Steel Mat=TechAge Stahlmatte -TechAge Trowel=TechAge Kelle -Techage Forceload Block=Techage Forceload Block -Techage Forceload Tile=Techage Forceload Kachel The network is overloaded!=Das Stromnetz ist überlastet! The network load is almost at the limit!=Das Stromnetz ist ziemlich am Limit! -The next wind turbines is too close!= Die nächste Windkraftanlagen iat zu nahe! -Thermal=Wärme -This is a=Dies ist ein -This is no ocean water!= Dies ist kein Meerwasser! -This is not the surface of the ocean!=Das ist nicht die Meeresoberfläche! -Time=Zeit -Tiny Generator=Kleingenerator -Tiny generator=Kleingenerator -To add fuel punch@nthis block@nwith a fuel container=Um Brennstoff nachzufüllen,@nschlage mit einem Kraftstoffbehälter@nauf den Block -To add liquids punch@nthe tank@nwith a liquid container=Um Flüssigkeit nachzufüllen,@nschlage mit einem Flüssigkeitsbehälter@nauf den Block -To add water punch@nthe boiler@nwith a water bucket=Um Wasser nachzufüllen,@nschlage mit einem Wassereimer@nauf den Block -To many blocks in the power grid!=Zu viele Blöcke im Stromnetz! -Tube Wall Entry=Tube Wanddurchbruch Turned on:=Eingeschaltet: + +With %u of a maximum of %u blocks you are almost at the limit!=Mit %u von maximal %u Blöcken bist du fast am Limit! + + +### power_terminal.lua ### +### power_terminal2.lua ### + +Network Data=Netzwerkdaten + +### power_terminal2.lua ### + +Accu Box=Akkublock +Current power:=Strom aktuell: +Energy storage=Engergiespeicher +Energy stored:=Energie gespeichert +Fuel cell=Brennstoffzelle +Generators=Generatoren +Intake=Stromaufnahme +Max. needed power=Max. benötigter Strom +Maximum power:=Maximalstrom: +No power grid or running generator!=Kein Stromnetz oder Generator verfügbar! +Number blocks:=Anzahl Blöcke: +Number of power grid blocks=Anzahl der Stromnetz Blöcke +Output=Stromabgabe +Power grid total=Stromnetz gesammt +Power station=Kraftwerk +Probably too many consumers (=Vermutlich zu viele Verbraucher ( +Select type=Wähle Typ +Solar system=Solaranlage +Storage systems=Speichersysteme +TA2 Generator=TA2 Generator +TA3 Power Terminal=TA3 Strom Terminal +Tiny generator=Kleingenerator +To many blocks in the power grid!=Zu viele Blöcke im Stromnetz! Type=Typ -Unlock=Entsperren -Unlock connected chest@nif all slots are below 2000=Nachfolgende Kiste entsperren,@nsofern alle Speicherplätze <= 2000 -Update=Update -Use a trowel to remove the node.=Verwende eine Kelle, um den Block zu entfernen. -Usmium Nuggets=Usmium Nuggets -Usmium Powder=Usmium Pulver -WLAN Chip=WLAN Chip -Water=Wasser -Water Barrel=Wasserfass -Water Boiler=Wasserboiler -Water Pump=Wasserpumpe Wind turbine=Windkraftanlage -[Bucket] Lava can only be placed below sea level!=Lava kann nur unterhalb der Meerehöhe platziert werden! -[TA4 Wind Turbine]=[TA4 Windkraftanlage] -[TA] Area is protected!=[TA] Bereich ist geschützt -[TA] Derrick is being built!=[TA] Bohrturm wird errichtet -[TA] Derrick is being removed!=[TA] Bohrturm wird abgebaut -[TA] Not enough space!=[TA] Nicht ausreichend Platz! +ku is needed=ku wird benötigt + +### powerswitch.lua ### + +TA Power Switch=TA Stromschalter +TA Power Switch Small=TA Stromschalter klein + +### powerswitchbox.lua ### + +TA Power Switch Box=TA Stromschalterbox + +### programmer.lua ### + +TechAge Programmer (right @= read number, left @= write numbers)=TechAge Programmer (rechts @= lese Nummer, links @= schreibe Nummern) + [TechAge Programmer] Error: invalid numbers!=[TechAge Programmer] Fehler: ungültige Nummern! [TechAge Programmer] Error: programmer not supported!=[TechAge Programmer] Fehler: Programmer wird nicht unterstützt! [TechAge Programmer] Unknown node on=[TechAge Programmer] Unbekannter Block bei @@ -427,51 +723,289 @@ Wind turbine=Windkraftanlage [TechAge Programmer] node programmed!=[TechAge Programmer] Nummer(n) programmiert! [TechAge Programmer] number=[TechAge Programmer] Nummer [TechAge Programmer] programmer reset=[TechAge Programmer] Programmer zurück gesetzt -accept=akzeptieren -added=hinzugefügt wird -added or removed=hinzugefügt oder entfernt wird -area is protected=Bereich ist geschützt -biome and no ocean!=Biom und keine Meer (ocean)! -blocking mode=Blockiert -catalyst missing=Katalysator fehlt -commands like: help=Kommandos wie: help -connected with=verbunden mit -depth=Tiefe -did you check the plan?=hast du den Plan geprüft? -empty=leer -finished=fertig -full=voll -inlet/pipe error=Einlass/Röhrenfehler -inventory full=Inventar ist voll -is a suitable place for a wind turbine!=ist ein geeigneter Ort für eine Windkraftanlage! -item output blocked=Ausgang blockiert -keep assignment=Zuordnung beibehalten -ku is needed=ku wird benötigt -light=Licht -loaded=geladen + +### protection.lua ### + +Allow to dig/place Techage power lines nearby power poles=Erlaubt TODO + +### pump.lua ### + +TA3 Pump=TA3 Pumpe +TA4 Pump=TA4 Pumpe + +### pumpjack.lua ### + +Oil Pumpjack=Ölpumpe +Oil amount=Ölmenge +Pumpjack=Ölpumpe needs power=benötigt Strom -no fuel=kein Kraftstoff -no fuel or no power=kein Strom oder Brennstoff no oil=Kein Öl -no power=kein Strom -no usable water=Kein brauchbares Wasser + +### pusher.lua ### + +Optionally configure@nthe pusher with one item=Der Schieber kann optional@nmit einem Gegenstand@nkonfiguriert werden +Pusher=Schieber + +### quarry.lua ### + +Digging depth=Grabungstiefe +Hole size=Lochgröße +Quarry=Steinbrecher +Start level=Startebene + +Start level @= 0@nmeans the same level@nas the quarry is placed=Startebene @= 0@nbedeutet gleiche Ebene@nwie der Steinbrecher + +area is protected=Bereich ist geschützt +finished=fertig +inventory full=Inventar ist voll + +### reboiler.lua ### + +TA3 Oil Reboiler=TA3 Aufkocher +TA3 Oil Reboiler: blocked=TA3 Aufkocher: blockiert + +### recipe_lib.lua ### + +Recipe=Rezept + +### recipe_lib.lua ### +### ta4_reactor.lua ### + +Catalyst=Katalysator + +### recipes.lua ### + +Flint and Iron=Flint and Iron +TA1 Iron Ingot=TA1 Eisenbarren +[Bucket] Lava can only be placed below sea level!=Lava kann nur unterhalb der Meerehöhe platziert werden! + +### redstone.lua ### + +Red Stone=Rotstein +Red Stone Block=Rotsteinblock +Red Stone Brick=Rotsteinziegel + +### repairkit.lua ### + +Biome=Biom +Node owner=Blockbesitzer +Position=Position +Position temperature=Positionstemperatur +TechAge Info Tool (use @= read status info)=TechAge Info Werkzeug +TechAge Repair Kit=TechAge Reparaturset +repaired=repariert + +### rotor.lua ### + +Nacelle is missing=Die Gondel fehlt +Not suitable position!=Ungeeignete Position! +TA4 Carbon Fiber=TA4 Kohlefaser +TA4 Rotor Blade=TA4 Rotorblatt +TA4 Wind Turbine=TA4 Windkraftanlage +TA4 Wind Turbine Nacelle=TA4 Windkraftanlagengondel + +### sensorchest.lua ### + +Allow public chest access=Erlaube öffentlichen Zugriff +TA4 Sensor Chest=Sensorkiste not connected=nicht verbunden -off=aus -on=an -power=Energie + +### sequencer.lua ### + +TA3 Sequencer=TA3 Sequenzer +stopped=gestoppt + +### signallamp.lua ### + +TA4 Wind Turbine Signal Lamp=TA4 Windkraftanlagenlampe +TechAge Signal Lamp=TechAge Signallampe +TechAge Signal Lamp (can be colored)=TechAge Signallampe (kann gefärbt werden) + +### silicon.lua ### + +TA4 Silicon Wafer=TA4 Silizium-Wafer + +### silo.lua ### + +TA3 Silo=TA3 Silo +TA4 Silo=Silo + +### simplelamp.lua ### + +TA Lamp=TA Lampe + +### solarcell.lua ### + +TA4 Solar Carrier Module=TA4 Solar Trägermodul +TA4 Solar Carrier Module B=TA4 Solar Trägermodul U +TA4 Solar Carrier Module T=TA4 Solar Trägermodul O +TA4 Solar Module=TA4 Solarmodul +light=Licht + +### source.lua ### + +Axle Power Source=Achsenkraftquelle +Ele Power Source=Ele Kraftquelle +Power Source=Stromquelle +Steam Power Source=Dampfenergiequelle + +### steam_pipe.lua ### + +TA2 Steam Pipe=TA2 Dampfleitung + +### steelmat.lua ### + +TechAge Steel Mat=TechAge Stahlmatte + +### streetlamp.lua ### + +TA Street Lamp=TA Straßenlampe + +### streetlamp2.lua ### + +TA4 LED Street Lamp=TA4 LED Straßenlampe +TA4 LED Street Lamp Arm=TA4 LED Lampenarm +TA4 LED Street Lamp Pole=TA4 LED Lampenmast + +### ta4_cable.lua ### + +TA4 Low Power Box=TA4 Niederspannungsverteilerbox +TA4 Low Power Cable=TA4 Niederspannungskabel + +### ta4_chest.lua ### + +Empty the slots always @nfrom right to left=Speicherplätze von rechts nach links leeren + +Never completely empty the slots@nwith the pusher to keep the item assignment=Speicherplätze mit dem Schieber nie ganz@nleeren, um die Item-Zuordnung beizubehalten + +Size=Größe +TA4 8x2000 Chest=TA4 8x2000 Kiste +Unlock=Entsperren +Unlock connected chest@nif all slots are below 2000=Nachfolgende Kiste entsperren,@nsofern alle Speicherplätze <= 2000 +keep assignment=Zuordnung beibehalten +right to left=von rechts nach links + +### ta4_doser.lua ### + +Doser=Dosierer +TA4 Doser=TA4 Dosierer +catalyst missing=Katalysator fehlt reactor defect=Reaktor defekt reactor defect or no power=Reaktor defekt oder kein Strom reactor has no power=Reaktor hat keinen Strom -removed=entfernt -repaired=repariert -right to left=von rechts nach links -stopped=gestoppt -storage empty?=Speicher leer? -water temperature=Wassertemperatur wrong catalyst=falscher Katalysator -wrong storage diameter=Falscher Wärmespeicher-Durchmesser + +### ta4_doser.lua ### +### ta4_reactor.lua ### + +TA4 Reactor=TA4 Reaktor + +### ta4_injector.lua ### + +Configure up to 8 items @nto be pushed by the injector=Konfiguriere bis zu 8 Gegenstände \n die vom Injektor weitergegeben werden sollen +Injector=Injektor + +### ta4_liquid_filter.lua ### + +TA4 Liquid Filter Filler=TA4 Flüssigkeitsfilter Einfüllstutzen +TA4 Liquid Filter Sink=TA4 Flüssigkeitsfilter Abfluss + +### ta4_reactor.lua ### + +TA4 Reactor Filler Pipe=TA4 Reaktor Einfüllstutzen + +### ta4_stand.lua ### + +TA4 Reactor Base=TA4 Reaktor Sockel +TA4 Reactor Stand=TA4 Reaktor Ständer +off=aus +on=an + +### ta4_stand.lua ### +### waterpump.lua ### + +no power=kein Strom + +### tank.lua ### + +Oil Tank=Öltank +TA3 Tank=TA3 Tank +TA4 Tank=TA4 Tank + +### tank_cart.lua ### + +TA Tank Cart=TA Tankwagen + +### terminal.lua ### + +Enter=Eingeben +Switched to private use!=Zur privaten Nutzung umgeschaltet +Switched to public use!=Zur öffentlichen Nutzung umgeschaltet +Syntax error, try help=Syntax Fehler, nutze help +TA3 Terminal=TA3 Terminal +commands like: help=Kommandos wie: help + +### timer.lua ### + +TA3 Timer=TA3 Timer + +### tiny_generator.lua ### + +TA3 Tiny Power Generator=TA3 Kleiner Stromgenerator +Tiny Generator=Kleingenerator +no fuel=kein Kraftstoff + +### tower.lua ### + +TA3 Derrick=TA3 Bohrturm +TA3 Drill Pipe=TA3 Bohrgestänge +TA4 Derrick=TA4 Bohrturm +[TA] Derrick is being built!=[TA] Bohrturm wird errichtet +[TA] Derrick is being removed!=[TA] Bohrturm wird abgebaut + +### trowel.lua ### + +TechAge Trowel=TechAge Kelle +Use a trowel to remove the node.=Verwende eine Kelle, um den Block zu entfernen. + +### tube_wall_entry.lua ### + +Tube Wall Entry=Tube Wanddurchbruch + +### turbine.lua ### + +TA3 Turbine=TA3 Turbine +TA4 Turbine=TA4 Turbine + +### usmium.lua ### + +Usmium Nuggets=Usmium Nuggets +Usmium Powder=Usmium Pulver + +### valve.lua ### + +TA Valve=TA Ventil +TA3 Valve closed=TA3 Ventil zu +TA3 Valve open=TA3 Ventil offen + +### waterpump.lua ### + +TA4 Water Pump=Wasserpumpe +Water Pump=Wasserpumpe + +### windturbine_lib.lua ### + +Here is not enough water (41x41 m)!=Hier ist nicht genug Wasser (41x41 m)! + +Here is not enough wind (A free air space of 41x41x21 m is necessary)!=Hier ist nicht genug Wind (Ein freier Luftraum von 41x41x21 m ist notwendig)! + +The next wind turbines is too close!= Die nächste Windkraftanlagen iat zu nahe! +This is a=Dies ist ein +This is no ocean water!= Dies ist kein Meerwasser! +This is not the surface of the ocean!=Das ist nicht die Meeresoberfläche! +[TA4 Wind Turbine]=[TA4 Windkraftanlage] +biome and no ocean!=Biom und keine Meer (ocean)! +is a suitable place for a wind turbine!=ist ein geeigneter Ort für eine Windkraftanlage! + + ##### not used anymore ##### -Error=Fehler -More water expected (2 m deep)!=Mehr Wasser erwartet (2 m tief) -No wind at this altitude!=Kein Wind auf dieser Höhe -The wind turbines are too close together!=Die Windkraftanlagen stehen zu eng beisammen! \ No newline at end of file diff --git a/locale/template.txt b/locale/template.txt index e76251f..65cba57 100644 --- a/locale/template.txt +++ b/locale/template.txt @@ -1,19 +1,70 @@ -#### TA3 Terminal ####@n@nSend commands to your machines@nand output text messages from your@nmachines to the Terminal.@n@nCommand syntax:@n cmd @n@nexample: cmd 181 on@n is the number of the node to which the command is sent@n'on' is the command to turn machines/nodes on@nFurther commands can be retrieved by clicking on@nmachines/nodes with the Techage Info Tool.@n@nLocal commands:@n- clear @= clear screen@n- help @= this message@n- pub @= switch to public use@n- priv @= switch to private use@nTo program a user button with a command:@n set @ne.g. 'set 1 ON cmd 123 on'@n= -Accu Box= -Active:= -All nodes:= -Allow public access to the chest= -Allow public access to the tank= -Allow public chest access= -Allow to dig/place Techage power lines nearby power poles= +# textdomain: techage + + + +### akkubox.lua ### + +TA3 Accu Box= +TA3 Akku Box= + +### akkubox.lua ### +### battery.lua ### + +Load= + +### akkubox.lua ### +### electrolyzer.lua ### +### fuelcell.lua ### +### generator.lua ### +### heatexchanger2.lua ### +### tiny_generator.lua ### + +Electricity= + +### aluminium.lua ### + Aluminum= -Area already loaded or max. number of Forceload Blocks reached!= -Ash= +Gibbsite Powder= +Red Mud= +Red Mud Barrel= +Red Mud Canister= + +### assemble.lua ### +### firebox_lib.lua ### + +[TA] Area is protected!= +[TA] Not enough space!= + +### autocrafter.lua ### + Autocrafter= -Axle Power Source= + +### axle2power.lua ### + +TA2 Power Generator= + +TA2 Power Generator: Overload fault?@n(restart with right-click)= + + +### baborium.lua ### + Baborium Ingot= Baborium Lump= Baborium Ore= + +### barrel.lua ### + +Gas Cylinder Large= +Gas Cylinder Small= +River Water Barrel= +TA Empty Barrel= +TA3 Canister= +Water= +Water Barrel= +empty= + +### basalt.lua ### + Basalt Cobble= Basalt Glass= Basalt Glass 2= @@ -25,399 +76,646 @@ Basalt Gravel= Basalt Stone= Basalt Stone Block= Basalt Stone Brick= +Sieved Basalt Gravel= + +### battery.lua ### + Battery= +Coal Equivalents= +Digtron Battery= + +### bauxit.lua ### + Bauxite Cobblestone= Bauxite Gravel= Bauxite Powder= Bauxite Stone= -Biome= -Block configured items for open ports= -Build derrick= -Catalyst= + +### blackhole.lua ### + +TechAge Black Hole= +TechAge Black Hole (let items and liquids disappear)= + +### boiler.lua ### + +TA2 Boiler Base= +TA2 Boiler Top= + +### boiler_base.lua ### + +TA3 Boiler Base= + +### boiler_lib.lua ### + +To add water punch@nthe boiler@nwith a water bucket= +Water Boiler= +water temperature= + +### boiler_top.lua ### + +TA3 Boiler Top= + +### booster.lua ### + +TA3 Booster= + +### button.lua ### + +TA3 Button/Switch= +TA4 Button/Switch= + +### button.lua ### +### cart_detector.lua ### +### detector.lua ### +### lua_logic.lua ### +### mesecons_converter.lua ### +### node_detector.lua ### +### player_detector.lua ### +### repeater.lua ### + +Insert destination node number(s)= + +### button.lua ### +### chest.lua ### +### detector.lua ### +### doorcontroller.lua ### +### mesecons_converter.lua ### +### repeater.lua ### + +Save= + +### cart_detector.lua ### + +TA3 Cart Detector= + +### cart_detector.lua ### +### node_detector.lua ### + +accept= + +### cart_detector.lua ### +### player_detector.lua ### + +TA3 Player Detector= + +### ceilinglamp.lua ### + +TA Ceiling Lamp= + +### cement.lua ### + Cement Block= Cement Powder= -Coal Equivalents= -Compressed Gravel= -Configure up to 8 items @nto be pushed by the injector= -Consum. 1= -Consum. 2= -Current power:= -Depth= -Digging depth= -Digtron Battery= + +### charcoalpile.lua ### + Dirt with Ash= +TA1 Charcoal= + +### chest.lua ### + +Allow public access to the chest= +Inventory,Pre-Assignment,Config= +Node label:= +TA2 Protected Chest= +TA3 Protected Chest= +TA4 Protected Chest= + +### chest_cart.lua ### + +TA Chest Cart= + +### coalburner.lua ### + +Ash= + +### collector.lua ### + +Node number to send the events to= +Node numbers to read the states from= +Send an event if state is equal or larger than= +TA4 State Collector= + +### cooking.lua ### + +TA3 Melting= + +### cooler.lua ### + +TA3 Cooler= + +### cylinder.lua ### + +TA2 Cylinder= + +### detector.lua ### + +TA3 Detector= +TA4 Detector= + +### display.lua ### + Display no: = +TA4 Display= +TA4 Display XL= + +### distiller.lua ### + +TA3 Distillation Tower 1= +TA3 Distillation Tower 2= +TA3 Distillation Tower 3= +TA3 Distillation Tower 4= +TA3 Distillation Tower Base= + +### distributor.lua ### + +Block configured items for open ports= Distributor= -Doser= +High Performance Distributor= +Input= +blocking mode= + +### doorblock.lua ### + +TechAge Door Block= + +### doorcontroller.lua ### + +Insert door/gate block number(s)= +TA3 Door Controller= + +### doorcontroller.lua ### +### repeater.lua ### + +TA3 Repeater= + +### drillbox.lua ### + +Build derrick= +Depth= Drill Bit= Drill area is protected= Drill bits missing= -Ele Power Source= -Electricity= +Oil Drill Box= +Remove derrick= +item output blocked= + +### drive_axle.lua ### + +TA2 Drive Axle= + +### electric_cable.lua ### + +TA Electric Cable= + +### electrolyzer.lua ### + +TA4 Electrolyzer= +full= + +### electrolyzer.lua ### +### power_terminal2.lua ### + Electrolyzer= + +### electronic.lua ### + +TA3 Vacuum Tube= +TA4 LEDs= +TA4 RAM Chip= +TA4 WLAN Chip= +WLAN Chip= + +### electronic_fab.lua ### + Electronic Fab= -Empty the slots always @nfrom right to left= -Energy storage= -Energy stored:= -Enter= +TA2 Ele Fab= +TA3 Ele Fab= +TA4 Ele Fab= + +### epoxy.lua ### + Epoxide Resin= Epoxide Resin Barrel= Epoxide Resin Canister= + +### explore.lua ### + +Oil= +TA3 Oil Explorer= +TA3 Oil Storage= +depth= + +### filler.lua ### + +Liquid Filler= +TA Liquid Filler= + +### firebox.lua ### + +TA2 Firebox= +TA3 Coal Power Station Firebox= +TA3 Furnace Oil Burner= +TA3 Power Station Firebox= + +### firebox_lib.lua ### + Firebox= -Flint and Iron= -Flowing Oil= + +### flywheel.lua ### + Flywheel= -Fuel Cell= +TA2 Flywheel= + +### flywheel.lua ### +### generator.lua ### +### solarcell.lua ### +### source.lua ### + +power= + +### forceload.lua ### + +Area already loaded or max. number of Forceload Blocks reached!= + +List of your Forceload Blocks:= +Priv missing= +Punch the block to make the area visible.= +Show all forceload blocks in a 64x64x64 range= +Techage Forceload Block= +Techage Forceload Tile= +loaded= + +### fuel_lib.lua ### + Fuel Menu= -Fuel cell= +To add fuel punch@nthis block@nwith a fuel container= + +### fuelcell.lua ### + +Fuel Cell= +TA4 Fuel Cell= + +### fuelcellstack.lua ### + +TA4 Fuel Cell Stack= + +### furnace_top.lua ### + Furnace Top= -Gas Cylinder Large= -Gas Cylinder Small= -Genera. 1= -Genera. 2= +Outp= +no fuel or no power= + +### gateblock.lua ### + +TechAge Gate Block= + +### gearbox.lua ### + +TA2 Gearbox= + +### generator.lua ### + Generator= -Generators= -Gibbsite Powder= +TA3 Generator= +TA4 Generator= +storage empty?= + +### gravelrinser.lua ### + Gravel Rinser= +Rinsing= + +### gravelsieve.lua ### + +Compressed Gravel= Gravel Sieve= +Sieved Gravel= +TA1 Gravel Sieve= +TA2 Gravel Sieve= +TA3 Gravel Sieve= +TA4 Gravel Sieve= + +### grinder.lua ### + Grinder= Grinding= -Heat= + +### growlight.lua ### + +TA4 LED Grow Light= + +### guide.lua ### + +No plan available= +Plan= + +### hammer.lua ### + +TA1 Bronze Hammer (smash stone to gravel)= +TA1 Diamond Hammer (smash stone to gravel)= +TA1 Meridium Hammer (smash stone to gravel)= +TA1 Mese Hammer (smash stone to gravel)= +TA1 Steel Hammer (smash stone to gravel)= +TA1 Stone Hammer (smash stone to gravel)= + +### heater.lua ### + +TA4 Furnace Heater= + +### heatexchanger1.lua ### + +TA4 Heat Exchanger 1= +inlet/pipe error= +wrong storage diameter= + +### heatexchanger1.lua ### +### heatexchanger2.lua ### + +did you check the plan?= + +### heatexchanger2.lua ### + Heat Exchanger= -Here is not enough water (41x41 m)!= -Here is not enough wind (A free air space of 41x41x21 m is necessary)!= -High Performance Distributor= -Hole size= +TA4 Heat Exchanger= +TA4 Heat Exchanger 2= +Thermal= + +### heatexchanger3.lua ### + +TA4 Heat Exchanger 3= + +### hydrogen.lua ### + Hydrogen Cylinder Large= Hydrogen Cylinder Small= -In use:= -Injector= -Input= -Insert destination node number(s)= -Insert door/gate block number(s)= -Intake= -Inventory,Pre-Assignment,Config= +TA4 Hydrogen= + +### industriallamp1.lua ### + +TA Industrial Lamp 1= + +### industriallamp2.lua ### + +TA Industrial Lamp 2= + +### industriallamp3.lua ### + +TA Industrial Lamp 3= + +### industriallamp4.lua ### + +TA4 LED Industrial Lamp= + +### inlet.lua ### + +TA4 Pipe Inlet= + +### inverter.lua ### + Inverter= -Iron Powder= -Leave Powder= -Liquid Filler= -Liquid Sampler= -Liquid Tank= -List of your Forceload Blocks:= -Load= -Lye= -Lye Barrel= -Lye Canister= -Max. needed power= -Maximum power:= -Melting Guide= -Melting Pot active (heat@== -Melting Pot inactive (heat@== -Melting Pot inactive (heat@=0)= -Menu= -Menu,Recipes= -Meridium Axe= -Meridium Pickaxe= -Meridium Shovel= -Meridium Sword= -Nacelle is missing= -Needle Powder= -Network Data= -Never completely empty the slots@nwith the pusher to keep the item assignment= -No network or active generator available!= -No plan available= -No power grid or running generator!= -Node label:= -Node number to send the events to= -Node numbers to read the states from= -Node owner= -Not suitable position!= -Number blocks:= -Number of all nodes= -Number of power grid blocks= -Oil= -Oil Drill Box= -Oil Pumpjack= -Oil Source= -Oil Tank= -Oil amount= -Optionally configure@nthe pusher with one item= -Outp= -Output= -Plan= -Plastic Granules= -Position= -Position temperature= Power AC= Power DC= -Power Source= -Power grid total= -Power station= -Priv missing= -Probably too many consumers (= -Propane Cylinder Large= -Propane Cylinder Small= -Pumpjack= -Punch the block to make the area visible.= -Pusher= -Quarry= -Recipe= -Red Mud= -Red Mud Barrel= -Red Mud Canister= -Red Stone= -Red Stone Block= -Red Stone Brick= -Remove derrick= -Rinsing= -River Water Barrel= -Save= -Select type= -Send an event if state is equal or larger than= -Send signal if nodes have been:= -Show all forceload blocks in a 64x64x64 range= -Sieved Basalt Gravel= -Sieved Gravel= -Size= -Solar system= -Start level= -Start level @= 0@nmeans the same level@nas the quarry is placed= -Steam Power Source= -Storage systems= -Store= -Switched to private use!= -Switched to public use!= -Syntax error, try help= -TA Ceiling Lamp= -TA Chest Cart= -TA Electric Cable= +TA4 Solar Inverter= + +### junctionbox.lua ### + TA Electric Junction Box= -TA Empty Barrel= -TA Industrial Lamp 1= -TA Industrial Lamp 2= -TA Industrial Lamp 3= -TA Junction Pipe= -TA Lamp= + +### lampholder.lua ### + TA Lamp Holder Acacia= TA Lamp Holder Apple= TA Lamp Holder Aspen= TA Lamp Holder Copper= TA Lamp Holder Gold= TA Lamp Holder White= -TA Liquid Filler= + +### lib.lua ### +### sensorchest.lua ### + +connected with= + +### lighter.lua ### + +TA1 Lighter= + +### liquid_lib.lua ### + +Allow public access to the tank= +Liquid Tank= +To add liquids punch@nthe tank@nwith a liquid container= + +### liquid_pipe.lua ### + +TA Junction Pipe= TA Pipe= + +### liquidsampler.lua ### + +Liquid Sampler= + +### liquidsampler.lua ### +### waterpump.lua ### + +no usable water= + +### lua_logic.lua ### + +TA3 Logic Block= +Update= + +### lua_logic.lua ### +### power_terminal2.lua ### + +Store= + +### lye.lua ### + +Lye= +Lye Barrel= +Lye Canister= + +### meltingpot.lua ### + +Heat= +Melting Guide= +Melting Pot active (heat@== +Melting Pot inactive (heat@== +Melting Pot inactive (heat@=0)= +Menu= +Menu,Recipes= +TA1 Burning= +TA1 Melting= +TA1 Melting Pot= + +### meltingpot.lua ### +### repairkit.lua ### + +Time= + +### meridium.lua ### + +Meridium Axe= +Meridium Pickaxe= +Meridium Shovel= +Meridium Sword= + +### mesecons_converter.lua ### + +TA3 Mesecons Converter= + +### minicell.lua ### + +TA4 Streetlamp Solar Cell= + +### node_detector.lua ### + +Send signal if nodes have been:= +TA3 Node Detector= +added= +added or removed= +removed= + +### nodes.lua ### + +TechAge Gravel= + +### oil.lua ### + +Flowing Oil= +Oil Source= +TA3 Oil Barrel= +TA3 Oil Canister= + +### oilfirebox.lua ### + +TA3 Power Station Oil Burner= + +### petroleum.lua ### + +Propane Cylinder Large= +Propane Cylinder Small= +TA3 Bitumen= +TA3 Bitumen Barrel= +TA3 Bitumen Canister= +TA3 Fuel Oil= +TA3 Fuel Oil Barrel= +TA3 Fuel Oil Canister= +TA3 Gasoline= +TA3 Gasoline Barrel= +TA3 Gasoline Canister= +TA3 Naphtha= +TA3 Naphtha Barrel= +TA3 Naphtha Canister= +TA3 Propane= + +### pillar.lua ### + +TA4 Pillar= + +### pipe_wall_entry.lua ### + +TA3 Pipe Wall Entry= + +### pipe_wrench.lua ### + +TA3 Drill Pipe Wrench= + +### plastic.lua ### + +Plastic Granules= + +### player_detector.lua ### + +TA4 Player Detector= + +### powder.lua ### + +Iron Powder= +Leave Powder= +Needle Powder= + +### power2axle.lua ### + +TA3 Electric Motor= + +TA3 Electric Motor: Overload fault?@n(restart with right-click)= + + +### power_line.lua ### + TA Power Line= TA Power Pole= TA Power Pole Top (for up to 6 connections)= TA Power Pole Top 2 (for landlines)= -TA Power Switch= -TA Power Switch Box= -TA Power Switch Small= -TA Street Lamp= -TA Tank Cart= -TA Valve= -TA1 Bronze Hammer (smash stone to gravel)= -TA1 Burning= -TA1 Charcoal= -TA1 Diamond Hammer (smash stone to gravel)= -TA1 Gravel Sieve= -TA1 Iron Ingot= -TA1 Lighter= -TA1 Melting= -TA1 Melting Pot= -TA1 Meridium Hammer (smash stone to gravel)= -TA1 Mese Hammer (smash stone to gravel)= -TA1 Steel Hammer (smash stone to gravel)= -TA1 Stone Hammer (smash stone to gravel)= -TA2 Boiler Base= -TA2 Boiler Top= -TA2 Cylinder= -TA2 Drive Axle= -TA2 Ele Fab= -TA2 Firebox= -TA2 Flywheel= -TA2 Gearbox= -TA2 Generator= -TA2 Gravel Sieve= -TA2 Power Generator= -TA2 Power Generator: Overload fault?@n(restart with right-click)= -TA2 Protected Chest= -TA2 Steam Pipe= -TA3 Accu Box= -TA3 Akku Box= -TA3 Bitumen= -TA3 Bitumen Barrel= -TA3 Bitumen Canister= -TA3 Boiler Base= -TA3 Boiler Top= -TA3 Booster= -TA3 Button/Switch= -TA3 Canister= -TA3 Cart Detector= -TA3 Coal Power Station Firebox= -TA3 Cooler= -TA3 Derrick= -TA3 Detector= -TA3 Distillation Tower 1= -TA3 Distillation Tower 2= -TA3 Distillation Tower 3= -TA3 Distillation Tower 4= -TA3 Distillation Tower Base= -TA3 Door Controller= -TA3 Drill Pipe= -TA3 Drill Pipe Wrench= -TA3 Ele Fab= -TA3 Electric Motor= -TA3 Electric Motor: Overload fault?@n(restart with right-click)= -TA3 Fuel Oil= -TA3 Fuel Oil Barrel= -TA3 Fuel Oil Canister= -TA3 Furnace Oil Burner= -TA3 Gasoline= -TA3 Gasoline Barrel= -TA3 Gasoline Canister= -TA3 Generator= -TA3 Gravel Sieve= -TA3 Logic Block= -TA3 Melting= -TA3 Mesecons Converter= -TA3 Naphtha= -TA3 Naphtha Barrel= -TA3 Naphtha Canister= -TA3 Node Detector= -TA3 Oil Barrel= -TA3 Oil Canister= -TA3 Oil Explorer= -TA3 Oil Reboiler= -TA3 Oil Reboiler: blocked= -TA3 Oil Storage= -TA3 Pipe Wall Entry= -TA3 Player Detector= -TA3 Power Station Firebox= -TA3 Power Station Oil Burner= -TA3 Power Terminal= + +### power_terminal.lua ### + +Active:= +All nodes:= +Consum. 1= +Consum. 2= +Genera. 1= +Genera. 2= +In use:= +No network or active generator available!= +Number of all nodes= TA3 Power Terminal Old= -TA3 Propane= -TA3 Protected Chest= -TA3 Pump= -TA3 Repeater= -TA3 Sequencer= -TA3 Silo= -TA3 Tank= -TA3 Terminal= -TA3 Timer= -TA3 Tiny Power Generator= -TA3 Turbine= -TA3 Vacuum Tube= -TA3 Valve closed= -TA3 Valve open= -TA4 8x2000 Chest= -TA4 Button/Switch= -TA4 Carbon Fiber= -TA4 Derrick= -TA4 Detector= -TA4 Display= -TA4 Display XL= -TA4 Doser= -TA4 Ele Fab= -TA4 Electrolyzer= -TA4 Fuel Cell= -TA4 Fuel Cell Stack= -TA4 Furnace Heater= -TA4 Generator= -TA4 Gravel Sieve= -TA4 Heat Exchanger= -TA4 Heat Exchanger 1= -TA4 Heat Exchanger 2= -TA4 Heat Exchanger 3= -TA4 Hydrogen= -TA4 LED Grow Light= -TA4 LED Industrial Lamp= -TA4 LED Street Lamp= -TA4 LED Street Lamp Arm= -TA4 LED Street Lamp Pole= -TA4 LEDs= -TA4 Liquid Filter Filler= -TA4 Liquid Filter Sink= -TA4 Low Power Box= -TA4 Low Power Cable= -TA4 Pillar= -TA4 Pipe Inlet= -TA4 Player Detector= -TA4 Protected Chest= -TA4 Pump= -TA4 RAM Chip= -TA4 Reactor= -TA4 Reactor Base= -TA4 Reactor Filler Pipe= -TA4 Reactor Stand= -TA4 Rotor Blade= -TA4 Sensor Chest= -TA4 Silicon Wafer= -TA4 Silo= -TA4 Solar Carrier Module= -TA4 Solar Carrier Module B= -TA4 Solar Carrier Module T= -TA4 Solar Inverter= -TA4 Solar Module= -TA4 State Collector= -TA4 Streetlamp Solar Cell= -TA4 Tank= -TA4 Turbine= -TA4 WLAN Chip= -TA4 Water Pump= -TA4 Wind Turbine= -TA4 Wind Turbine Nacelle= -TA4 Wind Turbine Signal Lamp= -TechAge Black Hole= -TechAge Black Hole (let items and liquids disappear)= -TechAge Door Block= -TechAge Gate Block= -TechAge Gravel= -TechAge Info Tool (use @= read status info)= -TechAge Programmer (right @= read number, left @= write numbers)= -TechAge Repair Kit= -TechAge Signal Lamp= -TechAge Signal Lamp (can be colored)= -TechAge Steel Mat= -TechAge Trowel= -Techage Forceload Block= -Techage Forceload Tile= The network is overloaded!= The network load is almost at the limit!= -The next wind turbines is too close!= -Thermal= -This is a= -This is no ocean water!= -This is not the surface of the ocean!= -Time= -Tiny Generator= -Tiny generator= -To add fuel punch@nthis block@nwith a fuel container= -To add liquids punch@nthe tank@nwith a liquid container= -To add water punch@nthe boiler@nwith a water bucket= -To many blocks in the power grid!= -Tube Wall Entry= Turned on:= + +With %u of a maximum of %u blocks you are almost at the limit!= + + +### power_terminal.lua ### +### power_terminal2.lua ### + +Network Data= + +### power_terminal2.lua ### + +Accu Box= +Current power:= +Energy storage= +Energy stored:= +Fuel cell= +Generators= +Intake= +Max. needed power= +Maximum power:= +No power grid or running generator!= +Number blocks:= +Number of power grid blocks= +Output= +Power grid total= +Power station= +Probably too many consumers (= +Select type= +Solar system= +Storage systems= +TA2 Generator= +TA3 Power Terminal= +Tiny generator= +To many blocks in the power grid!= Type= -Unlock= -Unlock connected chest@nif all slots are below 2000= -Update= -Use a trowel to remove the node.= -Usmium Nuggets= -Usmium Powder= -WLAN Chip= -Water= -Water Barrel= -Water Boiler= -Water Pump= Wind turbine= -[Bucket] Lava can only be placed below sea level!= -[TA4 Wind Turbine]= -[TA] Area is protected!= -[TA] Derrick is being built!= -[TA] Derrick is being removed!= -[TA] Not enough space!= +ku is needed= + +### powerswitch.lua ### + +TA Power Switch= +TA Power Switch Small= + +### powerswitchbox.lua ### + +TA Power Switch Box= + +### programmer.lua ### + +TechAge Programmer (right @= read number, left @= write numbers)= + [TechAge Programmer] Error: invalid numbers!= [TechAge Programmer] Error: programmer not supported!= [TechAge Programmer] Unknown node on= @@ -425,46 +723,286 @@ Wind turbine= [TechAge Programmer] node programmed!= [TechAge Programmer] number= [TechAge Programmer] programmer reset= -accept= -added= -added or removed= -area is protected= -biome and no ocean!= -blocking mode= -catalyst missing= -commands like: help= -connected with= -depth= -did you check the plan?= -empty= -finished= -full= -inlet/pipe error= -inventory full= -is a suitable place for a wind turbine!= -item output blocked= -keep assignment= -ku is needed= -light= -loaded= + +### protection.lua ### + +Allow to dig/place Techage power lines nearby power poles= + +### pump.lua ### + +TA3 Pump= +TA4 Pump= + +### pumpjack.lua ### + +Oil Pumpjack= +Oil amount= +Pumpjack= needs power= -no fuel= -no fuel or no power= no oil= -no power= -no usable water= + +### pusher.lua ### + +Optionally configure@nthe pusher with one item= +Pusher= + +### quarry.lua ### + +Digging depth= +Hole size= +Quarry= +Start level= + +Start level @= 0@nmeans the same level@nas the quarry is placed= + +area is protected= +finished= +inventory full= + +### reboiler.lua ### + +TA3 Oil Reboiler= +TA3 Oil Reboiler: blocked= + +### recipe_lib.lua ### + +Recipe= + +### recipe_lib.lua ### +### ta4_reactor.lua ### + +Catalyst= + +### recipes.lua ### + +Flint and Iron= +TA1 Iron Ingot= +[Bucket] Lava can only be placed below sea level!= + +### redstone.lua ### + +Red Stone= +Red Stone Block= +Red Stone Brick= + +### repairkit.lua ### + +Biome= +Node owner= +Position= +Position temperature= +TechAge Info Tool (use @= read status info)= +TechAge Repair Kit= +repaired= + +### rotor.lua ### + +Nacelle is missing= +Not suitable position!= +TA4 Carbon Fiber= +TA4 Rotor Blade= +TA4 Wind Turbine= +TA4 Wind Turbine Nacelle= + +### sensorchest.lua ### + +Allow public chest access= +TA4 Sensor Chest= not connected= -off= -on= -power= + +### sequencer.lua ### + +TA3 Sequencer= +stopped= + +### signallamp.lua ### + +TA4 Wind Turbine Signal Lamp= +TechAge Signal Lamp= +TechAge Signal Lamp (can be colored)= + +### silicon.lua ### + +TA4 Silicon Wafer= + +### silo.lua ### + +TA3 Silo= +TA4 Silo= + +### simplelamp.lua ### + +TA Lamp= + +### solarcell.lua ### + +TA4 Solar Carrier Module= +TA4 Solar Carrier Module B= +TA4 Solar Carrier Module T= +TA4 Solar Module= +light= + +### source.lua ### + +Axle Power Source= +Ele Power Source= +Power Source= +Steam Power Source= + +### steam_pipe.lua ### + +TA2 Steam Pipe= + +### steelmat.lua ### + +TechAge Steel Mat= + +### streetlamp.lua ### + +TA Street Lamp= + +### streetlamp2.lua ### + +TA4 LED Street Lamp= +TA4 LED Street Lamp Arm= +TA4 LED Street Lamp Pole= + +### ta4_cable.lua ### + +TA4 Low Power Box= +TA4 Low Power Cable= + +### ta4_chest.lua ### + +Empty the slots always @nfrom right to left= + +Never completely empty the slots@nwith the pusher to keep the item assignment= + +Size= +TA4 8x2000 Chest= +Unlock= +Unlock connected chest@nif all slots are below 2000= +keep assignment= +right to left= + +### ta4_doser.lua ### + +Doser= +TA4 Doser= +catalyst missing= reactor defect= reactor defect or no power= reactor has no power= -removed= -repaired= -right to left= -stopped= -storage empty?= -water temperature= wrong catalyst= -wrong storage diameter= \ No newline at end of file + +### ta4_doser.lua ### +### ta4_reactor.lua ### + +TA4 Reactor= + +### ta4_injector.lua ### + +Configure up to 8 items @nto be pushed by the injector= +Injector= + +### ta4_liquid_filter.lua ### + +TA4 Liquid Filter Filler= +TA4 Liquid Filter Sink= + +### ta4_reactor.lua ### + +TA4 Reactor Filler Pipe= + +### ta4_stand.lua ### + +TA4 Reactor Base= +TA4 Reactor Stand= +off= +on= + +### ta4_stand.lua ### +### waterpump.lua ### + +no power= + +### tank.lua ### + +Oil Tank= +TA3 Tank= +TA4 Tank= + +### tank_cart.lua ### + +TA Tank Cart= + +### terminal.lua ### + +Enter= +Switched to private use!= +Switched to public use!= +Syntax error, try help= +TA3 Terminal= +commands like: help= + +### timer.lua ### + +TA3 Timer= + +### tiny_generator.lua ### + +TA3 Tiny Power Generator= +Tiny Generator= +no fuel= + +### tower.lua ### + +TA3 Derrick= +TA3 Drill Pipe= +TA4 Derrick= +[TA] Derrick is being built!= +[TA] Derrick is being removed!= + +### trowel.lua ### + +TechAge Trowel= +Use a trowel to remove the node.= + +### tube_wall_entry.lua ### + +Tube Wall Entry= + +### turbine.lua ### + +TA3 Turbine= +TA4 Turbine= + +### usmium.lua ### + +Usmium Nuggets= +Usmium Powder= + +### valve.lua ### + +TA Valve= +TA3 Valve closed= +TA3 Valve open= + +### waterpump.lua ### + +TA4 Water Pump= +Water Pump= + +### windturbine_lib.lua ### + +Here is not enough water (41x41 m)!= + +Here is not enough wind (A free air space of 41x41x21 m is necessary)!= + +The next wind turbines is too close!= +This is a= +This is no ocean water!= +This is not the surface of the ocean!= +[TA4 Wind Turbine]= +biome and no ocean!= +is a suitable place for a wind turbine!= diff --git a/logic/terminal.lua b/logic/terminal.lua index 718c1bb..436eb7b 100644 --- a/logic/terminal.lua +++ b/logic/terminal.lua @@ -15,41 +15,23 @@ local M = minetest.get_meta local S = techage.S -local HELP_TA3 = S("#### TA3 Terminal ####@n".. -"@n".. -"Send commands to your machines@n".. -"and output text messages from your@n".. -"machines to the Terminal.@n".. -"@n".. -"Command syntax:@n".. -" cmd @n".. -"@n".. -"example: cmd 181 on@n".. -" is the number of the node to which the command is sent@n".. -"'on' is the command to turn machines/nodes on@n".. -"Further commands can be retrieved by clicking on@n".. -"machines/nodes with the Techage Info Tool.@n".. -"@n".. -"Local commands:@n".. -"- clear = clear screen@n".. -"- help = this message@n".. -"- pub = switch to public use@n".. -"- priv = switch to private use@n".. -"To program a user button with a command:@n".. -" set @n".. -"e.g. 'set 1 ON cmd 123 on'@n") +local HELP_TA3 = "Syntax:\n".. +" cmd \n".. +"\n".. +"like: cmd 181 on\n".. +"or: cmd 4573 state\n".. +"\n".. +"Local commands:\n".. +"- clear = clear screen\n".. +"- help = this message\n".. +"- pub = switch to public use of buttons\n".. +"- priv = switch to private use of buttons\n".. +"To program a user button with a command:\n".. +" set \n".. +"e.g.: set 1 ON cmd 123 on" local CMNDS_TA3 = S("Syntax error, try help") ---local function formspec1() --- return "size[6,4]".. --- default.gui_bg.. --- default.gui_bg_img.. --- default.gui_slots.. --- "field[0.5,1;5,1;number;Techage Controller number:;]" .. --- "button_exit[1.5,2.5;2,1;exit;Save]" ---end - local function get_string(meta, num, default) local s = meta:get_string("bttn_text"..num) if not s or s == "" then @@ -106,6 +88,7 @@ end local function command(pos, command, player) local meta = minetest.get_meta(pos) local owner = meta:get_string("owner") or "" + if command then command = command:sub(1,80) command = string.trim(command) @@ -117,16 +100,15 @@ local function command(pos, command, player) local meta = minetest.get_meta(pos) meta:set_string("output", HELP_TA3) meta:set_string("formspec", formspec2(meta)) - elseif command == "pub" and owner == player then + elseif command == "pub" then meta:set_int("public", 1) output(pos, player..":$ "..command) output(pos, S("Switched to public use!")) - elseif command == "priv" and owner == player then + elseif command == "priv" then meta:set_int("public", 0) output(pos, player..":$ "..command) output(pos, S("Switched to private use!")) - elseif meta:get_int("public") == 1 or owner == player or - minetest.check_player_privs(player, "server") then + else output(pos, "$ "..command) local own_num = meta:get_string("node_number") local num, cmnd, payload = command:match('^cmd%s+([0-9]+)%s+(%w+)%s*(.*)$') @@ -206,24 +188,34 @@ local function register_terminal(num, tiles, node_box, selection_box) on_receive_fields = function(pos, formname, fields, player) local meta = minetest.get_meta(pos) - local evt = minetest.explode_table_event(fields.output) - if evt.type == "DCL" then - local s = get_line_text(pos, evt.row) - meta:set_string("command", s) - meta:set_string("formspec", formspec2(meta)) - elseif (fields.key_enter == "true" or fields.ok) and fields.cmnd ~= "" then - command(pos, fields.cmnd, player:get_player_name()) - meta:set_string("command", "") - meta:set_string("formspec", formspec2(meta)) - elseif fields.bttn1 then send_cmnd(pos, meta, 1) - elseif fields.bttn2 then send_cmnd(pos, meta, 2) - elseif fields.bttn3 then send_cmnd(pos, meta, 3) - elseif fields.bttn4 then send_cmnd(pos, meta, 4) - elseif fields.bttn5 then send_cmnd(pos, meta, 5) - elseif fields.bttn6 then send_cmnd(pos, meta, 6) - elseif fields.bttn7 then send_cmnd(pos, meta, 7) - elseif fields.bttn8 then send_cmnd(pos, meta, 8) - elseif fields.bttn9 then send_cmnd(pos, meta, 9) + local public = meta:get_int("public") == 1 + local protected = minetest.is_protected(pos, player:get_player_name()) + + if not protected then + local evt = minetest.explode_table_event(fields.output) + if evt.type == "DCL" then + local s = get_line_text(pos, evt.row) + meta:set_string("command", s) + meta:set_string("formspec", formspec2(meta)) + return + elseif (fields.key_enter == "true" or fields.ok) and fields.cmnd ~= "" then + command(pos, fields.cmnd, player:get_player_name()) + meta:set_string("command", "") + meta:set_string("formspec", formspec2(meta)) + return + end + end + if public or not protected then + if fields.bttn1 then send_cmnd(pos, meta, 1) + elseif fields.bttn2 then send_cmnd(pos, meta, 2) + elseif fields.bttn3 then send_cmnd(pos, meta, 3) + elseif fields.bttn4 then send_cmnd(pos, meta, 4) + elseif fields.bttn5 then send_cmnd(pos, meta, 5) + elseif fields.bttn6 then send_cmnd(pos, meta, 6) + elseif fields.bttn7 then send_cmnd(pos, meta, 7) + elseif fields.bttn8 then send_cmnd(pos, meta, 8) + elseif fields.bttn9 then send_cmnd(pos, meta, 9) + end end end, diff --git a/manuals/manual_ta3_DE.md b/manuals/manual_ta3_DE.md index e51f4d2..0c80684 100644 --- a/manuals/manual_ta3_DE.md +++ b/manuals/manual_ta3_DE.md @@ -590,7 +590,7 @@ Das Terminal besitzt folgende, lokalen Kommandos: - `pub` schalte in den öffentlichen Modus um - `priv` schalte in den privaten Modus um -Im privaten Modul kann nur der Besitzer selbst Kommandos eingeben oder Tasten nutzen. +Im privaten Modus (private) kann das Terminal nur von Spielern verwendet werden, die an diesem Ort bauen können, also Protection Rechte besitzen. Im öffentlichen Modus (public) können alle Spieler die vorkonfigurierten Tasten verwenden. [ta3_terminal|image] diff --git a/manuals/manual_ta3_EN.md b/manuals/manual_ta3_EN.md index afb2212..240bd84 100644 --- a/manuals/manual_ta3_EN.md +++ b/manuals/manual_ta3_EN.md @@ -579,7 +579,9 @@ The terminal has the following local commands: - `pub` switch to public mode - `priv` switch to private mode -In the private mode, only the owner can enter commands himself or use keys. +In private mode, the terminal can only be used by players who can build at this location, i.e. who have protection rights. + +In public mode, all players can use the preconfigured keys. [ta3_terminal|image]