aboutsummaryrefslogtreecommitdiff
path: root/src/porting.cpp
blob: 023f0cca7d431d20377ee65564eec7a4d661c528 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
/*
Minetest
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

/*
	Random portability stuff

	See comments in porting.h
*/

#include "porting.h"

#if defined(__FreeBSD__)
	#include <sys/types.h>
	#include <sys/sysctl.h>
#elif defined(_WIN32)
	#include <windows.h>
	#include <wincrypt.h>
	#include <algorithm>
#endif
#if !defined(_WIN32)
	#include <unistd.h>
	#include <sys/utsname.h>
#endif
#if defined(__hpux)
	#define _PSTAT64
	#include <sys/pstat.h>
#endif
#if !defined(_WIN32) && !defined(__APPLE__) && \
	!defined(__ANDROID__) && !defined(SERVER)
	#define XORG_USED
#endif
#ifdef XORG_USED
	#include <X11/Xlib.h>
	#include <X11/Xutil.h>
#endif

#include "config.h"
#include "debug.h"
#include "filesys.h"
#include "log.h"
#include "util/string.h"
#include "settings.h"
#include <list>

namespace porting
{

/*
	Signal handler (grabs Ctrl-C on POSIX systems)
*/

bool g_killed = false;

bool * signal_handler_killstatus(void)
{
	return &g_killed;
}

#if !defined(_WIN32) // POSIX
	#include <signal.h>

void signal_handler(int sig)
{
	if (!g_killed) {
		if (sig == SIGINT) {
			dstream << "INFO: signal_handler(): "
				<< "Ctrl-C pressed, shutting down." << std::endl;
		} else if (sig == SIGTERM) {
			dstream << "INFO: signal_handler(): "
				<< "got SIGTERM, shutting down." << std::endl;
		}

		// Comment out for less clutter when testing scripts
		/*dstream << "INFO: sigint_handler(): "
				<< "Printing debug stacks" << std::endl;
		debug_stacks_print();*/

		g_killed = true;
	} else {
		(void)signal(sig, SIG_DFL);
	}
}

void signal_handler_init(void)
{
	(void)signal(SIGINT, signal_handler);
	(void)signal(SIGTERM, signal_handler);
}

#else // _WIN32
	#include <signal.h>

BOOL WINAPI event_handler(DWORD sig)
{
	switch (sig) {
	case CTRL_C_EVENT:
	case CTRL_CLOSE_EVENT:
	case CTRL_LOGOFF_EVENT:
	case CTRL_SHUTDOWN_EVENT:
		if (!g_killed) {
			dstream << "INFO: event_handler(): "
				<< "Ctrl+C, Close Event, Logoff Event or Shutdown Event,"
				" shutting down." << std::endl;
			g_killed = true;
		} else {
			(void)signal(SIGINT, SIG_DFL);
		}
		break;
	case CTRL_BREAK_EVENT:
		break;
	}

	return TRUE;
}

void signal_handler_init(void)
{
	SetConsoleCtrlHandler((PHANDLER_ROUTINE)event_handler, TRUE);
}

#endif


/*
	Path mangler
*/

// Default to RUN_IN_PLACE style relative paths
std::string path_share = "..";
std::string path_user = "..";
std::string path_locale = path_share + DIR_DELIM + "locale";
std::string path_cache = path_user + DIR_DELIM + "cache";


std::string getDataPath(const char *subpath)
{
	return path_share + DIR_DELIM + subpath;
}

void pathRemoveFile(char *path, char delim)
{
	// Remove filename and path delimiter
	int i;
	for(i = strlen(path)-1; i>=0; i--)
	{
		if(path[i] == delim)
			break;
	}
	path[i] = 0;
}

bool detectMSVCBuildDir(const std::string &path)
{
	const char *ends[] = {
		"bin\\Release",
		"bin\\MinSizeRel",
		"bin\\RelWithDebInfo",
		"bin\\Debug",
		"bin\\Build",
		NULL
	};
	return (removeStringEnd(path, ends) != "");
}

std::string get_sysinfo()
{
#ifdef _WIN32
	OSVERSIONINFO osvi;
	std::ostringstream oss;
	std::string tmp;
	ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
	GetVersionEx(&osvi);
	tmp = osvi.szCSDVersion;
	std::replace(tmp.begin(), tmp.end(), ' ', '_');

	oss << "Windows/" << osvi.dwMajorVersion << "."
		<< osvi.dwMinorVersion;
	if (osvi.szCSDVersion[0])
		oss << "-" << tmp;
	oss << " ";
	#ifdef _WIN64
	oss << "x86_64";
	#else
	BOOL is64 = FALSE;
	if (IsWow64Process(GetCurrentProcess(), &is64) && is64)
		oss << "x86_64"; // 32-bit app on 64-bit OS
	else
		oss << "x86";
	#endif

	return oss.str();
#else
	struct utsname osinfo;
	uname(&osinfo);
	return std::string(osinfo.sysname) + "/"
		+ osinfo.release + " " + osinfo.machine;
#endif
}


bool getCurrentWorkingDir(char *buf, size_t len)
{
#ifdef _WIN32
	DWORD ret = GetCurrentDirectory(len, buf);
	return (ret != 0) && (ret <= len);
#else
	return getcwd(buf, len);
#endif
}


bool getExecPathFromProcfs(char *buf, size_t buflen)
{
#ifndef _WIN32
	buflen--;

	ssize_t len;
	if ((len = readlink("/proc/self/exe",     buf, buflen)) == -1 &&
		(len = readlink("/proc/curproc/file", buf, buflen)) == -1 &&
		(len = readlink("/proc/curproc/exe",  buf, buflen)) == -1)
		return false;

	buf[len] = '\0';
	return true;
#else
	return false;
#endif
}

//// Windows
#if defined(_WIN32)

bool getCurrentExecPath(char *buf, size_t len)
{
	DWORD written = GetModuleFileNameA(NULL, buf, len);
	if (written == 0 || written == len)
		return false;

	return true;
}


//// Linux
#elif defined(__linux__)

bool getCurrentExecPath(char *buf, size_t len)
{
	if (!getExecPathFromProcfs(buf, len))
		return false;

	return true;
}


//// Mac OS X, Darwin
#elif defined(__APPLE__)

bool getCurrentExecPath(char *buf, size_t len)
{
	uint32_t lenb = (uint32_t)len;
	if (_NSGetExecutablePath(buf, &lenb) == -1)
		return false;

	return true;
}


//// FreeBSD, NetBSD, DragonFlyBSD
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)

bool getCurrentExecPath(char *buf, size_t len)
{
	// Try getting path from procfs first, since valgrind
	// doesn't work with the latter
	if (getExecPathFromProcfs(buf, len))
		return true;

	int mib[4];

	mib[0] = CTL_KERN;
	mib[1] = KERN_PROC;
	mib[2] = KERN_PROC_PATHNAME;
	mib[3] = -1;

	if (sysctl(mib, 4, buf, &len, NULL, 0) == -1)
		return false;

	return true;
}


//// Solaris
#elif defined(__sun) || defined(sun)

bool getCurrentExecPath(char *buf, size_t len)
{
	const char *exec = getexecname();
	if (exec == NULL)
		return false;

	if (strlcpy(buf, exec, len) >= len)
		return false;

	return true;
}


// HP-UX
#elif defined(__hpux)

bool getCurrentExecPath(char *buf, size_t len)
{
	struct pst_status psts;

	if (pstat_getproc(&psts, sizeof(psts), 0, getpid()) == -1)
		return false;

	if (pstat_getpathname(buf, len, &psts.pst_fid_text) == -1)
		return false;

	return true;
}


#else

bool getCurrentExecPath(char *buf, size_t len)
{
	return false;
}

#endif


//// Windows
#if defined(_WIN32)

bool setSystemPaths()
{
	char buf[BUFSIZ];

	// Find path of executable and set path_share relative to it
	FATAL_ERROR_IF(!getCurrentExecPath(buf, sizeof(buf)),
		"Failed to get current executable path");
	pathRemoveFile(buf, '\\');

	// Use ".\bin\.."
	path_share = std::string(buf) + "\\..";

	// Use "C:\Documents and Settings\user\Application Data\<PROJECT_NAME>"
	DWORD len = GetEnvironmentVariable("APPDATA", buf, sizeof(buf));
	FATAL_ERROR_IF(len == 0 || len > sizeof(buf), "Failed to get APPDATA");

	path_user = std::string(buf) + DIR_DELIM + PROJECT_NAME;
	return true;
}


//// Linux
#elif defined(__linux__)

bool setSystemPaths()
{
	char buf[BUFSIZ];

	if (!getCurrentExecPath(buf, sizeof(buf))) {
#ifdef __ANDROID__
		errorstream << "Unable to read bindir "<< std::endl;
#else
		FATAL_ERROR("Unable to read bindir");
#endif
		return false;
	}

	pathRemoveFile(buf, '/');
	std::string bindir(buf);

	// Find share directory from these.
	// It is identified by containing the subdirectory "builtin".
	std::list<std::string> trylist;
	std::string static_sharedir = STATIC_SHAREDIR;
	if (static_sharedir != "" && static_sharedir != ".")
		trylist.push_back(static_sharedir);

	trylist.push_back(bindir + DIR_DELIM ".." DIR_DELIM "share"
		DIR_DELIM + PROJECT_NAME);
	trylist.push_back(bindir + DIR_DELIM "..");

#ifdef __ANDROID__
	trylist.push_back(path_user);
#endif

	for (std::list<std::string>::const_iterator
			i = trylist.begin(); i != trylist.end(); i++) {
		const std::string &trypath = *i;
		if (!fs::PathExists(trypath) ||
			!fs::PathExists(trypath + DIR_DELIM + "builtin")) {
			warningstream << "system-wide share not found at \""
					<< trypath << "\""<< std::endl;
			continue;
		}

		// Warn if was not the first alternative
		if (i != trylist.begin()) {
			warningstream << "system-wide share found at \""
					<< trypath << "\"" << std::endl;
		}

		path_share = trypath;
		break;
	}

#ifndef __ANDROID__
	path_user = std::string(getenv("HOME")) + DIR_DELIM "."
		+ PROJECT_NAME;
#endif

	return true;
}


