aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/database-sqlite3.cpp80
1 files changed, 38 insertions, 42 deletions
diff --git a/src/database-sqlite3.cpp b/src/database-sqlite3.cpp
index 268687c20..7f7850719 100644
--- a/src/database-sqlite3.cpp
+++ b/src/database-sqlite3.cpp
@@ -86,58 +86,54 @@ void Database_SQLite3::verifyDatabase() {
if(m_database)
return;
- {
- std::string dbp = m_savedir + DIR_DELIM + "map.sqlite";
- bool needs_create = false;
- int d;
+ std::string dbp = m_savedir + DIR_DELIM "map.sqlite";
+ bool needs_create = false;
+ int d;
- /*
- Open the database connection
- */
+ // Open the database connection
- createDirs(m_savedir); // ?
+ createDirs(m_savedir); // ?
- if(!fs::PathExists(dbp))
- needs_create = true;
+ if(!fs::PathExists(dbp))
+ needs_create = true;
- d = sqlite3_open_v2(dbp.c_str(), &m_database, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
- if(d != SQLITE_OK) {
- infostream<<"WARNING: SQLite3 database failed to open: "<<sqlite3_errmsg(m_database)<<std::endl;
- throw FileNotGoodException("Cannot open database file");
- }
-
- if(needs_create)
- createDatabase();
+ d = sqlite3_open_v2(dbp.c_str(), &m_database, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+ if(d != SQLITE_OK) {
+ infostream<<"WARNING: SQLite3 database failed to open: "<<sqlite3_errmsg(m_database)<<std::endl;
+ throw FileNotGoodException("Cannot open database file");
+ }
- std::string querystr = std::string("PRAGMA synchronous = ")
- + itos(g_settings->getU16("sqlite_synchronous"));
- d = sqlite3_exec(m_database, querystr.c_str(), NULL, NULL, NULL);
- if(d != SQLITE_OK) {
- infostream<<"WARNING: Database pragma set failed: "
- <<sqlite3_errmsg(m_database)<<std::endl;
- throw FileNotGoodException("Cannot set pragma");
- }
+ if(needs_create)
+ createDatabase();
- d = sqlite3_prepare(m_database, "SELECT `data` FROM `blocks` WHERE `pos`=? LIMIT 1", -1, &m_database_read, NULL);
- if(d != SQLITE_OK) {
- infostream<<"WARNING: SQLite3 database read statment failed to prepare: "<<sqlite3_errmsg(m_database)<<std::endl;
- throw FileNotGoodException("Cannot prepare read statement");
- }
+ std::string querystr = std::string("PRAGMA synchronous = ")
+ + itos(g_settings->getU16("sqlite_synchronous"));
+ d = sqlite3_exec(m_database, querystr.c_str(), NULL, NULL, NULL);
+ if(d != SQLITE_OK) {
+ infostream<<"WARNING: Database pragma set failed: "
+ <<sqlite3_errmsg(m_database)<<std::endl;
+ throw FileNotGoodException("Cannot set pragma");
+ }
- d = sqlite3_prepare(m_database, "REPLACE INTO `blocks` VALUES(?, ?)", -1, &m_database_write, NULL);
- if(d != SQLITE_OK) {
- infostream<<"WARNING: SQLite3 database write statment failed to prepare: "<<sqlite3_errmsg(m_database)<<std::endl;
- throw FileNotGoodException("Cannot prepare write statement");
- }
+ d = sqlite3_prepare(m_database, "SELECT `data` FROM `blocks` WHERE `pos`=? LIMIT 1", -1, &m_database_read, NULL);
+ if(d != SQLITE_OK) {
+ infostream<<"WARNING: SQLite3 database read statment failed to prepare: "<<sqlite3_errmsg(m_database)<<std::endl;
+ throw FileNotGoodException("Cannot prepare read statement");
+ }
- d = sqlite3_prepare(m_database, "SELECT `pos` FROM `blocks`", -1, &m_database_list, NULL);
- if(d != SQLITE_OK) {
- infostream<<"WARNING: SQLite3 database list statment failed to prepare: "<<sqlite3_errmsg(m_database)<<std::endl;
- throw FileNotGoodException("Cannot prepare read statement");
- }
+ d = sqlite3_prepare(m_database, "REPLACE INTO `blocks` VALUES(?, ?)", -1, &m_database_write, NULL);
+ if(d != SQLITE_OK) {
+ infostream<<"WARNING: SQLite3 database write statment failed to prepare: "<<sqlite3_errmsg(m_database)<<std::endl;
+ throw FileNotGoodException("Cannot prepare write statement");
+ }
- infostream<<"ServerMap: SQLite3 database opened"<<std::endl;
+ d = sqlite3_prepare(m_database, "SELECT `pos` FROM `blocks`", -1, &m_database_list, NULL);
+ if(d != SQLITE_OK) {
+ infostream<<"WARNING: SQLite3 database list statment failed to prepare: "<<sqlite3_errmsg(m_database)<<std::endl;
+ throw FileNotGoodException("Cannot prepare read statement");
}
+
+ infostream<<"ServerMap: SQLite3 database opened"<<std::endl;
}
void Database_SQLite3::saveBlock(MapBlock *block)
'n255' href='#n255'>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
// This file is automatically generated
// It conatins a bunch of fake gettext calls, to tell xgettext about the strings in config files
// To update it, refer to the bottom of builtin/mainmenu/tab_settings.lua

fake_function() {
	gettext("Client");
	gettext("Controls");
	gettext("Build inside player");
	gettext("If enabled, you can place blocks at the position (feet + eye level) where you stand.\nThis is helpful when working with nodeboxes in small areas.");
	gettext("Flying");
	gettext("Player is able to fly without being affected by gravity.\nThis requires the \"fly\" privilege on the server.");
	gettext("Fast movement");
	gettext("Fast movement (via use key).\nThis requires the \"fast\" privilege on the server.");
	gettext("Noclip");
	gettext("If enabled together with fly mode, player is able to fly through solid nodes.\nThis requires the \"noclip\" privilege on the server.");
	gettext("Cinematic mode");
	gettext("Smooths camera when moving and looking around.\nUseful for recording videos.");
	gettext("Camera smoothing");
	gettext("Smooths rotation of camera. 0 to disable.");
	gettext("Camera smoothing in cinematic mode");
	gettext("Smooths rotation of camera in cinematic mode. 0 to disable.");
	gettext("Invert mouse");
	gettext("Invert vertical mouse movement.");
	gettext("Mouse sensitivity");
	gettext("Mouse sensitivity multiplier.");
	gettext("Key use for climbing/descending");
	gettext("If enabled, \"use\" key instead of \"sneak\" key is used for climbing down and descending.");
	gettext("Double tap jump for fly");
	gettext("Double-tapping the jump key toggles fly mode.");
	gettext("Always fly and fast");
	gettext("If disabled \"use\" key is used to fly fast if both fly and fast mode are enabled.");
	gettext("Rightclick repetition interval");
	gettext("The time in seconds it takes between repeated right clicks when holding the right mouse button.");
	gettext("Random input");
	gettext("Enable random user input (only used for testing).");
	gettext("Continuous forward");
	gettext("Continuous forward movement (only used for testing).");
	gettext("Forward key");
	gettext("Key for moving the player forward.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Backward key");
	gettext("Key for moving the player backward.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Left key");
	gettext("Key for moving the player left.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Right key");
	gettext("Key for moving the player right.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Jump key");
	gettext("Key for jumping.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Sneak key");
	gettext("Key for sneaking.\nAlso used for climbing down and descending in water if aux1_descends is disabled.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Inventory key");
	gettext("Key for opening the inventory.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Use key");
	gettext("Key for moving fast in fast mode.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Chat key");
	gettext("Key for opening the chat window.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Command key");
	gettext("Key for opening the chat window to type commands.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Console key");
	gettext("Key for opening the chat console.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Range select key");
	gettext("Key for toggling unlimited view range.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Fly key");
	gettext("Key for toggling flying.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Fast key");
	gettext("Key for toggling fast mode.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Noclip key");
	gettext("Key for toggling noclip mode.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Cinematic mode key");
	gettext("Key for toggling cinematic mode.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Minimap key");
	gettext("Key for toggling display of minimap.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Screenshot");
	gettext("Key for taking screenshots.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Drop item key");
	gettext("Key for dropping the currently selected item.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("HUD toggle key");
	gettext("Key for toggling the display of the HUD.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Chat toggle key");
	gettext("Key for toggling the display of the chat.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Fog toggle key");
	gettext("Key for toggling the display of the fog.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Camera update toggle key");
	gettext("Key for toggling the camrea update. Only used for development\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Debug info toggle key");
	gettext("Key for toggling the display of debug info.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Profiler toggle key");
	gettext("Key for toggling the display of the profiler. Used for development.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Toggle camera mode key");
	gettext("Key for switching between first- and third-person camera.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("View range increase key");
	gettext("Key for increasing the viewing range.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("View range decrease key");
	gettext("Key for decreasing the viewing range.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Print stacks");
	gettext("Key for printing debug stacks. Used for development.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
	gettext("Network");
	gettext("Server address");
	gettext("Address to connect to.\nLeave this blank to start a local server.\nNote that the address field in the main menu overrides this setting.");
	gettext("Remote port");
	gettext("Port to connect to (UDP).\nNote that the port field in the main menu overrides this setting.");
	gettext("Support older servers");
	gettext("Whether to support older servers before protocol version 25.\nEnable if you want to connect to 0.4.12 servers and before.\nServers starting with 0.4.13 will work, 0.4.12-dev servers may work.\nDisabling this option will protect your password better.");
	gettext("Saving map received from server");
	gettext("Save the map received by the client on disk.");
	gettext("Show entity selection boxes");
	gettext("Connect to external media server");
	gettext("Enable usage of remote media server (if provided by server).\nRemote servers offer a significantly faster way to download media (e.g. textures)\nwhen connecting to the server.");
	gettext("Serverlist URL");
	gettext("URL to the server list displayed in the Multiplayer Tab.");
	gettext("Serverlist file");
	gettext("File in client/serverlist/ that contains your favorite servers displayed in the Multiplayer Tab.");
	gettext("Graphics");
	gettext("In-Game");
	gettext("Basic");
	gettext("VBO");
	gettext("Enable VBO");
	gettext("Fog");
	gettext("Whether to fog out the end of the visible area.");
	gettext("Leaves style");
	gettext("Leaves style:\n-   Fancy:  all faces visible\n-   Simple: only outer faces, if defined special_tiles are used\n-   Opaque: disable transparency");
	gettext("Connect glass");
	gettext("Connects glass if supported by node.");
	gettext("Smooth lighting");
	gettext("Enable smooth lighting with simple ambient occlusion.\nDisable for speed or for different looks.");
	gettext("Clouds");
	gettext("Clouds are a client side effect.");
	gettext("3D clouds");
	gettext("Use 3D cloud look instead of flat.");
	gettext("Node highlighting");
	gettext("Method used to highlight selected object.");
	gettext("Filtering");
	gettext("Mipmapping");
	gettext("Use mip mapping to scale textures. May slightly increase performance.");
	gettext("Anisotropic filtering");
	gettext("Use anisotropic filtering when viewing at textures from an angle.");
	gettext("Bilinear filtering");
	gettext("Use bilinear filtering when scaling textures.");
	gettext("Trilinear filtering");
	gettext("Use trilinear filtering when scaling textures.");
	gettext("Clean transparent textures");
	gettext("Filtered textures can blend RGB values with fully-transparent neighbors,\nwhich PNG optimizers usually discard, sometimes resulting in a dark or\nlight edge to transparent textures.  Apply this filter to clean that up\nat texture load time.");
	gettext("Minimum texture size for filters");
	gettext("When using bilinear/trilinear/anisotropic filters, low-resolution textures\ncan be blurred, so automatically upscale them with nearest-neighbor\ninterpolation to preserve crisp pixels.  This sets the minimum texture size\nfor the upscaled textures; higher values look sharper, but require more\nmemory.  Powers of 2 are recommended.  Setting this higher than 1 may not\nhave a visible effect unless bilinear/trilinear/anisotropic filtering is\nenabled.");
	gettext("FSAA");
	gettext("Experimental option, might cause visible spaces between blocks\nwhen set to higher number than 0.");
	gettext("Shaders");
	gettext("Shaders");
	gettext("Shaders allow advanced visul effects and may increase performance on some video cards.\nThy only work with the OpenGL video backend.");
	gettext("Tone Mapping");
	gettext("Filmic tone mapping");
	gettext("Enables filmic tone mapping");
	gettext("Bumpmapping");
	gettext("Bumpmapping");
	gettext("Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack\nor need to be auto-generated.\nRequires shaders to be enabled.");
	gettext("Generate normalmaps");
	gettext("Enables on the fly normalmap generation (Emboss effect).\nRequires bumpmapping to be enabled.");
	gettext("Normalmaps strength");
	gettext("Strength of generated normalmaps.");
	gettext("Normalmaps sampling");
	gettext("Defines sampling step of texture.\nA higher value results in smoother normal maps.");
	gettext("Parallax Occlusion");
	gettext("Parallax occlusion");
	gettext("Enables parallax occlusion mapping.\nRequires shaders to be enabled.");
	gettext("Parallax occlusion mode");
	gettext("0 = parallax occlusion with slope information (faster).\n1 = relief mapping (slower, more accurate).");
	gettext("Parallax occlusion strength");
	gettext("Strength of parallax.");
	gettext("Parallax occlusion iterations");
	gettext("Number of parallax occlusion iterations.");
	gettext("Parallax occlusion Scale");
	gettext("Overall scale of parallax occlusion effect.");
	gettext("Parallax occlusion bias");
	gettext("Overall bias of parallax occlusion effect, usually scale/2.");
	gettext("Waving Nodes");
	gettext("Waving water");
	gettext("Set to true enables waving water.\nRequires shaders to be enabled.");
	gettext("Waving water height");
	gettext("Waving water length");
	gettext("Waving water speed");
	gettext("Waving leaves");
	gettext("Set to true enables waving leaves.\nRequires shaders to be enabled.");
	gettext("Waving plants");
	gettext("Set to true enables waving plants.\nRequires shaders to be enabled.");
	gettext("Advanced");
	gettext("Maximum FPS");
	gettext("If FPS would go higher than this, limit it by sleeping\nto not waste CPU power for no benefit.");
	gettext("FPS in pause menu");
	gettext("Maximum FPS when game is paused.");
	gettext("Viewing range");
	gettext("View distance in nodes.\nMin = 20");
	gettext("Screen width");
	gettext("Width component of the initial window size.");
	gettext("Screen height");
	gettext("Height component of the initial window size.");
	gettext("Full screen");
	gettext("Fullscreen mode.");
	gettext("Full screen BPP");
	gettext("Bits per pixel (aka color depth) in fullscreen mode.");
	gettext("V-Sync");
	gettext("Vertical screen synchronization.");
	gettext("Field of view");
	gettext("Field of view in degrees.");
	gettext("Gamma");
	gettext("Adjust the gamma encoding for the light tables. Lower numbers are brighter.\nThis setting is for the client only and is ignored by the server.");
	gettext("Texture path");
	gettext("Path to texture directory. All textures are first searched from here.");
	gettext("Video driver");
	gettext("The rendering back-end for Irrlicht.");
	gettext("Cloud height");
	gettext("Height on which clouds are appearing.");
	gettext("Cloud radius");
	gettext("Radius of cloud area stated in number of 64 node cloud squares.\nValues larger than 26 will start to produce sharp cutoffs at cloud area corners.");
	gettext("View bobbing");
	gettext("Multiplier for view bobbing.\nFor example: 0 for no view bobbing; 1.0 for normal; 2.0 for double.");
	gettext("Fall bobbing");
	gettext("Multiplier for fall bobbing.\nFor example: 0 for no view bobbing; 1.0 for normal; 2.0 for double.");
	gettext("3D mode");
	gettext("3D support.\nCurrently 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.\n-    pageflip: quadbuffer based 3d.");
	gettext("Console color");
	gettext("In-game chat console background color (R,G,B).");
	gettext("Console alpha");
	gettext("In-game chat console background alpha (opaqueness, between 0 and 255).");
	gettext("Selection box color");
	gettext("Selection box border color (R,G,B).");
	gettext("Selection box width");
	gettext("Width of the selectionbox's lines around nodes.");
	gettext("Crosshair color");
	gettext("Crosshair color (R,G,B).");
	gettext("Crosshair alpha");
	gettext("Crosshair alpha (opaqueness, between 0 and 255).");
	gettext("Desynchronize block animation");
	gettext("Whether node texture animations should be desynchronized per mapblock.");
	gettext("Maximum hotbar width");
	gettext("Maximum proportion of current window to be used for hotbar.\nUseful if there's something to be displayed right or left of hotbar.");
	gettext("Mesh cache");
	gettext("Enables caching of facedir rotated meshes.");
	gettext("Minimap");
	gettext("Enables minimap.");
	gettext("Round minimap");
	gettext("Shape of the minimap. Enabled = round, disabled = square.");
	gettext("Minimap scan height");
	gettext("True = 256\nFalse = 128\nUseable to make minimap smoother on slower machines.");
	gettext("Colored fog");
	gettext("Make fog and sky colors depend on daytime (dawn/sunset) and view direction.");
	gettext("Ambient occlusion gamma");
	gettext("The strength (darkness) of node ambient-occlusion shading.\nLower is darker, Higher is lighter. The valid range of values for this\nsetting is 0.25 to 4.0 inclusive. If the value is out of range it will be\nset to the nearest valid value.");
	gettext("Inventory items animations");
	gettext("Enables animation of inventory items.");
	gettext("Menus");
	gettext("Clouds in menu");
	gettext("Use a cloud animation for the main menu background.");
	gettext("GUI scaling");
	gettext("Scale gui by a user specified value.\nUse a nearest-neighbor-anti-alias filter to scale the GUI.\nThis will smooth over some of the rough edges, and blend\npixels when scaling down, at the cost of blurring some\nedge pixels when images are scaled by non-integer sizes.");
	gettext("GUI scaling filter");
	gettext("When gui_scaling_filter is true, all GUI images need to be\nfiltered in software, but some images are generated directly\nto hardware (e.g. render-to-texture for nodes in inventory).");
	gettext("GUI scaling filter txr2img");
	gettext("When gui_scaling_filter_txr2img is true, copy those images\nfrom hardware to software for scaling.  When false, fall back\nto the old scaling method, for video drivers that don't\npropery support downloading textures back from hardware.");
	gettext("Tooltip delay");
	gettext("Delay showing tooltips, stated in milliseconds.");
	gettext("Freetype fonts");
	gettext("Whether freetype fonts are used, requires freetype support to be compiled in.");
	gettext("Font path");
	gettext("Path to TrueTypeFont or bitmap.");
	gettext("Font size");
	gettext("Font shadow");
	gettext("Font shadow offset, if 0 then shadow will not be drawn.");
	gettext("Font shadow alpha");
	gettext("Font shadow alpha (opaqueness, between 0 and 255).");
	gettext("Monospace font path");
	gettext("Monospace font size");
	gettext("Fallback font");
	gettext("This font will be used for certain languages.");
	gettext("Fallback font size");
	gettext("Fallback font shadow");
	gettext("Fallback font shadow alpha");
	gettext("Screenshot folder");
	gettext("Path to save screenshots at.");
	gettext("Screenshot format");
	gettext("Format of screenshots.");
	gettext("Screenshot quality");
	gettext("Screenshot quality. Only used for JPEG format.\n1 means worst quality; 100 means best quality.\nUse 0 for default quality.");
	gettext("Advanced");
	gettext("DPI");
	gettext("Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k screens.");
	gettext("Sound");
	gettext("Sound");
	gettext("Volume");
	gettext("Advanced");
	gettext("Mapblock unload timeout");
	gettext("Timeout for client to remove unused map data from memory.");
	gettext("Mapblock limit");
	gettext("Maximum number of mapblocks for client to be kept in memory.\nSet to -1 for unlimited amount.");
	gettext("Show debug info");
	gettext("Whether to show the client debug info (has the same effect as hitting F5).");
	gettext("Server / Singleplayer");
	gettext("Server name");
	gettext("Name of the server, to be displayed when players join and in the serverlist.");
	gettext("Server description");
	gettext("Description of server, to be displayed when players join and in the serverlist.");
	gettext("Server address");
	gettext("Domain name of server, to be displayed in the serverlist.");
	gettext("Server URL");
	gettext("Homepage of server, to be displayed in the serverlist.");
	gettext("Announce server");
	gettext("Automaticaly report to the serverlist.");
	gettext("Serverlist URL");
	gettext("Announce to this serverlist.\nIf you want to announce your ipv6 address, use  serverlist_url = v6.servers.minetest.net.");
	gettext("Network");
	gettext("Server port");
	gettext("Network port to listen (UDP).\nThis value will be overridden when starting from the main menu.");
	gettext("Bind address");
	gettext("The network interface that the server listens on.");
	gettext("Strict protocol checking");
	gettext("Enable to disallow old clients from connecting.\nOlder clients are compatible in the sense that they will not crash when connecting\nto new servers, but they may not support all new features that you are expecting.");
	gettext("Remote media");
	gettext("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).\nFiles that are not present will be fetched the usual way.");
	gettext("IPv6 server");
	gettext("Enable/disable running an IPv6 server.  An IPv6 server may be restricted\nto IPv6 clients, depending on system configuration.\nIgnored if bind_address is set.");
	gettext("Advanced");
	gettext("Maximum simultaneously blocks send per client");
	gettext("How many blocks are flying in the wire simultaneously per client.");
	gettext("Maximum simultaneously bocks send total");
	gettext("How many blocks are flying in the wire simultaneously for the whole server.");
	gettext("To reduce lag, block transfers are slowed down when a player is building something.\nThis determines how long they are slowed down after placing or removing a node.");
	gettext("Max. packets per iteration");