msgid "" msgstr "" "Project-Id-Version: Dhivehi (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-06-16 18:27+0200\n" "PO-Revision-Date: 2019-11-10 15:04+0000\n" "Last-Translator: Krock \n" "Language-Team: Dhivehi \n" "Language: dv\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 3.10-dev\n" #: builtin/client/chatcommands.lua msgid "Clear the out chat queue" msgstr "" #: builtin/client/chatcommands.lua msgid "Empty command." msgstr "" #: builtin/client/chatcommands.lua #, fuzzy msgid "Exit to main menu" msgstr "މެއިން މެނޫ" #: builtin/client/chatcommands.lua msgid "Invalid command: " msgstr "" #: builtin/client/chatcommands.lua msgid "Issued command: " msgstr "" #: builtin/client/chatcommands.lua msgid "List online players" msgstr "" #: builtin/client/chatcommands.lua msgid "Online players: " msgstr "" #: builtin/client/chatcommands.lua msgid "The out chat queue is now empty." msgstr "" #: builtin/client/chatcommands.lua msgid "This command is disabled by server." msgstr "" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" msgstr "އަލުން ސްޕައުންވޭ" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" msgstr "މަރުވީ" #: builtin/client/death_formspec.lua #, fuzzy msgid "You died." msgstr "މަރުވީ" #: builtin/common/chatcommands.lua msgid "Available commands:" msgstr "" #: builtin/common/chatcommands.lua msgid "Available commands: " msgstr "" #: builtin/common/chatcommands.lua msgid "Command not available: " msgstr "" #: builtin/common/chatcommands.lua msgid "Get help for commands" msgstr "" #: builtin/common/chatcommands.lua msgid "" "Use '.help ' to get more information, or '.help all' to list everything." msgstr "" #: builtin/common/chatcommands.lua msgid "[all | ]" msgstr "" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "" #: builtin/fstk/ui.lua #, fuzzy msgid "An error occurred in a Lua script:" msgstr "މޮޑެއްފަދަ ލުއޭ ސްކްރިޕްޓެއްގައި މައްސަލައެއް ޖެހިއްޖެ:" #: builtin/fstk/ui.lua #, fuzzy msgid "An error occurred:" msgstr "މޮޑެއްފަދަ ލުއޭ ސްކްރިޕްޓެއްގައި މައްސަލައެއް ދިމާވެއްޖެ:" #: builtin/fstk/ui.lua msgid "Main menu" msgstr "maigandu menu" #: builtin/fstk/ui.lua msgid "Reconnect" msgstr "aa gulhumeh" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" msgstr "ސަާވަރ އިން ރިކަނެކްޓަކަށް އެދެފި:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "ޕްރޮޓޮކޯލް ވާޝަން ފުށުއެރުމެއް. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " msgstr "ސާވަރ އިން ޕްރޮޓޮކޯލް ވާޝަން 1$ ތަންފީޒުކުރޭ. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " msgstr "$1 އާއި 2$ ދެމެދުގެ ޕްރޮޓޮކޯލް ވާޝަންތައް ސާވަރ ސަިޕޯޓް ކުރޭ. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "އަޅުގަނޑުމެން ހަމައެކަނި ސަޕޯޓްކުރަނީ ޕްރޮޓޮކޯލް ވާޝަން 1$." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." msgstr "އަޅުގަނޑުމެން 1$ އާއި 2$ އާއި ދެމެދުގެ ޕޮރޮޓޮކޯލް ވާޝަންތައް ސަޕޯޓް ކުރަން." #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" msgstr "ކެންސަލް" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "ބަރޯސާވާ(ޑިޕެންޑެންސީޒް):" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" msgstr "ހުރިހާ އެއްޗެއް އޮފްކޮށްލާ" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" msgstr "މޮޑްޕެކް އޮފްކުރޭ" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" msgstr "ހުރިހާއެއްޗެއް ޖައްސާ" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" msgstr "މޮޑްޕެކްގެ އޮންކުރޭ:" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "މަނާ އަކުރުތަށް ހިމެނޭތީ މޮޑް '1$' ނުޖެއްސުނު. ހަމައެކަނި ހުއްދައީ [Z-A0-9] މި އަކުރުތައް." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" msgstr "މޮޑް:" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No (optional) dependencies" msgstr "ލާޒިމުނޫން ޑިޕެންޑެންސީތައް:" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No hard dependencies" msgstr "އެއްވެސް ޑިޕެންޑެންސީއެއް ނެތް." #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No optional dependencies" msgstr "ލާޒިމުނޫން ޑިޕެންޑެންސީތައް:" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" msgstr "ލާޒިމުނޫން ޑިޕެންޑެންސީތައް:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" msgstr "ސޭވްކުރޭ" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" msgstr "ދުނިޔެ:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" msgstr "ޖައްސާފަ" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy msgid "$1 downloading..." msgstr "ލޯޑްވަނީ..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Already installed" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "އެނބުރި މެއިން މެނޫއަށް" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy msgid "Base Game:" msgstr "ގޭމް ހޮސްޓްކުރޭ" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy msgid "Downloading..." msgstr "ލޯޑްވަނީ..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" msgstr "$1 ނޭޅުނު" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" msgstr "ގޭމްތައް" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" msgstr "އަޅާ" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy msgid "Install $1" msgstr "އަޅާ" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy msgid "Install missing dependencies" msgstr "ލާޒިމުނޫން ޑިޕެންޑެންސީތައް:" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "މޮޑްތައް" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "No updates" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Not found" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" msgstr "ފުހެލާ" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" msgstr "\"$1\" ކޔާ ދިުނިޔެއެއް އެބައިން" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "ހަދާ" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Decorations" msgstr "މޮޑްގެ މައުލޫލާތު:" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Download a game, 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 msgid "Dungeons" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" msgstr "ގޭމް" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" msgstr "މެޕްޖެން" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" msgstr "" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Mapgen-specific flags" msgstr "މެޕްޖެން" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" msgstr "އެއްވެސް ގޭމެއް އިހްތިޔާރުވެފައެއް ނެޠް" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" msgstr "ސީޑް" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Warning: The Development Test is meant for developers." msgstr "އިންޒާރު: މިނިމަލް ޑިވެލޮޕްމަންޓް ހާއްސަކުރެވިފައިވަނީ ޑިވެލޮޕަރުންނަށް." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "ދުނިޔޭގެ ނަން" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." msgstr "އެއްވެސް ސަބްގޭމެއް އެޅިފައެއް ނެތް." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" msgstr "\"$1\" ޑިލީޓްކުރައްވަން ބޭނުންފުޅުކަން ޔަގީންތޯ؟" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" msgstr "ޑިލީޓްކުރޭ" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" msgstr "މޮޑްއެމް.ޖީ.އާރް: \"1$\" ޑިލީޓެއް ނުކުރެވުނު" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" msgstr "މޮޑްއެމް.ޖީ.އާރް: ޕާތު \"1$\" ބާތިލް" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" msgstr "ދުނިޔެ \"1$\" ޑިލީޓްކުރަންވީތޯ؟" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" msgstr "ގަބޫލުކުރޭ" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" msgstr "މޮޑްޕެކްގެ ނަން ބަދަލުކުރޭ:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" msgstr "(ސެޓިންގްގެ ތައާރަފެއް ދީފައެއް ނެތް)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" msgstr "އަނބުރާ ސެޓިންގްސް ސަފުހާއަށް>" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" msgstr "ފުންކޮށް ހޯދާ" #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_settings.lua msgid "Disabled" msgstr "އޮފްކޮށްފަ" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" msgstr "ބަދަލުކުރޭ" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" msgstr "ޖައްސާފަ" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." msgstr "ސައްހަ އިންޓީޖަރއެއް ލިޔުއްވާ." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." msgstr "ސައްހަ އަދަދެއް ލިޔުއްވާ." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" msgstr "ޑިފޯލްޓައަށް ރައްދުކުރޭ" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua msgid "Search" msgstr "ހޯދާ" #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select directory" msgstr "މޮޑްގެ ފައިލް އިހްތިޔާރުކުރޭ:" #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select file" msgstr "މޮޑްގެ ފައިލް އިހްތިޔާރުކުރޭ:" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" msgstr "ޓެކްނިކަލް ނަންތައް ދައްކާ" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." msgstr "އަދަދު އެންމެ ކުޑަވެގެން 1$އަށް ވާން ޖެހޭ." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must not be larger than $1." msgstr "އަދަދު 1$އަށްވުރެއް ބޮޑުވާންޖެހޭ." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" msgstr "" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". #. It can be enabled in noise settings in #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" msgstr "" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" msgstr "" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and #. can be enabled in noise settings in #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" msgstr "" #: builtin/mainmenu/pkgmgr.lua #, fuzzy msgid "$1 (Enabled)" msgstr "ޖައްސާފަ" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" msgstr "$1 $2އަށް ނޭޅުނު" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" #: builtin/mainmenu/pkgmgr.lua #, fuzzy msgid "Install: file: \"$1\"" msgstr "މޮޑް އަޚާ: ފައިލް:\"1$\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" msgstr "" #: builtin/mainmenu/pkgmgr.lua #, fuzzy msgid "Unable to install a $1 as a texture pack" msgstr "$1 $2އަށް ނޭޅުނު" #: builtin/mainmenu/pkgmgr.lua #, fuzzy msgid "Unable to install a game as a $1" msgstr "$1 $2އަށް ނޭޅުނު" #: builtin/mainmenu/pkgmgr.lua #, fuzzy msgid "Unable to install a mod as a $1" msgstr "$1 $2އަށް ނޭޅުނު" #: builtin/mainmenu/pkgmgr.lua #, fuzzy msgid "Unable to install a modpack as a $1" msgstr "$1 $2އަށް ނޭޅުނު" #: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp msgid "Loading..." msgstr "ލޯޑްވަނީ..." #: builtin/mainmenu/serverlistmgr.lua msgid "Public server list is disabled" msgstr "" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "ޕަބްލިކް ސާވަރ ލިސްޓު އަލުން ޖައްސަވާ.އަދި އިންޓަނެޓް ކަނެކްޝަން ޗެކްކުރައްވާ." #: builtin/mainmenu/tab_about.lua msgid "About" msgstr "" #: builtin/mainmenu/tab_about.lua msgid "Active Contributors" msgstr "" #: builtin/mainmenu/tab_about.lua msgid "Active renderer:" msgstr "" #: builtin/mainmenu/tab_about.lua msgid "Core Developers" msgstr "" #: builtin/mainmenu/tab_about.lua #, fuzzy msgid "Open User Data Directory" msgstr "މޮޑްގެ ފައިލް އިހްތިޔާރުކުރޭ:" #: builtin/mainmenu/tab_about.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_about.lua msgid "Previous Contributors" msgstr "" #: builtin/mainmenu/tab_about.lua msgid "Previous Core Developers" msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Content" msgstr "" #: builtin/mainmenu/tab_content.lua #, fuzzy msgid "Disable Texture Pack" msgstr "އެމް.ޕީ އޮފްކޮށްލާ" #: builtin/mainmenu/tab_content.lua #, fuzzy msgid "Information:" msgstr "މޮޑްގެ މައުލޫލާތު:" #: builtin/mainmenu/tab_content.lua #, fuzzy msgid "Installed Packages:" msgstr "އެޅިފައިވާ މޮޑްތައް:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." msgstr "އެއްވެސް ޑިޕެންޑެންސީއެއް ނެތް." #: builtin/mainmenu/tab_content.lua msgid "No package description available" msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Rename" msgstr "ނަންބަދަލުކުރޭ" #: builtin/mainmenu/tab_content.lua #, fuzzy msgid "Uninstall Package" msgstr "އިހްތިޔާރުކުރެވިފައިވާ މޮޑް ޑިލީޓްކުރޭ" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" msgstr "ސާވަރ އިއުލާންކުރޭ" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Creative Mode" msgstr "ކްރިއޭޓިވް މޯޑް" #: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "ގެއްލުން ޖައްސާ" #: builtin/mainmenu/tab_local.lua msgid "Host Game" msgstr "ގޭމް ހޮސްޓްކުރޭ" #: builtin/mainmenu/tab_local.lua msgid "Host Server" msgstr "ސާވަރއެއް ހޮސްޓްކުރޭ" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_online.lua msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" msgstr "އައު" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" msgstr "އެއްވެސް ދުނިޔެއެއް އުފެދިފައެއް ނުވަތަ އިހްތިޔާރުވެފައެއް ނެޠް!" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_online.lua #, fuzzy msgid "Password" msgstr "ޕާސްވޯޑް / ނަން" #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "ގޭމް ކުޅޭ" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_online.lua msgid "Port" msgstr "ޕޯޓް" #: builtin/mainmenu/tab_local.lua #, fuzzy msgid "Select Mods" msgstr "ދުނިޔެ އިހްތިޔާރު ކުރޭ:" #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "ދުނިޔެ އިހްތިޔާރު ކުރޭ:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" msgstr "ސާވަރ ޕޯޓް" #: builtin/mainmenu/tab_local.lua #, fuzzy msgid "Start Game" msgstr "ގޭމް ހޮސްޓްކުރޭ" #: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Address" msgstr "އެޑްރެސް / ޕޯޓް" #: builtin/mainmenu/tab_online.lua src/client/keycode.cpp msgid "Clear" msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "ކަނެކްޓްކުރޭ" #: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "ކްރިއޭޓިވް މޯޑް" #. ~ PvP = Player versus Player #: builtin/mainmenu/tab_online.lua msgid "Damage / PvP" msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "އެންމެ ގަޔާނުވޭ" #: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Favorites" msgstr "އެންމެ ގަޔާވޭ" #: builtin/mainmenu/tab_online.lua msgid "Incompatible Servers" msgstr "" #: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Join Game" msgstr "ގޭމް ހޮސްޓްކުރޭ" #: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Public Servers" msgstr "ސާވަރ އިއުލާންކުރޭ" #: builtin/mainmenu/tab_online.lua msgid "Refresh" msgstr "" #: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Server Description" msgstr "ސާވަރ ޕޯޓް" #: builtin/mainmenu/tab_settings.lua msgid "2x" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "4x" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Connected Glass" msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Dynamic shadows" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Dynamic shadows: " msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "High" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Low" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Medium" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "None" msgstr "ނެތް" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Water" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "ސްކްރީން:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (experimental)" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Simple Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Smooth Lighting" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Ultra High" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Very Low" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "" #: src/client/client.cpp msgid "Connection timed out." msgstr "" #: src/client/client.cpp msgid "Done!" msgstr "" #: src/client/client.cpp msgid "Initializing nodes" msgstr "" #: src/client/client.cpp msgid "Initializing nodes..." msgstr "" #: src/client/client.cpp msgid "Loading textures..." msgstr "" #: src/client/client.cpp msgid "Rebuilding shaders..." msgstr "" #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "" #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" msgstr "" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." msgstr "" #: src/client/clientlauncher.cpp msgid "Main Menu" msgstr "މެއިން މެނޫ" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." msgstr "" #: src/client/clientlauncher.cpp msgid "Player name too long." msgstr "" #: src/client/clientlauncher.cpp msgid "Please choose a name!" msgstr "" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " msgstr "" #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " msgstr "" #: src/client/game.cpp msgid "" "\n" "Check debug.txt for details." msgstr "" #: src/client/game.cpp msgid "- Address: " msgstr "" #: src/client/game.cpp msgid "- Creative Mode: " msgstr "" #: src/client/game.cpp msgid "- Damage: " msgstr "" #: src/client/game.cpp msgid "- Mode: " msgstr "" #: src/client/game.cpp msgid "- Port: " msgstr "" #: src/client/game.cpp msgid "- Public: " msgstr "" #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " msgstr "" #: src/client/game.cpp msgid "- Server Name: " msgstr "" #: src/client/game.cpp msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp #, fuzzy msgid "Automatic forward enabled" msgstr "އަނިޔާވުން ޖައްސާފައި" #: src/client/game.cpp msgid "Camera update disabled" msgstr "" #: src/client/game.cpp #, fuzzy msgid "Camera update enabled" msgstr "އަނިޔާވުން ޖައްސާފައި" #: src/client/game.cpp msgid "Change Password" msgstr "" #: src/client/game.cpp msgid "Cinematic mode disabled" msgstr "" #: src/client/game.cpp #, fuzzy msgid "Cinematic mode enabled" msgstr "އަނިޔާވުން ޖައްސާފައި" #: src/client/game.cpp msgid "Client side scripting is disabled" msgstr "" #: src/client/game.cpp msgid "Connecting to server..." msgstr "" #: src/client/game.cpp msgid "Continue" msgstr "" #: src/client/game.cpp #, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" "- %s: jump/climb up\n" "- %s: dig/punch\n" "- %s: place/use\n" "- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" #: src/client/game.cpp msgid "Creating client..." msgstr "" #: src/client/game.cpp msgid "Creating server..." msgstr "" #: src/client/game.cpp msgid "Debug info and profiler graph hidden" msgstr "" #: src/client/game.cpp msgid "Debug info shown" msgstr "" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" msgstr "" #: src/client/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 "" "ޑިފޯލްޓް ކޮންޓްޜޯލްތައް:\n" "މެނޫ ނުފެންނައިރު:\n" "-އެއްފަހަރު ފިއްތުން: ފިތް އޮންކުރުން\n" "-ދެފަހަރު ފިއްތުން: ބޭންދުން/ބޭނުންކުރުން\n" "-އިނގިލި ކާތާލުން: ފަރާތްފަޜާތަށް ބެލުން\n" "މެނޫ/އިންވެންޓަރީ ފެންނައިރު:\n" "-ދެ ފަހަރު ފިއްތުން(ބޭރުގަ)\n" "-->ކްލޯޒްކުރޭ\n" "-ބަރީގައި އަތްލާފައި ޖާގައިގައި އަތްލުން:\n" "-->ބަރީގެ ތަން ބަދަލުކުރޭ\n" "-އަތްލާފައި ދަމާ، ދެވަނަ އިނގިލިން ފިއްތާ:\n" "-->ޖާގައިގައި އެކަތި ބައިންދާ\n" #: src/client/game.cpp msgid "Disabled unlimited viewing range" msgstr "" #: src/client/game.cpp msgid "Enabled unlimited viewing range" msgstr "" #: src/client/game.cpp msgid "Exit to Menu" msgstr "މެއިން މެނޫ" #: src/client/game.cpp msgid "Exit to OS" msgstr "" #: src/client/game.cpp msgid "Fast mode disabled" msgstr "" #: src/client/game.cpp #, fuzzy msgid "Fast mode enabled" msgstr "އަނިޔާވުން ޖައްސާފައި" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" msgstr "" #: src/client/game.cpp msgid "Fly mode disabled" msgstr "" #: src/client/game.cpp #, fuzzy msgid "Fly mode enabled" msgstr "އަނިޔާވުން ޖައްސާފައި" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" msgstr "" #: src/client/game.cpp #, fuzzy msgid "Fog disabled" msgstr "އޮފްކޮށްފަ" #: src/client/game.cpp #, fuzzy msgid "Fog enabled" msgstr "ޖައްސާފަ" #: src/client/game.cpp msgid "Game info:" msgstr "" #: src/client/game.cpp msgid "Game paused" msgstr "" #: src/client/game.cpp msgid "Hosting server" msgstr "" #: src/client/game.cpp msgid "Item definitions..." msgstr "" #: src/client/game.cpp msgid "KiB/s" msgstr "" #: src/client/game.cpp msgid "Media..." msgstr "" #: src/client/game.cpp msgid "MiB/s" msgstr "" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" msgstr "" #: src/client/game.cpp msgid "Multiplayer" msgstr "" #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" #: src/client/game.cpp #, fuzzy msgid "Noclip mode enabled" msgstr "އަނިޔާވުން ޖައްސާފައި" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" msgstr "" #: src/client/game.cpp msgid "Node definitions..." msgstr "" #: src/client/game.cpp msgid "Off" msgstr "" #: src/client/game.cpp msgid "On" msgstr "" #: src/client/game.cpp msgid "Pitch move mode disabled" msgstr "" #: src/client/game.cpp msgid "Pitch move mode enabled" msgstr "" #: src/client/game.cpp msgid "Profiler graph shown" msgstr "" #: src/client/game.cpp msgid "Remote server" msgstr "" #: src/client/game.cpp msgid "Resolving address..." msgstr "" #: src/client/game.cpp msgid "Shutting down..." msgstr "" #: src/client/game.cpp msgid "Singleplayer" msgstr "" #: src/client/game.cpp msgid "Sound Volume" msgstr "" #: src/client/game.cpp msgid "Sound muted" msgstr "" #: src/client/game.cpp msgid "Sound system is disabled" msgstr "" #: src/client/game.cpp msgid "Sound system is not supported on this build" msgstr "" #: src/client/game.cpp msgid "Sound unmuted" msgstr "" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" msgstr "" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" msgstr "" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" msgstr "" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" msgstr "" #: src/client/game.cpp msgid "Wireframe shown" msgstr "" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" #: src/client/game.cpp msgid "ok" msgstr "" #: src/client/gameui.cpp msgid "Chat hidden" msgstr "" #: src/client/gameui.cpp msgid "Chat shown" msgstr "" #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" #: src/client/gameui.cpp msgid "HUD shown" msgstr "" #: src/client/gameui.cpp msgid "Profiler hidden" msgstr "" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" msgstr "" #: src/client/keycode.cpp msgid "Apps" msgstr "" #: src/client/keycode.cpp msgid "Backspace" msgstr "" #: src/client/keycode.cpp msgid "Caps Lock" msgstr "" #: src/client/keycode.cpp msgid "Control" msgstr "" #: src/client/keycode.cpp msgid "Down" msgstr "" #: src/client/keycode.cpp msgid "End" msgstr "" #: src/client/keycode.cpp msgid "Erase EOF" msgstr "" #: src/client/keycode.cpp msgid "Execute" msgstr "" #: src/client/keycode.cpp msgid "Help" msgstr "" #: src/client/keycode.cpp msgid "Home" msgstr "" #: src/client/keycode.cpp msgid "IME Accept" msgstr "" #: src/client/keycode.cpp msgid "IME Convert" msgstr "" #: src/client/keycode.cpp msgid "IME Escape" msgstr "" #: src/client/keycode.cpp msgid "IME Mode Change" msgstr "" #: src/client/keycode.cpp msgid "IME Nonconvert" msgstr "" #: src/client/keycode.cpp msgid "Insert" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" msgstr "" #: src/client/keycode.cpp msgid "Left Button" msgstr "" #: src/client/keycode.cpp msgid "Left Control" msgstr "" #: src/client/keycode.cpp msgid "Left Menu" msgstr "ވާތު މެނޫ" #: src/client/keycode.cpp msgid "Left Shift" msgstr "" #: src/client/keycode.cpp msgid "Left Windows" msgstr "" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" msgstr "މެނޫ" #: src/client/keycode.cpp msgid "Middle Button" msgstr "" #: src/client/keycode.cpp msgid "Num Lock" msgstr "" #: src/client/keycode.cpp msgid "Numpad *" msgstr "" #: src/client/keycode.cpp msgid "Numpad +" msgstr "" #: src/client/keycode.cpp msgid "Numpad -" msgstr "" #: src/client/keycode.cpp msgid "Numpad ." msgstr "" #: src/client/keycode.cpp msgid "Numpad /" msgstr "" #: src/client/keycode.cpp msgid "Numpad 0" msgstr "" #: src/client/keycode.cpp msgid "Numpad 1" msgstr "" #: src/client/keycode.cpp msgid "Numpad 2" msgstr "" #: src/client/keycode.cpp msgid "Numpad 3" msgstr "" #: src/client/keycode.cpp msgid "Numpad 4" msgstr "" #: src/client/keycode.cpp msgid "Numpad 5" msgstr "" #: src/client/keycode.cpp msgid "Numpad 6" msgstr "" #: src/client/keycode.cpp msgid "Numpad 7" msgstr "" #: src/client/keycode.cpp msgid "Numpad 8" msgstr "" #: src/client/keycode.cpp msgid "Numpad 9" msgstr "" #: src/client/keycode.cpp msgid "OEM Clear" msgstr "" #: src/client/keycode.cpp msgid "Page down" msgstr "" #: src/client/keycode.cpp msgid "Page up" msgstr "" #: src/client/keycode.cpp msgid "Pause" msgstr "" #: src/client/keycode.cpp msgid "Play" msgstr "" #. ~ "Print screen" key #: src/client/keycode.cpp msgid "Print" msgstr "" #: src/client/keycode.cpp msgid "Return" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Right" msgstr "" #: src/client/keycode.cpp msgid "Right Button" msgstr "" #: src/client/keycode.cpp msgid "Right Control" msgstr "" #: src/client/keycode.cpp msgid "Right Menu" msgstr "ކަނާތު މެނޫ" #: src/client/keycode.cpp msgid "Right Shift" msgstr "" #: src/client/keycode.cpp msgid "Right Windows" msgstr "" #: src/client/keycode.cpp msgid "Scroll Lock" msgstr "" #. ~ Key name #: src/client/keycode.cpp msgid "Select" msgstr "އިހްތިޔާރުކުރޭ" #: src/client/keycode.cpp msgid "Shift" msgstr "" #: src/client/keycode.cpp msgid "Sleep" msgstr "" #: src/client/keycode.cpp msgid "Snapshot" msgstr "" #: src/client/keycode.cpp msgid "Space" msgstr "" #: src/client/keycode.cpp msgid "Tab" msgstr "" #: src/client/keycode.cpp msgid "Up" msgstr "" #: src/client/keycode.cpp msgid "X Button 1" msgstr "" #: src/client/keycode.cpp msgid "X Button 2" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "" #: src/client/minimap.cpp msgid "Minimap hidden" msgstr "" #: src/client/minimap.cpp #, c-format msgid "Minimap in radar mode, Zoom x%d" msgstr "" #: src/client/minimap.cpp #, c-format msgid "Minimap in surface mode, Zoom x%d" msgstr "" #: src/client/minimap.cpp msgid "Minimap in texture mode" msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" msgstr "" #: src/gui/guiConfirmRegistration.cpp #, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " "server.\n" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Aux1\" = climb down" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Aux1" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Block bounds" msgstr "" #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Change camera" msgstr "ފިތްތައް ބަދަލުކުރޭ" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "ފިތްތައް. (މި މެނޫ މައްސަލަ ޖެހިއްޖެނަމަ minetest.confއިން ތަކެތި ފުހެލައްވާ)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" msgstr "" #: src/gui/guiPasswordChange.cpp msgid "Change" msgstr "" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" msgstr "" #: src/gui/guiPasswordChange.cpp msgid "New Password" msgstr "" #: src/gui/guiPasswordChange.cpp msgid "Old Password" msgstr "" #: src/gui/guiVolumeChange.cpp msgid "Exit" msgstr "" #: src/gui/guiVolumeChange.cpp msgid "Muted" msgstr "" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " msgstr "" #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " msgstr "" #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's #. language code (e.g. "de" for German). #: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp msgid "LANG_CODE" msgstr "dv" #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" #: src/settings_translation_file.cpp msgid "" "(Android) Use virtual joystick to trigger \"Aux1\" button.\n" "If enabled, virtual joystick will also tap \"Aux1\" button when out of main " "circle." msgstr "" #: src/settings_translation_file.cpp msgid "" "(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" "Can be used to move a desired point to (0, 0) to create a\n" "suitable spawn point, or to allow 'zooming in' on a desired\n" "point by increasing 'scale'.\n" "The default is tuned for a suitable spawn point for Mandelbrot\n" "sets with default parameters, it may need altering in other\n" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" #: src/settings_translation_file.cpp msgid "" "(X,Y,Z) scale of fractal in nodes.\n" "Actual fractal size will be 2 to 3 times larger.\n" "These numbers can be made very large, the fractal does\n" "not have to fit inside the world.\n" "Increase these to 'zoom' into the detail of the fractal.\n" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." msgstr "" #: src/settings_translation_file.cpp msgid "3D clouds" msgstr "" #: src/settings_translation_file.cpp msgid "3D mode" msgstr "" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." msgstr "" #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" #: src/settings_translation_file.cpp msgid "" "3D noise defining structure of floatlands.\n" "If altered from the default, the noise 'scale' (0.7 by default) may need\n" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining terrain." msgstr "" #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." 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.\n" "- crossview: Cross-eyed 3d\n" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." 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 "ABM interval" msgstr "" #: src/settings_translation_file.cpp msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration in air" msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp msgid "Active Block Modifiers" msgstr "" #: src/settings_translation_file.cpp msgid "Active block management interval" 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 "" "ކަނެކްޓްވާންވީ އެޑްރެސް.\n" "ލޯކަލް ސާވަރ އެއް ފެއްޓެވުމަށް މި ހުސްކޮށް ދޫކޮށްލައްވާ.\n" "މެއިން މެނޫގެ އެޑްރެސް ގޮޅި މި ސެޓިންގްއަށްވުރެ ނުފޫޒު ގަދަެވާނެކަމަށް ދަންނަވަން." #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." 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 #, c-format msgid "" "Adjusts the density of the floatland layer.\n" "Increase value to increase density. Can be positive or negative.\n" "Value = 0.0: 50% of volume is floatland.\n" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" #: src/settings_translation_file.cpp msgid "Advanced" msgstr "" #: src/settings_translation_file.cpp msgid "" "Alters the light curve by applying 'gamma correction' to it.\n" "Higher values make middle and lower light levels brighter.\n" "Value '1.0' leaves the light curve unaltered.\n" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" #: 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 msgid "Amount of messages a player may send per 10 seconds." msgstr "" #: src/settings_translation_file.cpp msgid "Amplifies the valleys." msgstr "" #: src/settings_translation_file.cpp msgid "Anisotropic filtering" msgstr "" #: src/settings_translation_file.cpp msgid "Announce server" msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "Announce to this serverlist." msgstr "ސާވަރ އިއުލާންކުރޭ" #: src/settings_translation_file.cpp msgid "Append item name" msgstr "" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." msgstr "" #: src/settings_translation_file.cpp msgid "Apple trees noise" msgstr "" #: src/settings_translation_file.cpp msgid "Arm inertia" msgstr "" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" msgstr "" #: src/settings_translation_file.cpp msgid "" "At this distance the server will aggressively optimize which blocks are sent " "to\n" "clients.\n" "Small values potentially improve performance a lot, at the expense of " "visible\n" "rendering glitches (some blocks will not be rendered under water and in " "caves,\n" "as well as sometimes on land).\n" "Setting this to a value greater than max_block_send_distance disables this\n" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" #: src/settings_translation_file.cpp msgid "Automatic forward key" msgstr "" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." msgstr "" #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." msgstr "" #: src/settings_translation_file.cpp msgid "Autosave screen size" msgstr "" #: src/settings_translation_file.cpp msgid "Autoscaling mode" msgstr "" #: src/settings_translation_file.cpp msgid "Aux1 key" msgstr "" #: src/settings_translation_file.cpp msgid "Aux1 key for climbing/descending" msgstr "" #: src/settings_translation_file.cpp msgid "Backward key" msgstr "" #: src/settings_translation_file.cpp msgid "Base ground level" msgstr "" #: src/settings_translation_file.cpp msgid "Base terrain height." msgstr "" #: src/settings_translation_file.cpp msgid "Basic" msgstr "" #: src/settings_translation_file.cpp msgid "Basic privileges" msgstr "" #: src/settings_translation_file.cpp msgid "Beach noise" msgstr "" #: src/settings_translation_file.cpp msgid "Beach noise threshold" msgstr "" #: src/settings_translation_file.cpp msgid "Bilinear filtering" msgstr "" #: src/settings_translation_file.cpp msgid "Bind address" msgstr "" #: src/settings_translation_file.cpp msgid "Biome API temperature and humidity noise parameters" msgstr "" #: src/settings_translation_file.cpp msgid "Biome noise" msgstr "" #: src/settings_translation_file.cpp msgid "Block send optimize distance" msgstr "" #: src/settings_translation_file.cpp msgid "Bold and italic font path" msgstr "" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" msgstr "" #: src/settings_translation_file.cpp msgid "Bold font path" msgstr "" #: src/settings_translation_file.cpp msgid "Bold monospace font path" msgstr "" #: src/settings_translation_file.cpp msgid "Build inside player" msgstr "" #: src/settings_translation_file.cpp msgid "Builtin" msgstr "" #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" #: 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 msgid "Cave noise" msgstr "" #: src/settings_translation_file.cpp msgid "Cave noise #1" msgstr "" #: src/settings_translation_file.cpp msgid "Cave noise #2" msgstr "" #: src/settings_translation_file.cpp msgid "Cave width" msgstr "" #: src/settings_translation_file.cpp msgid "Cave1 noise" msgstr "" #: src/settings_translation_file.cpp msgid "Cave2 noise" msgstr "" #: src/settings_translation_file.cpp msgid "Cavern limit" msgstr "" #: src/settings_translation_file.cpp msgid "Cavern noise" msgstr "" #: src/settings_translation_file.cpp msgid "Cavern taper" msgstr "" #: src/settings_translation_file.cpp msgid "Cavern threshold" msgstr "" #: src/settings_translation_file.cpp msgid "Cavern upper limit" msgstr "" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" #: src/settings_translation_file.cpp msgid "Chat command time message threshold" msgstr "" #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "" #: src/settings_translation_file.cpp msgid "Chat log level" msgstr "" #: src/settings_translation_file.cpp msgid "Chat message count limit" msgstr "" #: src/settings_translation_file.cpp msgid "Chat message format" msgstr "" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" msgstr "" #: src/settings_translation_file.cpp msgid "Chat message max length" msgstr "" #: src/settings_translation_file.cpp msgid "Chat toggle key" msgstr "" #: src/settings_translation_file.cpp msgid "Chatcommands" msgstr "" #: src/settings_translation_file.cpp msgid "Chunk size" msgstr "" #: src/settings_translation_file.cpp msgid "Cinematic mode" msgstr "" #: src/settings_translation_file.cpp msgid "Cinematic mode key" msgstr "" #: src/settings_translation_file.cpp msgid "Clean transparent textures" msgstr "" #: src/settings_translation_file.cpp msgid "Client" msgstr "" #: src/settings_translation_file.cpp msgid "Client and Server" msgstr "" #: src/settings_translation_file.cpp msgid "Client modding" msgstr "" #: src/settings_translation_file.cpp msgid "Client side modding restrictions" msgstr "" #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" msgstr "" #: src/settings_translation_file.cpp msgid "Climbing speed" msgstr "" #: src/settings_translation_file.cpp msgid "Cloud radius" msgstr "" #: src/settings_translation_file.cpp msgid "Clouds" msgstr "" #: src/settings_translation_file.cpp msgid "Clouds are a client side effect." msgstr "" #: src/settings_translation_file.cpp msgid "Clouds in menu" msgstr "މެނޫގައި ވިލާތައް" #: src/settings_translation_file.cpp msgid "Colored fog" msgstr "" #: src/settings_translation_file.cpp msgid "Colored shadows" msgstr "" #: src/settings_translation_file.cpp msgid "" "Comma-separated list of flags to hide in the content repository.\n" "\"nonfree\" can be used to hide packages which do not qualify as 'free " "software',\n" "as defined by the Free Software Foundation.\n" "You can also specify content ratings.\n" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" #: src/settings_translation_file.cpp msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." 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 msgid "Command key" msgstr "" #: src/settings_translation_file.cpp msgid "Connect glass" msgstr "" #: 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 msgid "Console alpha" msgstr "" #: src/settings_translation_file.cpp msgid "Console color" msgstr "" #: src/settings_translation_file.cpp msgid "Console height" msgstr "" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" msgstr "" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" msgstr "ސޮޓޯރ ކުލޯޒްކޮށްލާ" #: src/settings_translation_file.cpp msgid "Continuous forward" msgstr "" #: src/settings_translation_file.cpp msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" #: src/settings_translation_file.cpp msgid "Controls" msgstr "" #: src/settings_translation_file.cpp msgid "" "Controls length of day/night cycle.\n" "Examples:\n" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." msgstr "" #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." msgstr "" #: src/settings_translation_file.cpp msgid "Controls steepness/height of hills." msgstr "" #: src/settings_translation_file.cpp msgid "" "Controls width of tunnels, a smaller value creates wider tunnels.\n" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" #: src/settings_translation_file.cpp msgid "Crash message" msgstr "" #: src/settings_translation_file.cpp msgid "Creative" msgstr "ކްރިއޭޓިވް" #: src/settings_translation_file.cpp msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp msgid "DPI" msgstr "" #: src/settings_translation_file.cpp msgid "Damage" msgstr "" #: src/settings_translation_file.cpp msgid "Debug info toggle key" msgstr "" #: src/settings_translation_file.cpp msgid "Debug log file size threshold" msgstr "" #: src/settings_translation_file.cpp msgid "Debug log level" msgstr "" #: src/settings_translation_file.cpp msgid "Dec. volume key" msgstr "" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." 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 "" "އާ ދުނިޔެއެއް އުފައްދާއިރު ޑިފޯލްޓްކޮށް ބޭނުންކުރާ ގޭމް.\n" "މެއިން މެނޫއިން ދުނިޔެއެއް ހަދާއިރު މީގެ މައްޗަށް ބާރު ހިނގާނެ." #: src/settings_translation_file.cpp msgid "Default password" msgstr "" #: src/settings_translation_file.cpp msgid "Default privileges" msgstr "" #: src/settings_translation_file.cpp msgid "Default report format" msgstr "" #: src/settings_translation_file.cpp msgid "Default stack size" msgstr "" #: src/settings_translation_file.cpp msgid "" "Define shadow filtering quality\n" "This simulates the soft shadows effect by applying a PCF or poisson disk\n" "but also uses more resources." msgstr "" #: src/settings_translation_file.cpp msgid "Defines areas where trees have apples." msgstr "" #: src/settings_translation_file.cpp msgid "Defines areas with sandy beaches." msgstr "" #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain and steepness of cliffs." msgstr "" #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain." msgstr "" #: src/settings_translation_file.cpp msgid "Defines full size of caverns, smaller values create larger caverns." msgstr "" #: src/settings_translation_file.cpp msgid "Defines large-scale river channel structure." msgstr "" #: src/settings_translation_file.cpp msgid "Defines location and terrain of optional hills and lakes." msgstr "" #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" #: src/settings_translation_file.cpp msgid "Defines the depth of the river channel." msgstr "" #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" #: src/settings_translation_file.cpp msgid "Defines the width of the river channel." msgstr "" #: src/settings_translation_file.cpp msgid "Defines the width of the river valley." msgstr "" #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." msgstr "" #: src/settings_translation_file.cpp msgid "" "Delay between mesh updates on the client in ms. Increasing this will slow\n" "down the rate of mesh updates, thus reducing jitter on slower clients." msgstr "" #: src/settings_translation_file.cpp msgid "Delay in sending blocks after building" 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 "Depth below which you'll find giant caverns." msgstr "" #: src/settings_translation_file.cpp msgid "Depth below which you'll find large caves." 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 "Desert noise threshold" msgstr "" #: src/settings_translation_file.cpp msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" #: src/settings_translation_file.cpp msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp msgid "Dig key" msgstr "" #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" #: src/settings_translation_file.cpp msgid "Disable anticheat" msgstr "" #: 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 msgid "Double tap jump for fly" msgstr "" #: src/settings_translation_file.cpp msgid "Double-tapping the jump key toggles fly mode." msgstr "" #: src/settings_translation_file.cpp msgid "Drop item key" msgstr "" #: src/settings_translation_file.cpp msgid "Dump the mapgen debug information." msgstr "" #: src/settings_translation_file.cpp msgid "Dungeon maximum Y" msgstr "" #: src/settings_translation_file.cpp msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp msgid "Dungeon noise" msgstr "" #: src/settings_translation_file.cpp msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." msgstr "" #: src/settings_translation_file.cpp msgid "" "Enable Lua modding support on client.\n" "This support is experimental and API can change." msgstr "" #: src/settings_translation_file.cpp msgid "" "Enable colored shadows. \n" "On true translucent nodes cast colored shadows. This is expensive." msgstr "" #: src/settings_translation_file.cpp msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp msgid "Enable joysticks" msgstr "" #: src/settings_translation_file.cpp msgid "Enable mod channels support." 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 poisson disk filtering.\n" "On true uses poisson disk to make \"soft shadows\". Otherwise uses PCF " "filtering." msgstr "" #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." msgstr "" #: src/settings_translation_file.cpp msgid "Enable register confirmation" msgstr "" #: src/settings_translation_file.cpp msgid "" "Enable register confirmation when connecting to server.\n" "If disabled, new account will be registered automatically." 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 vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" #: src/settings_translation_file.cpp msgid "" "Enable view bobbing and amount of 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 "" "Enable/disable running an IPv6 server.\n" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" "Enables Hable's 'Uncharted 2' filmic tone mapping.\n" "Simulates the tone curve of photographic film and how this approximates the\n" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." msgstr "" #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" #: src/settings_translation_file.cpp msgid "Enables minimap." msgstr "" #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" "Changing this setting requires a restart." msgstr "" #: src/settings_translation_file.cpp msgid "Engine profiling data print interval" msgstr "" #: src/settings_translation_file.cpp msgid "Entity methods" msgstr "" #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" "floatlands.\n" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" #: src/settings_translation_file.cpp msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp msgid "FSAA" msgstr "" #: src/settings_translation_file.cpp msgid "Factor noise" msgstr "" #: src/settings_translation_file.cpp msgid "Fall bobbing factor" msgstr "" #: src/settings_translation_file.cpp msgid "Fallback font path" 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 the \"Aux1\" 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\n" "Multiplayer Tab." msgstr "" #: src/settings_translation_file.cpp msgid "Filler depth" msgstr "" #: src/settings_translation_file.cpp msgid "Filler depth noise" msgstr "" #: src/settings_translation_file.cpp msgid "Filmic tone mapping" msgstr "" #: src/settings_translation_file.cpp msgid "" "Filtered textures can blend RGB values with fully-transparent neighbors,\n" "which PNG optimizers usually discard, often resulting in dark or\n" "light edges to transparent textures. Apply a filter to clean that up\n" "at texture load time. This is automatically enabled if mipmapping is enabled." msgstr "" #: src/settings_translation_file.cpp msgid "Filtering" msgstr "" #: src/settings_translation_file.cpp msgid "First of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp msgid "First of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp msgid "Fixed map seed" msgstr "" #: src/settings_translation_file.cpp msgid "Fixed virtual joystick" msgstr "" #: src/settings_translation_file.cpp msgid "Floatland density" msgstr "" #: src/settings_translation_file.cpp msgid "Floatland maximum Y" msgstr "" #: src/settings_translation_file.cpp msgid "Floatland minimum Y" msgstr "" #: src/settings_translation_file.cpp msgid "Floatland noise" msgstr "" #: src/settings_translation_file.cpp msgid "Floatland taper exponent" msgstr "" #: src/settings_translation_file.cpp msgid "Floatland tapering distance" msgstr "" #: src/settings_translation_file.cpp msgid "Floatland water level" 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 start" msgstr "" #: src/settings_translation_file.cpp msgid "Fog toggle key" msgstr "" #: src/settings_translation_file.cpp msgid "Font bold by default" msgstr "" #: src/settings_translation_file.cpp msgid "Font italic by default" 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 size" msgstr "" #: src/settings_translation_file.cpp msgid "Font size of the default font in point (pt)." msgstr "" #: src/settings_translation_file.cpp msgid "Font size of the monospace font in point (pt)." msgstr "" #: src/settings_translation_file.cpp msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" #: src/settings_translation_file.cpp msgid "" "Format of player chat messages. The following strings are valid " "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" #: src/settings_translation_file.cpp msgid "Format of screenshots." msgstr "" #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" msgstr "" #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" msgstr "" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" msgstr "" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" msgstr "" #: src/settings_translation_file.cpp msgid "Formspec default background color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp msgid "Formspec default background opacity (between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp msgid "Formspec full-screen background color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp msgid "Forward key" msgstr "" #: src/settings_translation_file u8 *vertices = (u8 *) buf->getVertices(); for (u32 i = 0; i < vertex_count; i++) ((video::S3DVertex *) (vertices + i * stride))->Color = color; } void setAnimatedMeshColor(scene::IAnimatedMeshSceneNode *node, const video::SColor &color) { for (u32 i = 0; i < node->getMaterialCount(); ++i) { node->getMaterial(i).EmissiveColor = color; } } void setMeshColor(scene::IMesh *mesh, const video::SColor &color) { if (mesh == NULL) return; u32 mc = mesh->getMeshBufferCount(); for (u32 j = 0; j < mc; j++) setMeshBufferColor(mesh->getMeshBuffer(j), color); } void setMeshBufferTextureCoords(scene::IMeshBuffer *buf, const v2f *uv, u32 count) { const u32 stride = getVertexPitchFromType(buf->getVertexType()); assert(buf->getVertexCount() >= count); u8 *vertices = (u8 *) buf->getVertices(); for (u32 i = 0; i < count; i++) ((video::S3DVertex*) (vertices + i * stride))->TCoords = uv[i]; } template <typename F> static void applyToMesh(scene::IMesh *mesh, const F &fn) { u16 mc = mesh->getMeshBufferCount(); for (u16 j = 0; j < mc; j++) { scene::IMeshBuffer *buf = mesh->getMeshBuffer(j); const u32 stride = getVertexPitchFromType(buf->getVertexType()); u32 vertex_count = buf->getVertexCount(); char *vertices = reinterpret_cast<char *>(buf->getVertices()); for (u32 i = 0; i < vertex_count; i++) fn(reinterpret_cast<video::S3DVertex *>(vertices + i * stride)); } } void colorizeMeshBuffer(scene::IMeshBuffer *buf, const video::SColor *buffercolor) { const u32 stride = getVertexPitchFromType(buf->getVertexType()); u32 vertex_count = buf->getVertexCount(); u8 *vertices = (u8 *) buf->getVertices(); for (u32 i = 0; i < vertex_count; i++) { video::S3DVertex *vertex = (video::S3DVertex *) (vertices + i * stride); video::SColor *vc = &(vertex->Color); // Reset color *vc = *buffercolor; // Apply shading applyFacesShading(*vc, vertex->Normal); } } void setMeshColorByNormalXYZ(scene::IMesh *mesh, const video::SColor &colorX, const video::SColor &colorY, const video::SColor &colorZ) { if (!mesh) return; auto colorizator = [=] (video::S3DVertex *vertex) { f32 x = fabs(vertex->Normal.X); f32 y = fabs(vertex->Normal.Y); f32 z = fabs(vertex->Normal.Z); if (x >= y && x >= z) vertex->Color = colorX; else if (y >= z) vertex->Color = colorY; else vertex->Color = colorZ; }; applyToMesh(mesh, colorizator); } void setMeshColorByNormal(scene::IMesh *mesh, const v3f &normal, const video::SColor &color) { if (!mesh) return; auto colorizator = [normal, color] (video::S3DVertex *vertex) { if (vertex->Normal == normal) vertex->Color = color; }; applyToMesh(mesh, colorizator); } template <float v3f::*U, float v3f::*V> static void rotateMesh(scene::IMesh *mesh, float degrees) { degrees *= M_PI / 180.0f; float c = std::cos(degrees); float s = std::sin(degrees); auto rotator = [c, s] (video::S3DVertex *vertex) { float u = vertex->Pos.*U; float v = vertex->Pos.*V; vertex->Pos.*U = c * u - s * v; vertex->Pos.*V = s * u + c * v; }; applyToMesh(mesh, rotator); } void rotateMeshXYby(scene::IMesh *mesh, f64 degrees) { rotateMesh<&v3f::X, &v3f::Y>(mesh, degrees); } void rotateMeshXZby(scene::IMesh *mesh, f64 degrees) { rotateMesh<&v3f::X, &v3f::Z>(mesh, degrees); } void rotateMeshYZby(scene::IMesh *mesh, f64 degrees) { rotateMesh<&v3f::Y, &v3f::Z>(mesh, degrees); } void rotateMeshBy6dFacedir(scene::IMesh *mesh, int facedir) { int axisdir = facedir >> 2; facedir &= 0x03; switch (facedir) { case 1: rotateMeshXZby(mesh, -90); break; case 2: rotateMeshXZby(mesh, 180); break; case 3: rotateMeshXZby(mesh, 90); break; } switch (axisdir) { case 1: rotateMeshYZby(mesh, 90); break; // z+ case 2: rotateMeshYZby(mesh, -90); break; // z- case 3: rotateMeshXYby(mesh, -90); break; // x+ case 4: rotateMeshXYby(mesh, 90); break; // x- case 5: rotateMeshXYby(mesh, -180); break; } } void recalculateBoundingBox(scene::IMesh *src_mesh) { aabb3f bbox; bbox.reset(0,0,0); for (u16 j = 0; j < src_mesh->getMeshBufferCount(); j++) { scene::IMeshBuffer *buf = src_mesh->getMeshBuffer(j); buf->recalculateBoundingBox(); if (j == 0) bbox = buf->getBoundingBox(); else bbox.addInternalBox(buf->getBoundingBox()); } src_mesh->setBoundingBox(bbox); } bool checkMeshNormals(scene::IMesh *mesh) { u32 buffer_count = mesh->getMeshBufferCount(); for (u32 i = 0; i < buffer_count; i++) { scene::IMeshBuffer *buffer = mesh->getMeshBuffer(i); // Here we intentionally check only first normal, assuming that if buffer // has it valid, then most likely all other ones are fine too. We can // check all of the normals to have length, but it seems like an overkill // hurting the performance and covering only really weird broken models. f32 length = buffer->getNormal(0).getLength(); if (!std::isfinite(length) || length < 1e-10f) return false; } return true; } scene::IMeshBuffer* cloneMeshBuffer(scene::IMeshBuffer *mesh_buffer) { switch (mesh_buffer->getVertexType()) { case video::EVT_STANDARD: { video::S3DVertex *v = (video::S3DVertex *) mesh_buffer->getVertices(); u16 *indices = mesh_buffer->getIndices(); scene::SMeshBuffer *cloned_buffer = new scene::SMeshBuffer(); cloned_buffer->append(v, mesh_buffer->getVertexCount(), indices, mesh_buffer->getIndexCount()); return cloned_buffer; } case video::EVT_2TCOORDS: { video::S3DVertex2TCoords *v = (video::S3DVertex2TCoords *) mesh_buffer->getVertices(); u16 *indices = mesh_buffer->getIndices(); scene::SMeshBufferLightMap *cloned_buffer = new scene::SMeshBufferLightMap(); cloned_buffer->append(v, mesh_buffer->getVertexCount(), indices, mesh_buffer->getIndexCount()); return cloned_buffer; } case video::EVT_TANGENTS: { video::S3DVertexTangents *v = (video::S3DVertexTangents *) mesh_buffer->getVertices(); u16 *indices = mesh_buffer->getIndices(); scene::SMeshBufferTangents *cloned_buffer = new scene::SMeshBufferTangents(); cloned_buffer->append(v, mesh_buffer->getVertexCount(), indices, mesh_buffer->getIndexCount()); return cloned_buffer; } } // This should not happen. sanity_check(false); return NULL; } scene::SMesh* cloneMesh(scene::IMesh *src_mesh) { scene::SMesh* dst_mesh = new scene::SMesh(); for (u16 j = 0; j < src_mesh->getMeshBufferCount(); j++) { scene::IMeshBuffer *temp_buf = cloneMeshBuffer( src_mesh->getMeshBuffer(j)); dst_mesh->addMeshBuffer(temp_buf); temp_buf->drop(); } return dst_mesh; } scene::IMesh* convertNodeboxesToMesh(const std::vector<aabb3f> &boxes, const f32 *uv_coords, float expand) { scene::SMesh* dst_mesh = new scene::SMesh(); for (u16 j = 0; j < 6; j++) { scene::IMeshBuffer *buf = new scene::SMeshBuffer(); buf->getMaterial().setFlag(video::EMF_LIGHTING, false); buf->getMaterial().setFlag(video::EMF_BILINEAR_FILTER, false); dst_mesh->addMeshBuffer(buf); buf->drop(); } video::SColor c(255,255,255,255); for (aabb3f box : boxes) { box.repair(); box.MinEdge.X -= expand; box.MinEdge.Y -= expand; box.MinEdge.Z -= expand; box.MaxEdge.X += expand; box.MaxEdge.Y += expand; box.MaxEdge.Z += expand; // Compute texture UV coords f32 tx1 = (box.MinEdge.X / BS) + 0.5; f32 ty1 = (box.MinEdge.Y / BS) + 0.5; f32 tz1 = (box.MinEdge.Z / BS) + 0.5; f32 tx2 = (box.MaxEdge.X / BS) + 0.5; f32 ty2 = (box.MaxEdge.Y / BS) + 0.5; f32 tz2 = (box.MaxEdge.Z / BS) + 0.5; f32 txc_default[24] = { // up tx1, 1 - tz2, tx2, 1 - tz1, // down tx1, tz1, tx2, tz2, // right tz1, 1 - ty2, tz2, 1 - ty1, // left 1 - tz2, 1 - ty2, 1 - tz1, 1 - ty1, // back 1 - tx2, 1 - ty2, 1 - tx1, 1 - ty1, // front tx1, 1 - ty2, tx2, 1 - ty1, }; // use default texture UV mapping if not provided const f32 *txc = uv_coords ? uv_coords : txc_default; v3f min = box.MinEdge; v3f max = box.MaxEdge; video::S3DVertex vertices[24] = { // up video::S3DVertex(min.X,max.Y,max.Z, 0,1,0, c, txc[0],txc[1]), video::S3DVertex(max.X,max.Y,max.Z, 0,1,0, c, txc[2],txc[1]), video::S3DVertex(max.X,max.Y,min.Z, 0,1,0, c, txc[2],txc[3]), video::S3DVertex(min.X,max.Y,min.Z, 0,1,0, c, txc[0],txc[3]), // down video::S3DVertex(min.X,min.Y,min.Z, 0,-1,0, c, txc[4],txc[5]), video::S3DVertex(max.X,min.Y,min.Z, 0,-1,0, c, txc[6],txc[5]), video::S3DVertex(max.X,min.Y,max.Z, 0,-1,0, c, txc[6],txc[7]), video::S3DVertex(min.X,min.Y,max.Z, 0,-1,0, c, txc[4],txc[7]), // right video::S3DVertex(max.X,max.Y,min.Z, 1,0,0, c, txc[ 8],txc[9]), video::S3DVertex(max.X,max.Y,max.Z, 1,0,0, c, txc[10],txc[9]), video::S3DVertex(max.X,min.Y,max.Z, 1,0,0, c, txc[10],txc[11]), video::S3DVertex(max.X,min.Y,min.Z, 1,0,0, c, txc[ 8],txc[11]), // left video::S3DVertex(min.X,max.Y,max.Z, -1,0,0, c, txc[12],txc[13]), video::S3DVertex(min.X,max.Y,min.Z, -1,0,0, c, txc[14],txc[13]), video::S3DVertex(min.X,min.Y,min.Z, -1,0,0, c, txc[14],txc[15]), video::S3DVertex(min.X,min.Y,max.Z, -1,0,0, c, txc[12],txc[15]), // back video::S3DVertex(max.X,max.Y,max.Z, 0,0,1, c, txc[16],txc[17]), video::S3DVertex(min.X,max.Y,max.Z, 0,0,1, c, txc[18],txc[17]), video::S3DVertex(min.X,min.Y,max.Z, 0,0,1, c, txc[18],txc[19]), video::S3DVertex(max.X,min.Y,max.Z, 0,0,1, c, txc[16],txc[19]), // front video::S3DVertex(min.X,max.Y,min.Z, 0,0,-1, c, txc[20],txc[21]), video::S3DVertex(max.X,max.Y,min.Z, 0,0,-1, c, txc[22],txc[21]), video::S3DVertex(max.X,min.Y,min.Z, 0,0,-1, c, txc[22],txc[23]), video::S3DVertex(min.X,min.Y,min.Z, 0,0,-1, c, txc[20],txc[23]), }; u16 indices[] = {0,1,2,2,3,0}; for(u16 j = 0; j < 24; j += 4) { scene::IMeshBuffer *buf = dst_mesh->getMeshBuffer(j / 4); buf->append(vertices + j, 4, indices, 6); } } return dst_mesh; } struct vcache { core::array<u32> tris; float score; s16 cachepos; u16 NumActiveTris; }; struct tcache { u16 ind[3]; float score; bool drawn; }; const u16 cachesize = 32; float FindVertexScore(vcache *v) { const float CacheDecayPower = 1.5f; const float LastTriScore = 0.75f; const float ValenceBoostScale = 2.0f; const float ValenceBoostPower = 0.5f; const float MaxSizeVertexCache = 32.0f; if (v->NumActiveTris == 0) { // No tri needs this vertex! return -1.0f; } float Score = 0.0f; int CachePosition = v->cachepos; if (CachePosition < 0) { // Vertex is not in FIFO cache - no score. } else { if (CachePosition < 3) { // This vertex was used in the last triangle, // so it has a fixed score. Score = LastTriScore; } else { // Points for being high in the cache. const float Scaler = 1.0f / (MaxSizeVertexCache - 3); Score = 1.0f - (CachePosition - 3) * Scaler; Score = powf(Score, CacheDecayPower); } } // Bonus points for having a low number of tris still to // use the vert, so we get rid of lone verts quickly. float ValenceBoost = powf(v->NumActiveTris, -ValenceBoostPower); Score += ValenceBoostScale * ValenceBoost; return Score; } /* A specialized LRU cache for the Forsyth algorithm. */ class f_lru { public: f_lru(vcache *v, tcache *t): vc(v), tc(t) { for (int &i : cache) { i = -1; } } // Adds this vertex index and returns the highest-scoring triangle index u32 add(u16 vert, bool updatetris = false) { bool found = false; // Mark existing pos as empty for (u16 i = 0; i < cachesize; i++) { if (cache[i] == vert) { // Move everything down for (u16 j = i; j; j--) { cache[j] = cache[j - 1]; } found = true; break; } } if (!found) { if (cache[cachesize-1] != -1) vc[cache[cachesize-1]].cachepos = -1; // Move everything down for (u16 i = cachesize - 1; i; i--) { cache[i] = cache[i - 1]; } } cache[0] = vert; u32 highest = 0; float hiscore = 0; if (updatetris) { // Update cache positions for (u16 i = 0; i < cachesize; i++) { if (cache[i] == -1) break; vc[cache[i]].cachepos = i; vc[cache[i]].score = FindVertexScore(&vc[cache[i]]); } // Update triangle scores for (int i : cache) { if (i == -1) break; const u16 trisize = vc[i].tris.size(); for (u16 t = 0; t < trisize; t++) { tcache *tri = &tc[vc[i].tris[t]]; tri->score = vc[tri->ind[0]].score + vc[tri->ind[1]].score + vc[tri->ind[2]].score; if (tri->score > hiscore) { hiscore = tri->score; highest = vc[i].tris[t]; } } } } return highest; } private: s32 cache[cachesize]; vcache *vc; tcache *tc; }; /** Vertex cache optimization according to the Forsyth paper: http://home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html The function is thread-safe (read: you can optimize several meshes in different threads) \param mesh Source mesh for the operation. */ scene::IMesh* createForsythOptimizedMesh(const scene::IMesh *mesh) { if (!mesh) return 0; scene::SMesh *newmesh = new scene::SMesh(); newmesh->BoundingBox = mesh->getBoundingBox(); const u32 mbcount = mesh->getMeshBufferCount(); for (u32 b = 0; b < mbcount; ++b) { const scene::IMeshBuffer *mb = mesh->getMeshBuffer(b); if (mb->getIndexType() != video::EIT_16BIT) { //os::Printer::log("Cannot optimize a mesh with 32bit indices", ELL_ERROR); newmesh->drop(); return 0; } const u32 icount = mb->getIndexCount(); const u32 tcount = icount / 3; const u32 vcount = mb->getVertexCount(); const u16 *ind = mb->getIndices(); vcache *vc = new vcache[vcount]; tcache *tc = new tcache[tcount]; f_lru lru(vc, tc); // init for (u16 i = 0; i < vcount; i++) { vc[i].score = 0; vc[i].cachepos = -1; vc[i].NumActiveTris = 0; } // First pass: count how many times a vert is used for (u32 i = 0; i < icount; i += 3) { vc[ind[i]].NumActiveTris++; vc[ind[i + 1]].NumActiveTris++; vc[ind[i + 2]].NumActiveTris++; const u32 tri_ind = i/3; tc[tri_ind].ind[0] = ind[i]; tc[tri_ind].ind[1] = ind[i + 1]; tc[tri_ind].ind[2] = ind[i + 2]; } // Second pass: list of each triangle for (u32 i = 0; i < tcount; i++) { vc[tc[i].ind[0]].tris.push_back(i); vc[tc[i].ind[1]].tris.push_back(i); vc[tc[i].ind[2]].tris.push_back(i); tc[i].drawn =