//// Mac OS X
#elif defined(__APPLE__)

bool setSystemPaths()
{
	CFBundleRef main_bundle = CFBundleGetMainBundle();
	CFURLRef resources_url = CFBundleCopyResourcesDirectoryURL(main_bundle);
	char path[PATH_MAX];
	if (CFURLGetFileSystemRepresentation(resources_url,
			TRUE, (UInt8 *)path, PATH_MAX)) {
		path_share = std::string(path);
	} else {
		warningstream << "Could not determine bundle resource path" << std::endl;
	}
	CFRelease(resources_url);

	path_user = std::string(getenv("HOME"))
		+ "/Library/Application Support/"
		+ PROJECT_NAME;
	return true;
}


#else

bool setSystemPaths()
{
	path_share = STATIC_SHAREDIR;
	path_user  = std::string(getenv("HOME")) + DIR_DELIM "."
		+ lowercase(PROJECT_NAME);
	return true;
}


#endif

void migrateCachePath()
{
	const std::string local_cache_path = path_user + DIR_DELIM + "cache";

	// Delete tmp folder if it exists (it only ever contained
	// a temporary ogg file, which is no longer used).
	if (fs::PathExists(local_cache_path + DIR_DELIM + "tmp"))
		fs::RecursiveDelete(local_cache_path + DIR_DELIM + "tmp");

	// Bail if migration impossible
	if (path_cache == local_cache_path || !fs::PathExists(local_cache_path)
			|| fs::PathExists(path_cache)) {
		return;
	}
	if (!fs::Rename(local_cache_path, path_cache)) {
		errorstream << "Failed to migrate local cache path "
			"to system path!" << std::endl;
	}
}

void initializePaths()
{
#if RUN_IN_PLACE
	char buf[BUFSIZ];

	infostream << "Using relative paths (RUN_IN_PLACE)" << std::endl;

	bool success =
		getCurrentExecPath(buf, sizeof(buf)) ||
		getExecPathFromProcfs(buf, sizeof(buf));

	if (success) {
		pathRemoveFile(buf, DIR_DELIM_CHAR);
		std::string execpath(buf);

		path_share = execpath + DIR_DELIM "..";
		path_user  = execpath + DIR_DELIM "..";

		if (detectMSVCBuildDir(execpath)) {
			path_share += DIR_DELIM "..";
			path_user  += DIR_DELIM "..";
		}
	} else {
		errorstream << "Failed to get paths by executable location, "
			"trying cwd" << std::endl;

		if (!getCurrentWorkingDir(buf, sizeof(buf)))
			FATAL_ERROR("Ran out of methods to get paths");

		size_t cwdlen = strlen(buf);
		if (cwdlen >= 1 && buf[cwdlen - 1] == DIR_DELIM_CHAR) {
			cwdlen--;
			buf[cwdlen] = '\0';
		}

		if (cwdlen >= 4 && !strcmp(buf + cwdlen - 4, DIR_DELIM "bin"))
			pathRemoveFile(buf, DIR_DELIM_CHAR);

		std::string execpath(buf);

		path_share = execpath;
		path_user  = execpath;
	}
	path_cache = path_user + DIR_DELIM + "cache";
#else
	infostream << "Using system-wide paths (NOT RUN_IN_PLACE)" << std::endl;

	if (!setSystemPaths())
		errorstream << "Failed to get one or more system-wide path" << std::endl;

	// Initialize path_cache
	// First try $XDG_CACHE_HOME/PROJECT_NAME
	const char *cache_dir = getenv("XDG_CACHE_HOME");
	const char *home_dir = getenv("HOME");
	if (cache_dir) {
		path_cache = std::string(cache_dir) + DIR_DELIM + PROJECT_NAME;
	} else if (home_dir) {
		// Then try $HOME/.cache/PROJECT_NAME
		path_cache = std::string(home_dir) + DIR_DELIM + ".cache"
			+ DIR_DELIM + PROJECT_NAME;
	} else {
		// If neither works, use $PATH_USER/cache
		path_cache = path_user + DIR_DELIM + "cache";
	}
	// Migrate cache folder to new location if possible
	migrateCachePath();
#endif

	infostream << "Detected share path: " << path_share << std::endl;
	infostream << "Detected user path: " << path_user << std::endl;
	infostream << "Detected cache path: " << path_cache << std::endl;

#ifdef USE_GETTEXT
	bool found_localedir = false;
#  ifdef STATIC_LOCALEDIR
	if (STATIC_LOCALEDIR[0] && fs::PathExists(STATIC_LOCALEDIR)) {
		found_localedir = true;
		path_locale = STATIC_LOCALEDIR;
		infostream << "Using locale directory " << STATIC_LOCALEDIR << std::endl;
	} else {
		path_locale = getDataPath("locale");
		if (fs::PathExists(path_locale)) {
			found_localedir = true;
			infostream << "Using in-place locale directory " << path_locale
				<< " even though a static one was provided "
				<< "(RUN_IN_PLACE or CUSTOM_LOCALEDIR)." << std::endl;
		}
	}
#  else
	path_locale = getDataPath("locale");
	if (fs::PathExists(path_locale)) {
		found_localedir = true;
	}
#  endif
	if (!found_localedir) {
		warningstream << "Couldn't find a locale directory!" << std::endl;
	}
#endif  // USE_GETTEXT
}



void setXorgClassHint(const video::SExposedVideoData &video_data,
	const std::string &name)
{
#ifdef XORG_USED
	if (video_data.OpenGLLinux.X11Display == NULL)
		return;

	XClassHint *classhint = XAllocClassHint();
	classhint->res_name  = (char *)name.c_str();
	classhint->res_class = (char *)name.c_str();

	XSetClassHint((Display *)video_data.OpenGLLinux.X11Display,
		video_data.OpenGLLinux.X11Window, classhint);
	XFree(classhint);
#endif
}

bool setXorgWindowIcon(IrrlichtDevice *device)
{
#ifdef XORG_USED
#	if RUN_IN_PLACE
	return setXorgWindowIconFromPath(device,
			path_share + "/misc/" PROJECT_NAME "-xorg-icon-128.png");
#	else
	// We have semi-support for reading in-place data if we are
	// compiled with RUN_IN_PLACE. Don't break with this and
	// also try the path_share location.
	return
		setXorgWindowIconFromPath(device,
			ICON_DIR "/hicolor/128x128/apps/" PROJECT_NAME ".png") ||
		setXorgWindowIconFromPath(device,
			path_share + "/misc/" PROJECT_NAME "-xorg-icon-128.png");
#	endif
#else
	return false;
#endif
}

bool setXorgWindowIconFromPath(IrrlichtDevice *device,
	const std::string &icon_file)
{
#ifdef XORG_USED

	video::IVideoDriver *v_driver = device->getVideoDriver();

	video::IImageLoader *image_loader = NULL;
	u32 cnt = v_driver->getImageLoaderCount();
	for (u32 i = 0; i < cnt; i++) {
		if (v_driver->getImageLoader(i)->isALoadableFileExtension(icon_file.c_str())) {
			image_loader = v_driver->getImageLoader(i);
			break;
		}
	}

	if (!image_loader) {
		warningstream << "Could not find image loader for file '"
			<< icon_file << "'" << std::endl;
		return false;
	}

	io::IReadFile *icon_f = device->getFileSystem()->createAndOpenFile(icon_file.c_str());

	if (!icon_f) {
		warningstream << "Could not load icon file '"
			<< icon_file << "'" << std::endl;
		return false;
	}

	video::IImage *img = image_loader->loadImage(icon_f);

	if (!img) {
		warningstream << "Could not load icon file '"
			<< icon_file << "'" << std::endl;
		icon_f->drop();
		return false;
	}

	u32 height = img->getDimension().Height;
	u32 width = img->getDimension().Width;

	size_t icon_buffer_len = 2 + height * width;
	long *icon_buffer = new long[icon_buffer_len];

	icon_buffer[0] = width;
	icon_buffer[1] = height;

	for (u32 x = 0; x < width; x++) {
		for (u32 y = 0; y < height; y++) {
			video::SColor col = img->getPixel(x, y);
			long pixel_val = 0;
			pixel_val |= (u8)col.getAlpha() << 24;
			pixel_val |= (u8)col.getRed() << 16;
			pixel_val |= (u8)col.getGreen() << 8;
			pixel_val |= (u8)col.getBlue();
			icon_buffer[2 + x + y * width] = pixel_val;
		}
	}

	img->drop();
	icon_f->drop();

	const video::SExposedVideoData &video_data = v_driver->getExposedVideoData();

	Display *x11_dpl = (Display *)video_data.OpenGLLinux.X11Display;

	if (x11_dpl == NULL) {
		warningstream << "Could not find x11 display for setting its icon."
			<< std::endl;
		delete [] icon_buffer;
		return false;
	}

	Window x11_win = (Window)video_data.OpenGLLinux.X11Window;

	Atom net_wm_icon = XInternAtom(x11_dpl, "_NET_WM_ICON", False);
	Atom cardinal = XInternAtom(x11_dpl, "CARDINAL", False);
	XChangeProperty(x11_dpl, x11_win,
		net_wm_icon, cardinal, 32,
		PropModeReplace, (const unsigned char *)icon_buffer,
		icon_buffer_len);

	delete [] icon_buffer;

#endif
	return true;
}

////
//// Video/Display Information (Client-only)
////

#ifndef SERVER

static irr::IrrlichtDevice *device;

void initIrrlicht(irr::IrrlichtDevice *device_)
{
	device = device_;
}

v2u32 getWindowSize()
{
	return device->getVideoDriver()->getScreenSize();
}


std::vector<core::vector3d<u32> > getSupportedVideoModes()
{
	IrrlichtDevice *nulldevice = createDevice(video::EDT_NULL);
	sanity_check(nulldevice != NULL);

	std::vector<core::vector3d<u32> > mlist;
	video::IVideoModeList *modelist = nulldevice->getVideoModeList();

	u32 num_modes = modelist->getVideoModeCount();
	for (u32 i = 0; i != num_modes; i++) {
		core::dimension2d<u32> mode_res = modelist->getVideoModeResolution(i);
		s32 mode_depth = modelist->getVideoModeDepth(i);
		mlist.push_back(core::vector3d<u32>(mode_res.Width, mode_res.Height, mode_depth));
	}

	nulldevice->drop();

	return mlist;
}

std::vector<irr::video::E_DRIVER_TYPE> getSupportedVideoDrivers()
{
	std::vector<irr::video::E_DRIVER_TYPE> drivers;

	for (int i = 0; i != irr::video::EDT_COUNT; i++) {
		if (irr::IrrlichtDevice::isDriverSupported((irr::video::E_DRIVER_TYPE)i))
			drivers.push_back((irr::video::E_DRIVER_TYPE)i);
	}

	return drivers;
}

const char *getVideoDriverName(irr::video::E_DRIVER_TYPE type)
{
	static const char *driver_ids[] = {
		"null",
		"software",
		"burningsvideo",
		"direct3d8",
		"direct3d9",
		"opengl",
		"ogles1",
		"ogles2",
	};

	return driver_ids[type];
}


const char *getVideoDriverFriendlyName(irr::video::E_DRIVER_TYPE type)
{
	static const char *driver_names[] = {
		"NULL Driver",
		"Software Renderer",
		"Burning's Video",
		"Direct3D 8",
		"Direct3D 9",
		"OpenGL",
		"OpenGL ES1",
		"OpenGL ES2",
	};

	return driver_names[type];
}

#	ifndef __ANDROID__
#		ifdef XORG_USED

static float calcDisplayDensity()
{
	const char *current_display = getenv("DISPLAY");

	if (current_display != NULL) {
		Display *x11display = XOpenDisplay(current_display);

		if (x11display != NULL) {
			/* try x direct */
			float dpi_height = floor(DisplayHeight(x11display, 0) /
							(DisplayHeightMM(x11display, 0) * 0.039370) + 0.5);
			float dpi_width = floor(DisplayWidth(x11display, 0) /
							(DisplayWidthMM(x11display, 0) * 0.039370) + 0.5);

			XCloseDisplay(x11display);

			return std::max(dpi_height,dpi_width) / 96.0;
		}
	}

	/* return manually specified dpi */
	return g_settings->getFloat("screen_dpi")/96.0;
}


float getDisplayDensity()
{
	static float cached_display_density = calcDisplayDensity();
	return cached_display_density;
}


#		else // XORG_USED
float getDisplayDensity()
{
	return g_settings->getFloat("screen_dpi")/96.0;
}
#		endif // XORG_USED

v2u32 getDisplaySize()
{
	IrrlichtDevice *nulldevice = createDevice(video::EDT_NULL);

	core::dimension2d<u32> deskres = nulldevice->getVideoModeList()->getDesktopResolution();
	nulldevice -> drop();

	return deskres;
}
#	endif // __ANDROID__
#endif // SERVER


////
//// OS-specific Secure Random
////

#ifdef WIN32

bool secure_rand_fill_buf(void *buf, size_t len)
{
	HCRYPTPROV wctx;

	if (!CryptAcquireContext(&wctx, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
		return false;

	CryptGenRandom(wctx, len, (BYTE *)buf);
	CryptReleaseContext(wctx, 0);
	return true;
}

#else

bool secure_rand_fill_buf(void *buf, size_t len)
{
	// N.B.  This function checks *only* for /dev/urandom, because on most
	// common OSes it is non-blocking, whereas /dev/random is blocking, and it
	// is exceptionally uncommon for there to be a situation where /dev/random
	// exists but /dev/urandom does not.  This guesswork is necessary since
	// random devices are not covered by any POSIX standard...
	FILE *fp = fopen("/dev/urandom", "rb");
	if (!fp)
		return false;

	bool success = fread(buf, len, 1, fp) == 1;

	fclose(fp);
	return success;
}

#endif

} //namespace porting
334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792
# German translations for minetest-c55 package.
# Copyright (C) 2011 celeron
# This file is distributed under the same license as the minetest-c55 package.
# Frederik Helth <Guides@live.dk>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: 0.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-08 21:23+0100\n"
"PO-Revision-Date: 2013-02-17 00:41+0200\n"
"Last-Translator: Rune Biskopstö Christensen <lakersforce@gmail.com>\n"
"Language-Team: \n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Weblate 1.4-dev\n"

#: builtin/fstk/ui.lua
msgid "An error occured in a Lua script, such as a mod:"
msgstr ""

#: builtin/fstk/ui.lua
msgid "An error occured:"
msgstr ""

#: builtin/fstk/ui.lua
#, fuzzy
msgid "Main menu"
msgstr "Hovedmenu"

#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
msgid "Ok"
msgstr ""

#: builtin/fstk/ui.lua
#, fuzzy
msgid "Reconnect"
msgstr "Forbind"

#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
msgstr ""

#: builtin/mainmenu/common.lua src/game.cpp
msgid "Loading..."
msgstr ""

#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr ""

#: builtin/mainmenu/common.lua
msgid "Server enforces protocol version $1. "
msgstr ""

#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
msgstr ""

#: builtin/mainmenu/common.lua
msgid "Try reenabling public serverlist and check your internet connection."
msgstr ""

#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr ""

#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua builtin/mainmenu/tab_settings.lua
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Cancel"
msgstr "Anuller"

#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua
#, fuzzy
msgid "Depends:"
msgstr "afhænger af:"

#: builtin/mainmenu/dlg_config_world.lua
#, fuzzy
msgid "Disable MP"
msgstr "Deaktivér alle"

#: builtin/mainmenu/dlg_config_world.lua
#, fuzzy
msgid "Enable MP"
msgstr "Aktivér alle"

#: builtin/mainmenu/dlg_config_world.lua
#, fuzzy
msgid "Enable all"
msgstr "Aktivér alle"

#: builtin/mainmenu/dlg_config_world.lua
msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"chararacters [a-z0-9_] are allowed."
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua
#, fuzzy
msgid "Hide Game"
msgstr "Spil"

#: builtin/mainmenu/dlg_config_world.lua
msgid "Hide mp content"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_settings.lua
#: src/guiKeyChangeMenu.cpp
msgid "Save"
msgstr "Gem"

#: builtin/mainmenu/dlg_config_world.lua
#, fuzzy
msgid "World:"
msgstr "Vælg verden:"

#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
msgstr "aktiveret"

#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
msgid "A world named \"$1\" already exists"
msgstr "Kan ikke skabe verden: en verden med dette navn eksisterer allerede"

#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Skab"

#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a subgame, such as minetest_game, from minetest.net"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
msgstr "Spil"

#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua
msgid "Warning: The minimal development test is meant for developers."
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
msgstr "Verdens navn"

#: builtin/mainmenu/dlg_create_world.lua
msgid "You have no subgames installed."
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua
msgid "Are you sure you want to delete \"$1\"?"
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua
msgid "Modmgr: failed to delete \"$1\""
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua
msgid "Modmgr: invalid modpath \"$1\""
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua
msgid "No of course not!"
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_delete_world.lua
msgid "Yes"
msgstr "Ja"

#: builtin/mainmenu/dlg_delete_world.lua
#, fuzzy
msgid "Delete World \"$1\"?"
msgstr "Slet verden"

#: builtin/mainmenu/dlg_delete_world.lua
msgid "No"
msgstr "Nej"

#: builtin/mainmenu/dlg_rename_modpack.lua src/keycode.cpp
msgid "Accept"
msgstr "Accepter"

#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Rename Modpack:"
msgstr ""

#: builtin/mainmenu/modmgr.lua
msgid ""
"\n"
"Install Mod: unsupported filetype \"$1\" or broken archive"
msgstr ""

#: builtin/mainmenu/modmgr.lua
#, fuzzy
msgid "Failed to install $1 to $2"
msgstr "Mislykkedes i at initialisere verden"

#: builtin/mainmenu/modmgr.lua
msgid "Install Mod: file: \"$1\""
msgstr ""

#: builtin/mainmenu/modmgr.lua
msgid "Install Mod: unable to find real modname for: $1"
msgstr ""

#: builtin/mainmenu/modmgr.lua
msgid "Install Mod: unable to find suitable foldername for modpack $1"
msgstr ""

#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr ""

#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr ""

#: builtin/mainmenu/store.lua
msgid "Install"
msgstr ""

#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr ""

#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr ""

#: builtin/mainmenu/store.lua
msgid "Search"
msgstr ""

#: builtin/mainmenu/store.lua
#, fuzzy
msgid "Shortname:"
msgstr "Verdens navn"

#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr ""

#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr ""

#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr ""

#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr ""

#: builtin/mainmenu/tab_credits.lua
msgid "Core Developers"
msgstr ""

#: builtin/mainmenu/tab_credits.lua
msgid "Credits"
msgstr "Skabt af"

#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""

#: builtin/mainmenu/tab_credits.lua
msgid "Previous Core Developers"
msgstr ""

#: builtin/mainmenu/tab_mods.lua
msgid "Installed Mods:"
msgstr ""

#: builtin/mainmenu/tab_mods.lua
msgid "Mod information:"
msgstr ""

#: builtin/mainmenu/tab_mods.lua builtin/mainmenu/tab_settings.lua
msgid "Mods"
msgstr ""

#: builtin/mainmenu/tab_mods.lua
msgid "No mod description available"
msgstr ""

#: builtin/mainmenu/tab_mods.lua
msgid "Rename"
msgstr ""

#: builtin/mainmenu/tab_mods.lua
#, fuzzy
msgid "Select Mod File:"
msgstr "Vælg verden:"

#: builtin/mainmenu/tab_mods.lua
msgid "Uninstall selected mod"
msgstr ""

#: builtin/mainmenu/tab_mods.lua
msgid "Uninstall selected modpack"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua
#, fuzzy
msgid "Address / Port :"
msgstr "Adresse/port"

#: builtin/mainmenu/tab_multiplayer.lua src/settings_translation_file.cpp
msgid "Client"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua builtin/mainmenu/tab_simple_main.lua
msgid "Connect"
msgstr "Forbind"

#: builtin/mainmenu/tab_multiplayer.lua builtin/mainmenu/tab_simple_main.lua
#, fuzzy
msgid "Creative mode"
msgstr "Kreativ tilstand"

#: builtin/mainmenu/tab_multiplayer.lua builtin/mainmenu/tab_simple_main.lua
#, fuzzy
msgid "Damage enabled"
msgstr "aktiveret"

#: builtin/mainmenu/tab_multiplayer.lua builtin/mainmenu/tab_server.lua
#: builtin/mainmenu/tab_singleplayer.lua src/keycode.cpp
msgid "Delete"
msgstr "Slet"

#: builtin/mainmenu/tab_multiplayer.lua
#, fuzzy
msgid "Name / Password :"
msgstr "Navn/kodeord"

#: builtin/mainmenu/tab_multiplayer.lua builtin/mainmenu/tab_simple_main.lua
msgid "Public Serverlist"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua builtin/mainmenu/tab_simple_main.lua
#, fuzzy
msgid "PvP enabled"
msgstr "aktiveret"

#: builtin/mainmenu/tab_server.lua
msgid "Bind Address"
msgstr ""

#: builtin/mainmenu/tab_server.lua builtin/mainmenu/tab_singleplayer.lua
msgid "Configure"
msgstr "Konfigurér"

#: builtin/mainmenu/tab_server.lua builtin/mainmenu/tab_simple_main.lua
#: builtin/mainmenu/tab_singleplayer.lua
msgid "Creative Mode"
msgstr "Kreativ tilstand"

#: builtin/mainmenu/tab_server.lua builtin/mainmenu/tab_simple_main.lua
#: builtin/mainmenu/tab_singleplayer.lua
msgid "Enable Damage"
msgstr "Aktivér skade"

#: builtin/mainmenu/tab_server.lua builtin/mainmenu/tab_simple_main.lua
msgid "Name/Password"
msgstr "Navn/kodeord"

#: builtin/mainmenu/tab_server.lua builtin/mainmenu/tab_singleplayer.lua
msgid "New"
msgstr "Ny"

#: builtin/mainmenu/tab_server.lua builtin/mainmenu/tab_singleplayer.lua
msgid "No world created or selected!"
msgstr ""

#: builtin/mainmenu/tab_server.lua
msgid "Port"
msgstr ""

#: builtin/mainmenu/tab_server.lua
#, fuzzy
msgid "Public"
msgstr "Vis offentlig"

#: builtin/mainmenu/tab_server.lua builtin/mainmenu/tab_singleplayer.lua
msgid "Select World:"
msgstr "Vælg verden:"

#: builtin/mainmenu/tab_server.lua
msgid "Server"
msgstr ""

#: builtin/mainmenu/tab_server.lua
msgid "Server Port"
msgstr ""

#: builtin/mainmenu/tab_server.lua
#, fuzzy
msgid "Start Game"
msgstr "Start spil / Forbind"

#: builtin/mainmenu/tab_settings.lua
msgid "\"$1\" is not a valid flag."
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "(No description of setting given)"
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "Browse"
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "Change keys"
msgstr "Skift bindinger"

#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Disabled"
msgstr "Deaktivér alle"

#: builtin/mainmenu/tab_settings.lua
msgid "Edit"
msgstr ""

#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Enabled"
msgstr "aktiveret"

#: builtin/mainmenu/tab_settings.lua
msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgstr ""

#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Games"
msgstr "Spil"

#: builtin/mainmenu/tab_settings.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "Please enter a comma seperated list of flags."
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "Please enter a valid integer."
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "Please enter a valid number."
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "Possible values are: "
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "Restore Default"
msgstr ""

#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Select path"
msgstr "Vælg"

#: builtin/mainmenu/tab_settings.lua
msgid "Settings"
msgstr "Indstillinger"

#: builtin/mainmenu/tab_settings.lua
msgid "Show technical names"
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "The value must be greater than $1."
msgstr ""

#: builtin/mainmenu/tab_settings.lua
msgid "The value must be lower than $1."
msgstr ""

#: builtin/mainmenu/tab_simple_main.lua
#, fuzzy
msgid "Config mods"
msgstr "Konfigurér"

#: builtin/mainmenu/tab_simple_main.lua
#, fuzzy
msgid "Main"
msgstr "Hovedmenu"

#: builtin/mainmenu/tab_simple_main.lua
#, fuzzy
msgid "Start Singleplayer"
msgstr "Enligspiller"

#: builtin/mainmenu/tab_singleplayer.lua src/keycode.cpp
msgid "Play"
msgstr "Afspil"

#: builtin/mainmenu/tab_singleplayer.lua
msgid "Singleplayer"
msgstr "Enligspiller"

#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr ""

#: builtin/mainmenu/tab_texturepacks.lua
msgid "None"
msgstr ""

#: builtin/mainmenu/tab_texturepacks.lua
msgid "Select texture pack:"
msgstr ""

#: builtin/mainmenu/tab_texturepacks.lua
msgid "Texturepacks"
msgstr ""

#: src/client.cpp
#, fuzzy
msgid "Connection timed out."
msgstr "Forbindelses fejl (udløbelse af tidsfrist?)"

#: src/client.cpp
msgid "Done!"
msgstr ""

#: src/client.cpp
msgid "Initializing nodes"
msgstr ""

#: src/client.cpp
msgid "Initializing nodes..."
msgstr ""

#: src/client.cpp
msgid "Item textures..."
msgstr ""

#: src/client.cpp
msgid "Loading textures..."
msgstr ""

#: src/client.cpp
msgid "Rebuilding shaders..."
msgstr ""

#: src/client/clientlauncher.cpp
msgid "Connection error (timed out?)"
msgstr "Forbindelses fejl (udløbelse af tidsfrist?)"

#: src/client/clientlauncher.cpp
msgid "Could not find or load game \""
msgstr "Kunne ikke finde eller indlæse spil \""

#: src/client/clientlauncher.cpp
msgid "Invalid gamespec."
msgstr "Ugyldig spilspecifikationer."

#: src/client/clientlauncher.cpp
msgid "Main Menu"
msgstr "Hovedmenu"

#: src/client/clientlauncher.cpp
msgid "No world selected and no address provided. Nothing to do."
msgstr "Ingen verden valgt og ingen adresse angivet. Ingen opgave at lave."

#: src/client/clientlauncher.cpp
msgid "Player name too long."
msgstr ""

#: src/client/clientlauncher.cpp
msgid "Provided world path doesn't exist: "
msgstr ""

#: src/fontengine.cpp
msgid "needs_fallback_font"
msgstr ""

#: src/game.cpp
msgid ""
"\n"
"Check debug.txt for details."
msgstr ""
"\n"
"Tjek debug.txt for detaljer."

#: src/game.cpp
#, fuzzy
msgid "Change Keys"
msgstr "Skift bindinger"

#: src/game.cpp
msgid "Change Password"
msgstr "Skift kodeord"

#: src/game.cpp
msgid "Connecting to server..."
msgstr ""

#: src/game.cpp
msgid "Continue"
msgstr "Fortsæt"

#: src/game.cpp
msgid "Creating client..."
msgstr ""

#: src/game.cpp
msgid "Creating server..."
msgstr ""

#: src/game.cpp
msgid ""
"Default Controls:\n"
"- WASD: move\n"
"- Space: jump/climb\n"
"- Shift: sneak/go down\n"
"- Q: drop item\n"
"- I: inventory\n"
"- Mouse: turn/look\n"
"- Mouse left: dig/punch\n"
"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- T: chat\n"
msgstr ""

#: src/game.cpp
msgid ""
"Default Controls:\n"
"No menu visible:\n"
"- single tap: button activate\n"
"- double tap: place/use\n"
"- slide finger: look around\n"
"Menu/Inventory visible:\n"
"- double tap (outside):\n"
" -->close\n"
"- touch stack, touch slot:\n"
" --> move stack\n"
"- touch&drag, tap 2nd finger\n"
" --> place single item to slot\n"
msgstr ""

#: src/game.cpp
msgid "Exit to Menu"
msgstr "Afslut til menu"

#: src/game.cpp
msgid "Exit to OS"
msgstr "Afslut til operativsystemet"

#: src/game.cpp
msgid "Item definitions..."
msgstr ""

#: src/game.cpp
msgid "KiB/s"
msgstr ""

#: src/game.cpp
msgid "Media..."
msgstr ""

#: src/game.cpp
msgid "MiB/s"
msgstr ""

#: src/game.cpp
msgid "Node definitions..."
msgstr ""

#: src/game.cpp src/guiFormSpecMenu.cpp
msgid "Proceed"
msgstr "Fortsæt"

#: src/game.cpp
msgid "Resolving address..."
msgstr ""

#: src/game.cpp
msgid "Respawn"
msgstr "Genopstå"

#: src/game.cpp
msgid "Shutting down..."
msgstr ""

#: src/game.cpp
msgid "Sound Volume"
msgstr ""

#: src/game.cpp
msgid "You died."
msgstr "Du døde."

#: src/guiFormSpecMenu.cpp
msgid "Enter "
msgstr ""

#: src/guiFormSpecMenu.cpp
msgid "ok"
msgstr ""

#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
msgstr "\"Brug\" = klatre ned"

#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Baglæns"

#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Snak"

#: src/guiKeyChangeMenu.cpp
msgid "Command"
msgstr "Kommando"

#: src/guiKeyChangeMenu.cpp
msgid "Console"
msgstr "Konsol"

#: src/guiKeyChangeMenu.cpp
msgid "Double tap \"jump\" to toggle fly"
msgstr ""
"Tryk på \"hop\" hurtigt to gange for at skifte frem og tilbage mellem flyve-"
"tilstand"

#: src/guiKeyChangeMenu.cpp
msgid "Drop"
msgstr "Slip"

#: src/guiKeyChangeMenu.cpp
msgid "Forward"
msgstr "Fremad"

#: src/guiKeyChangeMenu.cpp
msgid "Inventory"
msgstr "Beholdning"

#: src/guiKeyChangeMenu.cpp
msgid "Jump"
msgstr "Hop"

#: src/guiKeyChangeMenu.cpp
msgid "Key already in use"
msgstr "Tast allerede i brug"

#: src/guiKeyChangeMenu.cpp
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
msgstr ""
"Tastebindinger. (Hvis denne menu fucker op, fjern elementer fra minetest."
"conf)"

#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Left"
msgstr "Venstre"

#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Print stacks"
msgstr "Udskriv stakke"

#: src/guiKeyChangeMenu.cpp
msgid "Range select"
msgstr "Afstands vælg"

#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Right"
msgstr "Højre"

#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Snige"

#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle Cinematic"
msgstr "Omstil hurtig"

#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Omstil hurtig"

#: src/guiKeyChangeMenu.cpp
msgid "Toggle fly"
msgstr "Omstil flyvning"

#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr "Omstil fylde"

#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Brug"

#: src/guiKeyChangeMenu.cpp
msgid "press key"
msgstr "Tryk på en tast"

#: src/guiPasswordChange.cpp
msgid "Change"
msgstr "Skift"

#: src/guiPasswordChange.cpp
msgid "Confirm Password"
msgstr "Bekræft kodeord"

#: src/guiPasswordChange.cpp
msgid "New Password"
msgstr "Nyt kodeord"

#: src/guiPasswordChange.cpp
msgid "Old Password"
msgstr "Gammelt kodeord"

#: src/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Kodeordene er ikke ens!"

#: src/guiVolumeChange.cpp
msgid "Exit"
msgstr ""

#: src/guiVolumeChange.cpp
msgid "Sound Volume: "
msgstr ""

#: src/keycode.cpp
#, fuzzy
msgid "Apps"
msgstr "Applikationer"

#: src/keycode.cpp
msgid "Attn"
msgstr "Giv agt"

#: src/keycode.cpp
msgid "Back"
msgstr "Tilbage"

#: src/keycode.cpp
#, fuzzy
msgid "Capital"
msgstr "Store bogstaver"

#: src/keycode.cpp
msgid "Clear"
msgstr "Ryd"

#: src/keycode.cpp
msgid "Comma"
msgstr "Komma"

#: src/keycode.cpp
msgid "Control"
msgstr "Control"

#: src/keycode.cpp
msgid "Convert"
msgstr "Konvertér"

#: src/keycode.cpp
msgid "CrSel"
msgstr "CrSel"

#: src/keycode.cpp
msgid "Down"
msgstr "Ned"

#: src/keycode.cpp
msgid "End"
msgstr "End"

#: src/keycode.cpp
msgid "Erase OEF"
msgstr "Udvisk Slut-På-Fil"

#: src/keycode.cpp
msgid "Escape"
msgstr "Escape"

#: src/keycode.cpp
msgid "ExSel"
msgstr "ExSel"

#: src/keycode.cpp
msgid "Execute"
msgstr "Eksekvér"

#: src/keycode.cpp
msgid "Final"
msgstr "Endelig"

#: src/keycode.cpp
msgid "Help"
msgstr "Hjælp"

#: src/keycode.cpp
msgid "Home"
msgstr "Home"

#: src/keycode.cpp
msgid "Insert"
msgstr "Insert"

#: src/keycode.cpp
msgid "Junja"
msgstr "Junja"

#: src/keycode.cpp
msgid "Kana"
msgstr "Kana"

#: src/keycode.cpp
msgid "Kanji"
msgstr "Kanji"

#: src/keycode.cpp
msgid "Left Button"
msgstr "Venstre knap"

#: src/keycode.cpp
msgid "Left Control"
msgstr "Venstre Control"

#: src/keycode.cpp
msgid "Left Menu"
msgstr "Venstre Menu"

#: src/keycode.cpp
msgid "Left Shift"
msgstr "Venstre Skift"

#: src/keycode.cpp
msgid "Left Windows"
msgstr "Venstre meta"

#: src/keycode.cpp
msgid "Menu"
msgstr "Menu"

#: src/keycode.cpp
msgid "Middle Button"
msgstr "Midterste knap"

#: src/keycode.cpp
msgid "Minus"
msgstr "Minus"

#: src/keycode.cpp
msgid "Mode Change"
msgstr "Tilstandsskift"

#: src/keycode.cpp
msgid "Next"
msgstr "Næste"

#: src/keycode.cpp
msgid "Nonconvert"
msgstr "Nonconvert"

#: src/keycode.cpp
msgid "Num Lock"
msgstr "Num Lock"

#: src/keycode.cpp
msgid "Numpad *"
msgstr "Numpad *"

#: src/keycode.cpp
msgid "Numpad +"
msgstr "Numpad +"

#: src/keycode.cpp
msgid "Numpad -"
msgstr "Numpad -"

#: src/keycode.cpp
msgid "Numpad /"
msgstr "Numpad /"

#: src/keycode.cpp
msgid "Numpad 0"
msgstr "Numpad 0"

#: src/keycode.cpp
msgid "Numpad 1"
msgstr "Numpad 1"

#: src/keycode.cpp
msgid "Numpad 2"
msgstr "Numpad 2"

#: src/keycode.cpp
msgid "Numpad 3"
msgstr "Numpad 3"

#: src/keycode.cpp
msgid "Numpad 4"
msgstr "Numpad 4"

#: src/keycode.cpp
msgid "Numpad 5"
msgstr "Numpad 5"

#: src/keycode.cpp
msgid "Numpad 6"
msgstr "Numpad 6"

#: src/keycode.cpp
msgid "Numpad 7"
msgstr "Numpad 7"

#: src/keycode.cpp
msgid "Numpad 8"
msgstr "Numpad 8"

#: src/keycode.cpp
msgid "Numpad 9"
msgstr "Numpad 9"

#: src/keycode.cpp
msgid "OEM Clear"
msgstr "OEM Ryd"

#: src/keycode.cpp
msgid "PA1"
msgstr "PA1"

#: src/keycode.cpp
msgid "Pause"
msgstr "Pause"

#: src/keycode.cpp
msgid "Period"
msgstr "Punktum"

#: src/keycode.cpp
msgid "Plus"
msgstr "Plus"

#: src/keycode.cpp
msgid "Print"
msgstr "Udskriv"

#: src/keycode.cpp
msgid "Prior"
msgstr "Foregående"

#: src/keycode.cpp
msgid "Return"
msgstr "Enter"

#: src/keycode.cpp
msgid "Right Button"
msgstr "Højre knap"

#: src/keycode.cpp
msgid "Right Control"
msgstr "Højre Control"

#: src/keycode.cpp
msgid "Right Menu"
msgstr "Højre Menu"

#: src/keycode.cpp
msgid "Right Shift"
msgstr "Højre Skift"

#: src/keycode.cpp
msgid "Right Windows"
msgstr "Højre meta"

#: src/keycode.cpp
msgid "Scroll Lock"
msgstr "Scroll Lock"

#: src/keycode.cpp
msgid "Select"
msgstr "Vælg"

#: src/keycode.cpp
msgid "Shift"
msgstr "Shift"

#: src/keycode.cpp
msgid "Sleep"
msgstr "Sov"

#: src/keycode.cpp
#, fuzzy
msgid "Snapshot"
msgstr "Tilstandsbillede"

#: src/keycode.cpp
msgid "Space"
msgstr "Mellemrum"

#: src/keycode.cpp
msgid "Tab"
msgstr "Tabulator"

#: src/keycode.cpp
msgid "Up"
msgstr "Op"

#: src/keycode.cpp
msgid "X Button 1"
msgstr "X knap 1"

#: src/keycode.cpp
msgid "X Button 2"
msgstr "X knap 2"

#: src/keycode.cpp
msgid "Zoom"
msgstr "Zoom"

#: src/settings_translation_file.cpp
msgid ""
"0 = parallax occlusion with slope information (faster).\n"
"1 = relief mapping (slower, more accurate)."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "3D clouds"
msgstr "3D skyer"

#: src/settings_translation_file.cpp
msgid "3D mode"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"3D support.\n"
"Currently supported:\n"
"-    none: no 3d output.\n"
"-    anaglyph: cyan/magenta color 3d.\n"
"-    interlaced: odd/even line based polarisation screen support.\n"
"-    topbottom: split screen top/bottom.\n"
"-    sidebyside: split screen side by side."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"A chosen map seed for a new map, leave empty for random.\n"
"Will be overridden when creating a new world in the main menu."
msgstr ""

#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server crashes."
msgstr ""

#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server shuts down."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Absolute limit of emerge queues"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Acceleration in air"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Active block range"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Active object send range"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Address to connect to.\n"
"Leave this blank to start a local server.\n"
"Note that the address field in the main menu overrides this setting."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
"screens."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Adjust the gamma encoding for the light tables. Lower numbers are brighter.\n"
"This setting is for the client only and is ignored by the server."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Advanced"
msgstr "Avanceret"

#: src/settings_translation_file.cpp
msgid "Always fly and fast"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Ambient occlusion gamma"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Anisotropic filtering"
msgstr "Anisotropisk filtréring"

#: src/settings_translation_file.cpp
msgid "Announce server"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Announce to this serverlist.\n"
"If you want to announce your ipv6 address, use  serverlist_url = v6.servers."
"minetest.net."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Ask to reconnect after crash"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Backward key"
msgstr "Baglæns"

#: src/settings_translation_file.cpp
msgid "Basic"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Bilinear filtering"
msgstr "Bi-lineær filtréring"

#: src/settings_translation_file.cpp
msgid "Bind address"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Bits per pixel (aka color depth) in fullscreen mode."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Build inside player"
msgstr "Flerspiller"

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Bumpmapping"
msgstr "Mip-mapping"

#: src/settings_translation_file.cpp
msgid "Camera smoothing"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Camera smoothing in cinematic mode"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Camera update toggle key"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat key"
msgstr "Skift bindinger"

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat toggle key"
msgstr "Skift bindinger"

#: src/settings_translation_file.cpp
msgid "Chunk size"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Cinematic mode"
msgstr "Kreativ tilstand"

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Cinematic mode key"
msgstr "Kreativ tilstand"

#: src/settings_translation_file.cpp
msgid "Clean transparent textures"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Client and Server"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Climbing speed"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Cloud height"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Cloud radius"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Clouds"
msgstr "3D skyer"

#: src/settings_translation_file.cpp
msgid "Clouds are a client side effect."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Clouds in menu"
msgstr "Hovedmenu"

#: src/settings_translation_file.cpp
msgid "Colored fog"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Comma-separated list of trusted mods that are allowed to access insecure\n"
"functions even when mod security is on (via request_insecure_environment())."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Command key"
msgstr "Kommando"

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Connect glass"
msgstr "Forbind"

#: src/settings_translation_file.cpp
msgid "Connect to external media server"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Connects glass if supported by node."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Console alpha"
msgstr "Konsol"

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Console color"
msgstr "Konsol"

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Console key"
msgstr "Konsol"

#: src/settings_translation_file.cpp
msgid "Continuous forward"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Controls"
msgstr "Control"

#: src/settings_translation_file.cpp
msgid ""
"Controls length of day/night cycle.\n"
"Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays "
"unchanged."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Controls size of deserts and beaches in Mapgen v6.\n"
"When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Crash message"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Crosshair alpha"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Crosshair alpha (opaqueness, between 0 and 255)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Crosshair color (R,G,B)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Crouch speed"
msgstr ""

#: src/settings_translation_file.cpp
msgid "DPI"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Damage"
msgstr "Aktivér skade"

#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Debug log level"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Dedicated server step"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Default acceleration"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Default game"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Default game when creating a new world.\n"
"This will be overridden when creating a world from the main menu."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Default password"
msgstr "Nyt kodeord"

#: src/settings_translation_file.cpp
msgid "Default privileges"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Default timeout for cURL, stated in milliseconds.\n"
"Only has an effect if compiled with cURL."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Defines sampling step of texture.\n"
"A higher value results in smoother normal maps."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Delay showing tooltips, stated in milliseconds."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Deprecated Lua API handling"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
"serverlist."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Desynchronize block animation"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Detailed mod profile data. Useful for mod developers."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Detailed mod profiling"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Disable anticheat"
msgstr "Aktivér partikler"

#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Domain name of server, to be displayed in the serverlist."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Double tap jump for fly"
msgstr ""
"Tryk på \"hop\" hurtigt to gange for at skifte frem og tilbage mellem flyve-"
"tilstand"

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Double-tapping the jump key toggles fly mode."
msgstr ""
"Tryk på \"hop\" hurtigt to gange for at skifte frem og tilbage mellem flyve-"
"tilstand"

#: src/settings_translation_file.cpp
msgid "Drop item key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Dump the mapgen debug infos."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Enable a bit lower water surface, so it doesn't \"fill\" the node "
"completely.\n"
"Note that this is not quite optimized and that smooth lighting on the\n"
"water surface doesn't work with this."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Enable mod security"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Enable players getting damage and dying."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Enable random user input (only used for testing)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Enable selection highlighting for nodes (disables selectionbox)."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Enable smooth lighting with simple ambient occlusion.\n"
"Disable for speed or for different looks."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Enable to disallow old clients from connecting.\n"
"Older clients are compatible in the sense that they will not crash when "
"connecting\n"
"to new servers, but they may not support all new features that you are "
"expecting."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Enable usage of remote media server (if provided by server).\n"
"Remote servers offer a significantly faster way to download media (e.g. "
"textures)\n"
"when connecting to the server."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Enable/disable running an IPv6 server.  An IPv6 server may be restricted\n"
"to IPv6 clients, depending on system configuration.\n"
"Ignored if bind_address is set."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
"texture pack\n"
"or need to be auto-generated.\n"
"Requires shaders to be enabled."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enables minimap."
msgstr "Aktivér skade"

#: src/settings_translation_file.cpp
msgid ""
"Enables on the fly normalmap generation (Emboss effect).\n"
"Requires bumpmapping to be enabled."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Enables parallax occlusion mapping.\n"
"Requires shaders to be enabled."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Experimental option, might cause visible spaces between blocks\n"
"when set to higher number than 0."
msgstr ""

#: src/settings_translation_file.cpp
msgid "FPS in pause menu"
msgstr ""

#: src/settings_translation_file.cpp
msgid "FSAA"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fall bobbing"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fallback font"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fallback font shadow"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fallback font shadow alpha"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fallback font size"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fast key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fast mode acceleration"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fast mode speed"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fast movement"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Fast movement (via use key).\n"
"This requires the \"fast\" privilege on the server."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Field of view"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Field of view in degrees."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"File in client/serverlist/ that contains your favorite servers displayed in "
"the Multiplayer Tab."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
"light edge to transparent textures.  Apply this filter to clean that up\n"
"at texture load time."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Filtering"
msgstr "Anisotropisk filtréring"

#: src/settings_translation_file.cpp
msgid "Fixed map seed"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fly key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Flying"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fog"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fog toggle key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Font path"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Font shadow"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Font shadow alpha"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Font shadow alpha (opaqueness, between 0 and 255)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Font shadow offset, if 0 then shadow will not be drawn."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Font size"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Forward key"
msgstr "Fremad"

#: src/settings_translation_file.cpp
msgid "Freetype fonts"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"From how far blocks are generated for clients, stated in mapblocks (16 "
"nodes)."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"From how far clients know about objects, stated in mapblocks (16 nodes)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Full screen"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Full screen BPP"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Fullscreen mode."
msgstr ""

#: src/settings_translation_file.cpp
msgid "GUI scaling"
msgstr ""

#: src/settings_translation_file.cpp
msgid "GUI scaling filter"
msgstr ""

#: src/settings_translation_file.cpp
msgid "GUI scaling filter txr2img"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Gamma"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Generate normalmaps"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Global map generation attributes.\n"
"Flags that are not specified in the flag string are not modified from the "
"default.\n"
"Flags starting with \"no\" are used to explicitly disable them.\n"
"'trees' and 'flat' flags only have effect in mgv6."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Graphics"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Gravity"
msgstr ""

#: src/settings_translation_file.cpp
msgid "HUD toggle key"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated lua api calls:\n"
"-    legacy: (try to) mimic old behaviour (default for release).\n"
"-    log: mimic and log backtrace of deprecated call (default for debug).\n"
"-    error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Height on which clouds are appearing."
msgstr ""

#: src/settings_translation_file.cpp
msgid "High-precision FPU"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Homepage of server, to be displayed in the serverlist."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Horizontal initial window size."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"How large area of blocks are subject to the active block stuff, stated in "
"mapblocks (16 nodes).\n"
"In active blocks objects are loaded and ABMs run."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"How many blocks are flying in the wire simultaneously for the whole server."
msgstr ""

#: src/settings_translation_file.cpp
msgid "How many blocks are flying in the wire simultaneously per client."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"How much the server will wait before unloading unused mapblocks.\n"
"Higher value is smoother, but will use more RAM."
msgstr ""

#: src/settings_translation_file.cpp
msgid "IPv6"
msgstr ""

#: src/settings_translation_file.cpp
msgid "IPv6 server"
msgstr ""

#: src/settings_translation_file.cpp
msgid "IPv6 support."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"If FPS would go higher than this, limit it by sleeping\n"
"to not waste CPU power for no benefit."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"If disabled \"use\" key is used to fly fast if both fly and fast mode are "
"enabled."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"If enabled together with fly mode, player is able to fly through solid "
"nodes.\n"
"This requires the \"noclip\" privilege on the server."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"If enabled, \"use\" key instead of \"sneak\" key is used for climbing down "
"and descending."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"If enabled, actions are recorded for rollback.\n"
"This option is only read when server starts."
msgstr ""

#: src/settings_translation_file.cpp
msgid "If enabled, disable cheat prevention in multiplayer."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"If enabled, invalid world data won't cause the server to shut down.\n"
"Only enable this if you know what you are doing."
msgstr ""

#: src/settings_translation_file.cpp
msgid "If enabled, new players cannot join with an empty password."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"If enabled, you can place blocks at the position (feet + eye level) where "
"you stand.\n"
"This is helpful when working with nodeboxes in small areas."
msgstr ""

#: src/settings_translation_file.cpp
msgid "If this is set, players will always (re)spawn at the given position."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Ignore world errors"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "In-Game"
msgstr "Spil"

#: src/settings_translation_file.cpp
msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "In-game chat console background color (R,G,B)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Interval of saving important changes in the world, stated in seconds."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Interval of sending time of day to clients."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Inventory key"
msgstr "Beholdning"

#: src/settings_translation_file.cpp
msgid "Invert mouse"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Invert vertical mouse movement."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Item entity TTL"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Julia set: (X,Y,Z) offsets from world centre.\n"
"Range roughly -2 to 2, multiply by j_scale for offsets in nodes."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Julia set: Approximate (X,Y,Z) scales in nodes."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Julia set: Iterations of the recursive function.\n"
"Controls scale of finest detail."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Julia set: W co-ordinate of the generated 3D slice of the 4D shape.\n"
"Range roughly -2 to 2."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Julia set: W value determining the 4D shape.\n"
"Range roughly -2 to 2."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Julia set: X value determining the 4D shape.\n"
"Range roughly -2 to 2."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Julia set: Y value determining the 4D shape.\n"
"Range roughly -2 to 2."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Julia set: Z value determining the 4D shape.\n"
"Range roughly -2 to 2."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Jump key"
msgstr "Hop"

#: src/settings_translation_file.cpp
msgid "Jumping speed"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for decreasing the viewing range. Modifies the minimum viewing range.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for increasing the viewing range. Modifies the minimum viewing range.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for jumping.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for moving fast in fast mode.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for moving the player backward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for moving the player forward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for moving the player left.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for moving the player right.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for opening the chat console.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for opening the chat window to type commands.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for opening the chat window.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for opening the inventory.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for printing debug stacks. Used for development.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for sneaking.\n"
"Also used for climbing down and descending in water if aux1_descends is "
"disabled.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for switching between first- and third-person camera.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for taking screenshots.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling cinematic mode.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling display of minimap.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling fast mode.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling flying.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling noclip mode.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling the camrea update. Only used for development\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling the display of debug info.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling the display of the HUD.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling the display of the chat.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling the display of the fog.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling the display of the profiler. Used for development.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Key for toggling unlimited view range.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Key use for climbing/descending"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Language"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Leaves style"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Leaves style:\n"
"-   Fancy:  all faces visible\n"
"-   Simple: only outer faces, if defined special_tiles are used\n"
"-   Opaque: disable transparency"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Left key"
msgstr "Venstre Menu"

#: src/settings_translation_file.cpp
msgid ""
"Length of a server tick and the interval at which objects are generally "
"updated over network."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Level of logging to be written to debug.txt:\n"
"-    <nothing> (no logging)\n"
"-    none (messages with no level)\n"
"-    error\n"
"-    warning\n"
"-    action\n"
"-    info\n"
"-    verbose"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Limit of emerge queues to generate"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Limits number of parallel HTTP requests. Affects:\n"
"-    Media fetch if server uses remote_media setting.\n"
"-    Serverlist download and server announcement.\n"
"-    Downloads performed by main menu (e.g. mod manager).\n"
"Only has an effect if compiled with cURL."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Liquid fluidity"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Liquid fluidity smoothing"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Liquid loop max"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Liquid queue purge time"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Liquid sink"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Liquid update interval in seconds."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Liquid update tick"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Main menu game manager"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Main menu mod manager"
msgstr "Hovedmenu"

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Main menu script"
msgstr "Hovedmenu"

#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Mandelbrot set: (X,Y,Z) offsets from world centre.\n"
"Range roughly -2 to 2, multiply by m_scale for offsets in nodes."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mandelbrot set: Approximate (X,Y,Z) scales in nodes."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Mandelbrot set: Iterations of the recursive function.\n"
"Controls scale of finest detail."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Mandelbrot set: W co-ordinate of the generated 3D slice of the 4D shape.\n"
"Range roughly -2 to 2."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Map generation attributes specific to Mapgen fractal.\n"
"'julia' selects a julia set to be generated instead of a mandelbrot set.\n"
"Flags that are not specified in the flag string are not modified from the "
"default.\n"
"Flags starting with \"no\" are used to explicitly disable them."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Map generation attributes specific to Mapgen v6.\n"
"When snowbiomes are enabled jungles are enabled and the jungles flag is "
"ignored.\n"
"Flags that are not specified in the flag string are not modified from the "
"default.\n"
"Flags starting with \"no\" are used to explicitly disable them."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Map generation attributes specific to Mapgen v7.\n"
"'ridges' are the rivers.\n"
"Flags that are not specified in the flag string are not modified from the "
"default.\n"
"Flags starting with \"no\" are used to explicitly disable them."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Map generation limit"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Map save interval"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapblock limit"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapblock unload timeout"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen biome heat noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen biome humidity blend noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen biome humidity noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen debug"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen flags"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal cave1 noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal cave2 noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal filler depth noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal flags"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal julia iterations"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal julia offset"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal julia scale"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal julia slice w"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal julia w"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal julia x"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal julia y"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal julia z"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal mandelbrot iterations"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal mandelbrot offset"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal mandelbrot scale"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal mandelbrot slice w"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen fractal seabed noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen heat blend noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen name"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v5"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v5 cave1 noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v5 cave2 noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v5 factor noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v5 filler depth noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v5 height noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 apple trees noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 beach frequency"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 beach noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 biome noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 cave noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 desert frequency"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 flags"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 height select noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 humidity noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 mud noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 steepness noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 terrain altitude noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 terrain base noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v6 trees noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 cave1 noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 cave2 noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 filler depth noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 flags"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 height select noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 mount height noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 mountain noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 ridge noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 ridge water noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 terrain altitude noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 terrain base noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mapgen v7 terrain persistation noise parameters"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Max block generate distance"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Max block send distance"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Max liquids processed per step."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Max. clearobjects extra blocks"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Max. packets per iteration"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum FPS"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum FPS when game is paused."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Maximum distance above water level for player spawn.\n"
"Larger values result in spawn points closer to (x = 0, z = 0).\n"
"Smaller values may result in a suitable spawn point not being found,\n"
"resulting in a spawn at (0, 0, 0) possibly buried underground."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum hotbar width"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum number of blocks that can be queued for loading."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Maximum number of blocks to be queued that are to be generated.\n"
"Set to blank for an appropriate amount to be chosen automatically."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Maximum number of blocks to be queued that are to be loaded from file.\n"
"Set to blank for an appropriate amount to be chosen automatically."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Maximum number of mapblocks for client to be kept in memory.\n"
"Set to -1 for unlimited amount."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Maximum number of packets sent per send step, if you have a slow connection\n"
"try reducing it, but don't reduce it to a number below double of targeted\n"
"client number."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum number of players that can connect simultaneously."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum number of statically stored objects in a block."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Maximum proportion of current window to be used for hotbar.\n"
"Useful if there's something to be displayed right or left of hotbar."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum simultaneously blocks send per client"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum simultaneously bocks send total"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maximum users"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Maxmimum objects per block"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Menus"
msgstr "Menu"

#: src/settings_translation_file.cpp
msgid "Mesh cache"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Message of the day"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Message of the day displayed to players connecting."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Minimap"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Minimap key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Minimap scan height"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Minimum texture size for filters"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Minimum wanted FPS.\n"
"The amount of rendered stuff is dynamically set according to this. and "
"viewing range min and max."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Mipmapping"
msgstr "Mip-mapping"

#: src/settings_translation_file.cpp
msgid "Mod profiling"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Monospace font size"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mouse sensitivity"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Mouse sensitivity multiplier."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Multiplier for fall bobbing.\n"
"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Multiplier for view bobbing.\n"
"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Name of map generator to be used when creating a new world.\n"
"Creating a world in the main menu will override this."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Name of the player.\n"
"When running a server, clients connecting with this name are admins.\n"
"When starting from the main menu, this is overridden."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Name of the server, to be displayed when players join and in the serverlist."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Network"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Network port to listen (UDP).\n"
"This value will be overridden when starting from the main menu."
msgstr ""

#: src/settings_translation_file.cpp
msgid "New style water"
msgstr ""

#: src/settings_translation_file.cpp
msgid "New users need to input this password."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Noclip"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Noclip key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Node highlighting"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Noise parameters for biome API temperature, humidity and biome blend."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Normalmaps sampling"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Normalmaps strength"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Number of emerge threads to use. Make this field blank, or increase this "
"number\n"
"to use multiple threads. On multiprocessor systems, this will improve mapgen "
"speed greatly\n"
"at the cost of slightly buggy caves."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Number of extra blocks that can be loaded by /clearobjects at once.\n"
"This is a trade-off between sqlite transaction overhead and\n"
"memory consumption (4096=100MB, as a rule of thumb)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Number of parallax occlusion iterations."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Overall bias of parallax occlusion effect, usually scale/2."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Overall scale of parallax occlusion effect."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Parallax Occlusion"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Parallax occlusion"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Parallax occlusion Scale"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Parallax occlusion bias"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Parallax occlusion iterations"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Parallax occlusion mode"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Parallax occlusion strength"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Path to TrueTypeFont or bitmap."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Path to save screenshots at."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Path to texture directory. All textures are first searched from here."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Physics"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Player name"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Player transfer distance"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Player versus Player"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Port to connect to (UDP).\n"
"Note that the port field in the main menu overrides this setting."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Pre-generate all item visuals used in the inventory.\n"
"This increases startup time, but runs smoother in-game.\n"
"The generated textures can easily exceed your VRAM, causing artifacts in the "
"inventory."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Preload inventory textures"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Prevent mods from doing insecure things like running shell commands."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Profiler data print interval. 0 = disable. Useful for developers."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Profiler toggle key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Profiling print interval"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Radius of cloud area stated in number of 64 node cloud squares.\n"
"Values larger than 26 will start to produce sharp cutoffs at cloud area "
"corners."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Random input"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Range select key"
msgstr "Afstands vælg"

#: src/settings_translation_file.cpp
msgid "Remote media"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Remote port"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Right key"
msgstr "Højre Menu"

#: src/settings_translation_file.cpp
msgid "Rightclick repetition interval"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Rollback recording"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Round minimap"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Save the map received by the client on disk."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Scale gui by a user specified value.\n"
"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
"This will smooth over some of the rough edges, and blend\n"
"pixels when scaling down, at the cost of blurring some\n"
"edge pixels when images are scaled by non-integer sizes."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Screen height"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Screen width"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Screenshot"
msgstr "Tilstandsbillede"

#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Security"
msgstr ""

#: src/settings_translation_file.cpp
msgid "See http://www.sqlite.org/pragma.html#pragma_synchronous"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Selection box border color (R,G,B)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Selection box color"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Selection box width"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Server / Singleplayer"
msgstr "Enligspiller"

#: src/settings_translation_file.cpp
msgid "Server URL"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Server address"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Server description"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Server name"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Server port"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Serverlist URL"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Serverlist file"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Set the language. Leave empty to use the system language.\n"
"A restart is required after changing this."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Set to true enables waving leaves.\n"
"Requires shaders to be enabled."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Set to true enables waving plants.\n"
"Requires shaders to be enabled."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Set to true enables waving water.\n"
"Requires shaders to be enabled."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Shaders"
msgstr "Shadere"

#: src/settings_translation_file.cpp
msgid ""
"Shaders allow advanced visul effects and may increase performance on some "
"video cards.\n"
"Thy only work with the OpenGL video backend."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Shape of the minimap. Enabled = round, disabled = square."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Show debug info"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Size of chunks to be generated at once by mapgen, stated in mapblocks (16 "
"nodes)."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Smooth lighting"
msgstr "Glat belysning"

#: src/settings_translation_file.cpp
msgid ""
"Smooths camera when moving and looking around.\n"
"Useful for recording videos."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Smooths rotation of camera. 0 to disable."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Sneak key"
msgstr "Snige"

#: src/settings_translation_file.cpp
msgid "Sound"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Specifies URL from which client fetches media instead of using UDP.\n"
"$filename should be accessible from $remote_media$filename via cURL\n"
"(obviously, remote_media should end with a slash).\n"
"Files that are not present will be fetched the usual way."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Static spawnpoint"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Strength of generated normalmaps."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Strength of parallax."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Strict protocol checking"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Synchronous SQLite"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Texture path"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"The allowed adjustment range for the automatic rendering range adjustment.\n"
"Set this to be equal to viewing range minimum to disable the auto-adjustment "
"algorithm."
msgstr ""

#: src/settings_translation_file.cpp
msgid "The network interface that the server listens on."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"The privileges that new users automatically get.\n"
"See /privs in game for a full list on your server and mod configuration."
msgstr ""

#: src/settings_translation_file.cpp
msgid "The rendering back-end for Irrlicht."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"The strength (darkness) of node ambient-occlusion shading.\n"
"Lower is darker, Higher is lighter. The valid range of values for this\n"
"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
"set to the nearest valid value."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"The time (in seconds) that the liquids queue may grow beyond processing\n"
"capacity until an attempt is made to decrease its size by dumping old queue\n"
"items.  A value of 0 disables the functionality."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"The time in seconds it takes between repeated right clicks when holding the "
"right mouse button."
msgstr ""

#: src/settings_translation_file.cpp
msgid "This font will be used for certain languages."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Time in seconds for item entity (dropped items) to live.\n"
"Setting it to -1 disables the feature."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Time send interval"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Time speed"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Timeout for client to remove unused map data from memory."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"To reduce lag, block transfers are slowed down when a player is building "
"something.\n"
"This determines how long they are slowed down after placing or removing a "
"node."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Toggle camera mode key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Tooltip delay"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Trilinear filtering"
msgstr "Tri-lineær filtréring"

#: src/settings_translation_file.cpp
msgid ""
"True = 256\n"
"False = 128\n"
"Useable to make minimap smoother on slower machines."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Trusted mods"
msgstr ""

#: src/settings_translation_file.cpp
msgid "URL to the server list displayed in the Multiplayer Tab."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Unlimited player transfer distance"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Unload unused server data"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Use 3D cloud look instead of flat."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Use a cloud animation for the main menu background."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Use anisotropic filtering when viewing at textures from an angle."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Use bilinear filtering when scaling textures."
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Use key"
msgstr "Tryk på en tast"

#: src/settings_translation_file.cpp
msgid "Use mip mapping to scale textures. May slightly increase performance."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Useful for mod developers."
msgstr ""

#: src/settings_translation_file.cpp
msgid "V-Sync"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Vertical initial window size."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Vertical screen synchronization."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Vertical spawn range"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Video driver"
msgstr ""

#: src/settings_translation_file.cpp
msgid "View bobbing"
msgstr ""

#: src/settings_translation_file.cpp
msgid "View range decrease key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "View range increase key"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Viewing range maximum"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Viewing range minimum"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Volume"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Walking speed"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Wanted FPS"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Water level"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Water surface level of the world."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Waving Nodes"
msgstr ""

#: src/settings_translation_file.cpp
#, fuzzy
msgid "Waving leaves"
msgstr "\"Smarte\" træer"

#: src/settings_translation_file.cpp
msgid "Waving plants"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Waving water"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Waving water height"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Waving water length"
msgstr ""

#: src/settings_translation_file.cpp
msgid "Waving water speed"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"When gui_scaling_filter is true, all GUI images need to be\n"
"filtered in software, but some images are generated directly\n"
"to hardware (e.g. render-to-texture for nodes in inventory)."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"When gui_scaling_filter_txr2img is true, copy those images\n"
"from hardware to software for scaling.  When false, fall back\n"
"to the old scaling method, for video drivers that don't\n"
"propery support downloading textures back from hardware."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
"can be blurred, so automatically upscale them with nearest-neighbor\n"
"interpolation to preserve crisp pixels.  This sets the minimum texture size\n"
"for the upscaled textures; higher values look sharper, but require more\n"
"memory.  Powers of 2 are recommended.  Setting this higher than 1 may not\n"
"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
"enabled."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Where the map generator stops.\n"
"Please note:\n"
"-    Limited to 31000 (setting above has no effect)\n"
"-    The map generator works in groups of 80x80x80 nodes (5x5x5 MapBlocks).\n"
"-    Those groups have an offset of -32, -32 nodes from the origin.\n"
"-    Only groups which are within the map_generation_limit are generated"
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Whether freetype fonts are used, requires freetype support to be compiled in."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Whether players are shown to clients without any range limit.\n"
"Deprecated, use the setting player_transfer_distance instead."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Whether to allow players to damage and kill each other."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Whether to ask clients to reconnect after a (Lua) crash.\n"
"Set this to true if your server is set up to restart automatically."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Whether to fog out the end of the visible area."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"Whether to show the client debug info (has the same effect as hitting F5)."
msgstr ""

#: src/settings_translation_file.cpp
msgid "Width of the selectionbox's lines around nodes."
msgstr ""

#: src/settings_translation_file.cpp
msgid ""
"World directory (everything in the world is stored here).\n"
"Not needed if starting from the main menu."
msgstr ""

#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""

#: src/settings_translation_file.cpp
msgid "cURL parallel limit"
msgstr ""

#: src/settings_translation_file.cpp
msgid "cURL timeout"
msgstr ""

#, fuzzy
#~ msgid "Opaque Leaves"
#~ msgstr "Opakt (uigennemsigtigt) vand"

#, fuzzy
#~ msgid "Opaque Water"
#~ msgstr "Opakt (uigennemsigtigt) vand"

#, fuzzy
#~ msgid "Reset singleplayer world"
#~ msgstr "Enligspiller"

#, fuzzy
#~ msgid "Downloading"
#~ msgstr "Ned"

#~ msgid "Left click: Move all items, Right click: Move single item"
#~ msgstr "Venstre klik: flyt alle enheder. Højre klik: flyt en enkelt enhed"

#~ msgid "is required by:"
#~ msgstr "er påkrævet af:"

#~ msgid "Configuration saved.  "
#~ msgstr "Konfiguration gemt.  "

#~ msgid "Warning: Configuration not consistent.  "
#~ msgstr "Advarsel: konfigurationen er ikke sammenhængende.  "

#~ msgid "Cannot create world: Name contains invalid characters"
#~ msgstr "Kan ikke skabe verden: navnet indeholder ugyldige bogstaver"

#~ msgid "Show Public"
#~ msgstr "Vis offentlig"

#~ msgid "Show Favorites"
#~ msgstr "Vis favoritter"

#~ msgid "Leave address blank to start a local server."
#~ msgstr "Lad adresse-feltet være tomt for at starte en lokal server."

#~ msgid "Create world"
#~ msgstr "Skab verden"

#~ msgid "Address required."
#~ msgstr "Adresse påkrævet."

#~ msgid "Cannot delete world: Nothing selected"
#~ msgstr "Kan ikke slette verden: ingenting valgt"

#~ msgid "Files to be deleted"
#~ msgstr "Filer som slettes"

#~ msgid "Cannot create world: No games found"
#~ msgstr "Kan ikke skabe verden: ingen spil fundet"

#~ msgid "Cannot configure world: Nothing selected"
#~ msgstr "Kan ikke konfigurere verden: ingenting valgt"

#~ msgid "Failed to delete all world files"
#~ msgstr "Mislykkedes i at slette alle verdenens filer"

#~ msgid ""
#~ "Default Controls:\n"
#~ "- WASD: Walk\n"
#~ "- Mouse left: dig/hit\n"
#~ "- Mouse right: place/use\n"
#~ "- Mouse wheel: select item\n"
#~ "- 0...9: select item\n"
#~ "- Shift: sneak\n"
#~ "- R: Toggle viewing all loaded chunks\n"
#~ "- I: Inventory menu\n"
#~ "- ESC: This menu\n"
#~ "- T: Chat\n"
#~ msgstr ""
#~ "Standard bindinger:\n"
#~ "- WASD: bevægelse\n"
#~ "- Venstre musetast: grav/slå\n"
#~ "- Højre musetast: anbring/brug\n"
#~ "- Musehjul: vælg genstand\n"
#~ "- 0...9: vælg genstand\n"
#~ "- Shift: snige\n"
#~ "- R: omstil se alle indlæste klumper\n"
#~ "- I: beholdning\n"
#~ "- ESC: denne menu\n"
#~ "- T: snak\n"

#~ msgid "Delete map"
#~ msgstr "Slet mappen"

#~ msgid ""
#~ "Warning: Some configured mods are missing.\n"
#~ "Their setting will be removed when you save the configuration.  "
#~ msgstr ""
#~ "Advarsel: nogle konfigurerede modifikationer mangler.\n"
#~ "Deres indstillinger vil blive fjernet når du gemmer konfigurationen.  "

#~ msgid ""
#~ "Warning: Some mods are not configured yet.\n"
#~ "They will be enabled by default when you save the configuration.  "
#~ msgstr ""
#~ "Advarsel: nogle modifikationer er endnu ikke konfigureret.\n"
#~ "De vil blive aktiveret som standard når du gemmer konfigurationen.  "

#~ msgid "Preload item visuals"
#~ msgstr "For-indlæs elementernes grafik"

#, fuzzy
#~ msgid "Password"
#~ msgstr "Gammelt kodeord"

#, fuzzy
#~ msgid "Favorites:"
#~ msgstr "Vis favoritter"

#, fuzzy
#~ msgid "Game Name"
#~ msgstr "Spil"

#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "aktiveret"

#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Deaktivér alle"